-
-
+
diff --git a/apps/files_encryption/l10n/fi_FI.php b/apps/files_encryption/l10n/fi_FI.php
index 433ae890ef..33756c2831 100644
--- a/apps/files_encryption/l10n/fi_FI.php
+++ b/apps/files_encryption/l10n/fi_FI.php
@@ -1,4 +1,8 @@
"Tarkista salasanasi ja yritä uudelleen.",
+"Choose encryption mode:" => "Choose encryption mode:",
+"None (no encryption at all)" => "Ei mitään (ei lainkaan salausta)",
+"Important: Once you selected an encryption mode there is no way to change it back" => "Tärkeä huomautus: Kun olet valinnut salaustatavan, sitä ei ole mahdollista vaihtaa",
"Encryption" => "Salaus",
"Exclude the following file types from encryption" => "Jätä seuraavat tiedostotyypit salaamatta",
"None" => "Ei mitään"
diff --git a/apps/files_encryption/l10n/lv.php b/apps/files_encryption/l10n/lv.php
new file mode 100644
index 0000000000..7eb21037bb
--- /dev/null
+++ b/apps/files_encryption/l10n/lv.php
@@ -0,0 +1,16 @@
+ "Lūdzu, pārslēdzieties uz savu ownCloud klientu un maniet savu šifrēšanas paroli, lai pabeigtu pārveidošanu.",
+"switched to client side encryption" => "Pārslēdzās uz klienta puses šifrēšanu",
+"Change encryption password to login password" => "Mainīt šifrēšanas paroli uz ierakstīšanās paroli",
+"Please check your passwords and try again." => "Lūdzu, pārbaudiet savas paroles un mēģiniet vēlreiz.",
+"Could not change your file encryption password to your login password" => "Nevarēja mainīt datņu šifrēšanas paroli uz ierakstīšanās paroli",
+"Choose encryption mode:" => "Izvēlieties šifrēšanas režīmu:",
+"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Klienta puses šifrēšana (visdrošākā, bet nav iespējams piekļūt saviem datiem no tīmekļa saskarnes)",
+"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Servera puses šifrēšana (ļauj piekļūt datnēm ar tīmekļa saskarni un ar darbvirsmas klientu)",
+"None (no encryption at all)" => "Nav (nekādas šifrēšanas)",
+"Important: Once you selected an encryption mode there is no way to change it back" => "Svarīgi — kad esat izvēlējies šifrēšanas režīmu, to nekādi nevar mainīt atpakaļ",
+"User specific (let the user decide)" => "Lietotājam specifiski (ļauj lietotājam izlemt)",
+"Encryption" => "Šifrēšana",
+"Exclude the following file types from encryption" => "Sekojošos datņu tipus nešifrēt",
+"None" => "Nav"
+);
diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php
index 7c09009cba..02cb0d970f 100644
--- a/apps/files_encryption/l10n/nl.php
+++ b/apps/files_encryption/l10n/nl.php
@@ -1,4 +1,11 @@
"overgeschakeld naar client side encryptie",
+"Change encryption password to login password" => "Verander encryptie wachtwoord naar login wachtwoord",
+"Please check your passwords and try again." => "Controleer uw wachtwoorden en probeer het opnieuw.",
+"Could not change your file encryption password to your login password" => "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord",
+"Choose encryption mode:" => "Kies encryptie mode:",
+"None (no encryption at all)" => "Geen (zonder encryptie)",
+"Important: Once you selected an encryption mode there is no way to change it back" => "Belangrijk: Zodra er voor een encryptie mode is gekozen kan deze niet meer worden gewijzigd.",
"Encryption" => "Versleuteling",
"Exclude the following file types from encryption" => "Versleutel de volgende bestand types niet",
"None" => "Geen"
diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js
index a9a3155e67..cd3c957e0a 100644
--- a/apps/files_external/js/dropbox.js
+++ b/apps/files_external/js/dropbox.js
@@ -36,7 +36,7 @@ $(document).ready(function() {
}
});
- $('#externalStorage tbody tr input').live('keyup', function() {
+ $('#externalStorage tbody').on('keyup', 'tr input', function() {
var tr = $(this).parent().parent();
if ($(tr).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Dropbox') && $(tr).find('[data-parameter="configured"]').val() != 'true') {
var config = $(tr).find('.configuration');
@@ -52,7 +52,7 @@ $(document).ready(function() {
}
});
- $('.dropbox').live('click', function(event) {
+ $('.dropbox').on('click', function(event) {
event.preventDefault();
var app_key = $(this).parent().find('[data-parameter="app_key"]').val();
var app_secret = $(this).parent().find('[data-parameter="app_secret"]').val();
diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js
index 7d759d13da..9b7f9514f1 100644
--- a/apps/files_external/js/google.js
+++ b/apps/files_external/js/google.js
@@ -33,8 +33,7 @@ $(document).ready(function() {
}
});
- $('#externalStorage tbody tr').live('change', function() {
- console.log('hello');
+ $('#externalStorage tbody').on('change', 'tr', function() {
if ($(this).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Google') && $(this).find('[data-parameter="configured"]').val() != 'true') {
if ($(this).find('.mountPoint input').val() != '') {
if ($(this).find('.google').length == 0) {
@@ -44,7 +43,7 @@ $(document).ready(function() {
}
});
- $('#externalStorage tbody tr .mountPoint input').live('keyup', function() {
+ $('#externalStorage tbody').on('keyup', 'tr .mountPoint input', function() {
var tr = $(this).parent().parent();
if ($(tr).hasClass('\\\\OC\\\\Files\\\\Storage\\\\Google') && $(tr).find('[data-parameter="configured"]').val() != 'true' && $(tr).find('.google').length > 0) {
if ($(this).val() != '') {
@@ -55,7 +54,7 @@ $(document).ready(function() {
}
});
- $('.google').live('click', function(event) {
+ $('.google').on('click', function(event) {
event.preventDefault();
var tr = $(this).parent().parent();
var configured = $(this).parent().find('[data-parameter="configured"]');
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 6cbc218008..172ef097fb 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -71,7 +71,7 @@ OC.MountConfig={
$(document).ready(function() {
$('.chzn-select').chosen();
- $('#selectBackend').live('change', function() {
+ $('#selectBackend').on('change', function() {
var tr = $(this).parent().parent();
$('#externalStorage tbody').append($(tr).clone());
$('#externalStorage tbody tr').last().find('.mountPoint input').val('');
@@ -135,11 +135,11 @@ $(document).ready(function() {
return defaultMountPoint+append;
}
- $('#externalStorage td').live('change', function() {
+ $('#externalStorage').on('change', 'td', function() {
OC.MountConfig.saveStorage($(this).parent());
});
- $('td.remove>img').live('click', function() {
+ $('td.remove>img').on('click', function() {
var tr = $(this).parent().parent();
var mountPoint = $(tr).find('.mountPoint input').val();
if ( ! mountPoint) {
diff --git a/apps/files_external/l10n/af_ZA.php b/apps/files_external/l10n/af_ZA.php
new file mode 100644
index 0000000000..cf9b951828
--- /dev/null
+++ b/apps/files_external/l10n/af_ZA.php
@@ -0,0 +1,3 @@
+ "Gebruikers"
+);
diff --git a/apps/files_external/l10n/fa.php b/apps/files_external/l10n/fa.php
index b866201361..5acf3eac5a 100644
--- a/apps/files_external/l10n/fa.php
+++ b/apps/files_external/l10n/fa.php
@@ -1,5 +1,10 @@
"حافظه خارجی",
+"Configuration" => "پیکربندی",
+"Options" => "تنظیمات",
+"Applicable" => "قابل اجرا",
"Groups" => "گروه ها",
"Users" => "کاربران",
-"Delete" => "حذف"
+"Delete" => "حذف",
+"Enable User External Storage" => "فعال سازی حافظه خارجی کاربر"
);
diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php
index d7b16e0d3e..8c7381db71 100644
--- a/apps/files_external/l10n/fi_FI.php
+++ b/apps/files_external/l10n/fi_FI.php
@@ -4,6 +4,8 @@
"Grant access" => "Salli pääsy",
"Fill out all required fields" => "Täytä kaikki vaaditut kentät",
"Error configuring Google Drive storage" => "Virhe Google Drive levyn asetuksia tehtäessä",
+"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Varoitus: \"smbclient\" ei ole asennettuna. CIFS-/SMB-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan smbclient.",
+"Warning: 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." => "Varoitus: PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. FTP-jakojen liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.",
"External Storage" => "Erillinen tallennusväline",
"Mount point" => "Liitospiste",
"Backend" => "Taustaosa",
diff --git a/apps/files_external/l10n/lv.php b/apps/files_external/l10n/lv.php
index 26452f98b0..ee53346fcd 100644
--- a/apps/files_external/l10n/lv.php
+++ b/apps/files_external/l10n/lv.php
@@ -1,5 +1,26 @@
"Piešķirta pieeja",
+"Error configuring Dropbox storage" => "Kļūda, konfigurējot Dropbox krātuvi",
+"Grant access" => "Piešķirt pieeju",
+"Fill out all required fields" => "Aizpildīt visus pieprasītos laukus",
+"Please provide a valid Dropbox app key and secret." => "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu.",
+"Error configuring Google Drive storage" => "Kļūda, konfigurējot Google Drive krātuvi",
+"Warning: \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "Brīdinājums: nav uzinstalēts “smbclient”. Nevar montēt CIFS/SMB koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē.",
+"Warning: 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." => "Brīdinājums: uz PHP nav aktivēts vai instalēts FTP atbalsts. Nevar montēt FTP koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē.",
+"External Storage" => "Ārējā krātuve",
+"Mount point" => "Montēšanas punkts",
+"Backend" => "Aizmugure",
+"Configuration" => "Konfigurācija",
+"Options" => "Opcijas",
+"Applicable" => "Piemērojams",
+"Add mount point" => "Pievienot montēšanas punktu",
+"None set" => "Neviens nav iestatīts",
+"All Users" => "Visi lietotāji",
"Groups" => "Grupas",
"Users" => "Lietotāji",
-"Delete" => "Izdzēst"
+"Delete" => "Dzēst",
+"Enable User External Storage" => "Aktivēt lietotāja ārējo krātuvi",
+"Allow users to mount their own external storage" => "Ļaut lietotājiem montēt pašiem savu ārējo krātuvi",
+"SSL root certificates" => "SSL saknes sertifikāti",
+"Import Root Certificate" => "Importēt saknes sertifikātus"
);
diff --git a/apps/files_sharing/l10n/af_ZA.php b/apps/files_sharing/l10n/af_ZA.php
new file mode 100644
index 0000000000..344585a62f
--- /dev/null
+++ b/apps/files_sharing/l10n/af_ZA.php
@@ -0,0 +1,4 @@
+ "Wagwoord",
+"web services under your control" => "webdienste onder jou beheer"
+);
diff --git a/apps/files_sharing/l10n/fa.php b/apps/files_sharing/l10n/fa.php
index 06e1862e8b..4313acae1a 100644
--- a/apps/files_sharing/l10n/fa.php
+++ b/apps/files_sharing/l10n/fa.php
@@ -1,6 +1,9 @@
"اندازه",
-"Modified" => "تاریخ",
-"Delete all" => "حذف همه",
-"Delete" => "حذف"
+"Password" => "گذرواژه",
+"Submit" => "ثبت",
+"%s shared the folder %s with you" => "%sپوشه %s را با شما به اشتراک گذاشت",
+"%s shared the file %s with you" => "%sفایل %s را با شما به اشتراک گذاشت",
+"Download" => "دانلود",
+"No preview available for" => "هیچگونه پیش نمایشی موجود نیست",
+"web services under your control" => "سرویس های تحت وب در کنترل شما"
);
diff --git a/apps/files_sharing/l10n/lv.php b/apps/files_sharing/l10n/lv.php
new file mode 100644
index 0000000000..0b22486708
--- /dev/null
+++ b/apps/files_sharing/l10n/lv.php
@@ -0,0 +1,9 @@
+ "Parole",
+"Submit" => "Iesniegt",
+"%s shared the folder %s with you" => "%s ar jums dalījās ar mapi %s",
+"%s shared the file %s with you" => "%s ar jums dalījās ar datni %s",
+"Download" => "Lejupielādēt",
+"No preview available for" => "Nav pieejams priekšskatījums priekš",
+"web services under your control" => "jūsu vadībā esošie tīmekļa servisi"
+);
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index 9cf45e56fb..a3e0ec192a 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -235,6 +235,7 @@ if ($linkItem) {
OCP\Util::addStyle('files', 'files');
OCP\Util::addScript('files', 'files');
OCP\Util::addScript('files', 'filelist');
+ OCP\Util::addscript('files', 'keyboardshortcuts');
$files = array();
$rootLength = strlen($basePath) + 1;
foreach (OC_Files::getDirectoryContent($path) as $i) {
diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php
index a7bb5b9de2..ee1c64aaaf 100644
--- a/apps/files_trashbin/ajax/undelete.php
+++ b/apps/files_trashbin/ajax/undelete.php
@@ -1,8 +1,7 @@
';
+ var spinner = '';
var files=getSelectedFiles('file');
var fileslist=files.join(';');
var dirlisting=getSelectedFiles('dirlisting')[0];
diff --git a/apps/files_trashbin/l10n/ar.php b/apps/files_trashbin/l10n/ar.php
new file mode 100644
index 0000000000..e38130fe2d
--- /dev/null
+++ b/apps/files_trashbin/l10n/ar.php
@@ -0,0 +1,3 @@
+ "اسم"
+);
diff --git a/apps/files_trashbin/l10n/bg_BG.php b/apps/files_trashbin/l10n/bg_BG.php
new file mode 100644
index 0000000000..681c1dc580
--- /dev/null
+++ b/apps/files_trashbin/l10n/bg_BG.php
@@ -0,0 +1,3 @@
+ "Име"
+);
diff --git a/apps/files_trashbin/l10n/bn_BD.php b/apps/files_trashbin/l10n/bn_BD.php
new file mode 100644
index 0000000000..c669eff7e1
--- /dev/null
+++ b/apps/files_trashbin/l10n/bn_BD.php
@@ -0,0 +1,7 @@
+ "রাম",
+"1 folder" => "১টি ফোল্ডার",
+"{count} folders" => "{count} টি ফোল্ডার",
+"1 file" => "১টি ফাইল",
+"{count} files" => "{count} টি ফাইল"
+);
diff --git a/apps/files_trashbin/l10n/ca.php b/apps/files_trashbin/l10n/ca.php
new file mode 100644
index 0000000000..3af33c8a31
--- /dev/null
+++ b/apps/files_trashbin/l10n/ca.php
@@ -0,0 +1,11 @@
+ "executa l'operació de restauració",
+"Name" => "Nom",
+"Deleted" => "Eliminat",
+"1 folder" => "1 carpeta",
+"{count} folders" => "{count} carpetes",
+"1 file" => "1 fitxer",
+"{count} files" => "{count} fitxers",
+"Nothing in here. Your trash bin is empty!" => "La paperera està buida!",
+"Restore" => "Recupera"
+);
diff --git a/apps/files_trashbin/l10n/cs_CZ.php b/apps/files_trashbin/l10n/cs_CZ.php
new file mode 100644
index 0000000000..caaaea3743
--- /dev/null
+++ b/apps/files_trashbin/l10n/cs_CZ.php
@@ -0,0 +1,11 @@
+ "provést obnovu",
+"Name" => "Název",
+"Deleted" => "Smazáno",
+"1 folder" => "1 složka",
+"{count} folders" => "{count} složky",
+"1 file" => "1 soubor",
+"{count} files" => "{count} soubory",
+"Nothing in here. Your trash bin is empty!" => "Žádný obsah. Váš koš je prázdný.",
+"Restore" => "Obnovit"
+);
diff --git a/apps/files_trashbin/l10n/da.php b/apps/files_trashbin/l10n/da.php
new file mode 100644
index 0000000000..3343b6fc8f
--- /dev/null
+++ b/apps/files_trashbin/l10n/da.php
@@ -0,0 +1,8 @@
+ "Navn",
+"1 folder" => "1 mappe",
+"{count} folders" => "{count} mapper",
+"1 file" => "1 fil",
+"{count} files" => "{count} filer",
+"Restore" => "Gendan"
+);
diff --git a/apps/files_trashbin/l10n/de.php b/apps/files_trashbin/l10n/de.php
new file mode 100644
index 0000000000..45dfb9d605
--- /dev/null
+++ b/apps/files_trashbin/l10n/de.php
@@ -0,0 +1,11 @@
+ "Wiederherstellung ausführen",
+"Name" => "Name",
+"Deleted" => "gelöscht",
+"1 folder" => "1 Ordner",
+"{count} folders" => "{count} Ordner",
+"1 file" => "1 Datei",
+"{count} files" => "{count} Dateien",
+"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, der Papierkorb ist leer!",
+"Restore" => "Wiederherstellen"
+);
diff --git a/apps/files_trashbin/l10n/de_DE.php b/apps/files_trashbin/l10n/de_DE.php
new file mode 100644
index 0000000000..45e30d85a3
--- /dev/null
+++ b/apps/files_trashbin/l10n/de_DE.php
@@ -0,0 +1,11 @@
+ "Führe die Wiederherstellung aus",
+"Name" => "Name",
+"Deleted" => "Gelöscht",
+"1 folder" => "1 Ordner",
+"{count} folders" => "{count} Ordner",
+"1 file" => "1 Datei",
+"{count} files" => "{count} Dateien",
+"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!",
+"Restore" => "Wiederherstellen"
+);
diff --git a/apps/files_trashbin/l10n/el.php b/apps/files_trashbin/l10n/el.php
new file mode 100644
index 0000000000..83e359890e
--- /dev/null
+++ b/apps/files_trashbin/l10n/el.php
@@ -0,0 +1,8 @@
+ "Όνομα",
+"1 folder" => "1 φάκελος",
+"{count} folders" => "{count} φάκελοι",
+"1 file" => "1 αρχείο",
+"{count} files" => "{count} αρχεία",
+"Restore" => "Επαναφορά"
+);
diff --git a/apps/files_trashbin/l10n/eo.php b/apps/files_trashbin/l10n/eo.php
new file mode 100644
index 0000000000..f357e3c10c
--- /dev/null
+++ b/apps/files_trashbin/l10n/eo.php
@@ -0,0 +1,8 @@
+ "Nomo",
+"1 folder" => "1 dosierujo",
+"{count} folders" => "{count} dosierujoj",
+"1 file" => "1 dosiero",
+"{count} files" => "{count} dosierujoj",
+"Restore" => "Restaŭri"
+);
diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php
new file mode 100644
index 0000000000..798322cab2
--- /dev/null
+++ b/apps/files_trashbin/l10n/es.php
@@ -0,0 +1,8 @@
+ "Nombre",
+"1 folder" => "1 carpeta",
+"{count} folders" => "{count} carpetas",
+"1 file" => "1 archivo",
+"{count} files" => "{count} archivos",
+"Restore" => "Recuperar"
+);
diff --git a/apps/files_trashbin/l10n/es_AR.php b/apps/files_trashbin/l10n/es_AR.php
new file mode 100644
index 0000000000..d2c5f30428
--- /dev/null
+++ b/apps/files_trashbin/l10n/es_AR.php
@@ -0,0 +1,8 @@
+ "Nombre",
+"1 folder" => "1 directorio",
+"{count} folders" => "{count} directorios",
+"1 file" => "1 archivo",
+"{count} files" => "{count} archivos",
+"Restore" => "Recuperar"
+);
diff --git a/apps/files_trashbin/l10n/et_EE.php b/apps/files_trashbin/l10n/et_EE.php
new file mode 100644
index 0000000000..4f46f38802
--- /dev/null
+++ b/apps/files_trashbin/l10n/et_EE.php
@@ -0,0 +1,7 @@
+ "Nimi",
+"1 folder" => "1 kaust",
+"{count} folders" => "{count} kausta",
+"1 file" => "1 fail",
+"{count} files" => "{count} faili"
+);
diff --git a/apps/files_trashbin/l10n/eu.php b/apps/files_trashbin/l10n/eu.php
new file mode 100644
index 0000000000..a1e3ca53e6
--- /dev/null
+++ b/apps/files_trashbin/l10n/eu.php
@@ -0,0 +1,8 @@
+ "Izena",
+"1 folder" => "karpeta bat",
+"{count} folders" => "{count} karpeta",
+"1 file" => "fitxategi bat",
+"{count} files" => "{count} fitxategi",
+"Restore" => "Berrezarri"
+);
diff --git a/apps/files_trashbin/l10n/fa.php b/apps/files_trashbin/l10n/fa.php
new file mode 100644
index 0000000000..487d165798
--- /dev/null
+++ b/apps/files_trashbin/l10n/fa.php
@@ -0,0 +1,8 @@
+ "نام",
+"1 folder" => "1 پوشه",
+"{count} folders" => "{ شمار} پوشه ها",
+"1 file" => "1 پرونده",
+"{count} files" => "{ شمار } فایل ها",
+"Restore" => "بازیابی"
+);
diff --git a/apps/files_trashbin/l10n/fi_FI.php b/apps/files_trashbin/l10n/fi_FI.php
new file mode 100644
index 0000000000..de25027f9a
--- /dev/null
+++ b/apps/files_trashbin/l10n/fi_FI.php
@@ -0,0 +1,11 @@
+ "suorita palautustoiminto",
+"Name" => "Nimi",
+"Deleted" => "Poistettu",
+"1 folder" => "1 kansio",
+"{count} folders" => "{count} kansiota",
+"1 file" => "1 tiedosto",
+"{count} files" => "{count} tiedostoa",
+"Nothing in here. Your trash bin is empty!" => "Tyhjää täynnä! Roskakorissa ei ole mitään.",
+"Restore" => "Palauta"
+);
diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php
new file mode 100644
index 0000000000..51ade82d90
--- /dev/null
+++ b/apps/files_trashbin/l10n/fr.php
@@ -0,0 +1,11 @@
+ "effectuer l'opération de restauration",
+"Name" => "Nom",
+"Deleted" => "Effacé",
+"1 folder" => "1 dossier",
+"{count} folders" => "{count} dossiers",
+"1 file" => "1 fichier",
+"{count} files" => "{count} fichiers",
+"Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !",
+"Restore" => "Restaurer"
+);
diff --git a/apps/files_trashbin/l10n/gl.php b/apps/files_trashbin/l10n/gl.php
new file mode 100644
index 0000000000..bdc3187b20
--- /dev/null
+++ b/apps/files_trashbin/l10n/gl.php
@@ -0,0 +1,8 @@
+ "Nome",
+"1 folder" => "1 cartafol",
+"{count} folders" => "{count} cartafoles",
+"1 file" => "1 ficheiro",
+"{count} files" => "{count} ficheiros",
+"Restore" => "Restablecer"
+);
diff --git a/apps/files_trashbin/l10n/he.php b/apps/files_trashbin/l10n/he.php
new file mode 100644
index 0000000000..d026add5d7
--- /dev/null
+++ b/apps/files_trashbin/l10n/he.php
@@ -0,0 +1,7 @@
+ "שם",
+"1 folder" => "תיקייה אחת",
+"{count} folders" => "{count} תיקיות",
+"1 file" => "קובץ אחד",
+"{count} files" => "{count} קבצים"
+);
diff --git a/apps/files_trashbin/l10n/hr.php b/apps/files_trashbin/l10n/hr.php
new file mode 100644
index 0000000000..52255c7429
--- /dev/null
+++ b/apps/files_trashbin/l10n/hr.php
@@ -0,0 +1,3 @@
+ "Ime"
+);
diff --git a/apps/files_trashbin/l10n/hu_HU.php b/apps/files_trashbin/l10n/hu_HU.php
new file mode 100644
index 0000000000..c4e2b5e212
--- /dev/null
+++ b/apps/files_trashbin/l10n/hu_HU.php
@@ -0,0 +1,8 @@
+ "Név",
+"1 folder" => "1 mappa",
+"{count} folders" => "{count} mappa",
+"1 file" => "1 fájl",
+"{count} files" => "{count} fájl",
+"Restore" => "Visszaállítás"
+);
diff --git a/apps/files_trashbin/l10n/ia.php b/apps/files_trashbin/l10n/ia.php
new file mode 100644
index 0000000000..c2581f3de1
--- /dev/null
+++ b/apps/files_trashbin/l10n/ia.php
@@ -0,0 +1,3 @@
+ "Nomine"
+);
diff --git a/apps/files_trashbin/l10n/id.php b/apps/files_trashbin/l10n/id.php
new file mode 100644
index 0000000000..1a14d8b7c2
--- /dev/null
+++ b/apps/files_trashbin/l10n/id.php
@@ -0,0 +1,3 @@
+ "nama"
+);
diff --git a/apps/files_trashbin/l10n/is.php b/apps/files_trashbin/l10n/is.php
new file mode 100644
index 0000000000..416f641a8e
--- /dev/null
+++ b/apps/files_trashbin/l10n/is.php
@@ -0,0 +1,7 @@
+ "Nafn",
+"1 folder" => "1 mappa",
+"{count} folders" => "{count} möppur",
+"1 file" => "1 skrá",
+"{count} files" => "{count} skrár"
+);
diff --git a/apps/files_trashbin/l10n/it.php b/apps/files_trashbin/l10n/it.php
new file mode 100644
index 0000000000..7def431a42
--- /dev/null
+++ b/apps/files_trashbin/l10n/it.php
@@ -0,0 +1,11 @@
+ "esegui operazione di ripristino",
+"Name" => "Nome",
+"Deleted" => "Eliminati",
+"1 folder" => "1 cartella",
+"{count} folders" => "{count} cartelle",
+"1 file" => "1 file",
+"{count} files" => "{count} file",
+"Nothing in here. Your trash bin is empty!" => "Qui non c'è niente. Il tuo cestino è vuoto.",
+"Restore" => "Ripristina"
+);
diff --git a/apps/files_trashbin/l10n/ja_JP.php b/apps/files_trashbin/l10n/ja_JP.php
new file mode 100644
index 0000000000..0b4e1954e7
--- /dev/null
+++ b/apps/files_trashbin/l10n/ja_JP.php
@@ -0,0 +1,11 @@
+ "復元操作を実行する",
+"Name" => "名前",
+"Deleted" => "削除済み",
+"1 folder" => "1 フォルダ",
+"{count} folders" => "{count} フォルダ",
+"1 file" => "1 ファイル",
+"{count} files" => "{count} ファイル",
+"Nothing in here. Your trash bin is empty!" => "ここには何もありません。ゴミ箱は空です!",
+"Restore" => "復元"
+);
diff --git a/apps/files_trashbin/l10n/ka_GE.php b/apps/files_trashbin/l10n/ka_GE.php
new file mode 100644
index 0000000000..43dba38f5c
--- /dev/null
+++ b/apps/files_trashbin/l10n/ka_GE.php
@@ -0,0 +1,7 @@
+ "სახელი",
+"1 folder" => "1 საქაღალდე",
+"{count} folders" => "{count} საქაღალდე",
+"1 file" => "1 ფაილი",
+"{count} files" => "{count} ფაილი"
+);
diff --git a/apps/files_trashbin/l10n/ko.php b/apps/files_trashbin/l10n/ko.php
new file mode 100644
index 0000000000..61acd1276a
--- /dev/null
+++ b/apps/files_trashbin/l10n/ko.php
@@ -0,0 +1,8 @@
+ "이름",
+"1 folder" => "폴더 1개",
+"{count} folders" => "폴더 {count}개",
+"1 file" => "파일 1개",
+"{count} files" => "파일 {count}개",
+"Restore" => "복원"
+);
diff --git a/apps/files_trashbin/l10n/ku_IQ.php b/apps/files_trashbin/l10n/ku_IQ.php
new file mode 100644
index 0000000000..cbdbe4644d
--- /dev/null
+++ b/apps/files_trashbin/l10n/ku_IQ.php
@@ -0,0 +1,3 @@
+ "ناو"
+);
diff --git a/apps/files_trashbin/l10n/lb.php b/apps/files_trashbin/l10n/lb.php
new file mode 100644
index 0000000000..d1bd751866
--- /dev/null
+++ b/apps/files_trashbin/l10n/lb.php
@@ -0,0 +1,3 @@
+ "Numm"
+);
diff --git a/apps/files_trashbin/l10n/lt_LT.php b/apps/files_trashbin/l10n/lt_LT.php
new file mode 100644
index 0000000000..4933e97202
--- /dev/null
+++ b/apps/files_trashbin/l10n/lt_LT.php
@@ -0,0 +1,7 @@
+ "Pavadinimas",
+"1 folder" => "1 aplankalas",
+"{count} folders" => "{count} aplankalai",
+"1 file" => "1 failas",
+"{count} files" => "{count} failai"
+);
diff --git a/apps/files_trashbin/l10n/lv.php b/apps/files_trashbin/l10n/lv.php
new file mode 100644
index 0000000000..017a8d285c
--- /dev/null
+++ b/apps/files_trashbin/l10n/lv.php
@@ -0,0 +1,11 @@
+ "veikt atjaunošanu",
+"Name" => "Nosaukums",
+"Deleted" => "Dzēsts",
+"1 folder" => "1 mape",
+"{count} folders" => "{count} mapes",
+"1 file" => "1 datne",
+"{count} files" => "{count} datnes",
+"Nothing in here. Your trash bin is empty!" => "Šeit nekā nav. Jūsu miskaste ir tukša!",
+"Restore" => "Atjaunot"
+);
diff --git a/apps/files_trashbin/l10n/mk.php b/apps/files_trashbin/l10n/mk.php
new file mode 100644
index 0000000000..b983c341e8
--- /dev/null
+++ b/apps/files_trashbin/l10n/mk.php
@@ -0,0 +1,7 @@
+ "Име",
+"1 folder" => "1 папка",
+"{count} folders" => "{count} папки",
+"1 file" => "1 датотека",
+"{count} files" => "{count} датотеки"
+);
diff --git a/apps/files_trashbin/l10n/ms_MY.php b/apps/files_trashbin/l10n/ms_MY.php
new file mode 100644
index 0000000000..73e97b496e
--- /dev/null
+++ b/apps/files_trashbin/l10n/ms_MY.php
@@ -0,0 +1,3 @@
+ "Nama"
+);
diff --git a/apps/files_trashbin/l10n/nb_NO.php b/apps/files_trashbin/l10n/nb_NO.php
new file mode 100644
index 0000000000..49364753d1
--- /dev/null
+++ b/apps/files_trashbin/l10n/nb_NO.php
@@ -0,0 +1,7 @@
+ "Navn",
+"1 folder" => "1 mappe",
+"{count} folders" => "{count} mapper",
+"1 file" => "1 fil",
+"{count} files" => "{count} filer"
+);
diff --git a/apps/files_trashbin/l10n/nl.php b/apps/files_trashbin/l10n/nl.php
new file mode 100644
index 0000000000..4efa6ecf66
--- /dev/null
+++ b/apps/files_trashbin/l10n/nl.php
@@ -0,0 +1,11 @@
+ "uitvoeren restore operatie",
+"Name" => "Naam",
+"Deleted" => "Verwijderd",
+"1 folder" => "1 map",
+"{count} folders" => "{count} mappen",
+"1 file" => "1 bestand",
+"{count} files" => "{count} bestanden",
+"Nothing in here. Your trash bin is empty!" => "Niets te vinden. Uw prullenbak is leeg!",
+"Restore" => "Herstellen"
+);
diff --git a/apps/files_trashbin/l10n/nn_NO.php b/apps/files_trashbin/l10n/nn_NO.php
new file mode 100644
index 0000000000..be60dabdf0
--- /dev/null
+++ b/apps/files_trashbin/l10n/nn_NO.php
@@ -0,0 +1,3 @@
+ "Namn"
+);
diff --git a/apps/files_trashbin/l10n/oc.php b/apps/files_trashbin/l10n/oc.php
new file mode 100644
index 0000000000..2c705193c1
--- /dev/null
+++ b/apps/files_trashbin/l10n/oc.php
@@ -0,0 +1,3 @@
+ "Nom"
+);
diff --git a/apps/files_trashbin/l10n/pl.php b/apps/files_trashbin/l10n/pl.php
new file mode 100644
index 0000000000..d2ada4c946
--- /dev/null
+++ b/apps/files_trashbin/l10n/pl.php
@@ -0,0 +1,8 @@
+ "Nazwa",
+"1 folder" => "1 folder",
+"{count} folders" => "{count} foldery",
+"1 file" => "1 plik",
+"{count} files" => "{count} pliki",
+"Restore" => "Przywróć"
+);
diff --git a/apps/files_trashbin/l10n/pt_BR.php b/apps/files_trashbin/l10n/pt_BR.php
new file mode 100644
index 0000000000..db5737d923
--- /dev/null
+++ b/apps/files_trashbin/l10n/pt_BR.php
@@ -0,0 +1,11 @@
+ "realizar operação de restauração",
+"Name" => "Nome",
+"Deleted" => "Excluído",
+"1 folder" => "1 pasta",
+"{count} folders" => "{count} pastas",
+"1 file" => "1 arquivo",
+"{count} files" => "{count} arquivos",
+"Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!",
+"Restore" => "Restaurar"
+);
diff --git a/apps/files_trashbin/l10n/pt_PT.php b/apps/files_trashbin/l10n/pt_PT.php
new file mode 100644
index 0000000000..79930315b0
--- /dev/null
+++ b/apps/files_trashbin/l10n/pt_PT.php
@@ -0,0 +1,11 @@
+ "Restaurar",
+"Name" => "Nome",
+"Deleted" => "Apagado",
+"1 folder" => "1 pasta",
+"{count} folders" => "{count} pastas",
+"1 file" => "1 ficheiro",
+"{count} files" => "{count} ficheiros",
+"Nothing in here. Your trash bin is empty!" => "Não ha ficheiros. O lixo está vazio",
+"Restore" => "Restaurar"
+);
diff --git a/apps/files_trashbin/l10n/ro.php b/apps/files_trashbin/l10n/ro.php
new file mode 100644
index 0000000000..6ece51e02c
--- /dev/null
+++ b/apps/files_trashbin/l10n/ro.php
@@ -0,0 +1,7 @@
+ "Nume",
+"1 folder" => "1 folder",
+"{count} folders" => "{count} foldare",
+"1 file" => "1 fisier",
+"{count} files" => "{count} fisiere"
+);
diff --git a/apps/files_trashbin/l10n/ru.php b/apps/files_trashbin/l10n/ru.php
new file mode 100644
index 0000000000..23d739a2ff
--- /dev/null
+++ b/apps/files_trashbin/l10n/ru.php
@@ -0,0 +1,7 @@
+ "Имя",
+"1 folder" => "1 папка",
+"{count} folders" => "{count} папок",
+"1 file" => "1 файл",
+"{count} files" => "{count} файлов"
+);
diff --git a/apps/files_trashbin/l10n/ru_RU.php b/apps/files_trashbin/l10n/ru_RU.php
new file mode 100644
index 0000000000..8ef2658cf2
--- /dev/null
+++ b/apps/files_trashbin/l10n/ru_RU.php
@@ -0,0 +1,7 @@
+ "Имя",
+"1 folder" => "1 папка",
+"{count} folders" => "{количество} папок",
+"1 file" => "1 файл",
+"{count} files" => "{количество} файлов"
+);
diff --git a/apps/files_trashbin/l10n/si_LK.php b/apps/files_trashbin/l10n/si_LK.php
new file mode 100644
index 0000000000..cb351afaec
--- /dev/null
+++ b/apps/files_trashbin/l10n/si_LK.php
@@ -0,0 +1,5 @@
+ "නම",
+"1 folder" => "1 ෆොල්ඩරයක්",
+"1 file" => "1 ගොනුවක්"
+);
diff --git a/apps/files_trashbin/l10n/sk_SK.php b/apps/files_trashbin/l10n/sk_SK.php
new file mode 100644
index 0000000000..81d43614d7
--- /dev/null
+++ b/apps/files_trashbin/l10n/sk_SK.php
@@ -0,0 +1,11 @@
+ "vykonať obnovu",
+"Name" => "Meno",
+"Deleted" => "Zmazané",
+"1 folder" => "1 priečinok",
+"{count} folders" => "{count} priečinkov",
+"1 file" => "1 súbor",
+"{count} files" => "{count} súborov",
+"Nothing in here. Your trash bin is empty!" => "Žiadny obsah. Kôš je prázdny!",
+"Restore" => "Obnoviť"
+);
diff --git a/apps/files_trashbin/l10n/sl.php b/apps/files_trashbin/l10n/sl.php
new file mode 100644
index 0000000000..2579f95c86
--- /dev/null
+++ b/apps/files_trashbin/l10n/sl.php
@@ -0,0 +1,7 @@
+ "Ime",
+"1 folder" => "1 mapa",
+"{count} folders" => "{count} map",
+"1 file" => "1 datoteka",
+"{count} files" => "{count} datotek"
+);
diff --git a/apps/files_trashbin/l10n/sr.php b/apps/files_trashbin/l10n/sr.php
new file mode 100644
index 0000000000..36659e7080
--- /dev/null
+++ b/apps/files_trashbin/l10n/sr.php
@@ -0,0 +1,11 @@
+ "врати у претходно стање",
+"Name" => "Име",
+"Deleted" => "Обрисано",
+"1 folder" => "1 фасцикла",
+"{count} folders" => "{count} фасцикле/и",
+"1 file" => "1 датотека",
+"{count} files" => "{count} датотеке/а",
+"Nothing in here. Your trash bin is empty!" => "Овде нема ништа. Корпа за отпатке је празна.",
+"Restore" => "Врати"
+);
diff --git a/apps/files_trashbin/l10n/sr@latin.php b/apps/files_trashbin/l10n/sr@latin.php
new file mode 100644
index 0000000000..52255c7429
--- /dev/null
+++ b/apps/files_trashbin/l10n/sr@latin.php
@@ -0,0 +1,3 @@
+ "Ime"
+);
diff --git a/apps/files_trashbin/l10n/sv.php b/apps/files_trashbin/l10n/sv.php
new file mode 100644
index 0000000000..ca4dba0496
--- /dev/null
+++ b/apps/files_trashbin/l10n/sv.php
@@ -0,0 +1,10 @@
+ "Namn",
+"Deleted" => "Raderad",
+"1 folder" => "1 mapp",
+"{count} folders" => "{count} mappar",
+"1 file" => "1 fil",
+"{count} files" => "{count} filer",
+"Nothing in here. Your trash bin is empty!" => "Ingenting här. Din papperskorg är tom!",
+"Restore" => "Återskapa"
+);
diff --git a/apps/files_trashbin/l10n/ta_LK.php b/apps/files_trashbin/l10n/ta_LK.php
new file mode 100644
index 0000000000..a436e2344a
--- /dev/null
+++ b/apps/files_trashbin/l10n/ta_LK.php
@@ -0,0 +1,7 @@
+ "பெயர்",
+"1 folder" => "1 கோப்புறை",
+"{count} folders" => "{எண்ணிக்கை} கோப்புறைகள்",
+"1 file" => "1 கோப்பு",
+"{count} files" => "{எண்ணிக்கை} கோப்புகள்"
+);
diff --git a/apps/files_trashbin/l10n/th_TH.php b/apps/files_trashbin/l10n/th_TH.php
new file mode 100644
index 0000000000..8a031fb0d7
--- /dev/null
+++ b/apps/files_trashbin/l10n/th_TH.php
@@ -0,0 +1,11 @@
+ "ดำเนินการคืนค่า",
+"Name" => "ชื่อ",
+"Deleted" => "ลบแล้ว",
+"1 folder" => "1 โฟลเดอร์",
+"{count} folders" => "{count} โฟลเดอร์",
+"1 file" => "1 ไฟล์",
+"{count} files" => "{count} ไฟล์",
+"Nothing in here. Your trash bin is empty!" => "ไม่มีอะไรอยู่ในนี้ ถังขยะของคุณยังว่างอยู่",
+"Restore" => "คืนค่า"
+);
diff --git a/apps/files_trashbin/l10n/tr.php b/apps/files_trashbin/l10n/tr.php
new file mode 100644
index 0000000000..5b7064ecea
--- /dev/null
+++ b/apps/files_trashbin/l10n/tr.php
@@ -0,0 +1,7 @@
+ "İsim",
+"1 folder" => "1 dizin",
+"{count} folders" => "{count} dizin",
+"1 file" => "1 dosya",
+"{count} files" => "{count} dosya"
+);
diff --git a/apps/files_trashbin/l10n/uk.php b/apps/files_trashbin/l10n/uk.php
new file mode 100644
index 0000000000..14c6931255
--- /dev/null
+++ b/apps/files_trashbin/l10n/uk.php
@@ -0,0 +1,7 @@
+ "Ім'я",
+"1 folder" => "1 папка",
+"{count} folders" => "{count} папок",
+"1 file" => "1 файл",
+"{count} files" => "{count} файлів"
+);
diff --git a/apps/files_trashbin/l10n/vi.php b/apps/files_trashbin/l10n/vi.php
new file mode 100644
index 0000000000..2c51c69aaf
--- /dev/null
+++ b/apps/files_trashbin/l10n/vi.php
@@ -0,0 +1,7 @@
+ "Tên",
+"1 folder" => "1 thư mục",
+"{count} folders" => "{count} thư mục",
+"1 file" => "1 tập tin",
+"{count} files" => "{count} tập tin"
+);
diff --git a/apps/files_trashbin/l10n/zh_CN.GB2312.php b/apps/files_trashbin/l10n/zh_CN.GB2312.php
new file mode 100644
index 0000000000..2c6a7891e9
--- /dev/null
+++ b/apps/files_trashbin/l10n/zh_CN.GB2312.php
@@ -0,0 +1,7 @@
+ "名称",
+"1 folder" => "1 个文件夹",
+"{count} folders" => "{count} 个文件夹",
+"1 file" => "1 个文件",
+"{count} files" => "{count} 个文件"
+);
diff --git a/apps/files_trashbin/l10n/zh_CN.php b/apps/files_trashbin/l10n/zh_CN.php
new file mode 100644
index 0000000000..0060b1f31d
--- /dev/null
+++ b/apps/files_trashbin/l10n/zh_CN.php
@@ -0,0 +1,7 @@
+ "名称",
+"1 folder" => "1个文件夹",
+"{count} folders" => "{count} 个文件夹",
+"1 file" => "1 个文件",
+"{count} files" => "{count} 个文件"
+);
diff --git a/apps/files_trashbin/l10n/zh_TW.php b/apps/files_trashbin/l10n/zh_TW.php
new file mode 100644
index 0000000000..be61d9b0b6
--- /dev/null
+++ b/apps/files_trashbin/l10n/zh_TW.php
@@ -0,0 +1,7 @@
+ "名稱",
+"1 folder" => "1 個資料夾",
+"{count} folders" => "{count} 個資料夾",
+"1 file" => "1 個檔案",
+"{count} files" => "{count} 個檔案"
+);
diff --git a/apps/files_versions/l10n/fa.php b/apps/files_versions/l10n/fa.php
index 98dd415969..9b618fdd32 100644
--- a/apps/files_versions/l10n/fa.php
+++ b/apps/files_versions/l10n/fa.php
@@ -1,3 +1,4 @@
"انقضای تمامی نسخهها"
+"History" => "تاریخچه",
+"Enable" => "فعال"
);
diff --git a/apps/files_versions/l10n/lv.php b/apps/files_versions/l10n/lv.php
new file mode 100644
index 0000000000..ae2ead12f4
--- /dev/null
+++ b/apps/files_versions/l10n/lv.php
@@ -0,0 +1,5 @@
+ "Vēsture",
+"Files Versioning" => "Datņu versiju izskošana",
+"Enable" => "Aktivēt"
+);
diff --git a/apps/files_versions/l10n/sr.php b/apps/files_versions/l10n/sr.php
new file mode 100644
index 0000000000..0195f84567
--- /dev/null
+++ b/apps/files_versions/l10n/sr.php
@@ -0,0 +1,5 @@
+ "Историја",
+"Files Versioning" => "Прављење верзија датотека",
+"Enable" => "Омогући"
+);
diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php
new file mode 100644
index 0000000000..b7d633a049
--- /dev/null
+++ b/apps/user_ldap/ajax/deleteConfiguration.php
@@ -0,0 +1,35 @@
+.
+ *
+ */
+
+// Check user and app status
+OCP\JSON::checkAdminUser();
+OCP\JSON::checkAppEnabled('user_ldap');
+OCP\JSON::callCheck();
+
+$prefix = $_POST['ldap_serverconfig_chooser'];
+if(\OCA\user_ldap\lib\Helper::deleteServerConfiguration($prefix)){
+ OCP\JSON::success();
+} else {
+ $l=OC_L10N::get('user_ldap');
+ OCP\JSON::error(array('message' => $l->t('Failed to delete the server configuration')));
+}
\ No newline at end of file
diff --git a/apps/user_ldap/ajax/getConfiguration.php b/apps/user_ldap/ajax/getConfiguration.php
new file mode 100644
index 0000000000..dfae68d2dc
--- /dev/null
+++ b/apps/user_ldap/ajax/getConfiguration.php
@@ -0,0 +1,31 @@
+.
+ *
+ */
+
+// Check user and app status
+OCP\JSON::checkAdminUser();
+OCP\JSON::checkAppEnabled('user_ldap');
+OCP\JSON::callCheck();
+
+$prefix = $_POST['ldap_serverconfig_chooser'];
+$connection = new \OCA\user_ldap\lib\Connection($prefix);
+OCP\JSON::success(array('configuration' => $connection->getConfiguration()));
\ No newline at end of file
diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
new file mode 100644
index 0000000000..17e78f8707
--- /dev/null
+++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
@@ -0,0 +1,34 @@
+.
+ *
+ */
+
+// Check user and app status
+OCP\JSON::checkAdminUser();
+OCP\JSON::checkAppEnabled('user_ldap');
+OCP\JSON::callCheck();
+
+$serverConnections = \OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes();
+sort($serverConnections);
+$lk = array_pop($serverConnections);
+$ln = intval(str_replace('s', '', $lk));
+$nk = 's'.str_pad($ln+1, 2, '0', STR_PAD_LEFT);
+OCP\JSON::success(array('configPrefix' => $nk));
\ No newline at end of file
diff --git a/apps/user_ldap/ajax/setConfiguration.php b/apps/user_ldap/ajax/setConfiguration.php
new file mode 100644
index 0000000000..206487c7e0
--- /dev/null
+++ b/apps/user_ldap/ajax/setConfiguration.php
@@ -0,0 +1,33 @@
+.
+ *
+ */
+
+// Check user and app status
+OCP\JSON::checkAdminUser();
+OCP\JSON::checkAppEnabled('user_ldap');
+OCP\JSON::callCheck();
+
+$prefix = $_POST['ldap_serverconfig_chooser'];
+$connection = new \OCA\user_ldap\lib\Connection($prefix);
+$connection->setConfiguration($_POST);
+$connection->saveConfiguration();
+OCP\JSON::success();
\ No newline at end of file
diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php
index a82f7e4c17..f8038e3146 100644
--- a/apps/user_ldap/ajax/testConfiguration.php
+++ b/apps/user_ldap/ajax/testConfiguration.php
@@ -4,7 +4,7 @@
* ownCloud - user_ldap
*
* @author Arthur Schiwon
- * @copyright 2012 Arthur Schiwon blizzz@owncloud.com
+ * @copyright 2012, 2013 Arthur Schiwon blizzz@owncloud.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
@@ -26,14 +26,16 @@ OCP\JSON::checkAdminUser();
OCP\JSON::checkAppEnabled('user_ldap');
OCP\JSON::callCheck();
-$connection = new \OCA\user_ldap\lib\Connection(null);
+$l=OC_L10N::get('user_ldap');
+
+$connection = new \OCA\user_ldap\lib\Connection('', null);
if($connection->setConfiguration($_POST)) {
//Configuration is okay
if($connection->bind()) {
- OCP\JSON::success(array('message' => 'The configuration is valid and the connection could be established!'));
+ OCP\JSON::success(array('message' => $l->t('The configuration is valid and the connection could be established!')));
} else {
- OCP\JSON::error(array('message' => 'The configuration is valid, but the Bind failed. Please check the server settings and credentials.'));
+ OCP\JSON::error(array('message' => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.')));
}
} else {
- OCP\JSON::error(array('message' => 'The configuration is invalid. Please look in the ownCloud log for further details.'));
+ OCP\JSON::error(array('message' => $l->t('The configuration is invalid. Please look in the ownCloud log for further details.')));
}
diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php
index ce3079da0b..dec87684c9 100644
--- a/apps/user_ldap/appinfo/app.php
+++ b/apps/user_ldap/appinfo/app.php
@@ -23,15 +23,23 @@
OCP\App::registerAdmin('user_ldap', 'settings');
-$connector = new OCA\user_ldap\lib\Connection('user_ldap');
-$userBackend = new OCA\user_ldap\USER_LDAP();
-$userBackend->setConnector($connector);
-$groupBackend = new OCA\user_ldap\GROUP_LDAP();
-$groupBackend->setConnector($connector);
+$configPrefixes = OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(true);
+if(count($configPrefixes) == 1) {
+ $connector = new OCA\user_ldap\lib\Connection($configPrefixes[0]);
+ $userBackend = new OCA\user_ldap\USER_LDAP();
+ $userBackend->setConnector($connector);
+ $groupBackend = new OCA\user_ldap\GROUP_LDAP();
+ $groupBackend->setConnector($connector);
+} else {
+ $userBackend = new OCA\user_ldap\User_Proxy($configPrefixes);
+ $groupBackend = new OCA\user_ldap\Group_Proxy($configPrefixes);
+}
-// register user backend
-OC_User::useBackend($userBackend);
-OC_Group::useBackend($groupBackend);
+if(count($configPrefixes) > 0) {
+ // register user backend
+ OC_User::useBackend($userBackend);
+ OC_Group::useBackend($groupBackend);
+}
// add settings page to navigation
$entry = array(
diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php
index 9b54ba18b6..f9681e38e6 100644
--- a/apps/user_ldap/appinfo/update.php
+++ b/apps/user_ldap/appinfo/update.php
@@ -5,7 +5,7 @@
//ATTENTION
//Upgrade from ownCloud 3 (LDAP backend 0.1) to ownCloud 4.5 (LDAP backend 0.3) is not supported!!
//You must do upgrade to ownCloud 4.0 first!
-//The upgrade stuff in the section from 0.1 to 0.2 is just to minimize the bad efffects.
+//The upgrade stuff in the section from 0.1 to 0.2 is just to minimize the bad effects.
//settings
$pw = OCP\Config::getAppValue('user_ldap', 'ldap_password');
@@ -22,12 +22,10 @@ if($state == 'unset') {
OCP\Config::setSystemValue('ldapIgnoreNamingRules', false);
}
-// ### SUPPORTED upgrade path starts here ###
-
//from version 0.2 to 0.3 (0.2.0.x dev version)
$objects = array('user', 'group');
-$connector = new \OCA\user_ldap\lib\Connection('user_ldap');
+$connector = new \OCA\user_ldap\lib\Connection();
$userBE = new \OCA\user_ldap\USER_LDAP();
$userBE->setConnector($connector);
$groupBE = new \OCA\user_ldap\GROUP_LDAP();
@@ -80,3 +78,13 @@ function escapeDN($dn) {
return $dn;
}
+
+
+// SUPPORTED UPGRADE FROM Version 0.3 (ownCloud 4.5) to 0.4 (ownCloud 5)
+
+if(!isset($connector)) {
+ $connector = new \OCA\user_ldap\lib\Connection();
+}
+//it is required, that connections do have ldap_configuration_active setting stored in the database
+$connector->getConfiguration();
+$connector->saveConfiguration();
\ No newline at end of file
diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version
index b1a5f4781d..705e30728e 100644
--- a/apps/user_ldap/appinfo/version
+++ b/apps/user_ldap/appinfo/version
@@ -1 +1 @@
-0.3.0.1
\ No newline at end of file
+0.3.9.0
\ No newline at end of file
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 6343731008..02ceecaea0 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -171,7 +171,6 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface {
return array();
}
- $search = empty($search) ? '*' : '*'.$search.'*';
$groupUsers = array();
$isMemberUid = (strtolower($this->connection->ldapGroupMemberAssocAttr) == 'memberuid');
foreach($members as $member) {
@@ -179,7 +178,7 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface {
//we got uids, need to get their DNs to 'tranlsate' them to usernames
$filter = $this->combineFilterWithAnd(array(
\OCP\Util::mb_str_replace('%uid', $member, $this->connection>ldapLoginFilter, 'UTF-8'),
- $this->connection->ldapUserDisplayName.'='.$search
+ $this->getFilterPartForUserSearch($search)
));
$ldap_users = $this->fetchListOfUsers($filter, 'dn');
if(count($ldap_users) < 1) {
@@ -188,8 +187,8 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface {
$groupUsers[] = $this->dn2username($ldap_users[0]);
} else {
//we got DNs, check if we need to filter by search or we can give back all of them
- if($search != '*') {
- if(!$this->readAttribute($member, $this->connection->ldapUserDisplayName, $this->connection->ldapUserDisplayName.'='.$search)) {
+ if(!empty($search)) {
+ if(!$this->readAttribute($member, $this->connection->ldapUserDisplayName, $this->getFilterPartForUserSearch($search))) {
continue;
}
}
@@ -230,10 +229,9 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface {
if($limit <= 0) {
$limit = null;
}
- $search = empty($search) ? '*' : '*'.$search.'*';
$filter = $this->combineFilterWithAnd(array(
$this->connection->ldapGroupFilter,
- $this->connection->ldapGroupDisplayName.'='.$search
+ $this->getFilterPartForGroupSearch($search)
));
\OCP\Util::writeLog('user_ldap', 'getGroups Filter '.$filter, \OCP\Util::DEBUG);
$ldap_groups = $this->fetchListOfGroups($filter, array($this->connection->ldapGroupDisplayName, 'dn'), $limit, $offset);
diff --git a/apps/user_ldap/group_proxy.php b/apps/user_ldap/group_proxy.php
new file mode 100644
index 0000000000..5aa1aef0e0
--- /dev/null
+++ b/apps/user_ldap/group_proxy.php
@@ -0,0 +1,178 @@
+.
+ *
+ */
+
+namespace OCA\user_ldap;
+
+class Group_Proxy extends lib\Proxy implements \OCP\GroupInterface {
+ private $backends = array();
+ private $refBackend = null;
+
+ /**
+ * @brief Constructor
+ * @param $serverConfigPrefixes array containing the config Prefixes
+ */
+ public function __construct($serverConfigPrefixes) {
+ parent::__construct();
+ foreach($serverConfigPrefixes as $configPrefix) {
+ $this->backends[$configPrefix] = new \OCA\user_ldap\GROUP_LDAP();
+ $connector = $this->getConnector($configPrefix);
+ $this->backends[$configPrefix]->setConnector($connector);
+ if(is_null($this->refBackend)) {
+ $this->refBackend = &$this->backends[$configPrefix];
+ }
+ }
+ }
+
+ /**
+ * @brief Tries the backends one after the other until a positive result is returned from the specified method
+ * @param $gid string, the gid connected to the request
+ * @param $method string, the method of the group backend that shall be called
+ * @param $parameters an array of parameters to be passed
+ * @return mixed, the result of the method or false
+ */
+ protected function walkBackends($gid, $method, $parameters) {
+ $cacheKey = $this->getGroupCacheKey($gid);
+ foreach($this->backends as $configPrefix => $backend) {
+ if($result = call_user_func_array(array($backend, $method), $parameters)) {
+ $this->writeToCache($cacheKey, $configPrefix);
+ return $result;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @brief Asks the backend connected to the server that supposely takes care of the gid from the request.
+ * @param $gid string, the gid connected to the request
+ * @param $method string, the method of the group backend that shall be called
+ * @param $parameters an array of parameters to be passed
+ * @return mixed, the result of the method or false
+ */
+ protected function callOnLastSeenOn($gid, $method, $parameters) {
+ $cacheKey = $this->getGroupCacheKey($gid);;
+ $prefix = $this->getFromCache($cacheKey);
+ //in case the uid has been found in the past, try this stored connection first
+ if(!is_null($prefix)) {
+ if(isset($this->backends[$prefix])) {
+ $result = call_user_func_array(array($this->backends[$prefix], $method), $parameters);
+ if(!$result) {
+ //not found here, reset cache to null
+ $this->writeToCache($cacheKey, null);
+ }
+ return $result;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @brief is user in group?
+ * @param $uid uid of the user
+ * @param $gid gid of the group
+ * @returns true/false
+ *
+ * Checks whether the user is member of a group or not.
+ */
+ public function inGroup($uid, $gid) {
+ return $this->handleRequest($gid, 'inGroup', array($uid, $gid));
+ }
+
+ /**
+ * @brief Get all groups a user belongs to
+ * @param $uid Name of the user
+ * @returns array with group names
+ *
+ * This function fetches all groups a user belongs to. It does not check
+ * if the user exists at all.
+ */
+ public function getUserGroups($uid) {
+ $groups = array();
+
+ foreach($this->backends as $backend) {
+ $backendGroups = $backend->getUserGroups($uid);
+ if (is_array($backendGroups)) {
+ $groups = array_merge($groups, $backendGroups);
+ }
+ }
+
+ return $groups;
+ }
+
+ /**
+ * @brief get a list of all users in a group
+ * @returns array with user ids
+ */
+ public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
+ $users = array();
+
+ foreach($this->backends as $backend) {
+ $backendUsers = $backend->usersInGroup($gid, $search, $limit, $offset);
+ if (is_array($backendUsers)) {
+ $users = array_merge($users, $backendUsers);
+ }
+ }
+
+ return $users;
+ }
+
+ /**
+ * @brief get a list of all groups
+ * @returns array with group names
+ *
+ * Returns a list with all groups
+ */
+ public function getGroups($search = '', $limit = -1, $offset = 0) {
+ $groups = array();
+
+ foreach($this->backends as $backend) {
+ $backendGroups = $backend->getGroups($search, $limit, $offset);
+ if (is_array($backendGroups)) {
+ $groups = array_merge($groups, $backendGroups);
+ }
+ }
+
+ return $groups;
+ }
+
+ /**
+ * check if a group exists
+ * @param string $gid
+ * @return bool
+ */
+ public function groupExists($gid) {
+ return $this->handleRequest($gid, 'groupExists', array($gid));
+ }
+
+ /**
+ * @brief Check if backend implements actions
+ * @param $actions bitwise-or'ed actions
+ * @returns boolean
+ *
+ * Returns the supported actions as int to be
+ * compared with OC_USER_BACKEND_CREATE_USER etc.
+ */
+ public function implementsActions($actions) {
+ //it's the same across all our user backends obviously
+ return $this->refBackend->implementsActions($actions);
+ }
+}
\ No newline at end of file
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js
index 7063eead96..e34849ec88 100644
--- a/apps/user_ldap/js/settings.js
+++ b/apps/user_ldap/js/settings.js
@@ -1,6 +1,114 @@
+var LdapConfiguration = {
+ refreshConfig: function() {
+ if($('#ldap_serverconfig_chooser option').length < 2) {
+ LdapConfiguration.addConfiguration(true);
+ return;
+ }
+ $.post(
+ OC.filePath('user_ldap','ajax','getConfiguration.php'),
+ $('#ldap_serverconfig_chooser').serialize(),
+ function (result) {
+ if(result.status == 'success') {
+ $.each(result.configuration, function(configkey, configvalue) {
+ elementID = '#'+configkey;
+
+ //deal with Checkboxes
+ if($(elementID).is('input[type=checkbox]')) {
+ if(configvalue == 1) {
+ $(elementID).attr('checked', 'checked');
+ } else {
+ $(elementID).removeAttr('checked');
+ }
+ return;
+ }
+
+ //On Textareas, Multi-Line Settings come as array
+ if($(elementID).is('textarea') && $.isArray(configvalue)) {
+ configvalue = configvalue.join("\n");
+ }
+
+ // assign the value
+ $('#'+configkey).val(configvalue);
+ });
+ }
+ }
+ );
+ },
+
+ resetDefaults: function() {
+ $('#ldap').find('input[type=text], input[type=number], input[type=password], textarea, select').each(function() {
+ if($(this).attr('id') == 'ldap_serverconfig_chooser') {
+ return;
+ }
+ $(this).val($(this).attr('data-default'));
+ });
+ $('#ldap').find('input[type=checkbox]').each(function() {
+ if($(this).attr('data-default') == 1) {
+ $(this).attr('checked', 'checked');
+ } else {
+ $(this).removeAttr('checked');
+ }
+ });
+ },
+
+ deleteConfiguration: function() {
+ $.post(
+ OC.filePath('user_ldap','ajax','deleteConfiguration.php'),
+ $('#ldap_serverconfig_chooser').serialize(),
+ function (result) {
+ if(result.status == 'success') {
+ $('#ldap_serverconfig_chooser option:selected').remove();
+ $('#ldap_serverconfig_chooser option:first').select();
+ LdapConfiguration.refreshConfig();
+ } else {
+ OC.dialogs.alert(
+ result.message,
+ t('user_ldap', 'Deletion failed')
+ );
+ }
+ }
+ );
+ },
+
+ addConfiguration: function(doNotAsk) {
+ $.post(
+ OC.filePath('user_ldap','ajax','getNewServerConfigPrefix.php'),
+ function (result) {
+ if(result.status == 'success') {
+ if(doNotAsk) {
+ LdapConfiguration.resetDefaults();
+ } else {
+ OC.dialogs.confirm(
+ t('user_ldap', 'Take over settings from recent server configuration?'),
+ t('user_ldap', 'Keep settings?'),
+ function(keep) {
+ if(!keep) {
+ LdapConfiguration.resetDefaults();
+ }
+ }
+ );
+ }
+ $('#ldap_serverconfig_chooser option:selected').removeAttr('selected');
+ var html = '';
+ $('#ldap_serverconfig_chooser option:last').before(html);
+ } else {
+ OC.dialogs.alert(
+ result.message,
+ t('user_ldap', 'Cannot add server configuration')
+ );
+ }
+ }
+ );
+ }
+}
+
$(document).ready(function() {
+ $('#ldapAdvancedAccordion').accordion({ heightStyle: 'content', animate: 'easeInOutCirc'});
$('#ldapSettings').tabs();
+ $('#ldap_submit').button();
$('#ldap_action_test_connection').button();
+ $('#ldap_action_delete_configuration').button();
+ LdapConfiguration.refreshConfig();
$('#ldap_action_test_connection').click(function(event){
event.preventDefault();
$.post(
@@ -10,15 +118,60 @@ $(document).ready(function() {
if (result.status == 'success') {
OC.dialogs.alert(
result.message,
- 'Connection test succeeded'
+ t('user_ldap', 'Connection test succeeded')
);
} else {
OC.dialogs.alert(
result.message,
- 'Connection test failed'
+ t('user_ldap', 'Connection test failed')
);
}
}
);
});
+
+ $('#ldap_action_delete_configuration').click(function(event) {
+ event.preventDefault();
+ OC.dialogs.confirm(
+ t('user_ldap', 'Do you really want to delete the current Server Configuration?'),
+ t('user_ldap', 'Confirm Deletion'),
+ function(deleteConfiguration) {
+ if(deleteConfiguration) {
+ LdapConfiguration.deleteConfiguration();
+ }
+ }
+ );
+ });
+
+ $('#ldap_submit').click(function(event) {
+ event.preventDefault();
+ $.post(
+ OC.filePath('user_ldap','ajax','setConfiguration.php'),
+ $('#ldap').serialize(),
+ function (result) {
+ bgcolor = $('#ldap_submit').css('background');
+ if (result.status == 'success') {
+ //the dealing with colors is a but ugly, but the jQuery version in use has issues with rgba colors
+ $('#ldap_submit').css('background', '#fff');
+ $('#ldap_submit').effect('highlight', {'color':'#A8FA87'}, 5000, function() {
+ $('#ldap_submit').css('background', bgcolor);
+ });
+ } else {
+ $('#ldap_submit').css('background', '#fff');
+ $('#ldap_submit').effect('highlight', {'color':'#E97'}, 5000, function() {
+ $('#ldap_submit').css('background', bgcolor);
+ });
+ }
+ }
+ );
+ });
+
+ $('#ldap_serverconfig_chooser').change(function(event) {
+ value = $('#ldap_serverconfig_chooser option:selected:first').attr('value');
+ if(value == 'NEW') {
+ LdapConfiguration.addConfiguration(false);
+ } else {
+ LdapConfiguration.refreshConfig();
+ }
+ });
});
\ No newline at end of file
diff --git a/apps/user_ldap/l10n/af_ZA.php b/apps/user_ldap/l10n/af_ZA.php
new file mode 100644
index 0000000000..944495f386
--- /dev/null
+++ b/apps/user_ldap/l10n/af_ZA.php
@@ -0,0 +1,4 @@
+ "Wagwoord",
+"Help" => "Hulp"
+);
diff --git a/apps/user_ldap/l10n/ar.php b/apps/user_ldap/l10n/ar.php
index da1710a0a3..4d7b7ac4ad 100644
--- a/apps/user_ldap/l10n/ar.php
+++ b/apps/user_ldap/l10n/ar.php
@@ -1,4 +1,5 @@
"فشل الحذف",
"Password" => "كلمة المرور",
"Help" => "المساعدة"
);
diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php
index 094b20cad2..6c347eab87 100644
--- a/apps/user_ldap/l10n/bn_BD.php
+++ b/apps/user_ldap/l10n/bn_BD.php
@@ -17,21 +17,21 @@
"Defines the filter to apply, when retrieving groups." => "গোষ্ঠীসমূহ উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "কোন স্থান ধারক ব্যতীত, উদাহরণঃ\"objectClass=posixGroup\"।",
"Port" => "পোর্ট",
-"Base User Tree" => "ভিত্তি ব্যবহারকারি বৃক্ষাকারে",
-"Base Group Tree" => "ভিত্তি গোষ্ঠী বৃক্ষাকারে",
-"Group-Member association" => "গোষ্ঠী-সদস্য সংস্থাপন",
"Use TLS" => "TLS ব্যবহার কর",
"Do not use it for SSL connections, it will fail." => "SSL সংযোগের জন্য এটি ব্যবহার করবেন না, তাহলে ব্যর্থ হবেনই।",
"Case insensitve LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)",
"Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করেই সংযোগ কার্যকরী হয় তবে আপনার ownCloud সার্ভারে LDAP সার্ভারের SSL সনদপত্রটি আমদানি করুন।",
"Not recommended, use for testing only." => "অনুমোদিত নয়, শুধুমাত্র পরীক্ষামূলক ব্যবহারের জন্য।",
+"in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।",
"User Display Name Field" => "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র",
"The LDAP attribute to use to generate the user`s ownCloud name." => "ব্যবহারকারীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।",
+"Base User Tree" => "ভিত্তি ব্যবহারকারি বৃক্ষাকারে",
"Group Display Name Field" => "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "গোষ্ঠীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।",
+"Base Group Tree" => "ভিত্তি গোষ্ঠী বৃক্ষাকারে",
+"Group-Member association" => "গোষ্ঠী-সদস্য সংস্থাপন",
"in bytes" => "বাইটে",
-"in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।",
"Help" => "সহায়িকা"
);
diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php
index 06255c1249..5cf03b6787 100644
--- a/apps/user_ldap/l10n/ca.php
+++ b/apps/user_ldap/l10n/ca.php
@@ -1,6 +1,20 @@
"Ha fallat en eliminar la configuració del servidor",
+"The configuration is valid and the connection could be established!" => "La configuració és vàlida i s'ha pogut establir la comunicació!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuració és vàlida, però ha fallat el Bind. Comproveu les credencials i l'arranjament del servidor.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuració no és vàlida. Per més detalls mireu al registre d'ownCloud.",
+"Deletion failed" => "Eliminació fallida",
+"Take over settings from recent server configuration?" => "Voleu prendre l'arranjament de la configuració actual del servidor?",
+"Keep settings?" => "Voleu mantenir la configuració?",
+"Cannot add server configuration" => "No es pot afegir la configuració del servidor",
+"Connection test succeeded" => "La prova de connexió ha reeixit",
+"Connection test failed" => "La prova de connexió ha fallat",
+"Do you really want to delete the current Server Configuration?" => "Voleu eliminar la configuració actual del servidor?",
+"Confirm Deletion" => "Confirma l'eliminació",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Avís: Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments no desitjats. Demaneu a l'administrador del sistema que en desactivi una.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Avís: El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li.",
+"Server configuration" => "Configuració del servidor",
+"Add Server Configuration" => "Afegeix la configuració del servidor",
"Host" => "Màquina",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://",
"Base DN" => "DN Base",
@@ -19,24 +33,37 @@
"Group Filter" => "Filtre de grup",
"Defines the filter to apply, when retrieving groups." => "Defineix el filtre a aplicar quan es mostren grups.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sense cap paràmetre de substitució, per exemple \"objectClass=grupPosix\".",
+"Connection Settings" => "Arranjaments de connexió",
+"Configuration Active" => "Configuració activa",
+"When unchecked, this configuration will be skipped." => "Si està desmarcat, aquesta configuració s'ometrà.",
"Port" => "Port",
-"Base User Tree" => "Arbre base d'usuaris",
-"One User Base DN per line" => "Una DN Base d'Usuari per línia",
-"Base Group Tree" => "Arbre base de grups",
-"One Group Base DN per line" => "Una DN Base de Grup per línia",
-"Group-Member association" => "Associació membres-grup",
+"Backup (Replica) Host" => "Màquina de còpia de serguretat (rèplica)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Afegiu una màquina de còpia de seguretat opcional. Ha de ser una rèplica del servidor LDAP/AD principal.",
+"Backup (Replica) Port" => "Port de la còpia de seguretat (rèplica)",
+"Disable Main Server" => "Desactiva el servidor principal",
+"When switched on, ownCloud will only connect to the replica server." => "Quan està connectat, ownCloud només es connecta al servidor de la rèplica.",
"Use TLS" => "Usa TLS",
"Do not use it for SSL connections, it will fail." => "No ho useu en connexions SSL, fallarà.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)",
"Turn off SSL certificate validation." => "Desactiva la validació de certificat SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor ownCloud.",
"Not recommended, use for testing only." => "No recomanat, ús només per proves.",
+"in seconds. A change empties the cache." => "en segons. Un canvi buidarà la memòria de cau.",
+"Directory Settings" => "Arranjaments de carpetes",
"User Display Name Field" => "Camp per mostrar el nom d'usuari",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP a usar per generar el nom d'usuari ownCloud.",
+"Base User Tree" => "Arbre base d'usuaris",
+"One User Base DN per line" => "Una DN Base d'Usuari per línia",
+"User Search Attributes" => "Atributs de cerca d'usuari",
+"Optional; one attribute per line" => "Opcional; Un atribut per línia",
"Group Display Name Field" => "Camp per mostrar el nom del grup",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP a usar per generar el nom de grup ownCloud.",
+"Base Group Tree" => "Arbre base de grups",
+"One Group Base DN per line" => "Una DN Base de Grup per línia",
+"Group Search Attributes" => "Atributs de cerca de grup",
+"Group-Member association" => "Associació membres-grup",
+"Special Attributes" => "Atributs especials",
"in bytes" => "en bytes",
-"in seconds. A change empties the cache." => "en segons. Un canvi buidarà la memòria de cau.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD.",
"Help" => "Ajuda"
);
diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php
index 80e27f1e62..0aace1f741 100644
--- a/apps/user_ldap/l10n/cs_CZ.php
+++ b/apps/user_ldap/l10n/cs_CZ.php
@@ -1,6 +1,20 @@
"Selhalo smazání konfigurace 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.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavení je neplatné. Zkontrolujte, prosím, záznam ownCloud pro další podrobnosti.",
+"Deletion failed" => "Mazání selhalo.",
+"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",
+"Connection test succeeded" => "Test spojení byl úspěšný",
+"Connection test failed" => "Test spojení selhal",
+"Do you really want to delete the current Server Configuration?" => "Opravdu si přejete smazat současné nastavení serveru?",
+"Confirm Deletion" => "Potvrdit smazání",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Varování: Aplikace user_ldap a user_webdavauth nejsou kompatibilní. Může nastávat neočekávané chování. Požádejte, prosím, správce systému aby jednu z nich zakázal.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Varování: není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte, prosím, správce systému aby jej nainstaloval.",
+"Server configuration" => "Nastavení serveru",
+"Add Server Configuration" => "Přidat nastavení serveru",
"Host" => "Počítač",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://",
"Base DN" => "Základní DN",
@@ -19,24 +33,37 @@
"Group Filter" => "Filtr skupin",
"Defines the filter to apply, when retrieving groups." => "Určuje použitý filtr, pro získávaní skupin.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez zástupných znaků, např. \"objectClass=posixGroup\".",
+"Connection Settings" => "Nastavení spojení",
+"Configuration Active" => "Nastavení aktivní",
+"When unchecked, this configuration will be skipped." => "Pokud není zaškrtnuto, bude nastavení přeskočeno.",
"Port" => "Port",
-"Base User Tree" => "Základní uživatelský strom",
-"One User Base DN per line" => "Jedna uživatelská základní DN na řádku",
-"Base Group Tree" => "Základní skupinový strom",
-"One Group Base DN per line" => "Jedna skupinová základní DN na řádku",
-"Group-Member association" => "Asociace člena skupiny",
+"Backup (Replica) Host" => "Záložní (kopie) hostitel",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Zadejte volitelného záložního hostitele. Musí to být kopie hlavního serveru LDAP/AD.",
+"Backup (Replica) Port" => "Záložní (kopie) port",
+"Disable Main Server" => "Zakázat hlavní serveru",
+"When switched on, ownCloud will only connect to the replica server." => "Při zapnutí se ownCloud připojí pouze k záložnímu serveru",
"Use TLS" => "Použít TLS",
"Do not use it for SSL connections, it will fail." => "Nepoužívejte pro připojení pomocí SSL, připojení selže.",
"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)",
"Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud",
"Not recommended, use for testing only." => "Není doporučeno, pouze pro testovací účely.",
+"in seconds. A change empties the cache." => "ve vteřinách. Změna vyprázdní vyrovnávací paměť.",
+"Directory Settings" => "Nastavení adresáře",
"User Display Name Field" => "Pole pro zobrazované jméno uživatele",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP použitý k vytvoření jména uživatele ownCloud",
+"Base User Tree" => "Základní uživatelský strom",
+"One User Base DN per line" => "Jedna uživatelská základní DN na řádku",
+"User Search Attributes" => "Atributy vyhledávání uživatelů",
+"Optional; one attribute per line" => "Volitelné, atribut na řádku",
"Group Display Name Field" => "Pole pro zobrazení jména skupiny",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP použitý k vytvoření jména skupiny ownCloud",
+"Base Group Tree" => "Základní skupinový strom",
+"One Group Base DN per line" => "Jedna skupinová základní DN na řádku",
+"Group Search Attributes" => "Atributy vyhledávání skupin",
+"Group-Member association" => "Asociace člena skupiny",
+"Special Attributes" => "Speciální atributy",
"in bytes" => "v bajtech",
-"in seconds. A change empties the cache." => "ve vteřinách. Změna vyprázdní vyrovnávací paměť.",
"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.",
"Help" => "Nápověda"
);
diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php
index b11b56f9b6..dd7fb8a1a0 100644
--- a/apps/user_ldap/l10n/da.php
+++ b/apps/user_ldap/l10n/da.php
@@ -1,4 +1,5 @@
"Fejl ved sletning",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://",
"Base DN" => "Base DN",
@@ -12,14 +13,14 @@
"Group Filter" => "Gruppe Filter",
"Defines the filter to apply, when retrieving groups." => "Definere filteret der bruges når der indlæses grupper.",
"Port" => "Port",
-"Base User Tree" => "Base Bruger Træ",
-"Base Group Tree" => "Base Group Tree",
-"Group-Member association" => "Group-Member association",
"Use TLS" => "Brug TLS",
"Do not use it for SSL connections, it will fail." => "Brug ikke til SSL forbindelser, da den vil fejle.",
"Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering",
"Not recommended, use for testing only." => "Anbefales ikke, brug kun for at teste.",
"User Display Name Field" => "User Display Name Field",
+"Base User Tree" => "Base Bruger Træ",
+"Base Group Tree" => "Base Group Tree",
+"Group-Member association" => "Group-Member association",
"in bytes" => "i bytes",
"Help" => "Hjælp"
);
diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php
index efc8a80f8c..df680465c9 100644
--- a/apps/user_ldap/l10n/de.php
+++ b/apps/user_ldap/l10n/de.php
@@ -1,6 +1,8 @@
"Löschen fehlgeschlagen",
+"Keep settings?" => "Einstellungen beibehalten?",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren.",
-"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.",
+"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://",
"Base DN" => "Basis-DN",
@@ -20,23 +22,23 @@
"Defines the filter to apply, when retrieving groups." => "Definiert den Filter für die Anfrage der Gruppen.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"",
"Port" => "Port",
-"Base User Tree" => "Basis-Benutzerbaum",
-"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile",
-"Base Group Tree" => "Basis-Gruppenbaum",
-"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile",
-"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer",
"Use TLS" => "Nutze TLS",
"Do not use it for SSL connections, it will fail." => "Verwende dies nicht für SSL-Verbindungen, es wird fehlschlagen.",
"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
"Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.",
"Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.",
+"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.",
"User Display Name Field" => "Feld für den Anzeigenamen des Benutzers",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ",
+"Base User Tree" => "Basis-Benutzerbaum",
+"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile",
"Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ",
+"Base Group Tree" => "Basis-Gruppenbaum",
+"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile",
+"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer",
"in bytes" => "in Bytes",
-"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein.",
"Help" => "Hilfe"
);
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index 843609f8b8..1b47cfec2a 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -1,6 +1,20 @@
"Das Löschen der Server-Konfiguration schlug fehl",
+"The configuration is valid and the connection could be established!" => "Die Konfiguration ist valide und eine Verbindung konnte hergestellt werden!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist valide, aber das Herstellen einer Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist nicht valide. Weitere Details können Sie im ownCloud-Log nachlesen.",
+"Deletion failed" => "Löschen fehlgeschlagen",
+"Take over settings from recent server configuration?" => "Sollen die Einstellungen der letzten Server-Konfiguration übernommen werden?",
+"Keep settings?" => "Einstellungen behalten?",
+"Cannot add server configuration" => "Das Hinzufügen der Server-Konfiguration schlug fehl",
+"Connection test succeeded" => "Verbindungs-Test erfolgreich",
+"Connection test failed" => "Verbindungs-Test fehlgeschlagen",
+"Do you really want to delete the current Server Configuration?" => "Möchten Sie wirklich die Server-Konfiguration löschen?",
+"Confirm Deletion" => "Löschung bestätigen",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Warnung: Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Warnung: Da das PHP-Modul für LDAP ist nicht installiert, das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.",
+"Server configuration" => "Server-Konfiguration",
+"Add Server Configuration" => "Server-Konfiguration hinzufügen",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://",
"Base DN" => "Basis-DN",
@@ -19,24 +33,37 @@
"Group Filter" => "Gruppen-Filter",
"Defines the filter to apply, when retrieving groups." => "Definiert den Filter für die Anfrage der Gruppen.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"",
+"Connection Settings" => "Verbindungs-Einstellungen",
+"Configuration Active" => "Konfiguration aktiv",
+"When unchecked, this configuration will be skipped." => "Wenn nicht angehakt, wird diese Konfiguration übersprungen.",
"Port" => "Port",
-"Base User Tree" => "Basis-Benutzerbaum",
-"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile",
-"Base Group Tree" => "Basis-Gruppenbaum",
-"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile",
-"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer",
+"Backup (Replica) Host" => "Back-Up (Replikation) Host",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Optionaler Backup Host. Es muss ein Replikat des eigentlichen LDAP/AD Servers sein.",
+"Backup (Replica) Port" => "Back-Up (Replikation) Port",
+"Disable Main Server" => "Hauptserver deaktivieren",
+"When switched on, ownCloud will only connect to the replica server." => "Wenn eingeschaltet wird sich ownCloud nur mit dem Replilat-Server verbinden.",
"Use TLS" => "Nutze TLS",
"Do not use it for SSL connections, it will fail." => "Verwenden Sie dies nicht für SSL-Verbindungen, es wird fehlschlagen.",
"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
"Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.",
"Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.",
+"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.",
+"Directory Settings" => "Verzeichnis-Einstellungen",
"User Display Name Field" => "Feld für den Anzeigenamen des Benutzers",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ",
+"Base User Tree" => "Basis-Benutzerbaum",
+"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile",
+"User Search Attributes" => "Benutzer-Suche Eigenschaften",
+"Optional; one attribute per line" => "Optional; Ein Attribut pro Zeile",
"Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ",
+"Base Group Tree" => "Basis-Gruppenbaum",
+"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile",
+"Group Search Attributes" => "Gruppen-Suche Eigenschaften",
+"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer",
+"Special Attributes" => "besondere Eigenschaften",
"in bytes" => "in Bytes",
-"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein.",
"Help" => "Hilfe"
);
diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php
index 1f75a687a5..3951c94dfa 100644
--- a/apps/user_ldap/l10n/el.php
+++ b/apps/user_ldap/l10n/el.php
@@ -1,4 +1,5 @@
"Η διαγραφή απέτυχε",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Προσοχή: Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.",
"Host" => "Διακομιστής",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://",
@@ -18,21 +19,21 @@
"Defines the filter to apply, when retrieving groups." => "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση ομάδων.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\".",
"Port" => "Θύρα",
-"Base User Tree" => "Base User Tree",
-"Base Group Tree" => "Base Group Tree",
-"Group-Member association" => "Group-Member association",
"Use TLS" => "Χρήση TLS",
"Do not use it for SSL connections, it will fail." => "Μην χρησιμοποιείτε για συνδέσεις SSL, θα αποτύχει.",
"Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ",
"Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας.",
"Not recommended, use for testing only." => "Δεν προτείνεται, χρήση μόνο για δοκιμές.",
+"in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.",
"User Display Name Field" => "Πεδίο Ονόματος Χρήστη",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud.",
+"Base User Tree" => "Base User Tree",
"Group Display Name Field" => "Group Display Name Field",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος ομάδας του ownCloud.",
+"Base Group Tree" => "Base Group Tree",
+"Group-Member association" => "Group-Member association",
"in bytes" => "σε bytes",
-"in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD.",
"Help" => "Βοήθεια"
);
diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php
index 35f436a0b0..2a2b70603c 100644
--- a/apps/user_ldap/l10n/eo.php
+++ b/apps/user_ldap/l10n/eo.php
@@ -1,4 +1,5 @@
"Forigo malsukcesis",
"Host" => "Gastigo",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://",
"Base DN" => "Bazo-DN",
@@ -15,21 +16,21 @@
"Defines the filter to apply, when retrieving groups." => "Ĝi difinas la filtrilon aplikotan, kiam veniĝas grupoj.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ajna referencilo, ekz.: \"objectClass=posixGroup\".",
"Port" => "Pordo",
-"Base User Tree" => "Baza uzantarbo",
-"Base Group Tree" => "Baza gruparbo",
-"Group-Member association" => "Asocio de grupo kaj membro",
"Use TLS" => "Uzi TLS-on",
"Do not use it for SSL connections, it will fail." => "Ne uzu ĝin por SSL-konektoj, ĝi malsukcesos.",
"Case insensitve LDAP server (Windows)" => "LDAP-servilo blinda je litergrandeco (Vindozo)",
"Turn off SSL certificate validation." => "Malkapabligi validkontrolon de SSL-atestiloj.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la konekto nur funkcias kun ĉi tiu malnepro, enportu la SSL-atestilo de la LDAP-servilo en via ownCloud-servilo.",
"Not recommended, use for testing only." => "Ne rekomendata, uzu ĝin nur por testoj.",
+"in seconds. A change empties the cache." => "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.",
"User Display Name Field" => "Kampo de vidignomo de uzanto",
"The LDAP attribute to use to generate the user`s ownCloud name." => "La atributo de LDAP uzota por generi la ownCloud-an nomon de la uzanto.",
+"Base User Tree" => "Baza uzantarbo",
"Group Display Name Field" => "Kampo de vidignomo de grupo",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "La atributo de LDAP uzota por generi la ownCloud-an nomon de la grupo.",
+"Base Group Tree" => "Baza gruparbo",
+"Group-Member association" => "Asocio de grupo kaj membro",
"in bytes" => "duumoke",
-"in seconds. A change empties the cache." => "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.",
"Help" => "Helpo"
);
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index 48e7b24734..a6d1d9d260 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -1,8 +1,22 @@
"No se pudo borrar la configuración del servidor",
+"The configuration is valid and the connection could be established!" => "La configuración es válida y la conexión puede establecerse!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuración no es válida. Por favor, busque en el log de ownCloud para más detalles.",
+"Deletion failed" => "Falló el borrado",
+"Keep settings?" => "Mantener la configuración?",
+"Cannot add server configuration" => "No se puede añadir la configuración del servidor",
+"Connection test succeeded" => "La prueba de conexión fue exitosa",
+"Connection test failed" => "La prueba de conexión falló",
+"Do you really want to delete the current Server Configuration?" => "¿Realmente desea eliminar la configuración actual del servidor?",
+"Confirm Deletion" => "Confirmar eliminación",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.",
-"Host" => "Servidor",
+"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Advertencia: El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.",
+"Server configuration" => "Configuración del Servidor",
+"Host" => "Máquina",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://",
"Base DN" => "DN base",
+"One Base DN per line" => "Un DN Base por línea",
"You can specify Base DN for users and groups in the Advanced tab" => "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado",
"User DN" => "DN usuario",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.",
@@ -18,21 +32,23 @@
"Defines the filter to apply, when retrieving groups." => "Define el filtro a aplicar, cuando se obtienen grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Con cualquier placeholder, ej: \"objectClass=posixGroup\".",
"Port" => "Puerto",
-"Base User Tree" => "Árbol base de usuario",
-"Base Group Tree" => "Árbol base de grupo",
-"Group-Member association" => "Asociación Grupo-Miembro",
"Use TLS" => "Usar TLS",
"Do not use it for SSL connections, it will fail." => "No usarlo para SSL, habrá error.",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud.",
"Not recommended, use for testing only." => "No recomendado, sólo para pruebas.",
+"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la cache.",
"User Display Name Field" => "Campo de nombre de usuario a mostrar",
"The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.",
+"Base User Tree" => "Árbol base de usuario",
+"One User Base DN per line" => "Un DN Base de Usuario por línea",
"Group Display Name Field" => "Campo de nombre de grupo a mostrar",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud.",
+"Base Group Tree" => "Árbol base de grupo",
+"One Group Base DN per line" => "Un DN Base de Grupo por línea",
+"Group-Member association" => "Asociación Grupo-Miembro",
"in bytes" => "en bytes",
-"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD.",
"Help" => "Ayuda"
);
diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php
index 5d42ea9443..dce2321e6b 100644
--- a/apps/user_ldap/l10n/es_AR.php
+++ b/apps/user_ldap/l10n/es_AR.php
@@ -1,4 +1,5 @@
"Error al borrar",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Advertencia: Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Atención: El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale.",
"Host" => "Servidor",
@@ -20,23 +21,23 @@
"Defines the filter to apply, when retrieving groups." => "Define el filtro a aplicar cuando se obtienen grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sin ninguna plantilla, p. ej.: \"objectClass=posixGroup\".",
"Port" => "Puerto",
-"Base User Tree" => "Árbol base de usuario",
-"One User Base DN per line" => "Una DN base de usuario por línea",
-"Base Group Tree" => "Árbol base de grupo",
-"One Group Base DN per line" => "Una DN base de grupo por línea",
-"Group-Member association" => "Asociación Grupo-Miembro",
"Use TLS" => "Usar TLS",
"Do not use it for SSL connections, it will fail." => "No usarlo para SSL, dará error.",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Desactivar la validación por certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor ownCloud.",
"Not recommended, use for testing only." => "No recomendado, sólo para pruebas.",
+"in seconds. A change empties the cache." => "en segundos. Cambiarlo vacía la cache.",
"User Display Name Field" => "Campo de nombre de usuario a mostrar",
"The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.",
+"Base User Tree" => "Árbol base de usuario",
+"One User Base DN per line" => "Una DN base de usuario por línea",
"Group Display Name Field" => "Campo de nombre de grupo a mostrar",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud.",
+"Base Group Tree" => "Árbol base de grupo",
+"One Group Base DN per line" => "Una DN base de grupo por línea",
+"Group-Member association" => "Asociación Grupo-Miembro",
"in bytes" => "en bytes",
-"in seconds. A change empties the cache." => "en segundos. Cambiarlo vacía la cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especificá un atributo LDAP/AD.",
"Help" => "Ayuda"
);
diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php
index 9752d73c1c..ba03a8a809 100644
--- a/apps/user_ldap/l10n/et_EE.php
+++ b/apps/user_ldap/l10n/et_EE.php
@@ -1,4 +1,5 @@
"Kustutamine ebaõnnestus",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sa ei saa protokolli ära jätta, välja arvatud siis, kui sa nõuad SSL-ühendust. Sel juhul alusta eesliitega ldaps://",
"Base DN" => "Baas DN",
@@ -17,21 +18,21 @@
"Defines the filter to apply, when retrieving groups." => "Määrab gruppe hankides filtri, mida rakendatakse.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilma ühegi kohatäitjata, nt. \"objectClass=posixGroup\".",
"Port" => "Port",
-"Base User Tree" => "Baaskasutaja puu",
-"Base Group Tree" => "Baasgrupi puu",
-"Group-Member association" => "Grupiliikme seotus",
"Use TLS" => "Kasutaja TLS",
"Do not use it for SSL connections, it will fail." => "Ära kasuta seda SSL ühenduse jaoks, see ei toimi.",
"Case insensitve LDAP server (Windows)" => "Mittetõstutundlik LDAP server (Windows)",
"Turn off SSL certificate validation." => "Lülita SSL sertifikaadi kontrollimine välja.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma ownCloud serverisse.",
"Not recommended, use for testing only." => "Pole soovitatav, kasuta ainult testimiseks.",
+"in seconds. A change empties the cache." => "sekundites. Muudatus tühjendab vahemälu.",
"User Display Name Field" => "Kasutaja näidatava nime väli",
"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP omadus, mida kasutatakse kasutaja ownCloudi nime loomiseks.",
+"Base User Tree" => "Baaskasutaja puu",
"Group Display Name Field" => "Grupi näidatava nime väli",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP omadus, mida kasutatakse ownCloudi grupi nime loomiseks.",
+"Base Group Tree" => "Baasgrupi puu",
+"Group-Member association" => "Grupiliikme seotus",
"in bytes" => "baitides",
-"in seconds. A change empties the cache." => "sekundites. Muudatus tühjendab vahemälu.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kasutajanime (vaikeväärtus) kasutamiseks jäta tühjaks. Vastasel juhul määra LDAP/AD omadus.",
"Help" => "Abiinfo"
);
diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php
index e2b50f28ee..2aad2363ce 100644
--- a/apps/user_ldap/l10n/eu.php
+++ b/apps/user_ldap/l10n/eu.php
@@ -1,4 +1,5 @@
"Ezabaketak huts egin du",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Abisua: user_ldap eta user_webdavauth aplikazioak bateraezinak dira. Portaera berezia izan dezakezu. Mesedez eskatu zure sistema kudeatzaileari bietako bat desgaitzeko.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Abisua: PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan.",
"Host" => "Hostalaria",
@@ -20,23 +21,23 @@
"Defines the filter to apply, when retrieving groups." => "Taldeak jasotzen direnean ezarriko den iragazkia zehazten du.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "txantiloirik gabe, adb. \"objectClass=posixGroup\".",
"Port" => "Portua",
-"Base User Tree" => "Oinarrizko Erabiltzaile Zuhaitza",
-"One User Base DN per line" => "Erabiltzaile DN Oinarri bat lerroko",
-"Base Group Tree" => "Oinarrizko Talde Zuhaitza",
-"One Group Base DN per line" => "Talde DN Oinarri bat lerroko",
-"Group-Member association" => "Talde-Kide elkarketak",
"Use TLS" => "Erabili TLS",
"Do not use it for SSL connections, it will fail." => "Ez erabili SSL konexioetan, huts egingo du.",
"Case insensitve LDAP server (Windows)" => "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)",
"Turn off SSL certificate validation." => "Ezgaitu SSL ziurtagirien egiaztapena.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Konexioa aukera hau ezinbestekoa badu, inportatu LDAP zerbitzariaren SSL ziurtagiria zure ownCloud zerbitzarian.",
"Not recommended, use for testing only." => "Ez da aholkatzen, erabili bakarrik frogak egiteko.",
+"in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.",
"User Display Name Field" => "Erabiltzaileen bistaratzeko izena duen eremua",
"The LDAP attribute to use to generate the user`s ownCloud name." => "ownCloud erabiltzailearen izena sortzeko erabiliko den LDAP atributua",
+"Base User Tree" => "Oinarrizko Erabiltzaile Zuhaitza",
+"One User Base DN per line" => "Erabiltzaile DN Oinarri bat lerroko",
"Group Display Name Field" => "Taldeen bistaratzeko izena duen eremua",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua",
+"Base Group Tree" => "Oinarrizko Talde Zuhaitza",
+"One Group Base DN per line" => "Talde DN Oinarri bat lerroko",
+"Group-Member association" => "Talde-Kide elkarketak",
"in bytes" => "bytetan",
-"in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.",
"Help" => "Laguntza"
);
diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php
index 4432422116..e3955d3f32 100644
--- a/apps/user_ldap/l10n/fa.php
+++ b/apps/user_ldap/l10n/fa.php
@@ -1,5 +1,7 @@
"حذف کردن انجام نشد",
"Host" => "میزبانی",
"Password" => "رمز عبور",
+"Port" => "درگاه",
"Help" => "راهنما"
);
diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php
index 24195649a6..4f8fd3f2d1 100644
--- a/apps/user_ldap/l10n/fi_FI.php
+++ b/apps/user_ldap/l10n/fi_FI.php
@@ -1,4 +1,5 @@
"Poisto epäonnistui",
"Host" => "Isäntä",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Voit jättää protokollan määrittämättä, paitsi kun vaadit SSL:ää. Aloita silloin ldaps://",
"Base DN" => "Oletus DN",
@@ -17,21 +18,21 @@
"Defines the filter to apply, when retrieving groups." => "Määrittelee käytettävän suodattimen, kun ryhmiä haetaan. ",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\".",
"Port" => "Portti",
-"Base User Tree" => "Oletuskäyttäjäpuu",
-"Base Group Tree" => "Ryhmien juuri",
-"Group-Member association" => "Ryhmän ja jäsenen assosiaatio (yhteys)",
"Use TLS" => "Käytä TLS:ää",
"Do not use it for SSL connections, it will fail." => "Älä käytä SSL-yhteyttä varten, se epäonnistuu. ",
"Case insensitve LDAP server (Windows)" => "Kirjainkoosta piittamaton LDAP-palvelin (Windows)",
"Turn off SSL certificate validation." => "Poista käytöstä SSL-varmenteen vahvistus",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jos yhteys toimii vain tällä valinnalla, siirrä LDAP-palvelimen SSL-varmenne ownCloud-palvelimellesi.",
"Not recommended, use for testing only." => "Ei suositella, käytä vain testausta varten.",
+"in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.",
"User Display Name Field" => "Käyttäjän näytettävän nimen kenttä",
"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP-attribuutti, jota käytetään käyttäjän ownCloud-käyttäjänimenä ",
+"Base User Tree" => "Oletuskäyttäjäpuu",
"Group Display Name Field" => "Ryhmän \"näytettävä nimi\"-kenttä",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP-attribuutti, jota käytetään luomaan ryhmän ownCloud-nimi",
+"Base Group Tree" => "Ryhmien juuri",
+"Group-Member association" => "Ryhmän ja jäsenen assosiaatio (yhteys)",
"in bytes" => "tavuissa",
-"in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Jätä tyhjäksi käyttäjänimi (oletusasetus). Muutoin anna LDAP/AD-atribuutti.",
"Help" => "Ohje"
);
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index 28ee6346ef..a2879b4fa0 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -1,6 +1,20 @@
"Échec de la suppression de la configuration du serveur",
+"The configuration is valid and the connection could be established!" => "La configuration est valide est la connexion peut être établie !",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuration est valide, mais le lien ne peut être établi. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuration est invalide. Veuillez vous référer aux fichiers de journaux ownCloud pour plus d'information.",
+"Deletion failed" => "La suppression a échoué",
+"Take over settings from recent server configuration?" => "Récupérer les paramètres depuis une configuration récente du serveur ?",
+"Keep settings?" => "Garder ces paramètres ?",
+"Cannot add server configuration" => "Impossible d'ajouter la configuration du serveur.",
+"Connection test succeeded" => "Test de connexion réussi",
+"Connection test failed" => "Le test de connexion a échoué",
+"Do you really want to delete the current Server Configuration?" => "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?",
+"Confirm Deletion" => "Confirmer la suppression",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Avertissement: Les applications user_ldap et user_webdavauth sont incompatibles. Des disfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il désactive l'une d'elles.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Attention : Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe.",
+"Server configuration" => "Configuration du serveur",
+"Add Server Configuration" => "Ajouter une configuration du serveur",
"Host" => "Hôte",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://",
"Base DN" => "DN Racine",
@@ -19,24 +33,34 @@
"Group Filter" => "Filtre de groupes",
"Defines the filter to apply, when retrieving groups." => "Définit le filtre à appliquer lors de la récupération des groupes.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sans élément de substitution, par exemple \"objectClass=posixGroup\".",
+"Configuration Active" => "Configuration active",
+"When unchecked, this configuration will be skipped." => "Lorsque non cochée, la configuration sera ignorée.",
"Port" => "Port",
-"Base User Tree" => "DN racine de l'arbre utilisateurs",
-"One User Base DN per line" => "Un DN racine utilisateur par ligne",
-"Base Group Tree" => "DN racine de l'arbre groupes",
-"One Group Base DN per line" => "Un DN racine groupe par ligne",
-"Group-Member association" => "Association groupe-membre",
+"Backup (Replica) Host" => "Serveur de backup (réplique)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal.",
+"Backup (Replica) Port" => "Port du serveur de backup (réplique)",
+"Disable Main Server" => "Désactiver le serveur principal",
+"When switched on, ownCloud will only connect to the replica server." => "Lorsqu'activé, ownCloud ne se connectera qu'au serveur répliqué.",
"Use TLS" => "Utiliser TLS",
"Do not use it for SSL connections, it will fail." => "Ne pas utiliser pour les connexions SSL, car cela échouera.",
"Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)",
"Turn off SSL certificate validation." => "Désactiver la validation du certificat SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur ownCloud.",
"Not recommended, use for testing only." => "Non recommandé, utilisation pour tests uniquement.",
+"in seconds. A change empties the cache." => "en secondes. Tout changement vide le cache.",
"User Display Name Field" => "Champ \"nom d'affichage\" de l'utilisateur",
"The LDAP attribute to use to generate the user`s ownCloud name." => "L'attribut LDAP utilisé pour générer les noms d'utilisateurs d'ownCloud.",
+"Base User Tree" => "DN racine de l'arbre utilisateurs",
+"One User Base DN per line" => "Un DN racine utilisateur par ligne",
+"User Search Attributes" => "Recherche des attributs utilisateur",
+"Optional; one attribute per line" => "Optionnel, un attribut par ligne",
"Group Display Name Field" => "Champ \"nom d'affichage\" du groupe",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "L'attribut LDAP utilisé pour générer les noms de groupes d'ownCloud.",
+"Base Group Tree" => "DN racine de l'arbre groupes",
+"One Group Base DN per line" => "Un DN racine groupe par ligne",
+"Group Search Attributes" => "Recherche des attributs du groupe",
+"Group-Member association" => "Association groupe-membre",
"in bytes" => "en octets",
-"in seconds. A change empties the cache." => "en secondes. Tout changement vide le cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laisser vide ",
"Help" => "Aide"
);
diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php
index d60521c4a0..a2531a40a8 100644
--- a/apps/user_ldap/l10n/gl.php
+++ b/apps/user_ldap/l10n/gl.php
@@ -1,4 +1,5 @@
"Fallou o borrado",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Aviso: Os aplicativos user_ldap e user_webdavauth son incompatíbeis. Pode acontecer un comportamento estraño. Consulte co administrador do sistema para desactivar un deles.",
"Host" => "Servidor",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://",
@@ -18,21 +19,21 @@
"Defines the filter to apply, when retrieving groups." => "Define o filtro a aplicar cando se recompilan os grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ningunha marca de posición, como p.ex «objectClass=grupoPosix».",
"Port" => "Porto",
-"Base User Tree" => "Base da árbore de usuarios",
-"Base Group Tree" => "Base da árbore de grupo",
-"Group-Member association" => "Asociación de grupos e membros",
"Use TLS" => "Usar TLS",
"Do not use it for SSL connections, it will fail." => "Non empregalo para conexións SSL: fallará.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)",
"Turn off SSL certificate validation." => "Desactiva a validación do certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor ownCloud.",
"Not recommended, use for testing only." => "Non se recomenda. Só para probas.",
+"in seconds. A change empties the cache." => "en segundos. Calquera cambio baleira a caché.",
"User Display Name Field" => "Campo de mostra do nome de usuario",
"The LDAP attribute to use to generate the user`s ownCloud name." => "O atributo LDAP a empregar para xerar o nome de usuario de ownCloud.",
+"Base User Tree" => "Base da árbore de usuarios",
"Group Display Name Field" => "Campo de mostra do nome de grupo",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "O atributo LDAP úsase para xerar os nomes dos grupos de ownCloud.",
+"Base Group Tree" => "Base da árbore de grupo",
+"Group-Member association" => "Asociación de grupos e membros",
"in bytes" => "en bytes",
-"in seconds. A change empties the cache." => "en segundos. Calquera cambio baleira a caché.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixar baleiro para o nome de usuario (predeterminado). Noutro caso, especifique un atributo LDAP/AD.",
"Help" => "Axuda"
);
diff --git a/apps/user_ldap/l10n/he.php b/apps/user_ldap/l10n/he.php
index d33ecaadf0..5c563b7b6f 100644
--- a/apps/user_ldap/l10n/he.php
+++ b/apps/user_ldap/l10n/he.php
@@ -1,4 +1,5 @@
"מחיקה נכשלה",
"Host" => "מארח",
"User DN" => "DN משתמש",
"Password" => "סיסמא",
@@ -6,7 +7,7 @@
"User Login Filter" => "סנן כניסת משתמש",
"User List Filter" => "סנן רשימת משתמשים",
"Group Filter" => "סנן קבוצה",
-"in bytes" => "בבתים",
"in seconds. A change empties the cache." => "בשניות. שינוי מרוקן את המטמון.",
+"in bytes" => "בבתים",
"Help" => "עזרה"
);
diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
index 25ee47786e..64de16fa65 100644
--- a/apps/user_ldap/l10n/hu_HU.php
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -1,4 +1,5 @@
"A törlés nem sikerült",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Figyelem: a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Figyelmeztetés: Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!",
"Host" => "Kiszolgáló",
@@ -20,23 +21,23 @@
"Defines the filter to apply, when retrieving groups." => "Ez a szűrő érvényes a csoportok listázásakor.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "itt ne használjunk változót, pl. \"objectClass=posixGroup\".",
"Port" => "Port",
-"Base User Tree" => "A felhasználói fa gyökere",
-"One User Base DN per line" => "Soronként egy felhasználói fa gyökerét adhatjuk meg",
-"Base Group Tree" => "A csoportfa gyökere",
-"One Group Base DN per line" => "Soronként egy csoportfa gyökerét adhatjuk meg",
-"Group-Member association" => "A csoporttagság attribútuma",
"Use TLS" => "Használjunk TLS-t",
"Do not use it for SSL connections, it will fail." => "Ne használjuk SSL-kapcsolat esetén, mert nem fog működni!",
"Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)",
"Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát az ownCloud kiszolgálóra!",
"Not recommended, use for testing only." => "Nem javasolt, csak tesztelésre érdemes használni.",
+"in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.",
"User Display Name Field" => "A felhasználónév mezője",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Ebből az LDAP attribútumból képződik a felhasználó elnevezése, ami megjelenik az ownCloudban.",
+"Base User Tree" => "A felhasználói fa gyökere",
+"One User Base DN per line" => "Soronként egy felhasználói fa gyökerét adhatjuk meg",
"Group Display Name Field" => "A csoport nevének mezője",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Ebből az LDAP attribútumból képződik a csoport elnevezése, ami megjelenik az ownCloudban.",
+"Base Group Tree" => "A csoportfa gyökere",
+"One Group Base DN per line" => "Soronként egy csoportfa gyökerét adhatjuk meg",
+"Group-Member association" => "A csoporttagság attribútuma",
"in bytes" => "bájtban",
-"in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.",
"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!",
"Help" => "Súgó"
);
diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php
index 56619634ba..33e8cc70e9 100644
--- a/apps/user_ldap/l10n/id.php
+++ b/apps/user_ldap/l10n/id.php
@@ -1,4 +1,5 @@
"penghapusan gagal",
"Host" => "host",
"Password" => "kata kunci",
"User Login Filter" => "gunakan saringan login",
@@ -8,7 +9,7 @@
"Do not use it for SSL connections, it will fail." => "jangan gunakan untuk koneksi SSL, itu akan gagal.",
"Turn off SSL certificate validation." => "matikan validasi sertivikat SSL",
"Not recommended, use for testing only." => "tidak disarankan, gunakan hanya untuk pengujian.",
-"in bytes" => "dalam bytes",
"in seconds. A change empties the cache." => "dalam detik. perubahan mengosongkan cache",
+"in bytes" => "dalam bytes",
"Help" => "bantuan"
);
diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php
index bee30cfe6e..0220aa958c 100644
--- a/apps/user_ldap/l10n/it.php
+++ b/apps/user_ldap/l10n/it.php
@@ -1,6 +1,20 @@
"Eliminazione della configurazione del server non riuscita",
+"The configuration is valid and the connection could be established!" => "La configurazione è valida e la connessione può essere stabilita.",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configurazione è valida, ma il Bind non è riuscito. Controlla le impostazioni del server e le credenziali.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "La configurazione non è valida. Controlla il log di ownCloud per ulteriori dettagli.",
+"Deletion failed" => "Eliminazione non riuscita",
+"Take over settings from recent server configuration?" => "Vuoi recuperare le impostazioni dalla configurazione recente del server?",
+"Keep settings?" => "Vuoi mantenere le impostazioni?",
+"Cannot add server configuration" => "Impossibile aggiungere la configurazione del server",
+"Connection test succeeded" => "Prova di connessione riuscita",
+"Connection test failed" => "Prova di connessione non riuscita",
+"Do you really want to delete the current Server Configuration?" => "Vuoi davvero eliminare la configurazione attuale del server?",
+"Confirm Deletion" => "Conferma l'eliminazione",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Avviso: le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne uno.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Avviso: il modulo PHP LDAP non è installato, il motore non funzionerà. Chiedi al tuo amministratore di sistema di installarlo.",
+"Server configuration" => "Configurazione del server",
+"Add Server Configuration" => "Aggiungi configurazione del server",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://",
"Base DN" => "DN base",
@@ -19,24 +33,37 @@
"Group Filter" => "Filtro per il gruppo",
"Defines the filter to apply, when retrieving groups." => "Specifica quale filtro utilizzare durante il recupero dei gruppi.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "senza nessun segnaposto, per esempio \"objectClass=posixGroup\".",
+"Connection Settings" => "Impostazioni di connessione",
+"Configuration Active" => "Configurazione attiva",
+"When unchecked, this configuration will be skipped." => "Se deselezionata, questa configurazione sarà saltata.",
"Port" => "Porta",
-"Base User Tree" => "Struttura base dell'utente",
-"One User Base DN per line" => "Un DN base utente per riga",
-"Base Group Tree" => "Struttura base del gruppo",
-"One Group Base DN per line" => "Un DN base gruppo per riga",
-"Group-Member association" => "Associazione gruppo-utente ",
+"Backup (Replica) Host" => "Host di backup (Replica)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Fornisci un host di backup opzionale. Deve essere una replica del server AD/LDAP principale.",
+"Backup (Replica) Port" => "Porta di backup (Replica)",
+"Disable Main Server" => "Disabilita server principale",
+"When switched on, ownCloud will only connect to the replica server." => "Se abilitata, ownCloud si collegherà solo al server di replica.",
"Use TLS" => "Usa TLS",
"Do not use it for SSL connections, it will fail." => "Non utilizzare per le connessioni SSL, fallirà.",
"Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)",
"Turn off SSL certificate validation." => "Disattiva il controllo del certificato SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la connessione funziona esclusivamente con questa opzione, importa il certificato SSL del server LDAP nel tuo server ownCloud.",
"Not recommended, use for testing only." => "Non consigliato, utilizzare solo per test.",
+"in seconds. A change empties the cache." => "in secondi. Il cambio svuota la cache.",
+"Directory Settings" => "Impostazioni delle cartelle",
"User Display Name Field" => "Campo per la visualizzazione del nome utente",
"The LDAP attribute to use to generate the user`s ownCloud name." => "L'attributo LDAP da usare per generare il nome dell'utente ownCloud.",
+"Base User Tree" => "Struttura base dell'utente",
+"One User Base DN per line" => "Un DN base utente per riga",
+"User Search Attributes" => "Attributi di ricerca utente",
+"Optional; one attribute per line" => "Opzionale; un attributo per riga",
"Group Display Name Field" => "Campo per la visualizzazione del nome del gruppo",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "L'attributo LDAP da usare per generare il nome del gruppo ownCloud.",
+"Base Group Tree" => "Struttura base del gruppo",
+"One Group Base DN per line" => "Un DN base gruppo per riga",
+"Group Search Attributes" => "Attributi di ricerca gruppo",
+"Group-Member association" => "Associazione gruppo-utente ",
+"Special Attributes" => "Attributi speciali",
"in bytes" => "in byte",
-"in seconds. A change empties the cache." => "in secondi. Il cambio svuota la cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lascia vuoto per il nome utente (predefinito). Altrimenti, specifica un attributo LDAP/AD.",
"Help" => "Aiuto"
);
diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php
index 1c93db7ba0..7706357cbf 100644
--- a/apps/user_ldap/l10n/ja_JP.php
+++ b/apps/user_ldap/l10n/ja_JP.php
@@ -1,6 +1,20 @@
"サーバ設定の削除に失敗しました",
+"The configuration is valid and the connection could be established!" => "設定は有効であり、接続を確立しました!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "設定は有効ですが、接続に失敗しました。サーバ設定と資格情報を確認して下さい。",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "設定は無効です。詳細は ownCloud のログを見て下さい。",
+"Deletion failed" => "削除に失敗しました",
+"Take over settings from recent server configuration?" => "最近のサーバ設定から設定を引き継ぎますか?",
+"Keep settings?" => "設定を保持しますか?",
+"Cannot add server configuration" => "サーバ設定を追加できません",
+"Connection test succeeded" => "接続テストに成功しました",
+"Connection test failed" => "接続テストに失敗しました",
+"Do you really want to delete the current Server Configuration?" => "現在のサーバ設定を本当に削除してもよろしいですか?",
+"Confirm Deletion" => "削除の確認",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "警告: user_ldap と user_webdavauth のアプリには互換性がありません。予期せぬ動作をする可能姓があります。システム管理者にどちらかを無効にするよう問い合わせてください。",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "警告: PHP LDAP モジュールがインストールされていません。バックエンドが正しく動作しません。システム管理者にインストールするよう問い合わせてください。",
+"Server configuration" => "サーバ設定",
+"Add Server Configuration" => "サーバ設定を追加",
"Host" => "ホスト",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。",
"Base DN" => "ベースDN",
@@ -19,24 +33,37 @@
"Group Filter" => "グループフィルタ",
"Defines the filter to apply, when retrieving groups." => "グループを取得するときに適用するフィルターを定義する。",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "プレースホルダーを利用しないでください。例 \"objectClass=posixGroup\"",
+"Connection Settings" => "接続設定",
+"Configuration Active" => "設定はアクティブです",
+"When unchecked, this configuration will be skipped." => "チェックを外すと、この設定はスキップされます。",
"Port" => "ポート",
-"Base User Tree" => "ベースユーザツリー",
-"One User Base DN per line" => "1行に1つのユーザベースDN",
-"Base Group Tree" => "ベースグループツリー",
-"One Group Base DN per line" => "1行に1つのグループベースDN",
-"Group-Member association" => "グループとメンバーの関連付け",
+"Backup (Replica) Host" => "バックアップ(レプリカ)ホスト",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "バックアップホストをオプションで指定することができます。メインのLDAP/ADサーバのレプリカである必要があります。",
+"Backup (Replica) Port" => "バックアップ(レプリカ)ポート",
+"Disable Main Server" => "メインサーバを無効にする",
+"When switched on, ownCloud will only connect to the replica server." => "有効にすると、ownCloudはレプリカサーバにのみ接続します。",
"Use TLS" => "TLSを利用",
"Do not use it for SSL connections, it will fail." => "SSL接続に利用しないでください、失敗します。",
"Case insensitve LDAP server (Windows)" => "大文字/小文字を区別しないLDAPサーバ(Windows)",
"Turn off SSL certificate validation." => "SSL証明書の確認を無効にする。",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書をownCloudサーバにインポートしてください。",
"Not recommended, use for testing only." => "推奨しません、テスト目的でのみ利用してください。",
+"in seconds. A change empties the cache." => "秒。変更後にキャッシュがクリアされます。",
+"Directory Settings" => "ディレクトリ設定",
"User Display Name Field" => "ユーザ表示名のフィールド",
"The LDAP attribute to use to generate the user`s ownCloud name." => "ユーザのownCloud名の生成に利用するLDAP属性。",
+"Base User Tree" => "ベースユーザツリー",
+"One User Base DN per line" => "1行に1つのユーザベースDN",
+"User Search Attributes" => "ユーザ検索属性",
+"Optional; one attribute per line" => "オプション:1行に1属性",
"Group Display Name Field" => "グループ表示名のフィールド",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "グループのownCloud名の生成に利用するLDAP属性。",
+"Base Group Tree" => "ベースグループツリー",
+"One Group Base DN per line" => "1行に1つのグループベースDN",
+"Group Search Attributes" => "グループ検索属性",
+"Group-Member association" => "グループとメンバーの関連付け",
+"Special Attributes" => "特殊属性",
"in bytes" => "バイト",
-"in seconds. A change empties the cache." => "秒。変更後にキャッシュがクリアされます。",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。",
"Help" => "ヘルプ"
);
diff --git a/apps/user_ldap/l10n/ka_GE.php b/apps/user_ldap/l10n/ka_GE.php
index 630d92b73a..b31767fe93 100644
--- a/apps/user_ldap/l10n/ka_GE.php
+++ b/apps/user_ldap/l10n/ka_GE.php
@@ -1,3 +1,4 @@
"წაშლის ველი",
"Help" => "დახმარება"
);
diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php
index 78745a0e01..9ff8ff99d0 100644
--- a/apps/user_ldap/l10n/ko.php
+++ b/apps/user_ldap/l10n/ko.php
@@ -1,4 +1,5 @@
"삭제 실패",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "경고: user_ldap 앱과 user_webdavauth 앱은 호환되지 않습니다. 오동작을 일으킬 수 있으므로, 시스템 관리자에게 요청하여 둘 중 하나만 사용하도록 하십시오.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "경고: PHP LDAP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"Host" => "호스트",
@@ -20,23 +21,23 @@
"Defines the filter to apply, when retrieving groups." => "그룹을 검색할 때 적용할 필터를 정의합니다.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=posixGroup\"",
"Port" => "포트",
-"Base User Tree" => "기본 사용자 트리",
-"One User Base DN per line" => "사용자 DN을 한 줄에 하나씩 입력하십시오",
-"Base Group Tree" => "기본 그룹 트리",
-"One Group Base DN per line" => "그룹 기본 DN을 한 줄에 하나씩 입력하십시오",
-"Group-Member association" => "그룹-회원 연결",
"Use TLS" => "TLS 사용",
"Do not use it for SSL connections, it will fail." => "SSL 연결 시 사용하는 경우 연결되지 않습니다.",
"Case insensitve LDAP server (Windows)" => "서버에서 대소문자를 구분하지 않음 (Windows)",
"Turn off SSL certificate validation." => "SSL 인증서 유효성 검사를 해제합니다.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "이 옵션을 사용해야 연결할 수 있는 경우에는 LDAP 서버의 SSL 인증서를 ownCloud로 가져올 수 있습니다.",
"Not recommended, use for testing only." => "추천하지 않음, 테스트로만 사용하십시오.",
+"in seconds. A change empties the cache." => "초. 항목 변경 시 캐시가 갱신됩니다.",
"User Display Name Field" => "사용자의 표시 이름 필드",
"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP 속성은 사용자의 ownCloud 이름을 생성하기 위해 사용합니다.",
+"Base User Tree" => "기본 사용자 트리",
+"One User Base DN per line" => "사용자 DN을 한 줄에 하나씩 입력하십시오",
"Group Display Name Field" => "그룹의 표시 이름 필드",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP 속성은 그룹의 ownCloud 이름을 생성하기 위해 사용합니다.",
+"Base Group Tree" => "기본 그룹 트리",
+"One Group Base DN per line" => "그룹 기본 DN을 한 줄에 하나씩 입력하십시오",
+"Group-Member association" => "그룹-회원 연결",
"in bytes" => "바이트",
-"in seconds. A change empties the cache." => "초. 항목 변경 시 캐시가 갱신됩니다.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.",
"Help" => "도움말"
);
diff --git a/apps/user_ldap/l10n/lb.php b/apps/user_ldap/l10n/lb.php
index 6d70f682dd..39ed627ce2 100644
--- a/apps/user_ldap/l10n/lb.php
+++ b/apps/user_ldap/l10n/lb.php
@@ -1,4 +1,5 @@
"Konnt net läschen",
"Password" => "Passwuert",
"Help" => "Hëllef"
);
diff --git a/apps/user_ldap/l10n/lt_LT.php b/apps/user_ldap/l10n/lt_LT.php
index 809ed571bd..aa21dd2d3c 100644
--- a/apps/user_ldap/l10n/lt_LT.php
+++ b/apps/user_ldap/l10n/lt_LT.php
@@ -1,4 +1,5 @@
"Ištrinti nepavyko",
"Password" => "Slaptažodis",
"Group Filter" => "Grupės filtras",
"Port" => "Prievadas",
diff --git a/apps/user_ldap/l10n/lv.php b/apps/user_ldap/l10n/lv.php
index 52353472e4..48cee737c7 100644
--- a/apps/user_ldap/l10n/lv.php
+++ b/apps/user_ldap/l10n/lv.php
@@ -1,3 +1,69 @@
"Neizdevās izdzēst servera konfigurāciju",
+"The configuration is valid and the connection could be established!" => "Konfigurācija ir derīga un varēja izveidot savienojumu!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurācija ir derīga, bet sasaiste neizdevās. Lūdzu, pārbaudiet servera iestatījumus un akreditācijas datus.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurācija ir nederīga. Lūdzu, apskatiet ownCloud žurnālu, lai uzzinātu vairāk.",
+"Deletion failed" => "Neizdevās izdzēst",
+"Take over settings from recent server configuration?" => "Paņemt iestatījumus no nesenas servera konfigurācijas?",
+"Keep settings?" => "Paturēt iestatījumus?",
+"Cannot add server configuration" => "Nevar pievienot servera konfigurāciju",
+"Connection test succeeded" => "Savienojuma tests ir veiksmīgs",
+"Connection test failed" => "Savienojuma tests cieta neveiksmi",
+"Do you really want to delete the current Server Configuration?" => "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?",
+"Confirm Deletion" => "Apstiprināt dzēšanu",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Brīdinājums: lietotnes user_ldap un user_webdavauth ir nesavietojamas. Tās var izraisīt negaidītu uzvedību. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.",
+"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Brīdinājums: PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.",
+"Server configuration" => "Servera konfigurācija",
+"Add Server Configuration" => "Pievienot servera konfigurāciju",
+"Host" => "Resursdators",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Var neiekļaut protokolu, izņemot, ja vajag SSL. Tad sākums ir ldaps://",
+"Base DN" => "Bāzes DN",
+"One Base DN per line" => "Viena bāzes DN rindā",
+"You can specify Base DN for users and groups in the Advanced tab" => "Lietotājiem un grupām bāzes DN var norādīt cilnē “Paplašināti”",
+"User DN" => "Lietotāja DN",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
+"Password" => "Parole",
+"For anonymous access, leave DN and Password empty." => "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
+"User Login Filter" => "Lietotāja ierakstīšanās filtrs",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Definē filtru, ko izmantot, kad mēģina ierakstīties. %%uid ierakstīšanās darbībā aizstāj lietotājvārdu.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "lieto %%uid vietturi, piemēram, \"uid=%%uid\"",
+"User List Filter" => "Lietotāju saraksta filtrs",
+"Defines the filter to apply, when retrieving users." => "Definē filtru, ko izmantot, kad saņem lietotāju sarakstu.",
+"without any placeholder, e.g. \"objectClass=person\"." => "bez jebkādiem vietturiem, piemēram, \"objectClass=person\".",
+"Group Filter" => "Grupu filtrs",
+"Defines the filter to apply, when retrieving groups." => "Definē filtru, ko izmantot, kad saņem grupu sarakstu.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez jebkādiem vietturiem, piemēram, \"objectClass=posixGroup\".",
+"Connection Settings" => "Savienojuma iestatījumi",
+"Configuration Active" => "Konfigurācija ir aktīva",
+"When unchecked, this configuration will be skipped." => "Ja nav atzīmēts, šī konfigurācija tiks izlaista.",
+"Port" => "Ports",
+"Backup (Replica) Host" => "Rezerves (kopija) serveris",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.",
+"Backup (Replica) Port" => "Rezerves (kopijas) ports",
+"Disable Main Server" => "Deaktivēt galveno serveri",
+"When switched on, ownCloud will only connect to the replica server." => "Kad ieslēgts, ownCloud savienosies tikai ar kopijas serveri.",
+"Use TLS" => "Lietot TLS",
+"Do not use it for SSL connections, it will fail." => "Neizmanto to SSL savienojumiem, tas neizdosies.",
+"Case insensitve LDAP server (Windows)" => "Reģistrnejutīgs LDAP serveris (Windows)",
+"Turn off SSL certificate validation." => "Izslēgt SSL sertifikātu validēšanu.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ja savienojums darbojas ar šo opciju, importē LDAP serveru SSL sertifikātu savā ownCloud serverī.",
+"Not recommended, use for testing only." => "Nav ieteicams, izmanto tikai testēšanai!",
+"in seconds. A change empties the cache." => "sekundēs. Izmaiņas iztukšos kešatmiņu.",
+"Directory Settings" => "Direktorijas iestatījumi",
+"User Display Name Field" => "Lietotāja redzamā vārda lauks",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP atribūts, ko izmantot lietotāja ownCloud vārda veidošanai.",
+"Base User Tree" => "Bāzes lietotāju koks",
+"One User Base DN per line" => "Viena lietotāju bāzes DN rindā",
+"User Search Attributes" => "Lietotāju meklēšanas atribūts",
+"Optional; one attribute per line" => "Neobligāti; viens atribūts rindā",
+"Group Display Name Field" => "Grupas redzamā nosaukuma lauks",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP atribūts, ko izmantot grupas ownCloud nosaukuma veidošanai.",
+"Base Group Tree" => "Bāzes grupu koks",
+"One Group Base DN per line" => "Viena grupu bāzes DN rindā",
+"Group Search Attributes" => "Grupu meklēšanas atribūts",
+"Group-Member association" => "Grupu piederības asociācija",
+"Special Attributes" => "Īpašie atribūti",
+"in bytes" => "baitos",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Atstāt tukšu lietotāja vārdam (noklusējuma). Citādi, norādi LDAP/AD atribūtu.",
"Help" => "Palīdzība"
);
diff --git a/apps/user_ldap/l10n/mk.php b/apps/user_ldap/l10n/mk.php
index 4c231b516d..7d34ff4949 100644
--- a/apps/user_ldap/l10n/mk.php
+++ b/apps/user_ldap/l10n/mk.php
@@ -1,4 +1,5 @@
"Бришењето е неуспешно",
"Host" => "Домаќин",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://",
"Password" => "Лозинка",
diff --git a/apps/user_ldap/l10n/ms_MY.php b/apps/user_ldap/l10n/ms_MY.php
index 077a5390cf..17a6cbe2cb 100644
--- a/apps/user_ldap/l10n/ms_MY.php
+++ b/apps/user_ldap/l10n/ms_MY.php
@@ -1,3 +1,4 @@
"Pemadaman gagal",
"Help" => "Bantuan"
);
diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php
index a5f4657d04..295166b0a5 100644
--- a/apps/user_ldap/l10n/nb_NO.php
+++ b/apps/user_ldap/l10n/nb_NO.php
@@ -1,11 +1,12 @@
"Sletting feilet",
"Password" => "Passord",
"Group Filter" => "Gruppefilter",
"Port" => "Port",
"Use TLS" => "Bruk TLS",
"Do not use it for SSL connections, it will fail." => "Ikke bruk for SSL tilkoblinger, dette vil ikke fungere.",
"Not recommended, use for testing only." => "Ikke anbefalt, bruk kun for testing",
-"in bytes" => "i bytes",
"in seconds. A change empties the cache." => "i sekunder. En endring tømmer bufferen.",
+"in bytes" => "i bytes",
"Help" => "Hjelp"
);
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index 27c4407360..cc5e85fc30 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -1,6 +1,19 @@
"Verwijderen serverconfiguratie mislukt",
+"The configuration is valid and the connection could be established!" => "De configuratie is geldig en de verbinding is geslaagd!",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "De configuratie is ongeldig. Controleer de ownCloud log voor meer details.",
+"Deletion failed" => "Verwijderen mislukt",
+"Take over settings from recent server configuration?" => "Overnemen instellingen van de recente serverconfiguratie?",
+"Keep settings?" => "Instellingen bewaren?",
+"Cannot add server configuration" => "Kon de serverconfiguratie niet toevoegen",
+"Connection test succeeded" => "Verbindingstest geslaagd",
+"Connection test failed" => "Verbindingstest mislukt",
+"Do you really want to delete the current Server Configuration?" => "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?",
+"Confirm Deletion" => "Bevestig verwijderen",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Waarschuwing: De Apps user_ldap en user_webdavauth zijn incompatible. U kunt onverwacht gedrag ervaren. Vraag uw beheerder om een van beide apps de deactiveren.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Waarschuwing: De PHP LDAP module is niet geïnstalleerd, het backend zal niet werken. Vraag uw systeembeheerder om de module te installeren.",
+"Server configuration" => "Serverconfiguratie",
+"Add Server Configuration" => "Toevoegen serverconfiguratie",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://",
"Base DN" => "Base DN",
@@ -19,24 +32,30 @@
"Group Filter" => "Groep Filter",
"Defines the filter to apply, when retrieving groups." => "Definiëerd de toe te passen filter voor het ophalen van groepen.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "zonder een placeholder, bijv. \"objectClass=posixGroup\"",
+"Configuration Active" => "Configuratie actief",
"Port" => "Poort",
-"Base User Tree" => "Basis Gebruikers Structuur",
-"One User Base DN per line" => "Een User Base DN per regel",
-"Base Group Tree" => "Basis Groupen Structuur",
-"One Group Base DN per line" => "Een Group Base DN per regel",
-"Group-Member association" => "Groepslid associatie",
+"Backup (Replica) Host" => "Backup (Replica) Host",
+"Backup (Replica) Port" => "Backup (Replica) Poort",
+"Disable Main Server" => "Deactiveren hoofdserver",
+"When switched on, ownCloud will only connect to the replica server." => "Wanneer ingeschakeld, zal ownCloud allen verbinden met de replicaserver.",
"Use TLS" => "Gebruik TLS",
"Do not use it for SSL connections, it will fail." => "Gebruik niet voor SSL connecties, deze mislukken.",
"Case insensitve LDAP server (Windows)" => "Niet-hoofdlettergevoelige LDAP server (Windows)",
"Turn off SSL certificate validation." => "Schakel SSL certificaat validatie uit.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Als de connectie alleen werkt met deze optie, importeer dan het LDAP server SSL certificaat naar je ownCloud server.",
"Not recommended, use for testing only." => "Niet aangeraden, gebruik alleen voor test doeleinden.",
+"in seconds. A change empties the cache." => "in seconden. Een verandering maakt de cache leeg.",
"User Display Name Field" => "Gebruikers Schermnaam Veld",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de gebruikers.",
+"Base User Tree" => "Basis Gebruikers Structuur",
+"One User Base DN per line" => "Een User Base DN per regel",
+"Optional; one attribute per line" => "Optioneel; één attribuut per regel",
"Group Display Name Field" => "Groep Schermnaam Veld",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de groepen.",
+"Base Group Tree" => "Basis Groupen Structuur",
+"One Group Base DN per line" => "Een Group Base DN per regel",
+"Group-Member association" => "Groepslid associatie",
"in bytes" => "in bytes",
-"in seconds. A change empties the cache." => "in seconden. Een verandering maakt de cache leeg.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut.",
"Help" => "Help"
);
diff --git a/apps/user_ldap/l10n/oc.php b/apps/user_ldap/l10n/oc.php
index 0bf27d74f2..a128638172 100644
--- a/apps/user_ldap/l10n/oc.php
+++ b/apps/user_ldap/l10n/oc.php
@@ -1,3 +1,4 @@
"Fracàs d'escafatge",
"Help" => "Ajuda"
);
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index 55110b8a83..83a8d1615a 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -1,4 +1,5 @@
"Skasowanie nie powiodło się",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Ostrzeżenie: Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://",
@@ -18,21 +19,21 @@
"Defines the filter to apply, when retrieving groups." => "Definiuje filtry do zastosowania, podczas pobierania grup.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez żadnych symboli zastępczych np. \"objectClass=posixGroup\".",
"Port" => "Port",
-"Base User Tree" => "Drzewo bazy użytkowników",
-"Base Group Tree" => "Drzewo bazy grup",
-"Group-Member association" => "Członek grupy stowarzyszenia",
"Use TLS" => "Użyj TLS",
"Do not use it for SSL connections, it will fail." => "Nie używaj SSL dla połączeń, jeśli się nie powiedzie.",
"Case insensitve LDAP server (Windows)" => "Wielkość liter serwera LDAP (Windows)",
"Turn off SSL certificate validation." => "Wyłączyć sprawdzanie poprawności certyfikatu SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP w serwerze ownCloud.",
"Not recommended, use for testing only." => "Niezalecane, użyj tylko testowo.",
+"in seconds. A change empties the cache." => "w sekundach. Zmiana opróżnia pamięć podręczną.",
"User Display Name Field" => "Pole wyświetlanej nazwy użytkownika",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atrybut LDAP służy do generowania nazwy użytkownika ownCloud.",
+"Base User Tree" => "Drzewo bazy użytkowników",
"Group Display Name Field" => "Pole wyświetlanej nazwy grupy",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atrybut LDAP służy do generowania nazwy grup ownCloud.",
+"Base Group Tree" => "Drzewo bazy grup",
+"Group-Member association" => "Członek grupy stowarzyszenia",
"in bytes" => "w bajtach",
-"in seconds. A change empties the cache." => "w sekundach. Zmiana opróżnia pamięć podręczną.",
"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.",
"Help" => "Pomoc"
);
diff --git a/apps/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php
index 18eed6d014..79e56eeb65 100644
--- a/apps/user_ldap/l10n/pt_BR.php
+++ b/apps/user_ldap/l10n/pt_BR.php
@@ -1,4 +1,5 @@
"Remoção falhou",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://",
"Base DN" => "DN Base",
@@ -17,21 +18,21 @@
"Defines the filter to apply, when retrieving groups." => "Define o filtro a aplicar ao obter grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sem nenhum espaço reservado, ex. \"objectClass=posixGroup\"",
"Port" => "Porta",
-"Base User Tree" => "Árvore de Usuário Base",
-"Base Group Tree" => "Árvore de Grupo Base",
-"Group-Member association" => "Associação Grupo-Membro",
"Use TLS" => "Usar TLS",
"Do not use it for SSL connections, it will fail." => "Não use-o para conexões SSL, pois falhará.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP sensível à caixa alta (Windows)",
"Turn off SSL certificate validation." => "Desligar validação de certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexão só funciona com essa opção, importe o certificado SSL do servidor LDAP no seu servidor ownCloud.",
"Not recommended, use for testing only." => "Não recomendado, use somente para testes.",
+"in seconds. A change empties the cache." => "em segundos. Uma mudança esvaziará o cache.",
"User Display Name Field" => "Campo Nome de Exibição de Usuário",
"The LDAP attribute to use to generate the user`s ownCloud name." => "O atributo LDAP para usar para gerar nome ownCloud do usuário.",
+"Base User Tree" => "Árvore de Usuário Base",
"Group Display Name Field" => "Campo Nome de Exibição de Grupo",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "O atributo LDAP para usar para gerar nome ownCloud do grupo.",
+"Base Group Tree" => "Árvore de Grupo Base",
+"Group-Member association" => "Associação Grupo-Membro",
"in bytes" => "em bytes",
-"in seconds. A change empties the cache." => "em segundos. Uma mudança esvaziará o cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD.",
"Help" => "Ajuda"
);
diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php
index 9059f17876..21735b497c 100644
--- a/apps/user_ldap/l10n/pt_PT.php
+++ b/apps/user_ldap/l10n/pt_PT.php
@@ -1,6 +1,20 @@
"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.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "A configuração é inválida. Por favor, veja o log do ownCloud para mais detalhes.",
+"Deletion failed" => "Erro ao apagar",
+"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.",
+"Connection test succeeded" => "Teste de conecção passado com sucesso.",
+"Connection test failed" => "Erro no teste de conecção.",
+"Do you really want to delete the current Server Configuration?" => "Deseja realmente apagar as configurações de servidor actuais?",
+"Confirm Deletion" => "Confirmar a operação de apagar",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Aviso: A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Aviso: O módulo PHP LDAP não está instalado, logo não irá funcionar. Por favor peça ao administrador para o instalar.",
+"Server configuration" => "Configurações do servidor",
+"Add Server Configuration" => "Adicionar configurações do servidor",
"Host" => "Anfitrião",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://",
"Base DN" => "DN base",
@@ -19,24 +33,34 @@
"Group Filter" => "Filtrar por grupo",
"Defines the filter to apply, when retrieving groups." => "Defina o filtro a aplicar, ao recuperar grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sem nenhuma variável. Exemplo: \"objectClass=posixGroup\".",
+"Configuration Active" => "Configuração activa",
+"When unchecked, this configuration will be skipped." => "Se não estiver marcada, esta definição não será tida em conta.",
"Port" => "Porto",
-"Base User Tree" => "Base da árvore de utilizadores.",
-"One User Base DN per line" => "Uma base de utilizador DN por linha",
-"Base Group Tree" => "Base da árvore de grupos.",
-"One Group Base DN per line" => "Uma base de grupo DN por linha",
-"Group-Member association" => "Associar utilizador ao grupo.",
+"Backup (Replica) Host" => "Servidor de Backup (Réplica)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Forneça um servidor (anfitrião) de backup. Deve ser uma réplica do servidor principal de LDAP/AD ",
+"Backup (Replica) Port" => "Porta do servidor de backup (Replica)",
+"Disable Main Server" => "Desactivar servidor principal",
+"When switched on, ownCloud will only connect to the replica server." => "Se estiver ligado, o ownCloud vai somente ligar-se a este servidor de réplicas.",
"Use TLS" => "Usar TLS",
"Do not use it for SSL connections, it will fail." => "Não use para ligações SSL, irá falhar.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP (Windows) não sensível a maiúsculas.",
"Turn off SSL certificate validation." => "Desligar a validação de certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a ligação apenas funcionar com está opção, importe o certificado SSL do servidor LDAP para o seu servidor do ownCloud.",
"Not recommended, use for testing only." => "Não recomendado, utilizado apenas para testes!",
+"in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.",
"User Display Name Field" => "Mostrador do nome de utilizador.",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atributo LDAP para gerar o nome de utilizador do ownCloud.",
+"Base User Tree" => "Base da árvore de utilizadores.",
+"One User Base DN per line" => "Uma base de utilizador DN por linha",
+"User Search Attributes" => "Utilizar atributos de pesquisa",
+"Optional; one attribute per line" => "Opcional; Um atributo por linha",
"Group Display Name Field" => "Mostrador do nome do grupo.",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atributo LDAP para gerar o nome do grupo do ownCloud.",
+"Base Group Tree" => "Base da árvore de grupos.",
+"One Group Base DN per line" => "Uma base de grupo DN por linha",
+"Group Search Attributes" => "Atributos de pesquisa de grupo",
+"Group-Member association" => "Associar utilizador ao grupo.",
"in bytes" => "em bytes",
-"in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixe vazio para nome de utilizador (padrão). De outro modo, especifique um atributo LDAP/AD.",
"Help" => "Ajuda"
);
diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php
index d83c890b74..3e7e750042 100644
--- a/apps/user_ldap/l10n/ro.php
+++ b/apps/user_ldap/l10n/ro.php
@@ -1,4 +1,5 @@
"Ștergerea a eșuat",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Atentie: Apps user_ldap si user_webdavauth sunt incompatibile. Este posibil sa experimentati un comportament neasteptat. Vă rugăm să întrebați administratorul de sistem pentru a dezactiva una dintre ele.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Atenție Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.",
"Host" => "Gazdă",
@@ -20,23 +21,23 @@
"Defines the filter to apply, when retrieving groups." => "Definește filtrele care se aplică, când se preiau grupurile.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "fără substituenți, d.e. \"objectClass=posixGroup\"",
"Port" => "Portul",
-"Base User Tree" => "Arborele de bază al Utilizatorilor",
-"One User Base DN per line" => "Un User Base DN pe linie",
-"Base Group Tree" => "Arborele de bază al Grupurilor",
-"One Group Base DN per line" => "Un Group Base DN pe linie",
-"Group-Member association" => "Asocierea Grup-Membru",
"Use TLS" => "Utilizează TLS",
"Do not use it for SSL connections, it will fail." => "A nu se utiliza pentru conexiuni SSL, va eșua.",
"Case insensitve LDAP server (Windows)" => "Server LDAP insensibil la majuscule (Windows)",
"Turn off SSL certificate validation." => "Oprește validarea certificatelor SSL ",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Dacă conexiunea lucrează doar cu această opțiune, importează certificatul SSL al serverului LDAP în serverul ownCloud.",
"Not recommended, use for testing only." => "Nu este recomandat, a se utiliza doar pentru testare.",
+"in seconds. A change empties the cache." => "în secunde. O schimbare curăță memoria tampon.",
"User Display Name Field" => "Câmpul cu numele vizibil al utilizatorului",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atributul LDAP folosit pentru a genera numele de utilizator din ownCloud.",
+"Base User Tree" => "Arborele de bază al Utilizatorilor",
+"One User Base DN per line" => "Un User Base DN pe linie",
"Group Display Name Field" => "Câmpul cu numele grupului",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atributul LDAP folosit pentru a genera numele grupurilor din ownCloud",
+"Base Group Tree" => "Arborele de bază al Grupurilor",
+"One Group Base DN per line" => "Un Group Base DN pe linie",
+"Group-Member association" => "Asocierea Grup-Membru",
"in bytes" => "în octeți",
-"in seconds. A change empties the cache." => "în secunde. O schimbare curăță memoria tampon.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lăsați gol pentru numele de utilizator (implicit). În caz contrar, specificați un atribut LDAP / AD.",
"Help" => "Ajutor"
);
diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php
index 42fba32f43..45f6c171bf 100644
--- a/apps/user_ldap/l10n/ru.php
+++ b/apps/user_ldap/l10n/ru.php
@@ -1,4 +1,5 @@
"Удаление не удалось",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Внимание:Приложения user_ldap и user_webdavauth несовместимы. Вы можете столкнуться с неожиданным поведением. Пожалуйста, обратитесь к системному администратору, чтобы отключить одно из них.",
"Host" => "Сервер",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можно опустить протокол, за исключением того, когда вам требуется SSL. Тогда начните с ldaps :/ /",
@@ -18,21 +19,21 @@
"Defines the filter to apply, when retrieving groups." => "Определяет фильтр для применения при получении группы.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без заполнения, например \"objectClass=posixGroup\".",
"Port" => "Порт",
-"Base User Tree" => "База пользовательского дерева",
-"Base Group Tree" => "База группового дерева",
-"Group-Member association" => "Ассоциация Группа-Участник",
"Use TLS" => "Использовать TLS",
"Do not use it for SSL connections, it will fail." => "Не используйте для соединений SSL",
"Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру сервер LDAP (Windows)",
"Turn off SSL certificate validation." => "Отключить проверку сертификата SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Если соединение работает только с этой опцией, импортируйте на ваш сервер ownCloud сертификат SSL сервера LDAP.",
"Not recommended, use for testing only." => "Не рекомендуется, используйте только для тестирования.",
+"in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.",
"User Display Name Field" => "Поле отображаемого имени пользователя",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP для генерации имени пользователя ownCloud.",
+"Base User Tree" => "База пользовательского дерева",
"Group Display Name Field" => "Поле отображаемого имени группы",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP для генерации имени группы ownCloud.",
+"Base Group Tree" => "База группового дерева",
+"Group-Member association" => "Ассоциация Группа-Участник",
"in bytes" => "в байтах",
-"in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD.",
"Help" => "Помощь"
);
diff --git a/apps/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php
index 03d83b80a4..f62d2cd4ea 100644
--- a/apps/user_ldap/l10n/ru_RU.php
+++ b/apps/user_ldap/l10n/ru_RU.php
@@ -1,4 +1,5 @@
"Удаление не удалось",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Предупреждение: Приложения user_ldap и user_webdavauth несовместимы. Вы можете столкнуться с неожиданным поведением системы. Пожалуйста, обратитесь к системному администратору для отключения одного из них.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Предупреждение: Модуль PHP LDAP не установлен, бэкэнд не будет работать. Пожалуйста, обратитесь к Вашему системному администратору, чтобы установить его.",
"Host" => "Хост",
@@ -20,23 +21,23 @@
"Defines the filter to apply, when retrieving groups." => "Задает фильтр, применяемый при получении групп.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без каких-либо заполнителей, например, \"objectClass=posixGroup\".",
"Port" => "Порт",
-"Base User Tree" => "Базовое дерево пользователей",
-"One User Base DN per line" => "Одно пользовательское базовое DN на линию",
-"Base Group Tree" => "Базовое дерево групп",
-"One Group Base DN per line" => "Одно групповое базовое DN на линию",
-"Group-Member association" => "Связь член-группа",
"Use TLS" => "Использовать TLS",
"Do not use it for SSL connections, it will fail." => "Не используйте это SSL-соединений, это не будет выполнено.",
"Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру LDAP-сервер (Windows)",
"Turn off SSL certificate validation." => "Выключить проверку сертификата SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Если соединение работает только с этой опцией, импортируйте SSL-сертификат LDAP сервера в ваш ownCloud сервер.",
"Not recommended, use for testing only." => "Не рекомендовано, используйте только для тестирования.",
+"in seconds. A change empties the cache." => "в секундах. Изменение очищает кэш.",
"User Display Name Field" => "Поле, отображаемое как имя пользователя",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP, используемый для создания имени пользователя в ownCloud.",
+"Base User Tree" => "Базовое дерево пользователей",
+"One User Base DN per line" => "Одно пользовательское базовое DN на линию",
"Group Display Name Field" => "Поле, отображаемое как имя группы",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP, используемый для создания группового имени в ownCloud.",
+"Base Group Tree" => "Базовое дерево групп",
+"One Group Base DN per line" => "Одно групповое базовое DN на линию",
+"Group-Member association" => "Связь член-группа",
"in bytes" => "в байтах",
-"in seconds. A change empties the cache." => "в секундах. Изменение очищает кэш.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте пустым под имя пользователя (по умолчанию). В противном случае задайте LDAP/AD атрибут.",
"Help" => "Помощь"
);
diff --git a/apps/user_ldap/l10n/si_LK.php b/apps/user_ldap/l10n/si_LK.php
index fc8099e25e..50124e4d54 100644
--- a/apps/user_ldap/l10n/si_LK.php
+++ b/apps/user_ldap/l10n/si_LK.php
@@ -1,4 +1,5 @@
"මකාදැමීම අසාර්ථකයි",
"Host" => "සත්කාරකය",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL අවශ්යය වන විට පමණක් හැර, අන් අවස්ථාවන්හිදී ප්රොටොකෝලය අත් හැරිය හැක. භාවිතා කරන විට ldaps:// ලෙස ආරම්භ කරන්න",
"Password" => "මුර පදය",
diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php
index 9268c9f147..77cb039c7e 100644
--- a/apps/user_ldap/l10n/sk_SK.php
+++ b/apps/user_ldap/l10n/sk_SK.php
@@ -1,6 +1,20 @@
"Zlyhalo zmazanie nastavenia servera.",
+"The configuration is valid and the connection could be established!" => "Nastavenie je v poriadku a pripojenie je stabilné.",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavenia sú neplatné. Podrobnosti hľadajte v logu ownCloud.",
+"Deletion failed" => "Odstránenie zlyhalo",
+"Take over settings from recent server configuration?" => "Prebrať nastavenia z nedávneho nastavenia servera?",
+"Keep settings?" => "Ponechať nastavenia?",
+"Cannot add server configuration" => "Nemožno pridať nastavenie servera",
+"Connection test succeeded" => "Test pripojenia bol úspešný",
+"Connection test failed" => "Test pripojenia zlyhal",
+"Do you really want to delete the current Server Configuration?" => "Naozaj chcete zmazať súčasné nastavenie servera?",
+"Confirm Deletion" => "Potvrdiť vymazanie",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Upozornenie: Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte správcu systému aby jednu z nich zakázal.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte správcu systému aby ho nainštaloval.",
+"Server configuration" => "Nastavenia servera",
+"Add Server Configuration" => "Pridať nastavenia servera.",
"Host" => "Hostiteľ",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Môžete vynechať protokol, s výnimkou požadovania SSL. Vtedy začnite s ldaps://",
"Base DN" => "Základné DN",
@@ -19,24 +33,37 @@
"Group Filter" => "Filter skupiny",
"Defines the filter to apply, when retrieving groups." => "Definuje použitý filter, pre získanie skupín.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez zástupných znakov, napr. \"objectClass=posixGroup\"",
+"Connection Settings" => "Nastavenie pripojenia",
+"Configuration Active" => "Nastavenia sú aktívne ",
+"When unchecked, this configuration will be skipped." => "Ak nie je zaškrtnuté, nastavenie bude preskočené.",
"Port" => "Port",
-"Base User Tree" => "Základný používateľský strom",
-"One User Base DN per line" => "Jedna používateľská základná DN na riadok",
-"Base Group Tree" => "Základný skupinový strom",
-"One Group Base DN per line" => "Jedna skupinová základná DN na riadok",
-"Group-Member association" => "Asociácia člena skupiny",
+"Backup (Replica) Host" => "Záložný server (kópia) hosť",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Zadajte záložný LDAP/AD. Musí to byť kópia hlavného LDAP/AD servera.",
+"Backup (Replica) Port" => "Záložný server (kópia) port",
+"Disable Main Server" => "Zakázať hlavný server",
+"When switched on, ownCloud will only connect to the replica server." => "Pri zapnutí sa ownCloud pripojí len k záložnému serveru.",
"Use TLS" => "Použi TLS",
"Do not use it for SSL connections, it will fail." => "Nepoužívajte pre pripojenie SSL, pripojenie zlyhá.",
"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišuje veľkosť znakov (Windows)",
"Turn off SSL certificate validation." => "Vypnúť overovanie SSL certifikátu.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ak pripojenie pracuje len s touto možnosťou, tak importujte SSL certifikát LDAP serveru do vášho servera ownCloud.",
"Not recommended, use for testing only." => "Nie je doporučované, len pre testovacie účely.",
+"in seconds. A change empties the cache." => "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť.",
+"Directory Settings" => "Nastavenie priečinka",
"User Display Name Field" => "Pole pre zobrazenia mena používateľa",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribút LDAP použitý na vygenerovanie mena používateľa ownCloud ",
+"Base User Tree" => "Základný používateľský strom",
+"One User Base DN per line" => "Jedna používateľská základná DN na riadok",
+"User Search Attributes" => "Atribúty vyhľadávania používateľov",
+"Optional; one attribute per line" => "Voliteľné, jeden atribút na jeden riadok",
"Group Display Name Field" => "Pole pre zobrazenie mena skupiny",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribút LDAP použitý na vygenerovanie mena skupiny ownCloud ",
+"Base Group Tree" => "Základný skupinový strom",
+"One Group Base DN per line" => "Jedna skupinová základná DN na riadok",
+"Group Search Attributes" => "Atribúty vyhľadávania skupín",
+"Group-Member association" => "Asociácia člena skupiny",
+"Special Attributes" => "Špeciálne atribúty",
"in bytes" => "v bajtoch",
-"in seconds. A change empties the cache." => "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD.",
"Help" => "Pomoc"
);
diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php
index 247f2bfdcb..133d7ee911 100644
--- a/apps/user_ldap/l10n/sl.php
+++ b/apps/user_ldap/l10n/sl.php
@@ -1,4 +1,5 @@
"Brisanje je spodletelo.",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Opozorilo: Aplikaciji user_ldap in user_webdavauth nista združljivi. Morda boste opazili nepričakovano obnašanje sistema. Prosimo, prosite vašega skrbnika, da eno od aplikacij onemogoči.",
"Host" => "Gostitelj",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol je lahko izpuščen, če ni posebej zahtevan SSL. V tem primeru se mora naslov začeti z ldaps://",
@@ -18,21 +19,21 @@
"Defines the filter to apply, when retrieving groups." => "Določi filter za uporabo med pridobivanjem skupin.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Brez katerekoli vsebnika, npr. \"objectClass=posixGroup\".",
"Port" => "Vrata",
-"Base User Tree" => "Osnovno uporabniško drevo",
-"Base Group Tree" => "Osnovno drevo skupine",
-"Group-Member association" => "Povezava člana skupine",
"Use TLS" => "Uporabi TLS",
"Do not use it for SSL connections, it will fail." => "Uporaba SSL za povezave bo spodletela.",
"Case insensitve LDAP server (Windows)" => "Strežnik LDAP ne upošteva velikosti črk (Windows)",
"Turn off SSL certificate validation." => "Onemogoči potrditev veljavnosti potrdila SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "V primeru, da povezava deluje le s to možnostjo, uvozite potrdilo SSL iz strežnika LDAP na vaš strežnik ownCloud.",
"Not recommended, use for testing only." => "Dejanje ni priporočeno; uporabljeno naj bo le za preizkušanje delovanja.",
+"in seconds. A change empties the cache." => "v sekundah. Sprememba izprazni predpomnilnik.",
"User Display Name Field" => "Polje za uporabnikovo prikazano ime",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP, uporabljen pri ustvarjanju uporabniških imen ownCloud.",
+"Base User Tree" => "Osnovno uporabniško drevo",
"Group Display Name Field" => "Polje za prikazano ime skupine",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP, uporabljen pri ustvarjanju imen skupin ownCloud.",
+"Base Group Tree" => "Osnovno drevo skupine",
+"Group-Member association" => "Povezava člana skupine",
"in bytes" => "v bajtih",
-"in seconds. A change empties the cache." => "v sekundah. Sprememba izprazni predpomnilnik.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pustite prazno za uporabniško ime (privzeto). V nasprotnem primeru navedite atribut LDAP/AD.",
"Help" => "Pomoč"
);
diff --git a/apps/user_ldap/l10n/sr.php b/apps/user_ldap/l10n/sr.php
index fff39aadc2..f16e59273c 100644
--- a/apps/user_ldap/l10n/sr.php
+++ b/apps/user_ldap/l10n/sr.php
@@ -1,3 +1,4 @@
"Брисање није успело",
"Help" => "Помоћ"
);
diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php
index 25abfdd7dd..b1da09ad3e 100644
--- a/apps/user_ldap/l10n/sv.php
+++ b/apps/user_ldap/l10n/sv.php
@@ -1,6 +1,18 @@
"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 invalid. Please look in the ownCloud log for further details." => "Inställningen är ogiltig. Vänligen se ownCloud-loggen för fler detaljer.",
+"Deletion failed" => "Raderingen misslyckades",
+"Keep settings?" => "Behåll inställningarna?",
+"Cannot add server configuration" => "Kunde inte lägga till serverinställning",
+"Connection test succeeded" => "Anslutningstestet lyckades",
+"Connection test failed" => "Anslutningstestet misslyckades",
+"Do you really want to delete the current Server Configuration?" => "Vill du verkligen radera den nuvarande serverinställningen?",
+"Confirm Deletion" => "Bekräfta radering",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Varning: Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dom.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Varning: PHP LDAP - modulen är inte installerad, serversidan kommer inte att fungera. Kontakta din systemadministratör för installation.",
+"Server configuration" => "Serverinställning",
+"Add Server Configuration" => "Lägg till serverinställning",
"Host" => "Server",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du behöver inte ange protokoll förutom om du använder SSL. Starta då med ldaps://",
"Base DN" => "Start DN",
@@ -20,23 +32,24 @@
"Defines the filter to apply, when retrieving groups." => "Definierar filter att tillämpa vid listning av grupper.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "utan platshållare, t.ex. \"objectClass=posixGroup\".",
"Port" => "Port",
-"Base User Tree" => "Bas för användare i katalogtjänst",
-"One User Base DN per line" => "En Användare start DN per rad",
-"Base Group Tree" => "Bas för grupper i katalogtjänst",
-"One Group Base DN per line" => "En Grupp start DN per rad",
-"Group-Member association" => "Attribut för gruppmedlemmar",
+"Disable Main Server" => "Inaktivera huvudserver",
"Use TLS" => "Använd TLS",
"Do not use it for SSL connections, it will fail." => "Använd inte för SSL-anslutningar, det kommer inte att fungera.",
"Case insensitve LDAP server (Windows)" => "LDAP-servern är okänslig för gemener och versaler (Windows)",
"Turn off SSL certificate validation." => "Stäng av verifiering av SSL-certifikat.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Om anslutningen bara fungerar med det här alternativet, importera LDAP-serverns SSL-certifikat i din ownCloud-server.",
"Not recommended, use for testing only." => "Rekommenderas inte, använd bara för test. ",
+"in seconds. A change empties the cache." => "i sekunder. En förändring tömmer cache.",
"User Display Name Field" => "Attribut för användarnamn",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Attribut som används för att generera användarnamn i ownCloud.",
+"Base User Tree" => "Bas för användare i katalogtjänst",
+"One User Base DN per line" => "En Användare start DN per rad",
"Group Display Name Field" => "Attribut för gruppnamn",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Attribut som används för att generera gruppnamn i ownCloud.",
+"Base Group Tree" => "Bas för grupper i katalogtjänst",
+"One Group Base DN per line" => "En Grupp start DN per rad",
+"Group-Member association" => "Attribut för gruppmedlemmar",
"in bytes" => "i bytes",
-"in seconds. A change empties the cache." => "i sekunder. En förändring tömmer cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lämnas tomt för användarnamn (standard). Ange annars ett LDAP/AD-attribut.",
"Help" => "Hjälp"
);
diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php
index 2028becaf9..d617f49700 100644
--- a/apps/user_ldap/l10n/ta_LK.php
+++ b/apps/user_ldap/l10n/ta_LK.php
@@ -1,4 +1,5 @@
"நீக்கம் தோல்வியடைந்தது",
"Host" => "ஓம்புனர்",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "நீங்கள் SSL சேவையை தவிர உடன்படு வரைமுறையை தவிர்க்க முடியும். பிறகு ldaps:.// உடன் ஆரம்பிக்கவும்",
"Base DN" => "தள DN",
@@ -7,21 +8,21 @@
"Password" => "கடவுச்சொல்",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "எந்த ஒதுக்கீடும் இல்லாமல், உதாரணம். \"objectClass=posixGroup\".",
"Port" => "துறை ",
-"Base User Tree" => "தள பயனாளர் மரம்",
-"Base Group Tree" => "தள குழு மரம்",
-"Group-Member association" => "குழு உறுப்பினர் சங்கம்",
"Use TLS" => "TLS ஐ பயன்படுத்தவும்",
"Do not use it for SSL connections, it will fail." => "SSL இணைப்பிற்கு பயன்படுத்தவேண்டாம், அது தோல்வியடையும்.",
"Case insensitve LDAP server (Windows)" => "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)",
"Turn off SSL certificate validation." => "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "இந்த தெரிவுகளில் மட்டும் இணைப்பு வேலைசெய்தால், உங்களுடைய owncloud சேவையகத்திலிருந்து LDAP சேவையகத்தின் SSL சான்றிதழை இறக்குமதி செய்யவும்",
"Not recommended, use for testing only." => "பரிந்துரைக்கப்படவில்லை, சோதனைக்காக மட்டும் பயன்படுத்தவும்.",
+"in seconds. A change empties the cache." => "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்.",
"User Display Name Field" => "பயனாளர் காட்சிப்பெயர் புலம்",
"The LDAP attribute to use to generate the user`s ownCloud name." => "பயனாளரின் ownCloud பெயரை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்.",
+"Base User Tree" => "தள பயனாளர் மரம்",
"Group Display Name Field" => "குழுவின் காட்சி பெயர் புலம் ",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "ownCloud குழுக்களின் பெயர்களை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்.",
+"Base Group Tree" => "தள குழு மரம்",
+"Group-Member association" => "குழு உறுப்பினர் சங்கம்",
"in bytes" => "bytes களில் ",
-"in seconds. A change empties the cache." => "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்.",
"Help" => "உதவி"
);
diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php
index e3a941c424..07dbc835b3 100644
--- a/apps/user_ldap/l10n/th_TH.php
+++ b/apps/user_ldap/l10n/th_TH.php
@@ -1,6 +1,19 @@
"การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว",
+"The configuration is valid and the connection could be established!" => "การกำหนดค่าถูกต้องและการเชื่อมต่อสามารถเชื่อมต่อได้!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "การกำหนดค่าถูกต้อง, แต่การผูกข้อมูลล้มเหลว, กรุณาตรวจสอบการตั้งค่าเซิร์ฟเวอร์และข้อมูลการเข้าใช้งาน",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "การกำหนดค่าไม่ถูกต้อง กรุณาดูรายละเอียดจากบันทึกการเปลี่ยนแปลงของ ownCloud สำหรับรายละเอียดเพิ่มเติม",
+"Deletion failed" => "การลบทิ้งล้มเหลว",
+"Keep settings?" => "รักษาการตั้งค่าไว้?",
+"Cannot add server configuration" => "ไม่สามารถเพิ่มค่ากำหนดเซิร์ฟเวอร์ได้",
+"Connection test succeeded" => "ทดสอบการเชื่อมต่อสำเร็จ",
+"Connection test failed" => "ทดสอบการเชื่อมต่อล้มเหลว",
+"Do you really want to delete the current Server Configuration?" => "คุณแน่ใจแล้วหรือว่าต้องการลบการกำหนดค่าเซิร์ฟเวอร์ปัจจุบันทิ้งไป?",
+"Confirm Deletion" => "ยืนยันการลบทิ้ง",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "คำเตือน: แอปฯ user_ldap และ user_webdavauth ไม่สามารถใช้งานร่วมกันได้. คุณอาจประสพปัญหาที่ไม่คาดคิดจากเหตุการณ์ดังกล่าว กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อระงับการใช้งานแอปฯ ตัวใดตัวหนึ่งข้างต้น",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "คำเตือน: โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว",
+"Server configuration" => "การกำหนดค่าเซิร์ฟเวอร์",
+"Add Server Configuration" => "เพิ่มการกำหนดค่าเซิร์ฟเวอร์",
"Host" => "โฮสต์",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "คุณสามารถปล่อยช่องโปรโตคอลเว้นไว้ได้, ยกเว้นกรณีที่คุณต้องการใช้ SSL จากนั้นเริ่มต้นด้วย ldaps://",
"Base DN" => "DN ฐาน",
@@ -19,24 +32,31 @@
"Group Filter" => "ตัวกรองข้อมูลกลุ่ม",
"Defines the filter to apply, when retrieving groups." => "ระบุตัวกรองข้อมูลที่ต้องการนำไปใช้งาน, เมื่อดึงข้อมูลกลุ่ม",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "โดยไม่ต้องมีตัวยึดใดๆ, เช่น \"objectClass=posixGroup\",",
+"Connection Settings" => "ตั้งค่าการเชื่อมต่อ",
"Port" => "พอร์ต",
-"Base User Tree" => "รายการผู้ใช้งานหลักแบบ Tree",
-"One User Base DN per line" => "หนึ่ง User Base DN ต่อบรรทัด",
-"Base Group Tree" => "รายการกลุ่มหลักแบบ Tree",
-"One Group Base DN per line" => "หนึ่ง Group Base DN ต่อบรรทัด",
-"Group-Member association" => "ความสัมพันธ์ของสมาชิกในกลุ่ม",
+"Disable Main Server" => "ปิดใช้งานเซิร์ฟเวอร์หลัก",
"Use TLS" => "ใช้ TLS",
"Do not use it for SSL connections, it will fail." => "กรุณาอย่าใช้การเชื่อมต่อแบบ SSL การเชื่อมต่อจะเกิดการล้มเหลว",
"Case insensitve LDAP server (Windows)" => "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)",
"Turn off SSL certificate validation." => "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "หากการเชื่อมต่อสามารถทำงานได้เฉพาะกับตัวเลือกนี้เท่านั้น, ให้นำเข้าข้อมูลใบรับรองความปลอดภัยแบบ SSL ของเซิร์ฟเวอร์ LDAP ดังกล่าวเข้าไปไว้ในเซิร์ฟเวอร์ ownCloud",
"Not recommended, use for testing only." => "ไม่แนะนำให้ใช้งาน, ใช้สำหรับการทดสอบเท่านั้น",
+"in seconds. A change empties the cache." => "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า",
+"Directory Settings" => "ตั้งค่าไดเร็กทอรี่",
"User Display Name Field" => "ช่องแสดงชื่อผู้ใช้งานที่ต้องการ",
"The LDAP attribute to use to generate the user`s ownCloud name." => "คุณลักษณะ LDAP ที่ต้องการใช้สำหรับสร้างชื่อของผู้ใช้งาน ownCloud",
+"Base User Tree" => "รายการผู้ใช้งานหลักแบบ Tree",
+"One User Base DN per line" => "หนึ่ง User Base DN ต่อบรรทัด",
+"User Search Attributes" => "คุณลักษณะการค้นหาชื่อผู้ใช้",
+"Optional; one attribute per line" => "ตัวเลือกเพิ่มเติม; หนึ่งคุณลักษณะต่อบรรทัด",
"Group Display Name Field" => "ช่องแสดงชื่อกลุ่มที่ต้องการ",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "คุณลักษณะ LDAP ที่ต้องการใช้สร้างชื่อกลุ่มของ ownCloud",
+"Base Group Tree" => "รายการกลุ่มหลักแบบ Tree",
+"One Group Base DN per line" => "หนึ่ง Group Base DN ต่อบรรทัด",
+"Group Search Attributes" => "คุณลักษณะการค้นหาแบบกลุ่ม",
+"Group-Member association" => "ความสัมพันธ์ของสมาชิกในกลุ่ม",
+"Special Attributes" => "คุณลักษณะพิเศษ",
"in bytes" => "ในหน่วยไบต์",
-"in seconds. A change empties the cache." => "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD",
"Help" => "ช่วยเหลือ"
);
diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php
index 6da65d9832..8ded27a295 100644
--- a/apps/user_ldap/l10n/tr.php
+++ b/apps/user_ldap/l10n/tr.php
@@ -1,4 +1,5 @@
"Silme başarısız oldu",
"Host" => "Konak",
"Base DN" => "Base DN",
"User DN" => "User DN",
@@ -10,15 +11,15 @@
"without any placeholder, e.g. \"objectClass=person\"." => "bir yer tutucusu olmadan, örneğin \"objectClass=person\"",
"Group Filter" => "Grup Süzgeci",
"Port" => "Port",
-"Base User Tree" => "Temel Kullanıcı Ağacı",
-"Base Group Tree" => "Temel Grup Ağacı",
-"Group-Member association" => "Grup-Üye işbirliği",
"Use TLS" => "TLS kullan",
"Do not use it for SSL connections, it will fail." => "SSL bağlantıları ile kullanmayın, başarısız olacaktır.",
"Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.",
"Not recommended, use for testing only." => "Önerilmez, sadece test için kullanın.",
-"in bytes" => "byte cinsinden",
"in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.",
+"Base User Tree" => "Temel Kullanıcı Ağacı",
+"Base Group Tree" => "Temel Grup Ağacı",
+"Group-Member association" => "Grup-Üye işbirliği",
+"in bytes" => "byte cinsinden",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kullanıcı adı bölümünü boş bırakın (varsayılan). ",
"Help" => "Yardım"
);
diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php
index d617d93926..4dd1256ee3 100644
--- a/apps/user_ldap/l10n/uk.php
+++ b/apps/user_ldap/l10n/uk.php
@@ -1,4 +1,5 @@
"Видалення не було виконано",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "Увага: Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.",
"Host" => "Хост",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://",
@@ -18,21 +19,21 @@
"Defines the filter to apply, when retrieving groups." => "Визначає фільтр, який застосовується при отриманні груп.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без будь-якого заповнювача, наприклад: \"objectClass=posixGroup\".",
"Port" => "Порт",
-"Base User Tree" => "Основне Дерево Користувачів",
-"Base Group Tree" => "Основне Дерево Груп",
-"Group-Member association" => "Асоціація Група-Член",
"Use TLS" => "Використовуйте TLS",
"Do not use it for SSL connections, it will fail." => "Не використовуйте його для SSL з'єднань, це не буде виконано.",
"Case insensitve LDAP server (Windows)" => "Нечутливий до регістру LDAP сервер (Windows)",
"Turn off SSL certificate validation." => "Вимкнути перевірку SSL сертифіката.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Якщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший ownCloud сервер.",
"Not recommended, use for testing only." => "Не рекомендується, використовуйте лише для тестів.",
+"in seconds. A change empties the cache." => "в секундах. Зміна очищує кеш.",
"User Display Name Field" => "Поле, яке відображає Ім'я Користувача",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud.",
+"Base User Tree" => "Основне Дерево Користувачів",
"Group Display Name Field" => "Поле, яке відображає Ім'я Групи",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен груп ownCloud.",
+"Base Group Tree" => "Основне Дерево Груп",
+"Group-Member association" => "Асоціація Група-Член",
"in bytes" => "в байтах",
-"in seconds. A change empties the cache." => "в секундах. Зміна очищує кеш.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD.",
"Help" => "Допомога"
);
diff --git a/apps/user_ldap/l10n/vi.php b/apps/user_ldap/l10n/vi.php
index 3d32c8125b..76ff6fe33a 100644
--- a/apps/user_ldap/l10n/vi.php
+++ b/apps/user_ldap/l10n/vi.php
@@ -1,4 +1,5 @@
"Xóa thất bại",
"Host" => "Máy chủ",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://",
"Base DN" => "DN cơ bản",
@@ -17,21 +18,21 @@
"Defines the filter to apply, when retrieving groups." => "Xác định các bộ lọc để áp dụng, khi nhóm sử dụng.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "mà không giữ chỗ nào, ví dụ như \"objectClass = osixGroup\".",
"Port" => "Cổng",
-"Base User Tree" => "Cây người dùng cơ bản",
-"Base Group Tree" => "Cây nhóm cơ bản",
-"Group-Member association" => "Nhóm thành viên Cộng đồng",
"Use TLS" => "Sử dụng TLS",
"Do not use it for SSL connections, it will fail." => "Kết nối SSL bị lỗi. ",
"Case insensitve LDAP server (Windows)" => "Trường hợp insensitve LDAP máy chủ (Windows)",
"Turn off SSL certificate validation." => "Tắt xác thực chứng nhận SSL",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Nếu kết nối chỉ hoạt động với tùy chọn này, vui lòng import LDAP certificate SSL trong máy chủ ownCloud của bạn.",
"Not recommended, use for testing only." => "Không khuyến khích, Chỉ sử dụng để thử nghiệm.",
+"in seconds. A change empties the cache." => "trong vài giây. Một sự thay đổi bộ nhớ cache.",
"User Display Name Field" => "Hiển thị tên người sử dụng",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Các thuộc tính LDAP sử dụng để tạo tên người dùng ownCloud.",
+"Base User Tree" => "Cây người dùng cơ bản",
"Group Display Name Field" => "Hiển thị tên nhóm",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Các thuộc tính LDAP sử dụng để tạo các nhóm ownCloud.",
+"Base Group Tree" => "Cây nhóm cơ bản",
+"Group-Member association" => "Nhóm thành viên Cộng đồng",
"in bytes" => "Theo Byte",
-"in seconds. A change empties the cache." => "trong vài giây. Một sự thay đổi bộ nhớ cache.",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD",
"Help" => "Giúp đỡ"
);
diff --git a/apps/user_ldap/l10n/zh_CN.GB2312.php b/apps/user_ldap/l10n/zh_CN.GB2312.php
index 8b906aea5c..91b059afd0 100644
--- a/apps/user_ldap/l10n/zh_CN.GB2312.php
+++ b/apps/user_ldap/l10n/zh_CN.GB2312.php
@@ -1,4 +1,5 @@
"删除失败",
"Host" => "主机",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "您可以忽略协议,除非您需要 SSL。然后用 ldaps:// 开头",
"Base DN" => "基本判别名",
@@ -17,21 +18,21 @@
"Defines the filter to apply, when retrieving groups." => "定义撷取群组时要应用的过滤器",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "不能使用占位符,例如 \"objectClass=posixGroup\"。",
"Port" => "端口",
-"Base User Tree" => "基本用户树",
-"Base Group Tree" => "基本群组树",
-"Group-Member association" => "群组-成员组合",
"Use TLS" => "使用 TLS",
"Do not use it for SSL connections, it will fail." => "不要使用它进行 SSL 连接,会失败的。",
"Case insensitve LDAP server (Windows)" => "大小写不敏感的 LDAP 服务器 (Windows)",
"Turn off SSL certificate validation." => "关闭 SSL 证书校验。",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果只有使用此选项才能连接,请导入 LDAP 服务器的 SSL 证书到您的 ownCloud 服务器。",
"Not recommended, use for testing only." => "不推荐,仅供测试",
+"in seconds. A change empties the cache." => "以秒计。修改会清空缓存。",
"User Display Name Field" => "用户显示名称字段",
"The LDAP attribute to use to generate the user`s ownCloud name." => "用于生成用户的 ownCloud 名称的 LDAP 属性。",
+"Base User Tree" => "基本用户树",
"Group Display Name Field" => "群组显示名称字段",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "用于生成群组的 ownCloud 名称的 LDAP 属性。",
+"Base Group Tree" => "基本群组树",
+"Group-Member association" => "群组-成员组合",
"in bytes" => "以字节计",
-"in seconds. A change empties the cache." => "以秒计。修改会清空缓存。",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "用户名请留空 (默认)。否则,请指定一个 LDAP/AD 属性。",
"Help" => "帮助"
);
diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php
index ed5041eff0..d0c32e94e0 100644
--- a/apps/user_ldap/l10n/zh_CN.php
+++ b/apps/user_ldap/l10n/zh_CN.php
@@ -1,4 +1,5 @@
"删除失败",
"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "警告:应用 user_ldap 和 user_webdavauth 不兼容。您可能遭遇未预料的行为。请垂询您的系统管理员禁用其中一个。",
"Host" => "主机",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "可以忽略协议,但如要使用SSL,则需以ldaps://开头",
@@ -18,21 +19,21 @@
"Defines the filter to apply, when retrieving groups." => "定义拉取组信息时的过滤器",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "无需占位符,例如\"objectClass=posixGroup\"",
"Port" => "端口",
-"Base User Tree" => "基础用户树",
-"Base Group Tree" => "基础组树",
-"Group-Member association" => "组成员关联",
"Use TLS" => "使用TLS",
"Do not use it for SSL connections, it will fail." => "不要在SSL链接中使用此选项,会导致失败。",
"Case insensitve LDAP server (Windows)" => "大小写敏感LDAP服务器(Windows)",
"Turn off SSL certificate validation." => "关闭SSL证书验证",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果链接仅在此选项时可用,在您的ownCloud服务器中导入LDAP服务器的SSL证书。",
"Not recommended, use for testing only." => "暂不推荐,仅供测试",
+"in seconds. A change empties the cache." => "以秒计。修改将清空缓存。",
"User Display Name Field" => "用户显示名称字段",
"The LDAP attribute to use to generate the user`s ownCloud name." => "用来生成用户的ownCloud名称的 LDAP属性",
+"Base User Tree" => "基础用户树",
"Group Display Name Field" => "组显示名称字段",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "用来生成组的ownCloud名称的LDAP属性",
+"Base Group Tree" => "基础组树",
+"Group-Member association" => "组成员关联",
"in bytes" => "字节数",
-"in seconds. A change empties the cache." => "以秒计。修改将清空缓存。",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "将用户名称留空(默认)。否则指定一个LDAP/AD属性",
"Help" => "帮助"
);
diff --git a/apps/user_ldap/l10n/zh_TW.php b/apps/user_ldap/l10n/zh_TW.php
index 506ae0f0fb..9a12bad074 100644
--- a/apps/user_ldap/l10n/zh_TW.php
+++ b/apps/user_ldap/l10n/zh_TW.php
@@ -1,4 +1,5 @@
"移除失敗",
"Host" => "主機",
"Password" => "密碼",
"Port" => "連接阜",
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index 422e43fc00..68cbe4a5e7 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -719,6 +719,50 @@ abstract class Access {
return $combinedFilter;
}
+ /**
+ * @brief creates a filter part for to perfrom search for users
+ * @param string $search the search term
+ * @return string the final filter part to use in LDAP searches
+ */
+ public function getFilterPartForUserSearch($search) {
+ return $this->getFilterPartForSearch($search, $this->connection->ldapAttributesForUserSearch, $this->connection->ldapUserDisplayName);
+ }
+
+ /**
+ * @brief creates a filter part for to perfrom search for groups
+ * @param string $search the search term
+ * @return string the final filter part to use in LDAP searches
+ */
+ public function getFilterPartForGroupSearch($search) {
+ return $this->getFilterPartForSearch($search, $this->connection->ldapAttributesForGroupSearch, $this->connection->ldapGroupDisplayName);
+ }
+
+ /**
+ * @brief creates a filter part for searches
+ * @param string $search the search term
+ * @param string $fallbackAttribute a fallback attribute in case the user
+ * did not define search attributes. Typically the display name attribute.
+ * @returns string the final filter part to use in LDAP searches
+ */
+ private function getFilterPartForSearch($search, $searchAttributes, $fallbackAttribute) {
+ $filter = array();
+ $search = empty($search) ? '*' : '*'.$search.'*';
+ if(!is_array($searchAttributes) || count($searchAttributes) == 0) {
+ if(empty($fallbackAttribute)) {
+ return '';
+ }
+ $filter[] = $fallbackAttribute . '=' . $search;
+ } else {
+ foreach($searchAttributes as $attribute) {
+ $filter[] = $attribute . '=' . $search;
+ }
+ }
+ if(count($filter) == 1) {
+ return '('.$filter[0].')';
+ }
+ return $this->combineFilterWithOr($filter);
+ }
+
public function areCredentialsValid($name, $password) {
$name = $this->DNasBaseParameter($name);
$testConnection = clone $this->connection;
@@ -912,7 +956,7 @@ abstract class Access {
$reOffset = ($offset - $limit) < 0 ? 0 : $offset - $limit;
//a bit recursive, $offset of 0 is the exit
\OCP\Util::writeLog('user_ldap', 'Looking for cookie L/O '.$limit.'/'.$reOffset, \OCP\Util::INFO);
- $this->search($filter, $base, $attr, $limit, $reOffset, true);
+ $this->search($filter, array($base), $attr, $limit, $reOffset, true);
$cookie = $this->getPagedResultCookie($base, $filter, $limit, $offset);
//still no cookie? obviously, the server does not like us. Let's skip paging efforts.
//TODO: remember this, probably does not change in the next request...
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index 7046cbbfc7..acc33e047c 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -4,7 +4,7 @@
* ownCloud – LDAP Access
*
* @author Arthur Schiwon
- * @copyright 2012 Arthur Schiwon blizzz@owncloud.com
+ * @copyright 2012, 2013 Arthur Schiwon blizzz@owncloud.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
@@ -25,6 +25,7 @@ namespace OCA\user_ldap\lib;
class Connection {
private $ldapConnectionRes = null;
+ private $configPrefix;
private $configID;
private $configured = false;
@@ -35,6 +36,8 @@ class Connection {
protected $config = array(
'ldapHost' => null,
'ldapPort' => null,
+ 'ldapBackupHost' => null,
+ 'ldapBackupPort' => null,
'ldapBase' => null,
'ldapBaseUsers' => null,
'ldapBaseGroups' => null,
@@ -48,6 +51,7 @@ class Connection {
'ldapUserFilter' => null,
'ldapGroupFilter' => null,
'ldapGroupDisplayName' => null,
+ 'ldapGroupMemberAssocAttr' => null,
'ldapLoginFilter' => null,
'ldapQuotaAttribute' => null,
'ldapQuotaDefault' => null,
@@ -55,15 +59,24 @@ class Connection {
'ldapCacheTTL' => null,
'ldapUuidAttribute' => null,
'ldapOverrideUuidAttribute' => null,
+ 'ldapOverrideMainServer' => false,
+ 'ldapConfigurationActive' => false,
+ 'ldapAttributesForUserSearch' => null,
+ 'ldapAttributesForGroupSearch' => null,
'homeFolderNamingRule' => null,
'hasPagedResultSupport' => false,
);
- public function __construct($configID = 'user_ldap') {
+ /**
+ * @brief Constructor
+ * @param $configPrefix a string with the prefix for the configkey column (appconfig table)
+ * @param $configID a string with the value for the appid column (appconfig table) or null for on-the-fly connections
+ */
+ public function __construct($configPrefix = '', $configID = 'user_ldap') {
+ $this->configPrefix = $configPrefix;
$this->configID = $configID;
$this->cache = \OC_Cache::getGlobalCache();
$this->config['hasPagedResultSupport'] = (function_exists('ldap_control_paged_result') && function_exists('ldap_control_paged_result_response'));
- \OCP\Util::writeLog('user_ldap', 'PHP supports paged results? '.print_r($this->config['hasPagedResultSupport'], true), \OCP\Util::INFO);
}
public function __destruct() {
@@ -84,12 +97,12 @@ class Connection {
public function __set($name, $value) {
$changed = false;
- //omly few options are writable
+ //only few options are writable
if($name == 'ldapUuidAttribute') {
\OCP\Util::writeLog('user_ldap', 'Set config ldapUuidAttribute to '.$value, \OCP\Util::DEBUG);
$this->config[$name] = $value;
if(!empty($this->configID)) {
- \OCP\Config::setAppValue($this->configID, 'ldap_uuid_attribute', $value);
+ \OCP\Config::setAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', $value);
}
$changed = true;
}
@@ -126,7 +139,7 @@ class Connection {
}
private function getCacheKey($key) {
- $prefix = 'LDAP-'.$this->configID.'-';
+ $prefix = 'LDAP-'.$this->configID.'-'.$this->configPrefix.'-';
if(is_null($key)) {
return $prefix;
}
@@ -164,7 +177,8 @@ class Connection {
if(!$this->configured) {
$this->readConfiguration();
}
- if(!$this->config['ldapCacheTTL']) {
+ if(!$this->config['ldapCacheTTL']
+ || !$this->config['ldapConfigurationActive']) {
return null;
}
$key = $this->getCacheKey($key);
@@ -176,42 +190,96 @@ class Connection {
$this->cache->clear($this->getCacheKey(null));
}
+ private function getValue($varname) {
+ static $defaults;
+ if(is_null($defaults)){
+ $defaults = $this->getDefaults();
+ }
+ return \OCP\Config::getAppValue($this->configID,
+ $this->configPrefix.$varname,
+ $defaults[$varname]);
+ }
+
+ private function setValue($varname, $value) {
+ \OCP\Config::setAppValue($this->configID,
+ $this->configPrefix.$varname,
+ $value);
+ }
+
/**
* Caches the general LDAP configuration.
*/
private function readConfiguration($force = false) {
- \OCP\Util::writeLog('user_ldap', 'Checking conf state: isConfigured? '.print_r($this->configured, true).' isForce? '.print_r($force, true).' configID? '.print_r($this->configID, true), \OCP\Util::DEBUG);
if((!$this->configured || $force) && !is_null($this->configID)) {
- \OCP\Util::writeLog('user_ldap', 'Reading the configuration', \OCP\Util::DEBUG);
- $this->config['ldapHost'] = \OCP\Config::getAppValue($this->configID, 'ldap_host', '');
- $this->config['ldapPort'] = \OCP\Config::getAppValue($this->configID, 'ldap_port', 389);
- $this->config['ldapAgentName'] = \OCP\Config::getAppValue($this->configID, 'ldap_dn', '');
- $this->config['ldapAgentPassword'] = base64_decode(\OCP\Config::getAppValue($this->configID, 'ldap_agent_password', ''));
- $this->config['ldapBase'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base', ''));
- $this->config['ldapBaseUsers'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base_users', $this->config['ldapBase']));
- $this->config['ldapBaseGroups'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base_groups', $this->config['ldapBase']));
- $this->config['ldapTLS'] = \OCP\Config::getAppValue($this->configID, 'ldap_tls', 0);
- $this->config['ldapNoCase'] = \OCP\Config::getAppValue($this->configID, 'ldap_nocase', 0);
- $this->config['turnOffCertCheck'] = \OCP\Config::getAppValue($this->configID, 'ldap_turn_off_cert_check', 0);
- $this->config['ldapUserDisplayName'] = mb_strtolower(\OCP\Config::getAppValue($this->configID, 'ldap_display_name', 'uid'), 'UTF-8');
- $this->config['ldapUserFilter'] = \OCP\Config::getAppValue($this->configID, 'ldap_userlist_filter', 'objectClass=person');
- $this->config['ldapGroupFilter'] = \OCP\Config::getAppValue($this->configID, 'ldap_group_filter', '(objectClass=posixGroup)');
- $this->config['ldapLoginFilter'] = \OCP\Config::getAppValue($this->configID, 'ldap_login_filter', '(uid=%uid)');
- $this->config['ldapGroupDisplayName'] = mb_strtolower(\OCP\Config::getAppValue($this->configID, 'ldap_group_display_name', 'uid'), 'UTF-8');
- $this->config['ldapQuotaAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_quota_attr', '');
- $this->config['ldapQuotaDefault'] = \OCP\Config::getAppValue($this->configID, 'ldap_quota_def', '');
- $this->config['ldapEmailAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_email_attr', '');
- $this->config['ldapGroupMemberAssocAttr'] = \OCP\Config::getAppValue($this->configID, 'ldap_group_member_assoc_attribute', 'uniqueMember');
- $this->config['ldapIgnoreNamingRules'] = \OCP\Config::getSystemValue('ldapIgnoreNamingRules', false);
- $this->config['ldapCacheTTL'] = \OCP\Config::getAppValue($this->configID, 'ldap_cache_ttl', 10*60);
- $this->config['ldapUuidAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_uuid_attribute', 'auto');
- $this->config['ldapOverrideUuidAttribute'] = \OCP\Config::getAppValue($this->configID, 'ldap_override_uuid_attribute', 0);
- $this->config['homeFolderNamingRule'] = \OCP\Config::getAppValue($this->configID, 'home_folder_naming_rule', 'opt:username');
+ $defaults = $this->getDefaults();
+ $v = 'getValue';
+ $this->config['ldapHost'] = $this->$v('ldap_host');
+ $this->config['ldapBackupHost'] = $this->$v('ldap_backup_host');
+ $this->config['ldapPort'] = $this->$v('ldap_port');
+ $this->config['ldapBackupPort'] = $this->$v('ldap_backup_port');
+ $this->config['ldapOverrideMainServer']
+ = $this->$v('ldap_override_main_server');
+ $this->config['ldapAgentName'] = $this->$v('ldap_dn');
+ $this->config['ldapAgentPassword']
+ = base64_decode($this->$v('ldap_agent_password'));
+ $rawLdapBase = $this->$v('ldap_base');
+ $this->config['ldapBase']
+ = preg_split('/\r\n|\r|\n/', $rawLdapBase);
+ $this->config['ldapBaseUsers']
+ = preg_split('/\r\n|\r|\n/', ($this->$v('ldap_base_users')));
+ $this->config['ldapBaseGroups']
+ = preg_split('/\r\n|\r|\n/', $this->$v('ldap_base_groups'));
+ unset($rawLdapBase);
+ $this->config['ldapTLS'] = $this->$v('ldap_tls');
+ $this->config['ldapNoCase'] = $this->$v('ldap_nocase');
+ $this->config['turnOffCertCheck']
+ = $this->$v('ldap_turn_off_cert_check');
+ $this->config['ldapUserDisplayName']
+ = mb_strtolower($this->$v('ldap_display_name'),'UTF-8');
+ $this->config['ldapUserFilter']
+ = $this->$v('ldap_userlist_filter');
+ $this->config['ldapGroupFilter'] = $this->$v('ldap_group_filter');
+ $this->config['ldapLoginFilter'] = $this->$v('ldap_login_filter');
+ $this->config['ldapGroupDisplayName']
+ = mb_strtolower($this->$v('ldap_group_display_name'), 'UTF-8');
+ $this->config['ldapQuotaAttribute']
+ = $this->$v('ldap_quota_attr');
+ $this->config['ldapQuotaDefault']
+ = $this->$v('ldap_quota_def');
+ $this->config['ldapEmailAttribute']
+ = $this->$v('ldap_email_attr');
+ $this->config['ldapGroupMemberAssocAttr']
+ = $this->$v('ldap_group_member_assoc_attribute');
+ $this->config['ldapIgnoreNamingRules']
+ = \OCP\Config::getSystemValue('ldapIgnoreNamingRules', false);
+ $this->config['ldapCacheTTL'] = $this->$v('ldap_cache_ttl');
+ $this->config['ldapUuidAttribute']
+ = $this->$v('ldap_uuid_attribute');
+ $this->config['ldapOverrideUuidAttribute']
+ = $this->$v('ldap_override_uuid_attribute');
+ $this->config['homeFolderNamingRule']
+ = $this->$v('home_folder_naming_rule');
+ $this->config['ldapConfigurationActive']
+ = $this->$v('ldap_configuration_active');
+ $this->config['ldapAttributesForUserSearch']
+ = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_user_search'));
+ $this->config['ldapAttributesForGroupSearch']
+ = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_group_search'));
$this->configured = $this->validateConfiguration();
}
}
+ /**
+ * @return returns an array that maps internal variable names to database fields
+ */
+ private function getConfigTranslationArray() {
+ static $array = array('ldap_host'=>'ldapHost', 'ldap_port'=>'ldapPort', 'ldap_backup_host'=>'ldapBackupHost', 'ldap_backup_port'=>'ldapBackupPort', 'ldap_override_main_server' => 'ldapOverrideMainServer', 'ldap_dn'=>'ldapAgentName', 'ldap_agent_password'=>'ldapAgentPassword', 'ldap_base'=>'ldapBase', 'ldap_base_users'=>'ldapBaseUsers', 'ldap_base_groups'=>'ldapBaseGroups', 'ldap_userlist_filter'=>'ldapUserFilter', 'ldap_login_filter'=>'ldapLoginFilter', 'ldap_group_filter'=>'ldapGroupFilter', 'ldap_display_name'=>'ldapUserDisplayName', 'ldap_group_display_name'=>'ldapGroupDisplayName',
+
+ 'ldap_tls'=>'ldapTLS', 'ldap_nocase'=>'ldapNoCase', 'ldap_quota_def'=>'ldapQuotaDefault', 'ldap_quota_attr'=>'ldapQuotaAttribute', 'ldap_email_attr'=>'ldapEmailAttribute', 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', 'ldap_cache_ttl'=>'ldapCacheTTL', 'home_folder_naming_rule' => 'homeFolderNamingRule', 'ldap_turn_off_cert_check' => 'turnOffCertCheck', 'ldap_configuration_active' => 'ldapConfigurationActive', 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch');
+ return $array;
+ }
+
/**
* @brief set LDAP configuration with values delivered by an array, not read from configuration
* @param $config array that holds the config parameters in an associated array
@@ -223,9 +291,7 @@ class Connection {
return false;
}
- $params = array('ldap_host'=>'ldapHost', 'ldap_port'=>'ldapPort', 'ldap_dn'=>'ldapAgentName', 'ldap_agent_password'=>'ldapAgentPassword', 'ldap_base'=>'ldapBase', 'ldap_base_users'=>'ldapBaseUsers', 'ldap_base_groups'=>'ldapBaseGroups', 'ldap_userlist_filter'=>'ldapUserFilter', 'ldap_login_filter'=>'ldapLoginFilter', 'ldap_group_filter'=>'ldapGroupFilter', 'ldap_display_name'=>'ldapUserDisplayName', 'ldap_group_display_name'=>'ldapGroupDisplayName',
-
- 'ldap_tls'=>'ldapTLS', 'ldap_nocase'=>'ldapNoCase', 'ldap_quota_def'=>'ldapQuotaDefault', 'ldap_quota_attr'=>'ldapQuotaAttribute', 'ldap_email_attr'=>'ldapEmailAttribute', 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', 'ldap_cache_ttl'=>'ldapCacheTTL', 'home_folder_naming_rule' => 'homeFolderNamingRule');
+ $params = $this->getConfigTranslationArray();
foreach($config as $parameter => $value) {
if(isset($this->config[$parameter])) {
@@ -246,6 +312,71 @@ class Connection {
return $this->configured;
}
+ /**
+ * @brief saves the current Configuration in the database
+ */
+ public function saveConfiguration() {
+ $trans = array_flip($this->getConfigTranslationArray());
+ foreach($this->config as $key => $value) {
+ \OCP\Util::writeLog('user_ldap', 'LDAP: storing key '.$key.' value '.$value, \OCP\Util::DEBUG);
+ switch ($key) {
+ case 'ldapAgentPassword':
+ $value = base64_encode($value);
+ break;
+ case 'homeFolderNamingRule':
+ $value = empty($value) ? 'opt:username' : 'attr:'.$value;
+ break;
+ case 'ldapBase':
+ case 'ldapBaseUsers':
+ case 'ldapBaseGroups':
+ case 'ldapAttributesForUserSearch':
+ case 'ldapAttributesForGroupSearch':
+ if(is_array($value)){
+ $value = implode("\n", $value);
+ }
+ break;
+ case 'ldapIgnoreNamingRules':
+ case 'ldapOverrideUuidAttribute':
+ case 'ldapUuidAttribute':
+ case 'hasPagedResultSupport':
+ continue 2;
+ }
+ if(is_null($value)) {
+ $value = '';
+ }
+
+ $this->setValue($trans[$key], $value);
+ }
+ $this->clearCache();
+ }
+
+ /**
+ * @brief get the current LDAP configuration
+ * @return array
+ */
+ public function getConfiguration() {
+ $this->readConfiguration();
+ $trans = $this->getConfigTranslationArray();
+ $config = array();
+ foreach($trans as $dbKey => $classKey) {
+ if($classKey == 'homeFolderNamingRule') {
+ if(strpos($this->config[$classKey], 'opt') === 0) {
+ $config[$dbKey] = '';
+ } else {
+ $config[$dbKey] = substr($this->config[$classKey], 5);
+ }
+ continue;
+ } else if((strpos($classKey, 'ldapBase') !== false)
+ || (strpos($classKey, 'ldapAttributes') !== false)) {
+ $config[$dbKey] = implode("\n", $this->config[$classKey]);
+ continue;
+ }
+ $config[$dbKey] = $this->config[$classKey];
+ }
+
+ return $config;
+ }
+
/**
* @brief Validates the user specified configuration
* @returns true if configuration seems OK, false otherwise
@@ -264,9 +395,21 @@ class Connection {
\OCP\Util::writeLog('user_ldap', 'No group filter is specified, LDAP group feature will not be used.', \OCP\Util::INFO);
}
if(!in_array($this->config['ldapUuidAttribute'], array('auto', 'entryuuid', 'nsuniqueid', 'objectguid')) && (!is_null($this->configID))) {
- \OCP\Config::setAppValue($this->configID, 'ldap_uuid_attribute', 'auto');
+ \OCP\Config::setAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', 'auto');
\OCP\Util::writeLog('user_ldap', 'Illegal value for the UUID Attribute, reset to autodetect.', \OCP\Util::INFO);
}
+ if(empty($this->config['ldapBackupPort'])) {
+ //force default
+ $this->config['ldapBackupPort'] = $this->config['ldapPort'];
+ }
+ foreach(array('ldapAttributesForUserSearch', 'ldapAttributesForGroupSearch') as $key) {
+ if(is_array($this->config[$key])
+ && count($this->config[$key]) == 1
+ && empty($this->config[$key][0])) {
+ $this->config[$key] = array();
+ }
+ }
+
//second step: critical checks. If left empty or filled wrong, set as unconfigured and give a warning.
@@ -310,10 +453,51 @@ class Connection {
return $configurationOK;
}
+ /**
+ * @returns an associative array with the default values. Keys are correspond
+ * to config-value entries in the database table
+ */
+ public function getDefaults() {
+ return array(
+ 'ldap_host' => '',
+ 'ldap_port' => '389',
+ 'ldap_backup_host' => '',
+ 'ldap_backup_port' => '',
+ 'ldap_override_main_server' => '',
+ 'ldap_dn' => '',
+ 'ldap_agent_password' => '',
+ 'ldap_base' => '',
+ 'ldap_base_users' => '',
+ 'ldap_base_groups' => '',
+ 'ldap_userlist_filter' => 'objectClass=person',
+ 'ldap_login_filter' => 'uid=%uid',
+ 'ldap_group_filter' => 'objectClass=posixGroup',
+ 'ldap_display_name' => 'cn',
+ 'ldap_group_display_name' => 'cn',
+ 'ldap_tls' => 1,
+ 'ldap_nocase' => 0,
+ 'ldap_quota_def' => '',
+ 'ldap_quota_attr' => '',
+ 'ldap_email_attr' => '',
+ 'ldap_group_member_assoc_attribute' => 'uniqueMember',
+ 'ldap_cache_ttl' => 600,
+ 'ldap_uuid_attribute' => 'auto',
+ 'ldap_override_uuid_attribute' => 0,
+ 'home_folder_naming_rule' => 'opt:username',
+ 'ldap_turn_off_cert_check' => 0,
+ 'ldap_configuration_active' => 1,
+ 'ldap_attributes_for_user_search' => '',
+ 'ldap_attributes_for_group_search' => '',
+ );
+ }
+
/**
* Connects and Binds to LDAP
*/
private function establishConnection() {
+ if(!$this->config['ldapConfigurationActive']) {
+ return null;
+ }
static $phpLDAPinstalled = true;
if(!$phpLDAPinstalled) {
return false;
@@ -336,16 +520,40 @@ class Connection {
\OCP\Util::writeLog('user_ldap', 'Could not turn off SSL certificate validation.', \OCP\Util::WARN);
}
}
- $this->ldapConnectionRes = ldap_connect($this->config['ldapHost'], $this->config['ldapPort']);
- if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_PROTOCOL_VERSION, 3)) {
- if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_REFERRALS, 0)) {
- if($this->config['ldapTLS']) {
- ldap_start_tls($this->ldapConnectionRes);
- }
- }
+ if(!$this->config['ldapOverrideMainServer'] && !$this->getFromCache('overrideMainServer')) {
+ $this->doConnect($this->config['ldapHost'], $this->config['ldapPort']);
+ $bindStatus = $this->bind();
+ $error = ldap_errno($this->ldapConnectionRes);
+ } else {
+ $bindStatus = false;
+ $error = null;
}
- return $this->bind();
+ $error = null;
+ //if LDAP server is not reachable, try the Backup (Replica!) Server
+ if((!$bindStatus && ($error == -1))
+ || $this->config['ldapOverrideMainServer']
+ || $this->getFromCache('overrideMainServer')) {
+ $this->doConnect($this->config['ldapBackupHost'], $this->config['ldapBackupPort']);
+ $bindStatus = $this->bind();
+ if($bindStatus && $error == -1) {
+ //when bind to backup server succeeded and failed to main server,
+ //skip contacting him until next cache refresh
+ $this->writeToCache('overrideMainServer', true);
+ }
+ }
+ return $bindStatus;
+ }
+ }
+
+ private function doConnect($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)) {
+ if($this->config['ldapTLS']) {
+ ldap_start_tls($this->ldapConnectionRes);
+ }
+ }
}
}
@@ -353,6 +561,9 @@ class Connection {
* Binds to LDAP
*/
public function bind() {
+ if(!$this->config['ldapConfigurationActive']) {
+ return false;
+ }
$ldapLogin = @ldap_bind($this->getConnectionResource(), $this->config['ldapAgentName'], $this->config['ldapAgentPassword']);
if(!$ldapLogin) {
\OCP\Util::writeLog('user_ldap', 'Bind failed: ' . ldap_errno($this->ldapConnectionRes) . ': ' . ldap_error($this->ldapConnectionRes), \OCP\Util::ERROR);
diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php
new file mode 100644
index 0000000000..29ce998dae
--- /dev/null
+++ b/apps/user_ldap/lib/helper.php
@@ -0,0 +1,105 @@
+.
+ *
+ */
+
+namespace OCA\user_ldap\lib;
+
+class Helper {
+
+ /**
+ * @brief returns prefixes for each saved LDAP/AD server configuration.
+ * @param bool optional, whether only active configuration shall be
+ * retrieved, defaults to false
+ * @return array with a list of the available prefixes
+ *
+ * Configuration prefixes are used to set up configurations for n LDAP or
+ * AD servers. Since configuration is stored in the database, table
+ * appconfig under appid user_ldap, the common identifiers in column
+ * 'configkey' have a prefix. The prefix for the very first server
+ * configuration is empty.
+ * Configkey Examples:
+ * Server 1: ldap_login_filter
+ * Server 2: s1_ldap_login_filter
+ * Server 3: s2_ldap_login_filter
+ *
+ * The prefix needs to be passed to the constructor of Connection class,
+ * except the default (first) server shall be connected to.
+ *
+ */
+ static public function getServerConfigurationPrefixes($activeConfigurations = false) {
+ $referenceConfigkey = 'ldap_configuration_active';
+
+ $query = '
+ SELECT DISTINCT `configkey`
+ FROM `*PREFIX*appconfig`
+ WHERE `configkey` LIKE ?
+ ';
+ if($activeConfigurations) {
+ $query .= ' AND `configvalue` = 1';
+ }
+ $query = \OCP\DB::prepare($query);
+
+ $serverConfigs = $query->execute(array('%'.$referenceConfigkey))->fetchAll();
+ $prefixes = array();
+
+ foreach($serverConfigs as $serverConfig) {
+ $len = strlen($serverConfig['configkey']) - strlen($referenceConfigkey);
+ $prefixes[] = substr($serverConfig['configkey'], 0, $len);
+ }
+
+ return $prefixes;
+ }
+
+ /**
+ * @brief deletes a given saved LDAP/AD server configuration.
+ * @param string the configuration prefix of the config to delete
+ * @return bool true on success, false otherwise
+ */
+ static public function deleteServerConfiguration($prefix) {
+ //just to be on the safe side
+ \OCP\User::checkAdminUser();
+
+ if(!in_array($prefix, self::getServerConfigurationPrefixes())) {
+ return false;
+ }
+
+ $query = \OCP\DB::prepare('
+ DELETE
+ FROM `*PREFIX*appconfig`
+ WHERE `configkey` LIKE ?
+ AND `appid` = "user_ldap"
+ AND `configkey` NOT IN ("enabled", "installed_version", "types", "bgjUpdateGroupsLastRun")
+ ');
+ $res = $query->execute(array($prefix.'%'));
+
+ if(\OCP\DB::isError($res)) {
+ return false;
+ }
+
+ if($res->numRows() == 0) {
+ return false;
+ }
+
+ return true;
+ }
+}
+
diff --git a/apps/user_ldap/lib/proxy.php b/apps/user_ldap/lib/proxy.php
new file mode 100644
index 0000000000..c80e216347
--- /dev/null
+++ b/apps/user_ldap/lib/proxy.php
@@ -0,0 +1,104 @@
+.
+ *
+ */
+
+namespace OCA\user_ldap\lib;
+
+abstract class Proxy {
+ static private $connectors = array();
+
+ public function __construct() {
+ $this->cache = \OC_Cache::getGlobalCache();
+ }
+
+ private function addConnector($configPrefix) {
+ self::$connectors[$configPrefix] = new \OCA\user_ldap\lib\Connection($configPrefix);
+ }
+
+ protected function getConnector($configPrefix) {
+ if(!isset(self::$connectors[$configPrefix])) {
+ $this->addConnector($configPrefix);
+ }
+ return self::$connectors[$configPrefix];
+ }
+
+ protected function getConnectors() {
+ return self::$connectors;
+ }
+
+ protected function getUserCacheKey($uid) {
+ return 'user-'.$uid.'-lastSeenOn';
+ }
+
+ protected function getGroupCacheKey($gid) {
+ return 'group-'.$gid.'-lastSeenOn';
+ }
+
+ abstract protected function callOnLastSeenOn($id, $method, $parameters);
+ abstract protected function walkBackends($id, $method, $parameters);
+
+ /**
+ * @brief Takes care of the request to the User backend
+ * @param $uid string, the uid connected to the request
+ * @param $method string, the method of the user backend that shall be called
+ * @param $parameters an array of parameters to be passed
+ * @return mixed, the result of the specified method
+ */
+ protected function handleRequest($id, $method, $parameters) {
+ if(!$result = $this->callOnLastSeenOn($id, $method, $parameters)) {
+ $result = $this->walkBackends($id, $method, $parameters);
+ }
+ return $result;
+ }
+
+ private function getCacheKey($key) {
+ $prefix = 'LDAP-Proxy-';
+ if(is_null($key)) {
+ return $prefix;
+ }
+ return $prefix.md5($key);
+ }
+
+ public function getFromCache($key) {
+ if(!$this->isCached($key)) {
+ return null;
+ }
+ $key = $this->getCacheKey($key);
+
+ return unserialize(base64_decode($this->cache->get($key)));
+ }
+
+ public function isCached($key) {
+ $key = $this->getCacheKey($key);
+ return $this->cache->hasKey($key);
+ }
+
+ public function writeToCache($key, $value) {
+ $key = $this->getCacheKey($key);
+ $value = base64_encode(serialize($value));
+ $this->cache->set($key, $value, '2592000');
+ }
+
+ public function clearCache() {
+ $this->cache->clear($this->getCacheKey(null));
+ }
+}
\ No newline at end of file
diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php
index 58ec8e7f7a..d5d2f648b3 100644
--- a/apps/user_ldap/settings.php
+++ b/apps/user_ldap/settings.php
@@ -23,58 +23,46 @@
OC_Util::checkAdminUser();
-$params = array('ldap_host', 'ldap_port', 'ldap_dn', 'ldap_agent_password', 'ldap_base', 'ldap_base_users', 'ldap_base_groups', 'ldap_userlist_filter', 'ldap_login_filter', 'ldap_group_filter', 'ldap_display_name', 'ldap_group_display_name', 'ldap_tls', 'ldap_turn_off_cert_check', 'ldap_nocase', 'ldap_quota_def', 'ldap_quota_attr', 'ldap_email_attr', 'ldap_group_member_assoc_attribute', 'ldap_cache_ttl', 'home_folder_naming_rule');
+$params = array('ldap_host', 'ldap_port', 'ldap_backup_host',
+ 'ldap_backup_port', 'ldap_override_main_server', 'ldap_dn',
+ 'ldap_agent_password', 'ldap_base', 'ldap_base_users',
+ 'ldap_base_groups', 'ldap_userlist_filter',
+ 'ldap_login_filter', 'ldap_group_filter', 'ldap_display_name',
+ 'ldap_group_display_name', 'ldap_tls',
+ 'ldap_turn_off_cert_check', 'ldap_nocase', 'ldap_quota_def',
+ 'ldap_quota_attr', 'ldap_email_attr',
+ 'ldap_group_member_assoc_attribute', 'ldap_cache_ttl',
+ 'home_folder_naming_rule'
+ );
OCP\Util::addscript('user_ldap', 'settings');
OCP\Util::addstyle('user_ldap', 'settings');
-if ($_POST) {
- $clearCache = false;
- foreach($params as $param) {
- if(isset($_POST[$param])) {
- $clearCache = true;
- if('ldap_agent_password' == $param) {
- OCP\Config::setAppValue('user_ldap', $param, base64_encode($_POST[$param]));
- } elseif('home_folder_naming_rule' == $param) {
- $value = empty($_POST[$param]) ? 'opt:username' : 'attr:'.$_POST[$param];
- OCP\Config::setAppValue('user_ldap', $param, $value);
- } else {
- OCP\Config::setAppValue('user_ldap', $param, $_POST[$param]);
- }
- }
- elseif('ldap_tls' == $param) {
- // unchecked checkboxes are not included in the post paramters
- OCP\Config::setAppValue('user_ldap', $param, 0);
- }
- elseif('ldap_nocase' == $param) {
- OCP\Config::setAppValue('user_ldap', $param, 0);
- }
- elseif('ldap_turn_off_cert_check' == $param) {
- OCP\Config::setAppValue('user_ldap', $param, 0);
- }
- }
- if($clearCache) {
- $ldap = new \OCA\user_ldap\lib\Connection('user_ldap');
- $ldap->clearCache();
- }
-}
-
// fill template
-$tmpl = new OCP\Template( 'user_ldap', 'settings');
-foreach($params as $param) {
- $value = OCP\Config::getAppValue('user_ldap', $param, '');
- $tmpl->assign($param, $value);
+$tmpl = new OCP\Template('user_ldap', 'settings');
+
+$prefixes = \OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes();
+$scoHtml = '';
+$i = 1;
+$sel = ' selected';
+foreach($prefixes as $prefix) {
+ $scoHtml .= '';
+ $sel = '';
+}
+if(count($prefixes) == 0) {
+ $scoHtml .= '';
+}
+$tmpl->assign('serverConfigurationOptions', $scoHtml, false);
+
+// assign default values
+if(!isset($ldap)) {
+ $ldap = new \OCA\user_ldap\lib\Connection();
+}
+$defaults = $ldap->getDefaults();
+foreach($defaults as $key => $default) {
+ $tmpl->assign($key.'_default', $default);
}
-// settings with default values
-$tmpl->assign( 'ldap_port', OCP\Config::getAppValue('user_ldap', 'ldap_port', '389'));
-$tmpl->assign( 'ldap_display_name', OCP\Config::getAppValue('user_ldap', 'ldap_display_name', 'uid'));
-$tmpl->assign( 'ldap_group_display_name', OCP\Config::getAppValue('user_ldap', 'ldap_group_display_name', 'cn'));
-$tmpl->assign( 'ldap_group_member_assoc_attribute', OCP\Config::getAppValue('user_ldap', 'ldap_group_member_assoc_attribute', 'uniqueMember'));
-$tmpl->assign( 'ldap_agent_password', base64_decode(OCP\Config::getAppValue('user_ldap', 'ldap_agent_password')));
-$tmpl->assign( 'ldap_cache_ttl', OCP\Config::getAppValue('user_ldap', 'ldap_cache_ttl', '600'));
-$hfnr = OCP\Config::getAppValue('user_ldap', 'home_folder_naming_rule', 'opt:username');
-$hfnr = ($hfnr == 'opt:username') ? '' : substr($hfnr, strlen('attr:'));
-$tmpl->assign( 'home_folder_naming_rule', $hfnr, '');
+// $tmpl->assign();
return $tmpl->fetchPage();
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index b24c6e2f02..eb3840a611 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -12,31 +12,54 @@
}
?>
- t('Help');?>
+ t('Help');?>
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index b3180e1135..6aa8cd9b83 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -116,10 +116,9 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
if($limit <= 0) {
$limit = null;
}
- $search = empty($search) ? '*' : '*'.$search.'*';
$filter = $this->combineFilterWithAnd(array(
$this->connection->ldapUserFilter,
- $this->connection->ldapUserDisplayName.'='.$search
+ $this->getFilterPartForUserSearch($search)
));
\OCP\Util::writeLog('user_ldap', 'getUsers: Options: search '.$search.' limit '.$limit.' offset '.$offset.' Filter: '.$filter, \OCP\Util::DEBUG);
diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php
new file mode 100644
index 0000000000..a94be3354f
--- /dev/null
+++ b/apps/user_ldap/user_proxy.php
@@ -0,0 +1,186 @@
+.
+ *
+ */
+
+namespace OCA\user_ldap;
+
+class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
+ private $backends = array();
+ private $refBackend = null;
+
+ /**
+ * @brief Constructor
+ * @param $serverConfigPrefixes array containing the config Prefixes
+ */
+ public function __construct($serverConfigPrefixes) {
+ parent::__construct();
+ foreach($serverConfigPrefixes as $configPrefix) {
+ $this->backends[$configPrefix] = new \OCA\user_ldap\USER_LDAP();
+ $connector = $this->getConnector($configPrefix);
+ $this->backends[$configPrefix]->setConnector($connector);
+ if(is_null($this->refBackend)) {
+ $this->refBackend = &$this->backends[$configPrefix];
+ }
+ }
+ }
+
+ /**
+ * @brief Tries the backends one after the other until a positive result is returned from the specified method
+ * @param $uid string, the uid connected to the request
+ * @param $method string, the method of the user backend that shall be called
+ * @param $parameters an array of parameters to be passed
+ * @return mixed, the result of the method or false
+ */
+ protected function walkBackends($uid, $method, $parameters) {
+ $cacheKey = $this->getUserCacheKey($uid);
+ foreach($this->backends as $configPrefix => $backend) {
+ if($result = call_user_func_array(array($backend, $method), $parameters)) {
+ $this->writeToCache($cacheKey, $configPrefix);
+ return $result;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @brief Asks the backend connected to the server that supposely takes care of the uid from the request.
+ * @param $uid string, the uid connected to the request
+ * @param $method string, the method of the user backend that shall be called
+ * @param $parameters an array of parameters to be passed
+ * @return mixed, the result of the method or false
+ */
+ protected function callOnLastSeenOn($uid, $method, $parameters) {
+ $cacheKey = $this->getUserCacheKey($uid);
+ $prefix = $this->getFromCache($cacheKey);
+ //in case the uid has been found in the past, try this stored connection first
+ if(!is_null($prefix)) {
+ if(isset($this->backends[$prefix])) {
+ $result = call_user_func_array(array($this->backends[$prefix], $method), $parameters);
+ if(!$result) {
+ //not found here, reset cache to null
+ $this->writeToCache($cacheKey, null);
+ }
+ return $result;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @brief Check if backend implements actions
+ * @param $actions bitwise-or'ed actions
+ * @returns boolean
+ *
+ * Returns the supported actions as int to be
+ * compared with OC_USER_BACKEND_CREATE_USER etc.
+ */
+ public function implementsActions($actions) {
+ //it's the same across all our user backends obviously
+ return $this->refBackend->implementsActions($actions);
+ }
+
+ /**
+ * @brief Get a list of all users
+ * @returns array with all uids
+ *
+ * Get a list of all users.
+ */
+ public function getUsers($search = '', $limit = 10, $offset = 0) {
+ //we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends
+ $users = array();
+ foreach($this->backends as $backend) {
+ $backendUsers = $backend->getUsers($search, $limit, $offset);
+ if (is_array($backendUsers)) {
+ $users = array_merge($users, $backendUsers);
+ }
+ }
+ return $users;
+ }
+
+ /**
+ * @brief check if a user exists
+ * @param string $uid the username
+ * @return boolean
+ */
+ public function userExists($uid) {
+ return $this->handleRequest($uid, 'userExists', array($uid));
+ }
+
+ /**
+ * @brief Check if the password is correct
+ * @param $uid The username
+ * @param $password The password
+ * @returns true/false
+ *
+ * Check if the password is correct without logging in the user
+ */
+ public function checkPassword($uid, $password) {
+ return $this->handleRequest($uid, 'checkPassword', array($uid, $password));
+ }
+
+ /**
+ * @brief get the user's home directory
+ * @param string $uid the username
+ * @return boolean
+ */
+ public function getHome($uid) {
+ return $this->handleRequest($uid, 'getHome', array($uid));
+ }
+
+ /**
+ * @brief get display name of the user
+ * @param $uid user ID of the user
+ * @return display name
+ */
+ public function getDisplayName($uid) {
+ return $this->handleRequest($uid, 'getDisplayName', array($uid));
+ }
+
+ /**
+ * @brief Get a list of all display names
+ * @returns array with all displayNames (value) and the corresponding uids (key)
+ *
+ * Get a list of all display names and user ids.
+ */
+ public function getDisplayNames($search = '', $limit = null, $offset = null) {
+ //we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends
+ $users = array();
+ foreach($this->backends as $backend) {
+ $backendUsers = $backend->getDisplayNames($search, $limit, $offset);
+ if (is_array($backendUsers)) {
+ $users = array_merge($users, $backendUsers);
+ }
+ }
+ return $users;
+ }
+
+ /**
+ * @brief delete a user
+ * @param $uid The username of the user to delete
+ * @returns true/false
+ *
+ * Deletes a user
+ */
+ public function deleteUser($uid) {
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/apps/user_webdavauth/l10n/id.php b/apps/user_webdavauth/l10n/id.php
new file mode 100644
index 0000000000..4324ee8ff5
--- /dev/null
+++ b/apps/user_webdavauth/l10n/id.php
@@ -0,0 +1,5 @@
+ "Otentikasi WebDAV",
+"URL: http://" => "URL: http://",
+"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud akan mengirimkan informasi pengguna ke URL ini. Pengaya akan mengecek respon dan menginterpretasikan kode status HTTP 401 serta 403 sebagai informasi yang keliru, sedangkan respon lainnya dianggap benar."
+);
diff --git a/apps/user_webdavauth/l10n/lv.php b/apps/user_webdavauth/l10n/lv.php
new file mode 100644
index 0000000000..d0043df9f0
--- /dev/null
+++ b/apps/user_webdavauth/l10n/lv.php
@@ -0,0 +1,5 @@
+ "WebDAV autentifikācija",
+"URL: http://" => "URL: http://",
+"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud sūtīs lietotāja akreditācijas datus uz šo URL. Šis spraudnis pārbauda atbildi un interpretē HTTP statusa kodus 401 un 403 kā nederīgus akreditācijas datus un visas citas atbildes kā derīgus akreditācijas datus."
+);
diff --git a/apps/user_webdavauth/l10n/sr.php b/apps/user_webdavauth/l10n/sr.php
new file mode 100644
index 0000000000..518fcbe9be
--- /dev/null
+++ b/apps/user_webdavauth/l10n/sr.php
@@ -0,0 +1,5 @@
+ "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 ће послати акредитиве корисника на ову адресу. Овај прикључак проверава одговор и тумачи HTTP статусне кодове 401 и 403 као неисправне акредитиве, а све остале одговоре као исправне."
+);
diff --git a/apps/user_webdavauth/settings.php b/apps/user_webdavauth/settings.php
index 41d7fa51cd..7eabb0d48c 100755
--- a/apps/user_webdavauth/settings.php
+++ b/apps/user_webdavauth/settings.php
@@ -24,7 +24,9 @@
OC_Util::checkAdminUser();
if($_POST) {
-
+ // CSRF check
+ OCP\JSON::callCheck();
+
if(isset($_POST['webdav_url'])) {
OC_CONFIG::setValue('user_webdavauth_url', strip_tags($_POST['webdav_url']));
}
diff --git a/apps/user_webdavauth/templates/settings.php b/apps/user_webdavauth/templates/settings.php
index 880b77ac95..45f4d81aec 100755
--- a/apps/user_webdavauth/templates/settings.php
+++ b/apps/user_webdavauth/templates/settings.php
@@ -2,6 +2,7 @@
diff --git a/config/config.sample.php b/config/config.sample.php
index 05663a09a4..9ac39c439d 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -32,12 +32,21 @@ $CONFIG = array(
/* Force use of HTTPS connection (true = use HTTPS) */
"forcessl" => false,
+/* Blacklist a specific file and disallow the upload of files with this name - WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. */
+"blacklisted_files" => array('.htaccess'),
+
/* The automatic hostname detection of ownCloud can fail in certain reverse proxy situations. This option allows to manually override the automatic detection. You can also add a port. For example "www.example.com:88" */
"overwritehost" => "",
/* The automatic protocol detection of ownCloud can fail in certain reverse proxy situations. This option allows to manually override the protocol detection. For example "https" */
"overwriteprotocol" => "",
+/* The automatic webroot detection of ownCloud can fail in certain reverse proxy situations. This option allows to manually override the automatic detection. For example "/domain.tld/ownCloud" */
+"overwritewebroot" => "",
+
+/* The automatic detection of ownCloud can fail in certain reverse proxy situations. This option allows to define a manually override condition as regular expression for the remote ip address. For example "^10\.0\.0\.[1-3]$" */
+"overwritecondaddr" => "",
+
/* A proxy to use to connect to the internet. For example "myproxy.org:88" */
"proxy" => "",
@@ -124,7 +133,7 @@ $CONFIG = array(
"remember_login_cookie_lifetime" => 60*60*24*15,
/* Custom CSP policy, changing this will overwrite the standard policy */
-"custom_csp_policy" => "default-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *",
+"custom_csp_policy" => "default-src \'self\'; script-src \'self\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:",
/* The directory where the user data is stored, default to data in the owncloud
* directory. The sqlite database is also stored here, when sqlite is used.
diff --git a/core/css/styles.css b/core/css/styles.css
index d82bdd2db4..19cfad7626 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -16,8 +16,8 @@ body { background:#fefefe; font:normal .8em/1.6em "Lucida Grande", Arial, Verdan
/* HEADERS */
-#body-user #header, #body-settings #header { position:fixed; top:0; left:0; right:0; z-index:100; height:2.5em; line-height:2.5em; padding:.5em; background:#1d2d44; -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; }
-#body-login #header { margin:-2em auto 0; text-align:center; height:10em; padding:1em 0 .5em;
+#body-user #header, #body-settings #header { position:fixed; top:0; left:0; right:0; z-index:100; height:45px; line-height:2.5em; background:#1d2d44; -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; }
+#body-login #header { margin: -2em auto 0; text-align:center; height:10em; padding:1em 0 .5em;
-moz-box-shadow:0 0 1em rgba(0, 0, 0, .5); -webkit-box-shadow:0 0 1em rgba(0, 0, 0, .5); box-shadow:0 0 1em rgba(0, 0, 0, .5);
background:#1d2d44; /* Old browsers */
background:-moz-linear-gradient(top, #35537a 0%, #1d2d42 100%); /* FF3.6+ */
@@ -28,7 +28,7 @@ background:-ms-linear-gradient(top, #35537a 0%,#1d2d42 100%); /* IE10+ */
background:linear-gradient(top, #35537a 0%,#1d2d42 100%); /* W3C */
filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', endColorstr='#1d2d42',GradientType=0 ); /* IE6-9 */ }
-#owncloud { float:left; vertical-align:middle; }
+#owncloud { position:absolute; top:0; left:0; padding:6px; padding-bottom:0; }
.header-right { float:right; vertical-align:middle; padding:0 0.5em; }
.header-right > * { vertical-align:middle; }
@@ -53,6 +53,31 @@ input[type="checkbox"]:hover+label, input[type="checkbox"]:focus+label { color:#
#quota { cursor:default; }
+/* SCROLLING */
+::-webkit-scrollbar { width:8px; }
+::-webkit-scrollbar-track-piece { background-color:transparent; }
+::-webkit-scrollbar-thumb { background:#ddd; }
+
+
+#show { float: right; position: absolute; right: 1em; top: 0.8em; display:none; }
+#login form input[name="show"] + label { background: url("../img/actions/toggle.png") no-repeat; opacity:0.3;
+float: right; width: 24px; position: absolute !important; height: 14px; right: 1em; top: 1.25em;}
+#login form input[name="show"]:checked + label { background:url("../img/actions/toggle.png") no-repeat; opacity:0.8; }
+
+
+
+/* SHOW PASSWORD TOGGLE */
+#show {
+ position:absolute; right:1em; top:.8em; float:right;
+ display:none;
+}
+#login form input[name="show"] + label {
+ position:absolute !important; height:14px; width:24px; right:1em; top:1.25em; float:right;
+ background-image:url("../img/actions/toggle.png"); background-repeat:no-repeat; opacity:.3;
+}
+#login form input[name="show"]:checked + label { opacity:.8; }
+
+
/* BUTTONS */
input[type="submit"], input[type="button"], button, .button, #quota, div.jp-progress, select, .pager li a {
width:auto; padding:.4em;
@@ -89,21 +114,30 @@ input[type="submit"] img, input[type="button"] img, button img, .button img { cu
#body-login input[type="text"], #body-login input[type="password"] { width:13em; }
#body-login input.login { width:auto; float:right; }
#remember_login { margin:.8em .2em 0 1em; }
-.searchbox input[type="search"] { font-size:1.2em; padding:.2em .5em .2em 1.5em; background:#fff url('../img/actions/search.svg') no-repeat .5em center; border:0; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em; -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; }
+.searchbox input[type="search"] { font-size:1.2em; padding:.2em .5em .2em 1.5em; background:#fff url('../img/actions/search.svg') no-repeat .5em center; border:0; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em; -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; margin-top:10px; float:right; }
input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; }
#select_all{ margin-top:.4em !important;}
+
/* CONTENT ------------------------------------------------------------------ */
#controls { padding:0 0.5em; width:100%; top:3.5em; height:2.8em; margin:0; background:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:50; -moz-box-shadow:0 -3px 7px #000; -webkit-box-shadow:0 -3px 7px #000; box-shadow:0 -3px 7px #000; }
#controls .button { display:inline-block; }
-#content { height: 100%; width: 100%; position: relative; }
-#content-wrapper { height: 100%; width: 100%; padding-top: 3.5em; padding-left: 12.5em; box-sizing: border-box; -moz-box-sizing: border-box; position: absolute;}
-#leftcontent, .leftcontent { position:fixed; top: 0; overflow:auto; width:20em; background:#f8f8f8; border-right:1px solid #ddd; box-sizing: border-box; -moz-box-sizing: border-box; height: 100%; padding-top: 6.4em }
+
+#content { position:relative; height:100%; width:100%; }
+#content-wrapper {
+ position:absolute; height:100%; width:100%; padding-top:3.5em; padding-left:64px;
+ -moz-box-sizing:border-box; box-sizing:border-box;
+}
+#leftcontent, .leftcontent {
+ position:fixed; overflow:auto; top:0; width:20em; height:100%;
+ background:#f8f8f8; border-right:1px solid #ddd;
+ -moz-box-sizing:border-box; box-sizing:border-box; padding-top:6.4em;
+}
#leftcontent li, .leftcontent li { background:#f8f8f8; padding:.5em .8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -webkit-transition:background-color 200ms; -moz-transition:background-color 200ms; -o-transition:background-color 200ms; transition:background-color 200ms; }
#leftcontent li:hover, #leftcontent li:active, #leftcontent li.active, .leftcontent li:hover, .leftcontent li:active, .leftcontent li.active { background:#eee; }
#leftcontent li.active, .leftcontent li.active { font-weight:bold; }
#leftcontent li:hover, .leftcontent li:hover { color:#333; background:#ddd; }
#leftcontent a { height:100%; display:block; margin:0; padding:0 1em 0 0; float:left; }
-#rightcontent, .rightcontent { position:fixed; top:6.4em; left:32.5em; overflow:auto }
+#rightcontent, .rightcontent { position:fixed; top:6.4em; left:24.5em; overflow:auto }
/* LOG IN & INSTALLATION ------------------------------------------------------------ */
@@ -127,12 +161,13 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b
/* Icons for username and password fields to better recognize them */
#adminlogin, #adminpass, #user, #password { width:11.7em!important; padding-left:1.8em; }
-#adminlogin+label, #adminpass+label, #user+label, #password+label { left:2.2em; }
#adminlogin+label+img, #adminpass+label+img, #user+label+img, #password+label+img {
position:absolute; left:1.25em; top:1.65em;
opacity:.3;
}
#adminpass+label+img, #password+label+img { top:1.1em; }
+input[name="password-clone"] { padding-left:1.8em; width:11.7em !important; }
+#pass_image { position: absolute; top: 1.2em; left: 1.4em; opacity: 0.3; }
/* Nicely grouping input field sets */
@@ -156,7 +191,7 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b
/* NEEDED FOR INFIELD LABELS */
p.infield { position:relative; }
label.infield { cursor:text !important; top:1.05em; left:.85em; }
-#login form label.infield { position:absolute; font-size:19px; color:#aaa; white-space:nowrap; }
+#login form label.infield { position:absolute; font-size:19px; color:#aaa; white-space:nowrap; padding-left:1.2em; }
#login form input[type="checkbox"]+label { position:relative; margin:0; font-size:1em; text-shadow:#fff 0 1px 0; }
#login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; }
@@ -178,14 +213,37 @@ fieldset.warning legend { color:#b94a48 !important; }
/* NAVIGATION ------------------------------------------------------------- */
-#navigation { position:fixed; top:3.5em; float:left; width:12.5em; padding:0; z-index:75; height:100%; background:#eee; border-right:1px #ccc solid; -moz-box-shadow:-3px 0 7px #000; -webkit-box-shadow:-3px 0 7px #000; box-shadow:-3px 0 7px #000; overflow:hidden;}
-#navigation a { display:block; padding:.6em .5em .4em 2.5em; background:#eee 1em center no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; }
-#navigation a.active, #navigation a:hover, #navigation a:focus { background-color:#dbdbdb; border-top:1px solid #d4d4d4; border-bottom:1px solid #ccc; color:#333; }
-#navigation a.active { background-color:#ddd; }
-#navigation #settings { position:absolute; bottom:3.5em; width:100%; }
-#expand { position:relative; z-index:100; margin-bottom:-.5em; padding:.5em 10.1em .7em 1.2em; cursor:pointer; }
-#expand+span { position:absolute; z-index:99; margin:-1.7em 0 0 2.5em; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; -webkit-transition:opacity 300ms; -moz-transition:opacity 300ms; -o-transition:opacity 300ms; transition:opacity 300ms; }
-#expand:hover+span, #expand+span:hover { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; cursor:pointer; }
+#navigation {
+ position:fixed; top:3.5em; float:left; width:64px; padding:0; z-index:75; height:100%;
+ background:#30343a url('../img/noise.png') repeat; border-right:1px #333 solid;
+ -moz-box-shadow:0 0 7px #000; -webkit-box-shadow:0 0 7px #000; box-shadow:0 0 7px #000;
+ overflow-x:scroll;
+}
+#navigation a {
+ display:block; padding:8px 0 4px;
+ text-decoration:none; font-size:10px; text-align:center;
+ color:#fff; text-shadow:#000 0 -1px 0; opacity:.4;
+ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; // ellipsize long app names
+}
+ #navigation a:hover, #navigation a:focus { opacity:.8; }
+ #navigation a.active { opacity:1; }
+ #navigation .icon { display:block; width:32px; height:32px; margin:0 16px 0; }
+ #navigation .enabled-app:hover, #navigation .enabled-app:focus { opacity:1; }
+ #navigation .enabled-app img { opacity:0.3; cursor:pointer;}
+ #navigation .enabled-app a {padding:4px 0 4px; }
+ #navigation .enabled-app:hover a, #navigation .enabled-app:focus a {opacity:0.8; }
+ #navigation .enabled-app:hover img, #navigation .enabled-app:focus img {opacity:0.8; }
+ #navigation li:first-child a { padding-top:16px; }
+#settings { float:right; margin-top:7px; color:#bbb; text-shadow:0 -1px 0 #000; }
+#expand { padding:15px; cursor:pointer; font-weight:bold; }
+#expand:hover, #expand:focus, #expand:active { color:#fff; }
+#expand img { opacity:.7; margin-bottom:-2px; }
+#expand:hover img, #expand:focus img, #expand:active img { opacity:1; }
+#expanddiv { position:absolute; right:0; top:45px; background-color:#444; border-bottom-left-radius:7px; box-shadow: 0 0 20px rgb(29,45,68); z-index:76; }
+ #expanddiv a { display:block; color:#fff; text-shadow:0 -1px 0 #000; padding:0 8px; opacity:.7; }
+ #expanddiv a img { margin-bottom:-3px; }
+ #expanddiv a:hover, #expanddiv a:focus, #expanddiv a:active { opacity:1; }
+
/* VARIOUS REUSABLE SELECTORS */
.hidden { display:none; }
@@ -260,6 +318,7 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin
.arrow.down { -webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); -o-transform:rotate(180deg); -ms-transform:rotate(180deg); transform:rotate(180deg); }
/* ---- BREADCRUMB ---- */
-div.crumb { float:left; display:block; background:no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; }
-div.crumb:first-child { padding-left:1em; }
-div.crumb.last { font-weight:bold; }
+div.crumb { float:left; display:block; background:url('../img/breadcrumb.svg') no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; }
+div.crumb:first-child { padding:10px 20px 10px 5px; }
+div.crumb.last { font-weight:bold; background:none; padding-right:10px; }
+div.crumb a{ padding: 0.9em 0 0.7em 0; }
diff --git a/core/img/actions/caret.png b/core/img/actions/caret.png
new file mode 100644
index 0000000000..e0ae969a94
Binary files /dev/null and b/core/img/actions/caret.png differ
diff --git a/core/img/actions/caret.svg b/core/img/actions/caret.svg
new file mode 100644
index 0000000000..7bb0c59cde
--- /dev/null
+++ b/core/img/actions/caret.svg
@@ -0,0 +1,112 @@
+
+
+
+
diff --git a/core/img/actions/logout.png b/core/img/actions/logout.png
index 37f62543ac..e2f4b7af12 100644
Binary files a/core/img/actions/logout.png and b/core/img/actions/logout.png differ
diff --git a/core/img/actions/logout.svg b/core/img/actions/logout.svg
index 0281fad43e..e5edc24895 100644
--- a/core/img/actions/logout.svg
+++ b/core/img/actions/logout.svg
@@ -33,7 +33,7 @@
id="namedview3047"
showgrid="false"
inkscape:zoom="25.279067"
- inkscape:cx="5.0341304"
+ inkscape:cx="-1.6512429"
inkscape:cy="6.4537904"
inkscape:window-x="0"
inkscape:window-y="27"
@@ -47,7 +47,7 @@
image/svg+xml
-
+
@@ -163,15 +163,16 @@
x2="8.4964771"
y2="15.216674" />
+
-
diff --git a/core/img/actions/toggle.png b/core/img/actions/toggle.png
new file mode 100644
index 0000000000..6ef3f2227b
Binary files /dev/null and b/core/img/actions/toggle.png differ
diff --git a/core/img/actions/toggle.svg b/core/img/actions/toggle.svg
new file mode 100644
index 0000000000..82a5171477
--- /dev/null
+++ b/core/img/actions/toggle.svg
@@ -0,0 +1,61 @@
+
+
+
+
\ No newline at end of file
diff --git a/core/img/noise.png b/core/img/noise.png
new file mode 100644
index 0000000000..8fdda17b5e
Binary files /dev/null and b/core/img/noise.png differ
diff --git a/core/img/places/files.png b/core/img/places/files.png
new file mode 100644
index 0000000000..9c7ff2642f
Binary files /dev/null and b/core/img/places/files.png differ
diff --git a/core/img/places/files.svg b/core/img/places/files.svg
new file mode 100644
index 0000000000..8ebf861f6d
--- /dev/null
+++ b/core/img/places/files.svg
@@ -0,0 +1,128 @@
+
+
+
+
diff --git a/core/img/places/home.png b/core/img/places/home.png
index c3dbd3e353..2945b84e86 100644
Binary files a/core/img/places/home.png and b/core/img/places/home.png differ
diff --git a/core/img/places/home.svg b/core/img/places/home.svg
index 4b45ef12bc..a836a5999f 100644
--- a/core/img/places/home.svg
+++ b/core/img/places/home.svg
@@ -14,9 +14,9 @@
width="16"
height="16"
id="svg11300"
- inkscape:version="0.48.1 r9760"
- sodipodi:docname="help.svg"
- inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/help.png"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="home.svg"
+ inkscape:export-filename="home.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
image/svg+xml
-
+
@@ -41,16 +41,16 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
- inkscape:window-height="776"
+ inkscape:window-height="773"
id="namedview24"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
- inkscape:zoom="22.627418"
- inkscape:cx="14.025105"
- inkscape:cy="9.2202448"
+ inkscape:zoom="16.000001"
+ inkscape:cx="2.7409248"
+ inkscape:cy="8.4568105"
inkscape:window-x="0"
- inkscape:window-y="24"
+ inkscape:window-y="-1"
inkscape:window-maximized="1"
inkscape:current-layer="g4146">
+
+
+
+
+
+
+
+
-
-
-
-
+
diff --git a/core/img/places/music.png b/core/img/places/music.png
index 85ee2474cd..5b71e19ee3 100644
Binary files a/core/img/places/music.png and b/core/img/places/music.png differ
diff --git a/core/img/places/music.svg b/core/img/places/music.svg
index 1f39766097..e8f91f4616 100644
--- a/core/img/places/music.svg
+++ b/core/img/places/music.svg
@@ -7,1664 +7,67 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- version="1.0"
- width="16"
- height="16"
- id="svg11300"
- inkscape:version="0.48.1 r9760"
- sodipodi:docname="search.svg"
- inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/search.png"
+ width="32"
+ height="32"
+ id="svg4375"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="music.svg"
+ inkscape:export-filename="music.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
+
+
+ id="metadata4380">
image/svg+xml
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(581.71429,-2.0764682)">
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
diff --git a/core/img/places/picture.png b/core/img/places/picture.png
index 9abcd09722..a278240a6d 100644
Binary files a/core/img/places/picture.png and b/core/img/places/picture.png differ
diff --git a/core/img/places/picture.svg b/core/img/places/picture.svg
index 26c3d6312c..aba68e6206 100644
--- a/core/img/places/picture.svg
+++ b/core/img/places/picture.svg
@@ -7,1691 +7,69 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- version="1.0"
- width="16"
- height="16"
- id="svg11300"
- inkscape:version="0.48.1 r9760"
- sodipodi:docname="audio.svg"
- inkscape:export-filename="/home/jancborchardt/jancborchardt/ownCloud/icons/audio.png"
+ width="32"
+ height="32"
+ id="svg4375"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="picture.svg"
+ inkscape:export-filename="picture.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
+
+
+ id="metadata4380">
image/svg+xml
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(581.71429,-2.0764682)">
+
+
diff --git a/core/js/js.js b/core/js/js.js
index 01e47edf26..6b0c289850 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -354,7 +354,6 @@ OC.Breadcrumb={
}
var crumb=$('');
crumb.addClass('crumb').addClass('last');
- crumb.attr('style','background-image:url("'+OC.imagePath('core','breadcrumb')+'")');
var crumbLink=$('');
crumbLink.attr('href',link);
@@ -547,7 +546,6 @@ function object(o) {
return new F();
}
-
/**
* Fills height of window. (more precise than height: 100%;)
*/
@@ -624,6 +622,7 @@ $(document).ready(function(){
});
// 'show password' checkbox
+ $('#password').showPassword();
$('#pass2').showPassword();
//use infield labels
@@ -664,14 +663,13 @@ $(document).ready(function(){
event.stopPropagation();
});
$(window).click(function(){//hide the settings menu when clicking outside it
- if($('body').attr("id")==="body-user"){
- $('#settings #expanddiv').slideUp();
- }
+ $('#settings #expanddiv').slideUp();
});
// all the tipsy stuff needs to be here (in reverse order) to work
$('.jp-controls .jp-previous').tipsy({gravity:'nw', fade:true, live:true});
$('.jp-controls .jp-next').tipsy({gravity:'n', fade:true, live:true});
+ $('.displayName .action').tipsy({gravity:'se', fade:true, live:true});
$('.password .action').tipsy({gravity:'se', fade:true, live:true});
$('#upload').tipsy({gravity:'w', fade:true});
$('.selectedActions a').tipsy({gravity:'s', fade:true, live:true});
diff --git a/core/js/oc-vcategories.js b/core/js/oc-vcategories.js
index 609703f2cc..3e75767c49 100644
--- a/core/js/oc-vcategories.js
+++ b/core/js/oc-vcategories.js
@@ -50,7 +50,7 @@ var OCCategories= {
$('#category_dialog').remove();
},
open : function(event, ui) {
- $('#category_addinput').live('input',function() {
+ $('#category_addinput').on('input',function() {
if($(this).val().length > 0) {
$('#category_addbutton').removeAttr('disabled');
}
@@ -61,7 +61,7 @@ var OCCategories= {
$('#category_addbutton').attr('disabled', 'disabled');
return false;
});
- $('#category_addbutton').live('click',function(e) {
+ $('#category_addbutton').on('click',function(e) {
e.preventDefault();
if($('#category_addinput').val().length > 0) {
OCCategories.add($('#category_addinput').val());
diff --git a/core/js/share.js b/core/js/share.js
index 0c45765bd8..6ad4130690 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -410,7 +410,7 @@ $(document).ready(function() {
firstDay: firstDay
});
}
- $('a.share').live('click', function(event) {
+ $('#fileList').on('click', 'a.share', function(event) {
event.stopPropagation();
if ($(this).data('item-type') !== undefined && $(this).data('item') !== undefined) {
var itemType = $(this).data('item-type');
@@ -444,12 +444,12 @@ $(document).ready(function() {
}
});
- $('#shareWithList li').live('mouseenter', function(event) {
+ $('#fileList').on('mouseenter', '#dropdown #shareWithList li', function(event) {
// Show permissions and unshare button
$(':hidden', this).filter(':not(.cruds)').show();
});
- $('#shareWithList li').live('mouseleave', function(event) {
+ $('#fileList').on('mouseleave', '#dropdown #shareWithList li', function(event) {
// Hide permissions and unshare button
if (!$('.cruds', this).is(':visible')) {
$('a', this).hide();
@@ -462,11 +462,11 @@ $(document).ready(function() {
}
});
- $('.showCruds').live('click', function() {
+ $('#fileList').on('click', '#dropdown .showCruds', function() {
$(this).parent().find('.cruds').toggle();
});
- $('.unshare').live('click', function() {
+ $('#fileList').on('click', '#dropdown .unshare', function() {
var li = $(this).parent();
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
@@ -483,7 +483,7 @@ $(document).ready(function() {
});
});
- $('.permissions').live('change', function() {
+ $('#fileList').on('change', '#dropdown .permissions', function() {
if ($(this).attr('name') == 'edit') {
var li = $(this).parent().parent()
var checkboxes = $('.permissions', li);
@@ -510,7 +510,7 @@ $(document).ready(function() {
OC.Share.setPermissions($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), $(li).data('share-type'), $(li).data('share-with'), permissions);
});
- $('#linkCheckbox').live('change', function() {
+ $('#fileList').on('change', '#dropdown #linkCheckbox', function() {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
if (this.checked) {
@@ -532,12 +532,12 @@ $(document).ready(function() {
}
});
- $('#linkText').live('click', function() {
+ $('#fileList').on('click', '#dropdown #linkText', function() {
$(this).focus();
$(this).select();
});
- $('#showPassword').live('click', function() {
+ $('#fileList').on('click', '#dropdown #showPassword', function() {
$('#linkPass').toggle('blind');
if (!$('#showPassword').is(':checked') ) {
var itemType = $('#dropdown').data('item-type');
@@ -548,7 +548,7 @@ $(document).ready(function() {
}
});
- $('#linkPassText').live('focusout keyup', function(event) {
+ $('#fileList').on('focusout keyup', '#dropdown #linkPassText', function(event) {
if ( $('#linkPassText').val() != '' && (event.type == 'focusout' || event.keyCode == 13) ) {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
@@ -560,7 +560,7 @@ $(document).ready(function() {
}
});
- $('#expirationCheckbox').live('click', function() {
+ $('#fileList').on('click', '#dropdown #expirationCheckbox', function() {
if (this.checked) {
OC.Share.showExpirationDate('');
} else {
@@ -575,7 +575,7 @@ $(document).ready(function() {
}
});
- $('#expirationDate').live('change', function() {
+ $('#fileList').on('change', '#dropdown #expirationDate', function() {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
$.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: $(this).val() }, function(result) {
@@ -586,7 +586,7 @@ $(document).ready(function() {
});
- $('#emailPrivateLink').live('submit', function(event) {
+ $('#fileList').on('submit', '#dropdown #emailPrivateLink', function(event) {
event.preventDefault();
var link = $('#linkText').val();
var itemType = $('#dropdown').data('item-type');
diff --git a/core/l10n/af_ZA.php b/core/l10n/af_ZA.php
new file mode 100644
index 0000000000..f5f27d2af5
--- /dev/null
+++ b/core/l10n/af_ZA.php
@@ -0,0 +1,33 @@
+ "Instellings",
+"Password" => "Wagwoord",
+"Use the following link to reset your password: {link}" => "Gebruik die volgende skakel om jou wagwoord te herstel: {link}",
+"You will receive a link to reset your password via Email." => "Jy sal `n skakel via e-pos ontvang om jou wagwoord te herstel.",
+"Username" => "Gebruikersnaam",
+"Request reset" => "Herstel-versoek",
+"Your password was reset" => "Jou wagwoord is herstel",
+"To login page" => "Na aanteken-bladsy",
+"New password" => "Nuwe wagwoord",
+"Reset password" => "Herstel wagwoord",
+"Personal" => "Persoonlik",
+"Users" => "Gebruikers",
+"Apps" => "Toepassings",
+"Admin" => "Admin",
+"Help" => "Hulp",
+"Cloud not found" => "Wolk nie gevind",
+"Create an admin account" => "Skep `n admin-rekening",
+"Advanced" => "Gevorderd",
+"Configure the database" => "Stel databasis op",
+"will be used" => "sal gebruik word",
+"Database user" => "Databasis-gebruiker",
+"Database password" => "Databasis-wagwoord",
+"Database name" => "Databasis naam",
+"Finish setup" => "Maak opstelling klaar",
+"web services under your control" => "webdienste onder jou beheer",
+"Log out" => "Teken uit",
+"Lost your password?" => "Jou wagwoord verloor?",
+"remember" => "onthou",
+"Log in" => "Teken aan",
+"prev" => "vorige",
+"next" => "volgende"
+);
diff --git a/core/l10n/bn_BD.php b/core/l10n/bn_BD.php
index d698f47015..deac6afa35 100644
--- a/core/l10n/bn_BD.php
+++ b/core/l10n/bn_BD.php
@@ -54,6 +54,7 @@
"The app name is not specified." => "অ্যাপের নামটি সুনির্দিষ্ট নয়।",
"The required file {file} is not installed!" => "আবশ্যিক {file} টি সংস্থাপিত নেই !",
"Share" => "ভাগাভাগি কর",
+"Shared" => "ভাগাভাগিকৃত",
"Error while sharing" => "ভাগাভাগি করতে সমস্যা দেখা দিয়েছে ",
"Error while unsharing" => "ভাগাভাগি বাতিল করতে সমস্যা দেখা দিয়েছে",
"Error while changing permissions" => "অনুমতিসমূহ পরিবর্তন করতে সমস্যা দেখা দিয়েছে",
diff --git a/core/l10n/de.php b/core/l10n/de.php
index 358e8e3e75..bc7a7dada1 100644
--- a/core/l10n/de.php
+++ b/core/l10n/de.php
@@ -54,6 +54,7 @@
"The app name is not specified." => "Der App-Name ist nicht angegeben.",
"The required file {file} is not installed!" => "Die benötigte Datei {file} ist nicht installiert.",
"Share" => "Freigeben",
+"Shared" => "Freigegeben",
"Error while sharing" => "Fehler beim Freigeben",
"Error while unsharing" => "Fehler beim Aufheben der Freigabe",
"Error while changing permissions" => "Fehler beim Ändern der Rechte",
@@ -83,7 +84,7 @@
"Error setting expiration date" => "Fehler beim Setzen des Ablaufdatums",
"Sending ..." => "Sende ...",
"Email sent" => "E-Mail wurde verschickt",
-"The update was unsuccessful. Please report this issue to the ownCloud community." => "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Gemeinschaft.",
+"The update was unsuccessful. Please report this issue to the ownCloud community." => "Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die ownCloud Community.",
"The update was successful. Redirecting you to ownCloud now." => "Das Update war erfolgreich. Sie werden nun zu ownCloud weitergeleitet.",
"ownCloud password reset" => "ownCloud-Passwort zurücksetzen",
"Use the following link to reset your password: {link}" => "Nutze den nachfolgenden Link, um Dein Passwort zurückzusetzen: {link}",
diff --git a/core/l10n/fa.php b/core/l10n/fa.php
index 6f1f65bd34..359eddb73e 100644
--- a/core/l10n/fa.php
+++ b/core/l10n/fa.php
@@ -102,6 +102,7 @@
"Add" => "افزودن",
"Security Warning" => "اخطار امنیتی",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "هیچ مولد تصادفی امن در دسترس نیست، لطفا فرمت PHP OpenSSL را فعال نمایید.",
+"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "بدون وجود یک تولید کننده اعداد تصادفی امن ، یک مهاجم ممکن است این قابلیت را داشته باشد که پیشگویی کند پسوورد های راه انداز گرفته شده و کنترلی روی حساب کاربری شما داشته باشد .",
"Create an admin account" => "لطفا یک شناسه برای مدیر بسازید",
"Advanced" => "حرفه ای",
"Data folder" => "پوشه اطلاعاتی",
diff --git a/core/l10n/fr.php b/core/l10n/fr.php
index 202203753d..e3b7083652 100644
--- a/core/l10n/fr.php
+++ b/core/l10n/fr.php
@@ -54,6 +54,7 @@
"The app name is not specified." => "Le nom de l'application n'est pas spécifié.",
"The required file {file} is not installed!" => "Le fichier requis {file} n'est pas installé !",
"Share" => "Partager",
+"Shared" => "Partagé",
"Error while sharing" => "Erreur lors de la mise en partage",
"Error while unsharing" => "Erreur lors de l'annulation du partage",
"Error while changing permissions" => "Erreur lors du changement des permissions",
diff --git a/core/l10n/lv.php b/core/l10n/lv.php
index dd63ab6c90..a145c50464 100644
--- a/core/l10n/lv.php
+++ b/core/l10n/lv.php
@@ -1,4 +1,16 @@
"Lietotājs %s ar jums dalījās ar datni.",
+"User %s shared a folder with you" => "Lietotājs %s ar jums dalījās ar mapi.",
+"User %s shared the file \"%s\" with you. It is available for download here: %s" => "Lietotājs %s ar jums dalījās ar datni “%s”. To var lejupielādēt šeit — %s",
+"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Lietotājs %s ar jums dalījās ar mapi “%s”. To var lejupielādēt šeit — %s",
+"Category type not provided." => "Kategorijas tips nav norādīts.",
+"No category to add?" => "Nav kategoriju, ko pievienot?",
+"This category already exists: " => "Šāda kategorija jau eksistē:",
+"Object type not provided." => "Objekta tips nav norādīts.",
+"%s ID not provided." => "%s ID nav norādīts.",
+"Error adding %s to favorites." => "Kļūda, pievienojot %s izlasei.",
+"No categories selected for deletion." => "Neviena kategorija nav izvēlēta dzēšanai",
+"Error removing %s from favorites." => "Kļūda, izņemot %s no izlases.",
"Sunday" => "Svētdiena",
"Monday" => "Pirmdiena",
"Tuesday" => "Otrdiena",
@@ -19,13 +31,66 @@
"November" => "Novembris",
"December" => "Decembris",
"Settings" => "Iestatījumi",
+"seconds ago" => "sekundes atpakaļ",
+"1 minute ago" => "pirms 1 minūtes",
+"{minutes} minutes ago" => "pirms {minutes} minūtēm",
+"1 hour ago" => "pirms 1 stundas",
+"{hours} hours ago" => "pirms {hours} stundām",
+"today" => "šodien",
+"yesterday" => "vakar",
+"{days} days ago" => "pirms {days} dienām",
+"last month" => "pagājušajā mēnesī",
+"{months} months ago" => "pirms {months} mēnešiem",
+"months ago" => "mēnešus atpakaļ",
+"last year" => "gājušajā gadā",
+"years ago" => "gadus atpakaļ",
+"Choose" => "Izvēlieties",
"Cancel" => "Atcelt",
-"Error" => "Kļūme",
-"Share" => "Līdzdalīt",
+"No" => "Nē",
+"Yes" => "Jā",
+"Ok" => "Labi",
+"The object type is not specified." => "Nav norādīts objekta tips.",
+"Error" => "Kļūda",
+"The app name is not specified." => "Nav norādīts lietotnes nosaukums.",
+"The required file {file} is not installed!" => "Pieprasītā datne {file} nav instalēta!",
+"Share" => "Dalīties",
+"Shared" => "Kopīgs",
+"Error while sharing" => "Kļūda, daloties",
+"Error while unsharing" => "Kļūda, beidzot dalīties",
+"Error while changing permissions" => "Kļūda, mainot atļaujas",
+"Shared with you and the group {group} by {owner}" => "{owner} dalījās ar jums un grupu {group}",
+"Shared with you by {owner}" => "{owner} dalījās ar jums",
+"Share with" => "Dalīties ar",
+"Share with link" => "Dalīties ar saiti",
+"Password protect" => "Aizsargāt ar paroli",
"Password" => "Parole",
-"Unshare" => "Pārtraukt līdzdalīšanu",
-"Use the following link to reset your password: {link}" => "Izmantojiet šo linku lai mainītu paroli",
+"Email link to person" => "Sūtīt saiti personai pa e-pastu",
+"Send" => "Sūtīt",
+"Set expiration date" => "Iestaties termiņa datumu",
+"Expiration date" => "Termiņa datums",
+"Share via email:" => "Dalīties, izmantojot e-pastu:",
+"No people found" => "Nav atrastu cilvēku",
+"Resharing is not allowed" => "Atkārtota dalīšanās nav atļauta",
+"Shared in {item} with {user}" => "Dalījās ar {item} ar {user}",
+"Unshare" => "Beigt dalīties",
+"can edit" => "var rediģēt",
+"access control" => "piekļuves vadība",
+"create" => "izveidot",
+"update" => "atjaunināt",
+"delete" => "dzēst",
+"share" => "dalīties",
+"Password protected" => "Aizsargāts ar paroli",
+"Error unsetting expiration date" => "Kļūda, noņemot termiņa datumu",
+"Error setting expiration date" => "Kļūda, iestatot termiņa datumu",
+"Sending ..." => "Sūta...",
+"Email sent" => "Vēstule nosūtīta",
+"The update was unsuccessful. Please report this issue to the ownCloud community." => "Atjaunināšana beidzās nesekmīgi. Lūdzu, ziņojiet par šo problēmu ownCloud kopienai.",
+"The update was successful. Redirecting you to ownCloud now." => "Atjaunināšana beidzās sekmīgi. Tagad pārsūta jūs uz ownCloud.",
+"ownCloud password reset" => "ownCloud paroles maiņa",
+"Use the following link to reset your password: {link}" => "Izmantojiet šo saiti, lai mainītu paroli: {link}",
"You will receive a link to reset your password via Email." => "Jūs savā epastā saņemsiet interneta saiti, caur kuru varēsiet atjaunot paroli.",
+"Reset email send." => "Atstatīt e-pasta sūtīšanu.",
+"Request failed!" => "Pieprasījums neizdevās!",
"Username" => "Lietotājvārds",
"Request reset" => "Pieprasīt paroles maiņu",
"Your password was reset" => "Jūsu parole tika nomainīta",
@@ -34,23 +99,37 @@
"Reset password" => "Mainīt paroli",
"Personal" => "Personīgi",
"Users" => "Lietotāji",
-"Apps" => "Aplikācijas",
+"Apps" => "Lietotnes",
"Admin" => "Administrators",
"Help" => "Palīdzība",
+"Access forbidden" => "Pieeja ir liegta",
"Cloud not found" => "Mākonis netika atrasts",
+"Edit categories" => "Rediģēt kategoriju",
+"Add" => "Pievienot",
"Security Warning" => "Brīdinājums par drošību",
+"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Nav pieejams drošs nejaušu skaitļu ģenerators. Lūdzu, aktivējiet PHP OpenSSL paplašinājumu.",
+"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Bez droša nejaušu skaitļu ģeneratora uzbrucējs var paredzēt paroļu atjaunošanas marķierus un pārņem jūsu kontu.",
+"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Jūsu datu direktorija un datnes visdrīzāk ir pieejamas no interneta. ownCloud nodrošinātā .htaccess datne nedarbojas. Mēs iesakām konfigurēt serveri tā, lai datu direktorija vairs nebūtu pieejama, vai arī pārvietojiet datu direktoriju ārpus tīmekļa servera dokumentu saknes.",
+"Create an admin account" => "Izveidot administratora kontu",
+"Advanced" => "Paplašināti",
"Data folder" => "Datu mape",
-"Configure the database" => "Nokonfigurēt datubāzi",
+"Configure the database" => "Konfigurēt datubāzi",
"will be used" => "tiks izmantots",
"Database user" => "Datubāzes lietotājs",
"Database password" => "Datubāzes parole",
"Database name" => "Datubāzes nosaukums",
-"Database host" => "Datubāzes mājvieta",
-"Finish setup" => "Pabeigt uzstādījumus",
-"Log out" => "Izlogoties",
+"Database tablespace" => "Datubāzes tabulas telpa",
+"Database host" => "Datubāzes serveris",
+"Finish setup" => "Pabeigt iestatīšanu",
+"web services under your control" => "jūsu vadībā esošie tīmekļa servisi",
+"Log out" => "Izrakstīties",
+"Automatic logon rejected!" => "Automātiskā ierakstīšanās ir noraidīta!",
+"If you did not change your password recently, your account may be compromised!" => "Ja neesat pēdējā laikā mainījis paroli, iespējams, ka jūsu konts ir kompromitēts.",
+"Please change your password to secure your account again." => "Lūdzu, nomainiet savu paroli, lai atkal nodrošinātu savu kontu.",
"Lost your password?" => "Aizmirsāt paroli?",
"remember" => "atcerēties",
-"Log in" => "Ielogoties",
+"Log in" => "Ierakstīties",
"prev" => "iepriekšējā",
-"next" => "nākamā"
+"next" => "nākamā",
+"Updating ownCloud to version %s, this may take a while." => "Atjaunina ownCloud uz versiju %s. Tas var aizņemt kādu laiciņu."
);
diff --git a/core/l10n/nl.php b/core/l10n/nl.php
index 91ab7827fd..aca9b11cd1 100644
--- a/core/l10n/nl.php
+++ b/core/l10n/nl.php
@@ -54,6 +54,7 @@
"The app name is not specified." => "De app naam is niet gespecificeerd.",
"The required file {file} is not installed!" => "Het vereiste bestand {file} is niet geïnstalleerd!",
"Share" => "Delen",
+"Shared" => "Gedeeld",
"Error while sharing" => "Fout tijdens het delen",
"Error while unsharing" => "Fout tijdens het stoppen met delen",
"Error while changing permissions" => "Fout tijdens het veranderen van permissies",
@@ -83,6 +84,8 @@
"Error setting expiration date" => "Fout tijdens het instellen van de vervaldatum",
"Sending ..." => "Versturen ...",
"Email sent" => "E-mail verzonden",
+"The update was unsuccessful. Please report this issue to the ownCloud community." => "De update is niet geslaagd. Meld dit probleem aan bij de ownCloud community.",
+"The update was successful. Redirecting you to ownCloud now." => "De update is geslaagd. U wordt teruggeleid naar uw eigen ownCloud.",
"ownCloud password reset" => "ownCloud wachtwoord herstellen",
"Use the following link to reset your password: {link}" => "Gebruik de volgende link om je wachtwoord te resetten: {link}",
"You will receive a link to reset your password via Email." => "U ontvangt een link om uw wachtwoord opnieuw in te stellen via e-mail.",
diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php
index 7e00ac6e2d..ffab0bb956 100644
--- a/core/l10n/th_TH.php
+++ b/core/l10n/th_TH.php
@@ -54,6 +54,7 @@
"The app name is not specified." => "ชื่อของแอปยังไม่ได้รับการระบุชื่อ",
"The required file {file} is not installed!" => "ไฟล์ {file} ซึ่งเป็นไฟล์ที่จำเป็นต้องได้รับการติดตั้งไว้ก่อน ยังไม่ได้ถูกติดตั้ง",
"Share" => "แชร์",
+"Shared" => "แชร์แล้ว",
"Error while sharing" => "เกิดข้อผิดพลาดในระหว่างการแชร์ข้อมูล",
"Error while unsharing" => "เกิดข้อผิดพลาดในการยกเลิกการแชร์ข้อมูล",
"Error while changing permissions" => "เกิดข้อผิดพลาดในการเปลี่ยนสิทธิ์การเข้าใช้งาน",
diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php
index 74cb3b34d0..35183194d2 100644
--- a/core/l10n/zh_TW.php
+++ b/core/l10n/zh_TW.php
@@ -54,6 +54,7 @@
"The app name is not specified." => "沒有指定 app 名稱。",
"The required file {file} is not installed!" => "沒有安裝所需的檔案 {file} !",
"Share" => "分享",
+"Shared" => "已分享",
"Error while sharing" => "分享時發生錯誤",
"Error while unsharing" => "取消分享時發生錯誤",
"Error while changing permissions" => "修改權限時發生錯誤",
@@ -83,6 +84,8 @@
"Error setting expiration date" => "錯誤的到期日設定",
"Sending ..." => "正在寄出...",
"Email sent" => "Email 已寄出",
+"The update was unsuccessful. Please report this issue to the ownCloud community." => "升級失敗,請將此問題回報 ownCloud 社群。",
+"The update was successful. Redirecting you to ownCloud now." => "升級成功,正將您重新導向至 ownCloud 。",
"ownCloud password reset" => "ownCloud 密碼重設",
"Use the following link to reset your password: {link}" => "請循以下聯結重設你的密碼: {link}",
"You will receive a link to reset your password via Email." => "重設密碼的連結將會寄到你的電子郵件信箱。",
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 2886c3c5a2..de505486f7 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -29,8 +29,30 @@