From a1e703424e1108fbd64f17a274b241dd1fafaa43 Mon Sep 17 00:00:00 2001
From: "Cristian G. Segarra" <cristian@segarra.com.ar>
Date: Tue, 31 May 2016 12:23:07 -0300
Subject: [PATCH 001/313] FIX #3939: Import TXT resource records with
 semicolons and respecting it's case

---
 interface/web/dns/dns_import.php | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php
index 2e4d58e192..bd8cc84f36 100644
--- a/interface/web/dns/dns_import.php
+++ b/interface/web/dns/dns_import.php
@@ -216,7 +216,7 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'
 		$line = trim($line);
 		if ($line != '' && substr($line, 0, 1) != ';'){
 			if(strpos($line, ";") !== FALSE) {
-				if (!preg_match("/v=DKIM|v=DMARC/",$line)) {
+				if(!preg_match("/\"[^\"]+;[^\"]*\"/", $line)) {
 					$line = substr($line, 0, strpos($line, ";"));
 				}
 			}
@@ -267,12 +267,13 @@ if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'
 		$parts = explode(' ', $line);
 
 		// make elements lowercase
-		$dkim=@($parts[3]=='"v=DKIM1;')?true:false;
-		$dmarc=@($parts[3]=='"v=DMARC1;')?true:false;
-
 		$new_parts = array();
 		foreach($parts as $part){
-			if(!$dkim && !$dmarc) {
+		if(
+			(strpos($part, ';') === false) &&
+			(!preg_match("/^\"/", $part)) &&
+			(!preg_match("/\"$/", $part))
+		) {
 				$new_parts[] = strtolower($part);
 			} else {
 				$new_parts[] = $part;
-- 
GitLab


From 0dfb2d97da6b25c20c8de3d766c81077837f7387 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Mon, 6 Jun 2016 17:39:15 +0200
Subject: [PATCH 002/313] - changed fpm socket group to fix access privilegue
 problems (does not decrease security!)

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 server/plugins-available/nginx_plugin.inc.php   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 2b4b8cc8c4..676339934a 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -3149,7 +3149,7 @@ class apache2_plugin {
 		$tpl->setVar('fpm_pool', $pool_name);
 		$tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1);
 		$tpl->setVar('fpm_user', $data['new']['system_user']);
-		$tpl->setVar('fpm_group', $data['new']['system_group']);
+		$tpl->setVar('fpm_group', $web_config['group']);
 		$tpl->setVar('fpm_domain', $data['new']['domain']);
 		$tpl->setVar('pm', $data['new']['pm']);
 		$tpl->setVar('pm_max_children', $data['new']['pm_max_children']);
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 6e960ca0be..b2262b00d3 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -2764,7 +2764,7 @@ class nginx_plugin {
 		$tpl->setVar('fpm_pool', $pool_name);
 		$tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1);
 		$tpl->setVar('fpm_user', $data['new']['system_user']);
-		$tpl->setVar('fpm_group', $data['new']['system_group']);
+		$tpl->setVar('fpm_group', $web_config['group']);
 		$tpl->setVar('pm', $data['new']['pm']);
 		$tpl->setVar('pm_max_children', $data['new']['pm_max_children']);
 		$tpl->setVar('pm_start_servers', $data['new']['pm_start_servers']);
-- 
GitLab


From e96469ee75009e67b46c031d161ac95776faed00 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 10 Jun 2016 05:49:29 -0400
Subject: [PATCH 003/313] cosmetical fix for db-quota

---
 interface/web/sites/database_quota_stats.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php
index 5e95fdcaf8..8ed724f97a 100644
--- a/interface/web/sites/database_quota_stats.php
+++ b/interface/web/sites/database_quota_stats.php
@@ -80,6 +80,8 @@ class list_action extends listform_actions {
 			$client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", $sys_group['client_id']);
 			$rec['client'] = $client['username'];
 			$rec['used'] = 'n/a';
+			if (empty($rec['database_quota'])) $rec['database_quota'] = 0;
+			$rec['quota'] = $rec['database_quota'];
 			$rec['quota'] = 'n/a';
 		}
 		$rec['id'] = $rec[$this->idx_key];
-- 
GitLab


From a35e4c34aa8930aaff6528552dc97600637c9abe Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 10 Jun 2016 05:50:41 -0400
Subject: [PATCH 004/313] fix last commit

---
 interface/web/sites/database_quota_stats.php | 1 -
 1 file changed, 1 deletion(-)

diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php
index 8ed724f97a..7164d85d0a 100644
--- a/interface/web/sites/database_quota_stats.php
+++ b/interface/web/sites/database_quota_stats.php
@@ -82,7 +82,6 @@ class list_action extends listform_actions {
 			$rec['used'] = 'n/a';
 			if (empty($rec['database_quota'])) $rec['database_quota'] = 0;
 			$rec['quota'] = $rec['database_quota'];
-			$rec['quota'] = 'n/a';
 		}
 		$rec['id'] = $rec[$this->idx_key];
 
-- 
GitLab


From db7e71b34fadb036a4eddb8277d84f31a27969d7 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 10 Jun 2016 06:00:42 -0400
Subject: [PATCH 005/313] Fixes #3943

---
 interface/web/mail/xmpp_domain_edit.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/mail/xmpp_domain_edit.php b/interface/web/mail/xmpp_domain_edit.php
index b5858e01ef..869f88c11d 100644
--- a/interface/web/mail/xmpp_domain_edit.php
+++ b/interface/web/mail/xmpp_domain_edit.php
@@ -402,7 +402,7 @@ class page_action extends tform_actions {
         //    $this->desyncMailusers($this->dataRecord['domain']);
         // Update DNS Records
         // TODO: Update gets only triggered from main form. WHY?
-        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND  = ?", $this->dataRecord['domain'].'.');
+        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND  origin = ?", $this->dataRecord['domain'].'.');
         if ( isset($soa) && !empty($soa) ) $this->update_dns($this->dataRecord, $soa);
 	}
 
-- 
GitLab


From 1af0f8349dfd8befa2a8daa4b27c107b470eb851 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 10 Jun 2016 06:39:06 -0400
Subject: [PATCH 006/313] show error-message when a client / reseller change
 the ip for a domain that was created by the admin

---
 interface/web/sites/web_vhost_domain_edit.php | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 647061e734..2b1c0ebf59 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -1460,9 +1460,13 @@ class page_action extends tform_actions {
 					$this->dataRecord["domain"] = $rec['domain'];
 				}
 				if(isset($this->dataRecord["ip_address"]) && $rec['ip_address'] != $this->dataRecord["ip_address"] && $rec['sys_perm_group'] != 'riud') {
+					//* Add a error message and switch back to old server
+					$app->tform->errorMessage .= $app->lng('The IP can not be changed. Please ask your Administrator if you want to change the IPv4-Address.');
 					$this->dataRecord["ip_address"] = $rec['ip_address'];
 				}
 				if(isset($this->dataRecord["ipv6_address"]) && $rec['ipv6_address'] != $this->dataRecord["ipv6_address"] && $rec['sys_perm_group'] != 'riud') {
+					//* Add a error message and switch back to old server
+					$app->tform->errorMessage .= $app->lng('The IP can not be changed. Please ask your Administrator if you want to change the IPv6-Address.');
 					$this->dataRecord["ipv6_address"] = $rec['ipv6_address'];
 				}
 				unset($rec);
-- 
GitLab


From 701f4d81bf0e2ec0e25b8b6adb03345636e9f450 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Mon, 13 Jun 2016 07:34:59 -0400
Subject: [PATCH 007/313] Fixes #3961

---
 interface/web/tools/lib/lang/ar_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/bg_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/br_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/ca_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/cz_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/de_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/el_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/en_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/es_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/fi_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/fr_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/hr_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/hu_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/id_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/it_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/ja_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/nl_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/pl_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/pt_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/ro_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/ru_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/se_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/sk_usersettings.lng | 2 +-
 interface/web/tools/lib/lang/tr_usersettings.lng | 2 +-
 24 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/interface/web/tools/lib/lang/ar_usersettings.lng b/interface/web/tools/lib/lang/ar_usersettings.lng
index a1f3bd2ab9..4ac506ab77 100644
--- a/interface/web/tools/lib/lang/ar_usersettings.lng
+++ b/interface/web/tools/lib/lang/ar_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Password';
+$wb['password_txt'] = 'Password';
 $wb['password_strength_txt'] = 'Password strength';
 $wb['language_txt'] = 'Language';
 $wb['password_mismatch'] = 'The password in the second password field does not match the first password.';
diff --git a/interface/web/tools/lib/lang/bg_usersettings.lng b/interface/web/tools/lib/lang/bg_usersettings.lng
index b8e6a8695d..838053f563 100644
--- a/interface/web/tools/lib/lang/bg_usersettings.lng
+++ b/interface/web/tools/lib/lang/bg_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Парола';
+$wb['password_txt'] = 'Парола';
 $wb['password_strength_txt'] = 'Сила на паролата';
 $wb['language_txt'] = 'Език';
 $wb['password_mismatch'] = 'Паролите в двете полета не съвпадат.';
diff --git a/interface/web/tools/lib/lang/br_usersettings.lng b/interface/web/tools/lib/lang/br_usersettings.lng
index cf4242dc4a..41de1002fe 100644
--- a/interface/web/tools/lib/lang/br_usersettings.lng
+++ b/interface/web/tools/lib/lang/br_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Senha';
+$wb['password_txt'] = 'Senha';
 $wb['password_strength_txt'] = 'Segurança de Senha';
 $wb['language_txt'] = 'Idioma';
 $wb['password_mismatch'] = 'As senhas não conhecidem';
diff --git a/interface/web/tools/lib/lang/ca_usersettings.lng b/interface/web/tools/lib/lang/ca_usersettings.lng
index 85c8e75473..fa40272aa0 100644
--- a/interface/web/tools/lib/lang/ca_usersettings.lng
+++ b/interface/web/tools/lib/lang/ca_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Mot de passe';
+$wb['password_txt'] = 'Mot de passe';
 $wb['password_strength_txt'] = 'Force du mot de passe';
 $wb['language_txt'] = 'Langue';
 $wb['password_mismatch'] = 'Le mot de passe de confirmation ne correspond avec le premier.';
diff --git a/interface/web/tools/lib/lang/cz_usersettings.lng b/interface/web/tools/lib/lang/cz_usersettings.lng
index dec46b7a06..98dd4ed8e7 100644
--- a/interface/web/tools/lib/lang/cz_usersettings.lng
+++ b/interface/web/tools/lib/lang/cz_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Heslo';
+$wb['password_txt'] = 'Heslo';
 $wb['password_strength_txt'] = 'Bezpečnost hesla';
 $wb['language_txt'] = 'Jazyk';
 $wb['password_mismatch'] = 'Hesla se neshodují.';
diff --git a/interface/web/tools/lib/lang/de_usersettings.lng b/interface/web/tools/lib/lang/de_usersettings.lng
index 908bbf6d5b..c643d38ff4 100644
--- a/interface/web/tools/lib/lang/de_usersettings.lng
+++ b/interface/web/tools/lib/lang/de_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Passwort';
+$wb['password_txt'] = 'Passwort';
 $wb['language_txt'] = 'Sprache';
 $wb['password_mismatch'] = 'Die Passwörter stimmen nicht überein.';
 $wb['password_strength_txt'] = 'Passwortkomplexität';
diff --git a/interface/web/tools/lib/lang/el_usersettings.lng b/interface/web/tools/lib/lang/el_usersettings.lng
index d2321b04bc..57e8bcb17a 100644
--- a/interface/web/tools/lib/lang/el_usersettings.lng
+++ b/interface/web/tools/lib/lang/el_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Συνθηματικό';
+$wb['password_txt'] = 'Συνθηματικό';
 $wb['password_strength_txt'] = 'Δύναμη συνθηματικού';
 $wb['language_txt'] = 'Γλώσσα';
 $wb['password_mismatch'] = 'Το συνθηματικό στο δεύτερο πεδίο δεν ταιριάζει με το συνθηματικό στο πρώτο πεδίο.';
diff --git a/interface/web/tools/lib/lang/en_usersettings.lng b/interface/web/tools/lib/lang/en_usersettings.lng
index efbe6c38df..e882321058 100644
--- a/interface/web/tools/lib/lang/en_usersettings.lng
+++ b/interface/web/tools/lib/lang/en_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb["passwort_txt"] = 'Password';
+$wb["password_txt"] = 'Password';
 $wb["password_strength_txt"] = 'Password strength';
 $wb["language_txt"] = 'Language';
 $wb["password_mismatch"] = 'The password in the second password field does not match the first password.';
diff --git a/interface/web/tools/lib/lang/es_usersettings.lng b/interface/web/tools/lib/lang/es_usersettings.lng
index c9bc3dbf84..9b2de57bfb 100644
--- a/interface/web/tools/lib/lang/es_usersettings.lng
+++ b/interface/web/tools/lib/lang/es_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Contraseña';
+$wb['password_txt'] = 'Contraseña';
 $wb['password_strength_txt'] = 'Fortaleza de la contraseña';
 $wb['language_txt'] = 'Idioma';
 $wb['password_mismatch'] = 'La contraseña del primer y segundo campo no coinciden.';
diff --git a/interface/web/tools/lib/lang/fi_usersettings.lng b/interface/web/tools/lib/lang/fi_usersettings.lng
index c869888d7d..8267c8117a 100755
--- a/interface/web/tools/lib/lang/fi_usersettings.lng
+++ b/interface/web/tools/lib/lang/fi_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Salasana';
+$wb['password_txt'] = 'Salasana';
 $wb['language_txt'] = 'Kieli';
 $wb['password_mismatch'] = 'Salasanat eivät täsmää.';
 $wb['password_strength_txt'] = 'Salasanan vahvuus';
diff --git a/interface/web/tools/lib/lang/fr_usersettings.lng b/interface/web/tools/lib/lang/fr_usersettings.lng
index fda69f9c76..c93a2443c4 100644
--- a/interface/web/tools/lib/lang/fr_usersettings.lng
+++ b/interface/web/tools/lib/lang/fr_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Mot de passe';
+$wb['password_txt'] = 'Mot de passe';
 $wb['password_strength_txt'] = 'Force du mot de passe';
 $wb['language_txt'] = 'Langue';
 $wb['password_mismatch'] = 'Le mot de passe de confirmation ne correspond avec le premier.';
diff --git a/interface/web/tools/lib/lang/hr_usersettings.lng b/interface/web/tools/lib/lang/hr_usersettings.lng
index 64b33d5923..50759d4883 100644
--- a/interface/web/tools/lib/lang/hr_usersettings.lng
+++ b/interface/web/tools/lib/lang/hr_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Å ifra';
+$wb['password_txt'] = 'Å ifra';
 $wb['password_strength_txt'] = 'Jačina šifre';
 $wb['language_txt'] = 'Jezik';
 $wb['password_mismatch'] = 'Šifra u drugom polju ne odgovara šifri iz prvog polja.';
diff --git a/interface/web/tools/lib/lang/hu_usersettings.lng b/interface/web/tools/lib/lang/hu_usersettings.lng
index 51fe50ec0c..49aa75537f 100644
--- a/interface/web/tools/lib/lang/hu_usersettings.lng
+++ b/interface/web/tools/lib/lang/hu_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Jelszó';
+$wb['password_txt'] = 'Jelszó';
 $wb['language_txt'] = 'Nyelv';
 $wb['password_mismatch'] = 'Jelszavak nem egyeznek meg.';
 $wb['Form to edit the user password and language.'] = 'Jelszó, nyelv és hitelesítés beállító oldal.';
diff --git a/interface/web/tools/lib/lang/id_usersettings.lng b/interface/web/tools/lib/lang/id_usersettings.lng
index 19ecb549b4..7b1bc225ca 100644
--- a/interface/web/tools/lib/lang/id_usersettings.lng
+++ b/interface/web/tools/lib/lang/id_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Kata Sandi';
+$wb['password_txt'] = 'Kata Sandi';
 $wb['password_strength_txt'] = 'Kekuatan Sandi';
 $wb['language_txt'] = 'Bahasa';
 $wb['password_mismatch'] = 'Kata sandi di kolom kata sandi kedua tidak cocok dengan kata sandi pertama.';
diff --git a/interface/web/tools/lib/lang/it_usersettings.lng b/interface/web/tools/lib/lang/it_usersettings.lng
index 6e671a3bb4..e75e8d28d2 100644
--- a/interface/web/tools/lib/lang/it_usersettings.lng
+++ b/interface/web/tools/lib/lang/it_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Password';
+$wb['password_txt'] = 'Password';
 $wb['language_txt'] = 'Lingua';
 $wb['password_mismatch'] = 'Il secondo campo password non corrisponde con il primo.';
 $wb['Form to edit the user password and language.'] = 'Form per modificare la password e la lingua dellutente.';
diff --git a/interface/web/tools/lib/lang/ja_usersettings.lng b/interface/web/tools/lib/lang/ja_usersettings.lng
index e4b4a4ceab..443a451054 100644
--- a/interface/web/tools/lib/lang/ja_usersettings.lng
+++ b/interface/web/tools/lib/lang/ja_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'パスワード';
+$wb['password_txt'] = 'パスワード';
 $wb['password_strength_txt'] = 'パスワードの強度';
 $wb['language_txt'] = '言語';
 $wb['password_mismatch'] = 'パスワードの1つめの欄と2つめの欄が一致していません。';
diff --git a/interface/web/tools/lib/lang/nl_usersettings.lng b/interface/web/tools/lib/lang/nl_usersettings.lng
index ec8be959bc..0a95f7ffa9 100644
--- a/interface/web/tools/lib/lang/nl_usersettings.lng
+++ b/interface/web/tools/lib/lang/nl_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Wachtwoord';
+$wb['password_txt'] = 'Wachtwoord';
 $wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['language_txt'] = 'Taal';
 $wb['password_mismatch'] = 'De door u ingevulde wachtwoorden komen niet overeen.';
diff --git a/interface/web/tools/lib/lang/pl_usersettings.lng b/interface/web/tools/lib/lang/pl_usersettings.lng
index addd42b34e..45081f681b 100644
--- a/interface/web/tools/lib/lang/pl_usersettings.lng
+++ b/interface/web/tools/lib/lang/pl_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Hasło';
+$wb['password_txt'] = 'Hasło';
 $wb['password_strength_txt'] = 'Siła hasła';
 $wb['language_txt'] = 'Język';
 $wb['password_mismatch'] = 'Hasła nie pasują do siebie.';
diff --git a/interface/web/tools/lib/lang/pt_usersettings.lng b/interface/web/tools/lib/lang/pt_usersettings.lng
index b622c66487..81fd824d30 100644
--- a/interface/web/tools/lib/lang/pt_usersettings.lng
+++ b/interface/web/tools/lib/lang/pt_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Senha';
+$wb['password_txt'] = 'Senha';
 $wb['password_strength_txt'] = 'Segurança de Senha';
 $wb['language_txt'] = 'Idioma';
 $wb['password_mismatch'] = 'As senhas não coincidem';
diff --git a/interface/web/tools/lib/lang/ro_usersettings.lng b/interface/web/tools/lib/lang/ro_usersettings.lng
index c0d3724598..fae890fab6 100644
--- a/interface/web/tools/lib/lang/ro_usersettings.lng
+++ b/interface/web/tools/lib/lang/ro_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Password';
+$wb['password_txt'] = 'Password';
 $wb['password_strength_txt'] = 'Password strength';
 $wb['language_txt'] = 'Limba';
 $wb['password_mismatch'] = 'Parola in al doilea camp nu coincide cu primul.';
diff --git a/interface/web/tools/lib/lang/ru_usersettings.lng b/interface/web/tools/lib/lang/ru_usersettings.lng
index a26c04831e..ba6784d8bd 100644
--- a/interface/web/tools/lib/lang/ru_usersettings.lng
+++ b/interface/web/tools/lib/lang/ru_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Пароль';
+$wb['password_txt'] = 'Пароль';
 $wb['password_strength_txt'] = 'Сложность пароля';
 $wb['language_txt'] = 'Язык';
 $wb['password_mismatch'] = 'Введенные пароли не совпадают.';
diff --git a/interface/web/tools/lib/lang/se_usersettings.lng b/interface/web/tools/lib/lang/se_usersettings.lng
index f7e05e913c..4461fff496 100644
--- a/interface/web/tools/lib/lang/se_usersettings.lng
+++ b/interface/web/tools/lib/lang/se_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Lösenord';
+$wb['password_txt'] = 'Lösenord';
 $wb['password_strength_txt'] = 'Lösenordsstyrka';
 $wb['language_txt'] = 'Språk';
 $wb['password_mismatch'] = 'The password in the second password field does not match the first password.';
diff --git a/interface/web/tools/lib/lang/sk_usersettings.lng b/interface/web/tools/lib/lang/sk_usersettings.lng
index 5545950890..4c8bcb900e 100644
--- a/interface/web/tools/lib/lang/sk_usersettings.lng
+++ b/interface/web/tools/lib/lang/sk_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Heslo';
+$wb['password_txt'] = 'Heslo';
 $wb['password_strength_txt'] = 'Pevnosť hesla';
 $wb['language_txt'] = 'Jazyk';
 $wb['password_mismatch'] = 'Heslo v overovacom poli nezodpovedá prvému heslu.';
diff --git a/interface/web/tools/lib/lang/tr_usersettings.lng b/interface/web/tools/lib/lang/tr_usersettings.lng
index ce7770c8fd..cfc5a0dc23 100644
--- a/interface/web/tools/lib/lang/tr_usersettings.lng
+++ b/interface/web/tools/lib/lang/tr_usersettings.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['passwort_txt'] = 'Parola';
+$wb['password_txt'] = 'Parola';
 $wb['password_strength_txt'] = 'Parola Güçlüğü';
 $wb['language_txt'] = 'Dil';
 $wb['password_mismatch'] = 'Parola ile onayı aynı değil.';
-- 
GitLab


From bb664a2228d9d5569ba88ff760acb3c4c7b5e016 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Tue, 14 Jun 2016 09:20:21 +0200
Subject: [PATCH 008/313] Fixes ispconfig/ispconfig3#3943

---
 interface/web/mail/xmpp_domain_edit.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/mail/xmpp_domain_edit.php b/interface/web/mail/xmpp_domain_edit.php
index b5858e01ef..f973bdc9af 100644
--- a/interface/web/mail/xmpp_domain_edit.php
+++ b/interface/web/mail/xmpp_domain_edit.php
@@ -402,7 +402,7 @@ class page_action extends tform_actions {
         //    $this->desyncMailusers($this->dataRecord['domain']);
         // Update DNS Records
         // TODO: Update gets only triggered from main form. WHY?
-        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND  = ?", $this->dataRecord['domain'].'.');
+        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND origin = ?", $this->dataRecord['domain'].'.');
         if ( isset($soa) && !empty($soa) ) $this->update_dns($this->dataRecord, $soa);
 	}
 
-- 
GitLab


From b8942a6e3ac3786d82d4ab5f1c340028c29e9d62 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Tue, 14 Jun 2016 09:21:28 +0200
Subject: [PATCH 009/313] Revert "Fixes ispconfig/ispconfig3#3943"

This reverts commit bb664a2228d9d5569ba88ff760acb3c4c7b5e016.
---
 interface/web/mail/xmpp_domain_edit.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/mail/xmpp_domain_edit.php b/interface/web/mail/xmpp_domain_edit.php
index f973bdc9af..b5858e01ef 100644
--- a/interface/web/mail/xmpp_domain_edit.php
+++ b/interface/web/mail/xmpp_domain_edit.php
@@ -402,7 +402,7 @@ class page_action extends tform_actions {
         //    $this->desyncMailusers($this->dataRecord['domain']);
         // Update DNS Records
         // TODO: Update gets only triggered from main form. WHY?
-        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND origin = ?", $this->dataRecord['domain'].'.');
+        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND  = ?", $this->dataRecord['domain'].'.');
         if ( isset($soa) && !empty($soa) ) $this->update_dns($this->dataRecord, $soa);
 	}
 
-- 
GitLab


From b395d495c406f43598fad3e142bdd8d523f5f812 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Tue, 14 Jun 2016 09:23:17 +0200
Subject: [PATCH 010/313] Fixes ispconfig/ispconfig3#3943

---
 interface/web/mail/xmpp_domain_edit.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/mail/xmpp_domain_edit.php b/interface/web/mail/xmpp_domain_edit.php
index b5858e01ef..f973bdc9af 100644
--- a/interface/web/mail/xmpp_domain_edit.php
+++ b/interface/web/mail/xmpp_domain_edit.php
@@ -402,7 +402,7 @@ class page_action extends tform_actions {
         //    $this->desyncMailusers($this->dataRecord['domain']);
         // Update DNS Records
         // TODO: Update gets only triggered from main form. WHY?
-        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND  = ?", $this->dataRecord['domain'].'.');
+        $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other FROM dns_soa WHERE active = 'Y' AND origin = ?", $this->dataRecord['domain'].'.');
         if ( isset($soa) && !empty($soa) ) $this->update_dns($this->dataRecord, $soa);
 	}
 
-- 
GitLab


From f59fe4bb0b3c12043c97c9a324be719853834ed6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Tue, 14 Jun 2016 09:58:30 +0200
Subject: [PATCH 011/313] fixes ispconfig/ispconfig3#3913

---
 install/tpl/pureftpd_mysql.conf.master | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/install/tpl/pureftpd_mysql.conf.master b/install/tpl/pureftpd_mysql.conf.master
index 32d21594db..484f1054c8 100644
--- a/install/tpl/pureftpd_mysql.conf.master
+++ b/install/tpl/pureftpd_mysql.conf.master
@@ -59,12 +59,12 @@ MYSQLCrypt      crypt
 
 # Query to execute in order to fetch the password
 
-MYSQLGetPW      SELECT password FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MYSQLGetPW      SELECT password FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 
 # Query to execute in order to fetch the system user name or uid
 
-MYSQLGetUID     SELECT uid FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MYSQLGetUID     SELECT uid FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 
 # Optional : default UID - if set this overrides MYSQLGetUID
@@ -74,7 +74,7 @@ MYSQLGetUID     SELECT uid FROM ftp_user WHERE active = 'y' AND server_id = '{se
 
 # Query to execute in order to fetch the system user group or gid
 
-MYSQLGetGID     SELECT gid FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MYSQLGetGID     SELECT gid FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 
 # Optional : default GID - if set this overrides MYSQLGetGID
@@ -84,34 +84,34 @@ MYSQLGetGID     SELECT gid FROM ftp_user WHERE active = 'y' AND server_id = '{se
 
 # Query to execute in order to fetch the home directory
 
-MYSQLGetDir     SELECT dir FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MYSQLGetDir     SELECT dir FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 
 # Optional : query to get the maximal number of files 
 # Pure-FTPd must have been compiled with virtual quotas support.
 
-MySQLGetQTAFS  SELECT quota_files FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND quota_files != '-1' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MySQLGetQTAFS  SELECT quota_files FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND quota_files != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 
 # Optional : query to get the maximal disk usage (virtual quotas)
 # The number should be in Megabytes.
 # Pure-FTPd must have been compiled with virtual quotas support.
 
-MySQLGetQTASZ  SELECT quota_size FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND quota_size != '-1' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MySQLGetQTASZ  SELECT quota_size FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND quota_size != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 
 # Optional : ratios. The server has to be compiled with ratio support.
 
-MySQLGetRatioUL SELECT ul_ratio FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND ul_ratio != '-1' AND username="\L" AND (expires IS NULL OR expires > NOW())
-MySQLGetRatioDL SELECT dl_ratio FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND dl_ratio != '-1' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MySQLGetRatioUL SELECT ul_ratio FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND ul_ratio != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
+MySQLGetRatioDL SELECT dl_ratio FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND dl_ratio != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 
 # Optional : bandwidth throttling.
 # The server has to be compiled with throttling support.
 # Values are in KB/s .
 
-MySQLGetBandwidthUL SELECT ul_bandwidth FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND ul_bandwidth != '-1' AND username="\L" AND (expires IS NULL OR expires > NOW())
-MySQLGetBandwidthDL SELECT dl_bandwidth FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND dl_bandwidth != '-1' AND username="\L" AND (expires IS NULL OR expires > NOW())
+MySQLGetBandwidthUL SELECT ul_bandwidth FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND ul_bandwidth != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
+MySQLGetBandwidthDL SELECT dl_bandwidth FROM ftp_user WHERE active = 'y' AND server_id = '{server_id}' AND dl_bandwidth != '-1' AND username="\L" AND (expires IS NULL OR expires="0000-00-00 00:00:00" OR expires > NOW())
 
 # Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
 # 1) You know what you are doing.
-- 
GitLab


From a95251e2b49c0c2cb8b81addc3a1afc2300ee650 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 14 Jun 2016 16:28:43 +0200
Subject: [PATCH 012/313] Improved German translation.

---
 interface/web/admin/lib/lang/de_server_config.lng | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index c9fc989da5..06384d5e32 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -26,7 +26,7 @@ $wb['mailuser_gid_txt'] = 'Mailbenutzer GID';
 $wb['mailuser_name_txt'] = 'Mailbenutzer Name';
 $wb['mailuser_group_txt'] = 'Mailbenutzer Gruppe';
 $wb['mailbox_virtual_uidgid_maps_txt'] = 'Website Linux Uid für Mailboxen';
-$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'nur wenn beides auf gleichem Server';
+$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'nur für einzel-Server Installationen.';
 $wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid kann in Multiserver-Umgebung nicht gemappt werden.';
 $wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid Mapping funktioniert nur in Verbindung mit dovecot.';
 $wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid Mapping kann nur umgeschaltet werden, wenn noch keine Mailuser angelegt sind.';
-- 
GitLab


From cb0be91cf56a5d1afcf3b5bd363ba6ad28fee69d Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 14 Jun 2016 16:29:44 +0200
Subject: [PATCH 013/313] Prevent 60 seconds delay in mailbox creation when
 mapping of mailbox zui and gid to web uid and gid is not used.

---
 interface/web/mail/mail_user_edit.php | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php
index a155cbdbfa..aedcd2249b 100644
--- a/interface/web/mail/mail_user_edit.php
+++ b/interface/web/mail/mail_user_edit.php
@@ -237,8 +237,13 @@ class page_action extends tform_actions {
 			$this->dataRecord["homedir"] = $mail_config["homedir_path"];
 			
 			// Will be overwritten by mail_plugin
-			$this->dataRecord['uid'] = -1;
-			$this->dataRecord['gid'] = -1;
+			if ($mail_config["mailbox_virtual_uidgid_maps"] == 'y') {
+				$this->dataRecord['uid'] = -1;
+				$this->dataRecord['gid'] = -1;
+			} else {
+				$this->dataRecord['uid'] = intval($mail_config["mailuser_uid"]);
+				$this->dataRecord['gid'] = intval($mail_config["mailuser_gid"]);
+			}
 				
 			//* Check if there is no alias or forward with this address
 			$tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE active = 'y' AND source = ?", $this->dataRecord["email"]);
-- 
GitLab


From ebbc3f1a0744ec16f366ace7c4cd49c6a353b8a8 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 14 Jun 2016 17:35:33 +0200
Subject: [PATCH 014/313] Fixed Issue #3948 reseller missing '*' option in ipv4
 address.

---
 interface/web/sites/web_vhost_domain_edit.php | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 2b1c0ebf59..82a8fa6200 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -305,6 +305,17 @@ class page_action extends tform_actions {
 
 			$app->tpl->setVar("server_id", $options_web_servers);
 			unset($options_web_servers);
+			
+			if($this->id > 0) {
+				if(!isset($this->dataRecord["server_id"])){
+					$tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ?", $this->id);
+					$this->dataRecord["server_id"] = $tmp["server_id"];
+					unset($tmp);
+				}
+				$server_id = intval(@$this->dataRecord["server_id"]);
+			} else {
+				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 0;
+			}
 
 			if ($settings['use_domain_module'] != 'y') {
 				// Fill the client select field
-- 
GitLab


From 855cf2aaeb5e4cd43f4f0e6f79a66e0ab6fbebcf Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 14 Jun 2016 18:08:13 +0200
Subject: [PATCH 015/313] Fixed Issue #3950 Default missing Default ? in php
 version

---
 interface/web/sites/templates/web_vhost_domain_edit.htm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/templates/web_vhost_domain_edit.htm b/interface/web/sites/templates/web_vhost_domain_edit.htm
index ec9005a2e3..22a1952704 100644
--- a/interface/web/sites/templates/web_vhost_domain_edit.htm
+++ b/interface/web/sites/templates/web_vhost_domain_edit.htm
@@ -432,8 +432,8 @@
 		
     function reloadFastcgiPHPVersions(noFormChange) {
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi", client_group_id : clientGroupId}, function(data) {
-            //var options = '<option value="">Default</option>';
-			var options = '';
+            var options = '<option value="">Default</option>';
+			//var options = '';
             var phpfastcgiselected = '';
             $.each(data, function(key, val) {
 				<tmpl_if name="id">
-- 
GitLab


From b33d7d56dfc4490f83b896ba99de3c1aca99854e Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 15 Jun 2016 10:22:08 +0200
Subject: [PATCH 016/313] Fixed issue #3955 DNS module: Limit for maximum zones
 can be circumvented with "import zone file" function. Removed TODO string in
 error template.

---
 interface/web/dns/dns_import.php                   | 14 +++++++++++++-
 interface/web/dns/dns_wizard.php                   | 14 +++++++++++++-
 interface/web/dns/lib/lang/de_dns_wizard.lng       |  3 ++-
 interface/web/dns/lib/lang/en_dns_wizard.lng       |  1 +
 .../web/themes/default/templates/error.tpl.htm     |  1 -
 5 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php
index bd8cc84f36..6bb738ef1c 100644
--- a/interface/web/dns/dns_import.php
+++ b/interface/web/dns/dns_import.php
@@ -38,11 +38,23 @@ $msg = '';
 $error = '';
 
 // Loading the template
-$app->uses('tpl,validate_dns');
+$app->uses('tform,tpl,validate_dns');
 $app->tpl->newTemplate("form.tpl.htm");
 $app->tpl->setInclude('content_tpl', 'templates/dns_import.htm');
 $app->load_language_file('/web/dns/lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng');
 
+// Check if dns record limit has been reached. We will check only users, not admins
+if($_SESSION["s"]["user"]["typ"] == 'user') {
+	$app->tform->formDef['db_table_idx'] = 'id';
+	$app->tform->formDef['db_table'] = 'dns_soa';
+	if(!$app->tform->checkClientLimit('limit_dns_zone')) {
+		$app->error($app->lng('limit_dns_zone_txt'));
+	}
+	if(!$app->tform->checkResellerLimit('limit_dns_zone')) {
+		$app->error('Reseller: '.$app->lng('limit_dns_zone_txt'));
+	}
+}
+
 // import variables
 $template_id = (isset($_POST['template_id']))?$app->functions->intval($_POST['template_id']):0;
 $sys_groupid = (isset($_POST['client_group_id']))?$app->functions->intval($_POST['client_group_id']):0;
diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php
index 3cfc397bb1..a0fd131ae1 100644
--- a/interface/web/dns/dns_wizard.php
+++ b/interface/web/dns/dns_wizard.php
@@ -36,11 +36,23 @@ $app->auth->check_module_permissions('dns');
 
 
 // Loading the template
-$app->uses('tpl,validate_dns');
+$app->uses('tpl,validate_dns,tform');
 $app->tpl->newTemplate("form.tpl.htm");
 $app->tpl->setInclude('content_tpl', 'templates/dns_wizard.htm');
 $app->load_language_file('/web/dns/lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng');
 
+// Check if dns record limit has been reached. We will check only users, not admins
+if($_SESSION["s"]["user"]["typ"] == 'user') {
+	$app->tform->formDef['db_table_idx'] = 'id';
+	$app->tform->formDef['db_table'] = 'dns_soa';
+	if(!$app->tform->checkClientLimit('limit_dns_zone')) {
+		$app->error($app->lng('limit_dns_zone_txt'));
+	}
+	if(!$app->tform->checkResellerLimit('limit_dns_zone')) {
+		$app->error('Reseller: '.$app->lng('limit_dns_zone_txt'));
+	}
+}
+
 // import variables
 $template_id = (isset($_POST['template_id']))?$app->functions->intval($_POST['template_id']):0;
 $sys_groupid = (isset($_POST['client_group_id']))?$app->functions->intval($_POST['client_group_id']):0;
diff --git a/interface/web/dns/lib/lang/de_dns_wizard.lng b/interface/web/dns/lib/lang/de_dns_wizard.lng
index 7f664ca60e..e34604a4dc 100644
--- a/interface/web/dns/lib/lang/de_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/de_dns_wizard.lng
@@ -40,5 +40,6 @@ $wb['globalsearch_noresults_limit_txt'] = '0 Treffer';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Suche';
 $wb['globalsearch_suggestions_text_txt'] = 'Vorschläge';
 $wb['error_no_server_id'] = 'No server provided.';
-$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
+$wb['error_not_allowed_server_id'] = 'Der ausgewählte Server ist in diesem Konto nicht verfügbar.';
+$wb['limit_dns_zone_txt'] = 'Die maximale Anzahl an DNS Einträgen für Ihr Konto wurde erreicht.';
 ?>
diff --git a/interface/web/dns/lib/lang/en_dns_wizard.lng b/interface/web/dns/lib/lang/en_dns_wizard.lng
index a2cec089df..6a63e21281 100644
--- a/interface/web/dns/lib/lang/en_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/en_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['globalsearch_searchfield_watermark_txt'] = "Search";
 $wb['globalsearch_suggestions_text_txt'] = "Suggestions";
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
+$wb["limit_dns_zone_txt"] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/themes/default/templates/error.tpl.htm b/interface/web/themes/default/templates/error.tpl.htm
index f0c10811c2..dbb730f599 100644
--- a/interface/web/themes/default/templates/error.tpl.htm
+++ b/interface/web/themes/default/templates/error.tpl.htm
@@ -4,6 +4,5 @@
 	<ol>
 		<li>###ERRORMSG###</li>
 	</ol>
-	<div>TODO: WRONG HTML ELEMENTS</div>
   </div>
 </div>
-- 
GitLab


From c4cf454ef455d05542d5513961f2ee8f5c34e018 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 15 Jun 2016 11:06:55 +0200
Subject: [PATCH 017/313] Force web server ID to be 1 if no other server is
 found.

---
 interface/web/sites/web_vhost_domain_edit.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 82a8fa6200..e46ed7db32 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -188,7 +188,7 @@ class page_action extends tform_actions {
 				}
 				$server_id = intval(@$this->dataRecord["server_id"]);
 			} else {
-				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 0;
+				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 1;
 			}
 			
 			if($app->functions->intval($this->dataRecord["server_id"]) > 0) {
@@ -314,7 +314,7 @@ class page_action extends tform_actions {
 				}
 				$server_id = intval(@$this->dataRecord["server_id"]);
 			} else {
-				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 0;
+				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 1;
 			}
 
 			if ($settings['use_domain_module'] != 'y') {
-- 
GitLab


From 7f16fe3e6d8cbb46773f88157d70898e3624d2d0 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 15 Jun 2016 11:43:39 +0200
Subject: [PATCH 018/313] Open Issue #3951: Added min field length for Firefox
 in APS installerdomain select field.

---
 interface/web/sites/aps_install_package.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/aps_install_package.php b/interface/web/sites/aps_install_package.php
index bcd4184dd9..19ab785c95 100644
--- a/interface/web/sites/aps_install_package.php
+++ b/interface/web/sites/aps_install_package.php
@@ -129,7 +129,7 @@ $domains_tpl = '';
 if(!empty($domains))
 {
 	$set = array();
-	$set[] = '<select name="main_domain" id="main_domain" class="form-control">';
+	$set[] = '<select name="main_domain" id="main_domain" class="form-control" style="width:100%; height:100%; min-width:170px;">';
 	foreach($domains as $domain)
 	{
 		$selected = '';
-- 
GitLab


From 3ad8446706afa6754de74577bd5334c235192d7c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 15 Jun 2016 12:08:56 +0200
Subject: [PATCH 019/313] Fixed Issue 3944: Rewrite HTTP to HTTPS does not work
 without SEO Redirect

---
 server/conf/vhost.conf.master                   | 1 -
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 66b4608806..62ef151081 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -396,7 +396,6 @@
 <tmpl_if name="rewrite_enabled">
 		RewriteEngine on
 <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		RewriteEngine on
 		RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/
 		RewriteRule ^ - [END]
 </tmpl_if>
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 676339934a..021078d430 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1494,7 +1494,7 @@ class apache2_plugin {
 		
 		if (count($rewrite_wildcard_rules) > 0) $rewrite_rules = array_merge($rewrite_rules, $rewrite_wildcard_rules); // Append wildcard rules to the end of rules
 
-		if(count($rewrite_rules) > 0 || $vhost_data['seo_redirect_enabled'] > 0 || count($alias_seo_redirects) > 0) {
+		if(count($rewrite_rules) > 0 || $vhost_data['seo_redirect_enabled'] > 0 || count($alias_seo_redirects) > 0 || $data['new']['rewrite_to_https'] == 'y') {
 			$tpl->setVar('rewrite_enabled', 1);
 		} else {
 			$tpl->setVar('rewrite_enabled', 0);
-- 
GitLab


From d3e228106b588978a35337b25402627ed917dfc0 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 15 Jun 2016 15:01:38 +0200
Subject: [PATCH 020/313] Fixed issue #3948 - reseller missing '*' option in
 ipv4 address

---
 interface/web/sites/web_vhost_domain_edit.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index e46ed7db32..ec91daf7eb 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -188,7 +188,7 @@ class page_action extends tform_actions {
 				}
 				$server_id = intval(@$this->dataRecord["server_id"]);
 			} else {
-				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 1;
+				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]['server_id']) : 1;
 			}
 			
 			if($app->functions->intval($this->dataRecord["server_id"]) > 0) {
@@ -314,7 +314,7 @@ class page_action extends tform_actions {
 				}
 				$server_id = intval(@$this->dataRecord["server_id"]);
 			} else {
-				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 1;
+				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]['server_id']) : 1;
 			}
 
 			if ($settings['use_domain_module'] != 'y') {
-- 
GitLab


From ca464385042f7d264a3dad36d7292bb98300a1d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 16 Jun 2016 07:25:32 +0200
Subject: [PATCH 021/313] fixed ispconfig/ispconfig3#3963 cartesian product
 with correct line and a full table please review the change!

---
 interface/web/sites/database_quota_stats.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php
index 5e95fdcaf8..46041275db 100644
--- a/interface/web/sites/database_quota_stats.php
+++ b/interface/web/sites/database_quota_stats.php
@@ -29,7 +29,7 @@ if(is_array($tmp_rec)) {
 		foreach($tmp_array as $database_name => $data) {
 			$db_name = $data['database_name'];
 
-			$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
+			$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.groupid = web_database.sys_groupid AND sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
 			if(is_array($temp) && !empty($temp)) {
 				$monitor_data[$server_id.'.'.$db_name]['database_name'] = $data['database_name'];
 				$monitor_data[$server_id.'.'.$db_name]['client'] = isset($temp['username']) ? $temp['username'] : '';
-- 
GitLab


From 116598662cf13220355cfe5f43ca174a09394df9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 16 Jun 2016 07:56:29 +0200
Subject: [PATCH 022/313] also fixed ispconfig/ispconfig3#3920 now

---
 interface/lib/classes/quota_lib.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/quota_lib.inc.php b/interface/lib/classes/quota_lib.inc.php
index 0455dc98b2..b6d224069f 100644
--- a/interface/lib/classes/quota_lib.inc.php
+++ b/interface/lib/classes/quota_lib.inc.php
@@ -312,13 +312,13 @@ class quota_lib {
 	
 				$databases[$i]['quota_raw'] = $databases[$i]['database_quota'];
 				$databases[$i]['used_raw'] = $databases[$i]['used'] / 1024 / 1024; //* quota is stored as MB - calculated bytes
-				$databases[$i]['used_percentage'] = (($databases[$i]['database_quota'] > 0) && ($databases[$i]['used'] > 0)) ? round($databases[$i]['used'] * 100 / $databases[$i]['database_quota']) : 0;
+				$databases[$i]['used_percentage'] = (($databases[$i]['database_quota'] > 0) && ($databases[$i]['used'] > 0)) ? round($databases[$i]['used_raw'] * 100 / $databases[$i]['database_quota']) : 0;
 	
 				if ($readable) {
 					// colours
 					$databases[$i]['display_colour'] = '#000000';
 					if($databases[$i]['database_quota'] > 0){
-						$used_ratio = $databases[$i]['used']/$databases[$i]['database_quota'];
+						$used_ratio = $databases[$i]['used'] / $databases[$i]['database_quota'];
 					} else {
 						$used_ratio = 0;
 					}
-- 
GitLab


From e336d63f13ba5005f9054b19b0ff485d7f623909 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 16 Jun 2016 04:32:01 -0400
Subject: [PATCH 023/313] fixed remove mail-backups (Bernd Kilmer)

---
 server/lib/classes/cron.d/500-backup_mail.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php
index 04a4249f50..2eacaed737 100644
--- a/server/lib/classes/cron.d/500-backup_mail.inc.php
+++ b/server/lib/classes/cron.d/500-backup_mail.inc.php
@@ -176,7 +176,7 @@ class cronjob_backup_mail extends cronjob {
 						$dir_handle = dir($mail_backup_dir);
 						$files = array();
 						while (false !== ($entry = $dir_handle->read())) {
-							if($entry != '.' && $entry != '..' && substr($entry,0,4+strlen($rec['mailuser_id'])) == 'mail'.$rec['mailuser_id'] && is_file($mail_backup_dir.'/'.$entry)) {
+							if($entry != '.' && $entry != '..' && substr($entry,0,5+strlen($rec['mailuser_id'])) == 'mail'.$rec['mailuser_id'].'_' && is_file($mail_backup_dir.'/'.$entry)) {
 								$files[] = $entry;
 							}
 						}
-- 
GitLab


From 0d3e95814c9b0dc5d1339d38c23cd7ab33a2e7a9 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jun 2016 14:43:08 +0200
Subject: [PATCH 024/313] Fixed Issue #3966 Error when Web-IP is '*'

---
 .../sql/incremental/upd_dev_collection.sql    | 10 +++++++++
 interface/web/sites/ajax_get_ip.php           | 10 +++++----
 interface/web/sites/web_vhost_domain_edit.php | 22 +++++++++----------
 3 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index e69de29bb2..13c895c75b 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -0,0 +1,10 @@
+ALTER TABLE `client` CHANGE `web_servers` `web_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `mail_servers` `mail_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `xmpp_servers` `xmpp_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `db_servers` `db_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `dns_servers` `dns_servers` TEXT NULL DEFAULT NULL;
+UPDATE client SET web_servers = default_webserver WHERE (web_servers = '' OR web_servers IS NULL);
+UPDATE client SET mail_servers = default_mailserver WHERE (mail_servers = '' OR mail_servers IS NULL);
+UPDATE client SET xmpp_servers = default_xmppserver WHERE (xmpp_servers = '' OR xmpp_servers IS NULL);
+UPDATE client SET db_servers = default_dbserver WHERE (db_servers = '' OR db_servers IS NULL);
+UPDATE client SET dns_servers = default_dnsserver WHERE (dns_servers = '' OR dns_servers IS NULL);
\ No newline at end of file
diff --git a/interface/web/sites/ajax_get_ip.php b/interface/web/sites/ajax_get_ip.php
index 205be4803b..8c83191920 100644
--- a/interface/web/sites/ajax_get_ip.php
+++ b/interface/web/sites/ajax_get_ip.php
@@ -39,13 +39,15 @@ $server_id = $app->functions->intval($_GET["server_id"]);
 $client_group_id = $app->functions->intval($_GET["client_group_id"]);
 $ip_type = $_GET['ip_type'];
 
-if($_SESSION["s"]["user"]["typ"] == 'admin' or $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
+//if($_SESSION["s"]["user"]["typ"] == 'admin' or $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
 
 	//* Get global web config
 	$web_config = $app->getconf->get_server_config($server_id, 'web');
+	
+	$tmp = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = ?", $client_group_id);
+	$sql = "SELECT ip_address FROM server_ip WHERE ip_type = ? AND server_id = ? AND (client_id = 0 OR client_id=?)";
 
-	$sql = "SELECT ip_address FROM server_ip WHERE ip_type = ? AND server_id = ?";
-	$ips = $app->db->queryAllRecords($sql, $ip_type, $server_id);
+	$ips = $app->db->queryAllRecords($sql, $ip_type, $server_id, $tmp['groupid']);
 	// $ip_select = "<option value=''></option>";
 	if($ip_type == 'IPv4'){
 		$ip_select = ($web_config['enable_ip_wildcard'] == 'y')?"*#":"";
@@ -60,7 +62,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin' or $app->auth->has_clients($_SESSION
 	}
 	unset($tmp);
 	unset($ips);
-}
+//}
 
 echo substr($ip_select, 0, -1);
 ?>
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index ec91daf7eb..6f843571a3 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -188,7 +188,7 @@ class page_action extends tform_actions {
 				}
 				$server_id = intval(@$this->dataRecord["server_id"]);
 			} else {
-				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]['server_id']) : 1;
+				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]['server_id']) : 0;
 			}
 			
 			if($app->functions->intval($this->dataRecord["server_id"]) > 0) {
@@ -200,9 +200,9 @@ class page_action extends tform_actions {
 				}
 			}
 			
-			//* Fill the IPv4 select field with the IP addresses that are allowed for this client
-			$sql = "SELECT ip_address FROM server_ip WHERE server_id IN ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")";
-			$ips = $app->db->queryAllRecords($sql, explode(',', $client['web_servers']));
+			//* Fill the IPv4 select field with the IP addresses that are allowed for this client on the current server
+			$sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")";
+			$ips = $app->db->queryAllRecords($sql, $server_id);
 			$ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":"";
 			//if(!in_array($this->dataRecord["ip_address"], $ips)) $ip_select .= "<option value='".$this->dataRecord["ip_address"]."' SELECTED>".$this->dataRecord["ip_address"]."</option>\r\n";
 			//$ip_select = "";
@@ -217,8 +217,8 @@ class page_action extends tform_actions {
 			unset($ips);
 
 			//* Fill the IPv6 select field with the IP addresses that are allowed for this client
-			$sql = "SELECT ip_address FROM server_ip WHERE server_id IN ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)";
-			$ips = $app->db->queryAllRecords($sql, explode(',', $client['web_servers']), $_SESSION['s']['user']['client_id']);
+			$sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)";
+			$ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']);
 			//$ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":"";
 			//$ip_select = "";
 			$ip_select = "<option value=''></option>";
@@ -314,7 +314,7 @@ class page_action extends tform_actions {
 				}
 				$server_id = intval(@$this->dataRecord["server_id"]);
 			} else {
-				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]['server_id']) : 1;
+				$server_id = (isset($web_servers[0])) ? intval($web_servers[0]['server_id']) : 0;
 			}
 
 			if ($settings['use_domain_module'] != 'y') {
@@ -346,8 +346,8 @@ class page_action extends tform_actions {
 			}
 			
 			//* Fill the IPv4 select field with the IP addresses that are allowed for this client
-			$sql = "SELECT ip_address FROM server_ip WHERE server_id IN ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=?)";
-			$ips = $app->db->queryAllRecords($sql, explode(',', $client['web_servers']), $_SESSION['s']['user']['client_id']);
+			$sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=?)";
+			$ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']);
 			$ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":"";
 			//if(!in_array($this->dataRecord["ip_address"], $ips)) $ip_select .= "<option value='".$this->dataRecord["ip_address"]."' SELECTED>".$this->dataRecord["ip_address"]."</option>\r\n";
 			//$ip_select = "";
@@ -362,8 +362,8 @@ class page_action extends tform_actions {
 			unset($ips);
 
 			//* Fill the IPv6 select field with the IP addresses that are allowed for this client
-			$sql = "SELECT ip_address FROM server_ip WHERE server_id IN ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)";
-			$ips = $app->db->queryAllRecords($sql, $client['web_servers'], $_SESSION['s']['user']['client_id']);
+			$sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)";
+			$ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']);
 			$ip_select = "<option value=''></option>";
 			//$ip_select = "";
 			if(is_array($ips)) {
-- 
GitLab


From dc4dd5a2e619a9be7434ae6a44db9ed34782f091 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jun 2016 15:56:52 +0200
Subject: [PATCH 025/313] Fixed #3964 Design missing when impersonating

---
 interface/web/login/login_as.php | 4 ++--
 interface/web/login/logout.php   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/interface/web/login/login_as.php b/interface/web/login/login_as.php
index a17d5baff1..4b78c6c41b 100644
--- a/interface/web/login/login_as.php
+++ b/interface/web/login/login_as.php
@@ -98,8 +98,8 @@ echo '
 	<input type="hidden" name="s_pg" value="dashboard" />
 	<input type="hidden" name="login_as" value="1" />
     <div class="wf_actions buttons">
-      <button class="positive iconstxt icoPositive" type="button" value="'.$wb['btn_yes_txt'].'" data-submit-form="pageForm" data-form-action="/login/index.php"><span>'.$wb['btn_yes_txt'].'</span></button>
-      <button class="negative iconstxt icoNegative" type="button" value="'.$wb['btn_back_txt'].'" data-load-content="'.$backlink.'"><span>'.$wb['btn_back_txt'].'</span></button>
+      <button class="btn btn-default formbutton-success" type="button" value="'.$wb['btn_yes_txt'].'" data-submit-form="pageForm" data-form-action="/login/index.php"><span>'.$wb['btn_yes_txt'].'</span></button>
+      <button class="btn btn-default formbutton-default" value="'.$wb['btn_back_txt'].'" data-load-content="'.$backlink.'"><span>'.$wb['btn_back_txt'].'</span></button>
     </div>
 ';
 ?>
diff --git a/interface/web/login/logout.php b/interface/web/login/logout.php
index ee6fffa312..a4a127ff8b 100644
--- a/interface/web/login/logout.php
+++ b/interface/web/login/logout.php
@@ -56,8 +56,8 @@ if ((isset($_SESSION['s_old']) && ($_SESSION['s_old']['user']['typ'] == 'admin'
 		<input type="hidden" name="s_pg" value="index" />
 		<input type="hidden" name="login_as" value="1" />
 	    <div class="wf_actions buttons">
-	      <button class="positive iconstxt icoPositive" type="button" value="Yes, re-login as ' . $utype . '" data-submit-form="pageForm" data-form-action="/login/index.php"><span>Yes, re-login as ' . $utype . '</span></button>
-	      <button class="negative iconstxt icoNegative" type="button" value="No, logout" data-load-content="login/logout.php?l=1"><span>No, logout</span></button>
+	      <button class="btn btn-default formbutton-success" type="button" value="Yes, re-login as ' . $utype . '" data-submit-form="pageForm" data-form-action="/login/index.php"><span>Yes, re-login as ' . $utype . '</span></button>
+	      <button class="btn btn-default formbutton-default" type="button" value="No, logout" data-load-content="login/logout.php?l=1"><span>No, logout</span></button>
 	    </div>
 	';
 	exit;
-- 
GitLab


From ffedcb9a80e8a3ff375993fc349d9ce969a1a4d7 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jun 2016 16:41:37 +0200
Subject: [PATCH 026/313] First part of fix for issue #3896 - Unknown column
 'default_mailserver' in 'field list' when saving client limits main template

---
 .../sql/incremental/upd_dev_collection.sql    |  7 ++++++-
 install/sql/ispconfig3.sql                    | 17 +++++++++++------
 .../web/client/form/client_template.tform.php | 19 ++++++++++---------
 3 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index 13c895c75b..f0a3df83f3 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -7,4 +7,9 @@ UPDATE client SET web_servers = default_webserver WHERE (web_servers = '' OR web
 UPDATE client SET mail_servers = default_mailserver WHERE (mail_servers = '' OR mail_servers IS NULL);
 UPDATE client SET xmpp_servers = default_xmppserver WHERE (xmpp_servers = '' OR xmpp_servers IS NULL);
 UPDATE client SET db_servers = default_dbserver WHERE (db_servers = '' OR db_servers IS NULL);
-UPDATE client SET dns_servers = default_dnsserver WHERE (dns_servers = '' OR dns_servers IS NULL);
\ No newline at end of file
+UPDATE client SET dns_servers = default_dnsserver WHERE (dns_servers = '' OR dns_servers IS NULL);
+ALTER TABLE `client_template` ADD `default_slave_dnsserver` INT NOT NULL DEFAULT '0' AFTER `limit_dns_slave_zone`;
+ALTER TABLE `client_template` ADD `mail_servers` TEXT NULL DEFAULT NULL AFTER `template_type`;
+ALTER TABLE `client_template` ADD `web_servers` TEXT NULL DEFAULT NULL AFTER `limit_xmpp_httparchive`;
+ALTER TABLE `client_template` ADD `dns_servers` TEXT NULL DEFAULT NULL AFTER `limit_aps`;
+ALTER TABLE `client_template` ADD `db_servers` TEXT NULL DEFAULT NULL AFTER `limit_dns_record`;
\ No newline at end of file
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index a14a0d6b1b..ec750ba125 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -170,7 +170,7 @@ CREATE TABLE `client` (
   `bank_account_swift` varchar(255) DEFAULT NULL,
   `paypal_email` varchar(255) DEFAULT NULL,
   `default_mailserver` int(11) unsigned NOT NULL DEFAULT '1',
-  `mail_servers` blob,
+  `mail_servers` text,
   `limit_maildomain` int(11) NOT NULL DEFAULT '-1',
   `limit_mailbox` int(11) NOT NULL DEFAULT '-1',
   `limit_mailalias` int(11) NOT NULL DEFAULT '-1',
@@ -185,7 +185,7 @@ CREATE TABLE `client` (
   `limit_spamfilter_user` int(11) NOT NULL DEFAULT '0',
   `limit_spamfilter_policy` int(11) NOT NULL DEFAULT '0',
   `default_xmppserver` int(11) unsigned NOT NULL DEFAULT '1',
-  `xmpp_servers` blob,
+  `xmpp_servers` text,
   `limit_xmpp_domain` int(11) NOT NULL DEFAULT '-1',
   `limit_xmpp_user` int(11) NOT NULL DEFAULT '-1',
   `limit_xmpp_muc` ENUM( 'n', 'y' ) NOT NULL default 'n',
@@ -197,7 +197,7 @@ CREATE TABLE `client` (
   `limit_xmpp_pastebin` ENUM( 'n', 'y' ) NOT NULL default 'n',
   `limit_xmpp_httparchive` ENUM( 'n', 'y' ) NOT NULL default 'n',
   `default_webserver` int(11) unsigned NOT NULL DEFAULT '1',
-  `web_servers` blob,
+  `web_servers` text,
   `limit_web_ip` text,
   `limit_web_domain` int(11) NOT NULL DEFAULT '-1',
   `limit_web_quota` int(11) NOT NULL DEFAULT '-1',
@@ -222,13 +222,13 @@ CREATE TABLE `client` (
   `limit_directive_snippets` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n',
   `limit_aps` int(11) NOT NULL DEFAULT '-1',
   `default_dnsserver` int(11) unsigned NOT NULL DEFAULT '1',
-  `db_servers` blob,
+  `db_servers` text,
   `limit_dns_zone` int(11) NOT NULL DEFAULT '-1',
   `default_slave_dnsserver` int(11) unsigned NOT NULL DEFAULT '1',
   `limit_dns_slave_zone` int(11) NOT NULL DEFAULT '-1',
   `limit_dns_record` int(11) NOT NULL DEFAULT '-1',
   `default_dbserver` int(11) NOT NULL DEFAULT '1',
-  `dns_servers` blob,
+  `dns_servers` text,
   `limit_database` int(11) NOT NULL DEFAULT '-1',
   `limit_database_user` int(11) NOT NULL DEFAULT '-1',
   `limit_database_quota` int(11) NOT NULL default '-1',
@@ -301,6 +301,7 @@ CREATE TABLE `client_template` (
   `sys_perm_other` varchar(5) default NULL,
   `template_name` varchar(64) NOT NULL DEFAULT '',
   `template_type` varchar(1) NOT NULL default 'm',
+  `mail_servers` text,
   `limit_maildomain` int(11) NOT NULL default '-1',
   `limit_mailbox` int(11) NOT NULL default '-1',
   `limit_mailalias` int(11) NOT NULL default '-1',
@@ -315,7 +316,7 @@ CREATE TABLE `client_template` (
   `limit_spamfilter_user` int(11) NOT NULL default '0',
   `limit_spamfilter_policy` int(11) NOT NULL default '0',
   `default_xmppserver` int(11) unsigned NOT NULL DEFAULT '1',
-  `xmpp_servers` blob,
+  `xmpp_servers` text,
   `limit_xmpp_domain` int(11) NOT NULL DEFAULT '-1',
   `limit_xmpp_user` int(11) NOT NULL DEFAULT '-1',
   `limit_xmpp_muc` ENUM( 'n', 'y' ) NOT NULL default 'n',
@@ -325,6 +326,7 @@ CREATE TABLE `client_template` (
   `limit_xmpp_status` ENUM( 'n', 'y' ) NOT NULL default 'n',
   `limit_xmpp_pastebin` ENUM( 'n', 'y' ) NOT NULL default 'n',
   `limit_xmpp_httparchive` ENUM( 'n', 'y' ) NOT NULL default 'n',
+  `web_servers` text,
   `limit_web_ip` text,
   `limit_web_domain` int(11) NOT NULL default '-1',
   `limit_web_quota` int(11) NOT NULL default '-1',
@@ -348,9 +350,12 @@ CREATE TABLE `client_template` (
   `limit_backup` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'y',
   `limit_directive_snippets` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n',
   `limit_aps` int(11) NOT NULL DEFAULT '-1',
+  `dns_servers` text,
   `limit_dns_zone` int(11) NOT NULL default '-1',
+  `default_slave_dnsserver` int(11) NOT NULL DEFAULT '0',
   `limit_dns_slave_zone` int(11) NOT NULL default '-1',
   `limit_dns_record` int(11) NOT NULL default '-1',
+  `db_servers` text,
   `limit_database` int(11) NOT NULL default '-1',
   `limit_database_user` int(11) NOT NULL DEFAULT '-1',
   `limit_database_quota` int(11) NOT NULL default '-1',
diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index a16d21ff8e..0fccee9601 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -114,7 +114,7 @@ $form["tabs"]['limits'] = array (
 			'maxlength' => '10',
 			'rows'  => '',
 			'cols'  => ''
-		),
+		),/*
 		'default_mailserver' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'SELECT',
@@ -125,7 +125,7 @@ $form["tabs"]['limits'] = array (
 			),
 			'value'  => array(''),
 			'name'  => 'default_mailserver'
-		),
+		),*/
 		'limit_maildomain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -321,7 +321,7 @@ $form["tabs"]['limits'] = array (
 			'maxlength' => '10',
 			'rows'  => '',
 			'cols'  => ''
-		),
+		),/*
         'default_xmppserver' => array (
             'datatype' => 'INTEGER',
             'formtype' => 'SELECT',
@@ -332,7 +332,7 @@ $form["tabs"]['limits'] = array (
             ),
             'value'  => '',
             'name'  => 'default_xmppserver'
-        ),
+        ),*/
         'xmpp_servers' => array (
             'datatype' => 'VARCHAR',
             'formtype' => 'MULTIPLE',
@@ -420,7 +420,7 @@ $form["tabs"]['limits'] = array (
             'formtype' => 'CHECKBOX',
             'default' => 'n',
             'value'  => array(0 => 'n', 1 => 'y')
-        ),
+        ),/*
 		'default_webserver' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'SELECT',
@@ -431,7 +431,7 @@ $form["tabs"]['limits'] = array (
 			),
 			'value'  => array(''),
 			'name'  => 'default_webserver'
-		),
+		),*/
 		'limit_web_domain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -623,7 +623,7 @@ $form["tabs"]['limits'] = array (
 			'formtype' => 'CHECKBOX',
 			'default' => 'n',
 			'value'  => array(0 => 'n', 1 => 'y')
-		),
+		),/*
 		'default_dnsserver' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'SELECT',
@@ -634,7 +634,7 @@ $form["tabs"]['limits'] = array (
 			),
 			'value'  => array(''),
 			'name'  => 'default_dnsserver'
-		),
+		),*/
 		'limit_dns_zone' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -704,6 +704,7 @@ $form["tabs"]['limits'] = array (
 			'cols'		=> ''
 		),
 		*/
+		/*
 		'default_dbserver' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'SELECT',
@@ -714,7 +715,7 @@ $form["tabs"]['limits'] = array (
 			),
 			'value'  => array(''),
 			'name'  => 'default_dbserver'
-		),
+		),*/
 		'limit_database' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
-- 
GitLab


From 14f5970ef1f3f830916a9e1a4c4655bdcf4519d1 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jun 2016 18:22:08 +0200
Subject: [PATCH 027/313] Fixed #3924 ISPC 3.1 b1 delete client confirmation

---
 interface/web/client/templates/client_del.htm | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/interface/web/client/templates/client_del.htm b/interface/web/client/templates/client_del.htm
index 2ae0a8e700..e24ca768c2 100644
--- a/interface/web/client/templates/client_del.htm
+++ b/interface/web/client/templates/client_del.htm
@@ -3,8 +3,6 @@
 </div>
 <p><tmpl_var name="list_desc_txt"></p>
 
-
-		
         <div id="OKMsg">
 			<tmpl_if name='number_records'>
             <tmpl_var name="delete_explanation">:<br /><br />
@@ -12,15 +10,15 @@
                     <tmpl_var name="table">, 
                 </tmpl_loop>
 			</tmpl_else>
-				<tmpl_var name="confirm_client_delete_txt">
+				<h3><tmpl_var name="confirm_client_delete_txt"></h3>
 			</tmpl_if>
         </div>
-		
-        <div class="col-sm-9"><input class="form-control" type="checkbox" name="confirm" value="yes" /></div><b><tmpl_var name="confirm_action_txt"></b>
-
+		&nbsp;
+		<div> <input type="checkbox" name="confirm" value="yes" /> <b><tmpl_var name="confirm_action_txt"></b></div>
+		&nbsp;
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
-        <div class="clear"><div class="right">
+        <div class="clear"><div class="left">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="client/client_del.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
\ No newline at end of file
-- 
GitLab


From 4b004553be448b440b42f1e589ac7ee029055f3a Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jun 2016 18:34:39 +0200
Subject: [PATCH 028/313] Fixed: #3923

---
 interface/web/tools/templates/import_ispconfig.htm | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/interface/web/tools/templates/import_ispconfig.htm b/interface/web/tools/templates/import_ispconfig.htm
index 83d79e671f..1d63df2a6d 100644
--- a/interface/web/tools/templates/import_ispconfig.htm
+++ b/interface/web/tools/templates/import_ispconfig.htm
@@ -3,15 +3,13 @@
 </div>
 <p><tmpl_var name="list_desc_txt"></p>
 
-<div class="panel panel_language_import">
+<div class="panel panel_language_import" style="padding:20px;">
   
     <div class="pnl_formsarea">
         <legend>{tmpl_var name="legend_txt"}</legend>
             <div class="form-group">
                 <label class="col-sm-3 control-label">Remote API URL</label>
-                <div class="col-sm-9">
-                    <div class="col-sm-6"><input class="form-control" type="text" id="remote_server" value="{tmpl_var name='remote_server'}" name="remote_server" /></div><div class="col-sm-3 input-sm"> (e.g. https://www.example.com:8080/remote/ )
-                </div></div>
+                <div class="col-sm-9"><input class="form-control" type="text" id="remote_server" value="{tmpl_var name='remote_server'}" placeholder="https://www.example.com:8080/remote/" name="remote_server" /></div>
             </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">Remote User</label>
-- 
GitLab


From d17f082e12e65ac007a6750e7e21e0c9440436ac Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jun 2016 18:38:42 +0200
Subject: [PATCH 029/313] Fixed #3922

---
 interface/web/monitor/lib/lang/pl.lng | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/monitor/lib/lang/pl.lng b/interface/web/monitor/lib/lang/pl.lng
index c2629c4187..4ce642fbd8 100644
--- a/interface/web/monitor/lib/lang/pl.lng
+++ b/interface/web/monitor/lib/lang/pl.lng
@@ -24,7 +24,7 @@ $wb['Status of services'] = 'Status usług';
 $wb['No Refresh'] = 'Nie odświeżaj';
 $wb['minutes'] = 'minuty';
 $wb['Show Overview'] = 'Pokaż wszystko';
-$wb['System State (All Servers)'] = 'Status systemu (Wszystkie serwery)';
+$wb['System State (All Servers)'] = 'Status systemu';
 $wb['Hardware-Information'] = 'Informacje o sprzęcie';
 $wb['Show CPU info'] = 'Pokaż informacje o procesorze';
 $wb['Server State'] = 'Status serwera';
-- 
GitLab


From b5e780aa3f513f342d2909efc565d27cee240bb5 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 16 Jun 2016 18:48:29 +0200
Subject: [PATCH 030/313] Fixed: #3902

---
 interface/web/admin/templates/directive_snippets_edit.htm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/admin/templates/directive_snippets_edit.htm b/interface/web/admin/templates/directive_snippets_edit.htm
index b5adc5838c..eab53c79bb 100644
--- a/interface/web/admin/templates/directive_snippets_edit.htm
+++ b/interface/web/admin/templates/directive_snippets_edit.htm
@@ -17,8 +17,8 @@
             </div>
 			<div class="form-group">
                 <label for="snippet" class="col-sm-3 control-label">{tmpl_var name='snippet_txt'}</label>
-                <tmpl_if name='is_master'><div class="col-sm-9 col-text"><pre>{tmpl_var name='snippet'}</pre></div></tmpl_else><div class="col-sm-9"><textarea class="form-control" name="snippet" id="snippet" rows='10' cols='50'>{tmpl_var name='snippet'}</textarea></div>
-                <div class="col-sm-3 col-text nginx"></div><div class="col-sm-9 col-text nginx"> &nbsp;{tmpl_var name='variables_txt'}: <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{FASTCGIPASS}</a>, <a href="javascript:void(0);" class="addPlaceholder">{PHPFALLBACKFASTCGIPASS}</a></div></tmpl_if>
+                <tmpl_if name='is_master'><div class="col-sm-9 col-text"><pre>{tmpl_var name='snippet'}</pre></div></tmpl_else><div class="col-sm-9"><textarea class="form-control" name="snippet" id="snippet" rows='10' cols='50'>{tmpl_var name='snippet'}</textarea>
+                &nbsp; Nginx {tmpl_var name='variables_txt'}: <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{FASTCGIPASS}</a>, <a href="javascript:void(0);" class="addPlaceholder">{PHPFALLBACKFASTCGIPASS}</a></div></tmpl_if>
             </div>
             <tmpl_if name='is_master'></tmpl_else>
 			<div class="form-group php">
-- 
GitLab


From 0ea7b959fb7efd0ee136a767937b63acd94006ac Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 17 Jun 2016 03:50:46 -0400
Subject: [PATCH 031/313] add translations to list-files

---
 interface/web/admin/list/server_ip_map.list.php       |  2 +-
 interface/web/mail/list/mail_alias.list.php           |  2 +-
 interface/web/mail/list/mail_aliasdomain.list.php     |  2 +-
 interface/web/mail/list/mail_blacklist.list.php       |  2 +-
 interface/web/mail/list/mail_content_filter.list.php  |  2 +-
 interface/web/mail/list/mail_domain.list.php          |  2 +-
 interface/web/mail/list/mail_domain_catchall.list.php |  2 +-
 interface/web/mail/list/mail_forward.list.php         |  2 +-
 interface/web/mail/list/mail_get.list.php             |  2 +-
 interface/web/mail/list/mail_relay_recipient.list.php |  2 +-
 interface/web/mail/list/mail_spamfilter.list.php      |  2 +-
 interface/web/mail/list/mail_transport.list.php       |  2 +-
 interface/web/mail/list/mail_user.list.php            | 10 +++++-----
 interface/web/mail/list/mail_whitelist.list.php       |  2 +-
 interface/web/mail/list/spamfilter_blacklist.list.php |  2 +-
 interface/web/mail/list/spamfilter_policy.list.php    |  8 ++++----
 interface/web/mail/list/spamfilter_users.list.php     |  2 +-
 interface/web/mail/list/spamfilter_whitelist.list.php |  2 +-
 interface/web/mail/list/xmpp_domain.list.php          |  2 +-
 interface/web/sites/list/cron.list.php                |  2 +-
 interface/web/sites/list/database.list.php            |  4 ++--
 interface/web/sites/list/ftp_user.list.php            |  2 +-
 interface/web/sites/list/shell_user.list.php          |  2 +-
 interface/web/sites/list/web_childdomain.list.php     |  2 +-
 interface/web/sites/list/web_folder.list.php          |  2 +-
 interface/web/sites/list/web_folder_user.list.php     |  2 +-
 interface/web/sites/list/web_vhost_domain.list.php    |  2 +-
 interface/web/sites/list/webdav_user.list.php         |  2 +-
 interface/web/vm/list/openvz_ip.list.php              |  2 +-
 interface/web/vm/list/openvz_ostemplate.list.php      |  4 ++--
 interface/web/vm/list/openvz_template.list.php        |  2 +-
 interface/web/vm/list/openvz_vm.list.php              |  2 +-
 32 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/interface/web/admin/list/server_ip_map.list.php b/interface/web/admin/list/server_ip_map.list.php
index 95ac17cac2..c17aecb5c2 100644
--- a/interface/web/admin/list/server_ip_map.list.php
+++ b/interface/web/admin/list/server_ip_map.list.php
@@ -18,7 +18,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste['item'][] = array( 'field'  => 'server_id',
 	'datatype' => 'INTEGER',
diff --git a/interface/web/mail/list/mail_alias.list.php b/interface/web/mail/list/mail_alias.list.php
index fcbfb94591..044fc84baa 100644
--- a/interface/web/mail/list/mail_alias.list.php
+++ b/interface/web/mail/list/mail_alias.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "source",
diff --git a/interface/web/mail/list/mail_aliasdomain.list.php b/interface/web/mail/list/mail_aliasdomain.list.php
index 8408e9e604..b97d265e48 100644
--- a/interface/web/mail/list/mail_aliasdomain.list.php
+++ b/interface/web/mail/list/mail_aliasdomain.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "source",
diff --git a/interface/web/mail/list/mail_blacklist.list.php b/interface/web/mail/list/mail_blacklist.list.php
index 3e92caeeda..45a3a9987c 100644
--- a/interface/web/mail/list/mail_blacklist.list.php
+++ b/interface/web/mail/list/mail_blacklist.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 
diff --git a/interface/web/mail/list/mail_content_filter.list.php b/interface/web/mail/list/mail_content_filter.list.php
index 18b0cf252c..c585a1601a 100644
--- a/interface/web/mail/list/mail_content_filter.list.php
+++ b/interface/web/mail/list/mail_content_filter.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 
diff --git a/interface/web/mail/list/mail_domain.list.php b/interface/web/mail/list/mail_domain.list.php
index c2005aeb3e..7946f4c51a 100644
--- a/interface/web/mail/list/mail_domain.list.php
+++ b/interface/web/mail/list/mail_domain.list.php
@@ -59,7 +59,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 if($_SESSION['s']['user']['typ'] == 'admin') {
diff --git a/interface/web/mail/list/mail_domain_catchall.list.php b/interface/web/mail/list/mail_domain_catchall.list.php
index 4413c491a2..e2aa2d63aa 100644
--- a/interface/web/mail/list/mail_domain_catchall.list.php
+++ b/interface/web/mail/list/mail_domain_catchall.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "source",
diff --git a/interface/web/mail/list/mail_forward.list.php b/interface/web/mail/list/mail_forward.list.php
index 831e8b458b..bd334d7434 100644
--- a/interface/web/mail/list/mail_forward.list.php
+++ b/interface/web/mail/list/mail_forward.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "source",
diff --git a/interface/web/mail/list/mail_get.list.php b/interface/web/mail/list/mail_get.list.php
index d027110ad4..3163f4e108 100644
--- a/interface/web/mail/list/mail_get.list.php
+++ b/interface/web/mail/list/mail_get.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/mail_relay_recipient.list.php b/interface/web/mail/list/mail_relay_recipient.list.php
index 8b7e308a20..3e3fd91012 100644
--- a/interface/web/mail/list/mail_relay_recipient.list.php
+++ b/interface/web/mail/list/mail_relay_recipient.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/mail_spamfilter.list.php b/interface/web/mail/list/mail_spamfilter.list.php
index 0db3e7c9a8..f1f4e612c2 100644
--- a/interface/web/mail/list/mail_spamfilter.list.php
+++ b/interface/web/mail/list/mail_spamfilter.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('1' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", '0' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('1' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", '0' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/mail_transport.list.php b/interface/web/mail/list/mail_transport.list.php
index 6cbc2dfb96..9124b937fd 100644
--- a/interface/web/mail/list/mail_transport.list.php
+++ b/interface/web/mail/list/mail_transport.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/mail_user.list.php b/interface/web/mail/list/mail_user.list.php
index fd15658eac..1c56140cb2 100644
--- a/interface/web/mail/list/mail_user.list.php
+++ b/interface/web/mail/list/mail_user.list.php
@@ -87,7 +87,7 @@ $liste["item"][] = array(   'field'     => "autoresponder",
 	'prefix' => "",
 	'suffix' => "",
 	'width' => "",
-	'value' => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value' => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "postfix",
 	'datatype' => "VARCHAR",
@@ -96,7 +96,7 @@ $liste["item"][] = array( 'field'  => "postfix",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "disablesmtp",
 	'datatype' => "VARCHAR",
@@ -105,7 +105,7 @@ $liste["item"][] = array( 'field'  => "disablesmtp",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "disableimap",
 	'datatype' => "VARCHAR",
@@ -114,7 +114,7 @@ $liste["item"][] = array( 'field'  => "disableimap",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "disablepop3",
 	'datatype' => "VARCHAR",
@@ -123,6 +123,6 @@ $liste["item"][] = array( 'field'  => "disablepop3",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('n' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'y' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 ?>
diff --git a/interface/web/mail/list/mail_whitelist.list.php b/interface/web/mail/list/mail_whitelist.list.php
index 0d8a0ffd70..321db85992 100644
--- a/interface/web/mail/list/mail_whitelist.list.php
+++ b/interface/web/mail/list/mail_whitelist.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/spamfilter_blacklist.list.php b/interface/web/mail/list/spamfilter_blacklist.list.php
index cdf5a0e536..b4be804fbe 100644
--- a/interface/web/mail/list/spamfilter_blacklist.list.php
+++ b/interface/web/mail/list/spamfilter_blacklist.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/spamfilter_policy.list.php b/interface/web/mail/list/spamfilter_policy.list.php
index eeb8746f0d..e7e0def682 100644
--- a/interface/web/mail/list/spamfilter_policy.list.php
+++ b/interface/web/mail/list/spamfilter_policy.list.php
@@ -65,7 +65,7 @@ $liste["item"][] = array( 'field'  => "virus_lover",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "spam_lover",
@@ -75,7 +75,7 @@ $liste["item"][] = array( 'field'  => "spam_lover",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "banned_files_lover",
@@ -85,7 +85,7 @@ $liste["item"][] = array( 'field'  => "banned_files_lover",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "bad_header_lover",
@@ -95,7 +95,7 @@ $liste["item"][] = array( 'field'  => "bad_header_lover",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 
diff --git a/interface/web/mail/list/spamfilter_users.list.php b/interface/web/mail/list/spamfilter_users.list.php
index efd74f68e9..e9d703b942 100644
--- a/interface/web/mail/list/spamfilter_users.list.php
+++ b/interface/web/mail/list/spamfilter_users.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "local",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'N' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/spamfilter_whitelist.list.php b/interface/web/mail/list/spamfilter_whitelist.list.php
index 3082329199..713187e008 100644
--- a/interface/web/mail/list/spamfilter_whitelist.list.php
+++ b/interface/web/mail/list/spamfilter_whitelist.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/mail/list/xmpp_domain.list.php b/interface/web/mail/list/xmpp_domain.list.php
index 21257e4283..be87ec735e 100644
--- a/interface/web/mail/list/xmpp_domain.list.php
+++ b/interface/web/mail/list/xmpp_domain.list.php
@@ -59,7 +59,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 if($_SESSION['s']['user']['typ'] == 'admin') {
diff --git a/interface/web/sites/list/cron.list.php b/interface/web/sites/list/cron.list.php
index 311af329c5..7679a2e1c1 100644
--- a/interface/web/sites/list/cron.list.php
+++ b/interface/web/sites/list/cron.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/sites/list/database.list.php b/interface/web/sites/list/database.list.php
index 22694aaa21..b4d1196b59 100644
--- a/interface/web/sites/list/database.list.php
+++ b/interface/web/sites/list/database.list.php
@@ -59,7 +59,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "remote_access",
 	'datatype' => "VARCHAR",
@@ -68,7 +68,7 @@ $liste["item"][] = array( 'field'  => "remote_access",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "type",
 	'datatype' => "VARCHAR",
diff --git a/interface/web/sites/list/ftp_user.list.php b/interface/web/sites/list/ftp_user.list.php
index 9742a24274..7657406382 100644
--- a/interface/web/sites/list/ftp_user.list.php
+++ b/interface/web/sites/list/ftp_user.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/sites/list/shell_user.list.php b/interface/web/sites/list/shell_user.list.php
index 61c774dee6..9ea244ed0b 100644
--- a/interface/web/sites/list/shell_user.list.php
+++ b/interface/web/sites/list/shell_user.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/sites/list/web_childdomain.list.php b/interface/web/sites/list/web_childdomain.list.php
index f938bee322..1e38b24a41 100644
--- a/interface/web/sites/list/web_childdomain.list.php
+++ b/interface/web/sites/list/web_childdomain.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/sites/list/web_folder.list.php b/interface/web/sites/list/web_folder.list.php
index af74d8e950..fce8cfd1ef 100644
--- a/interface/web/sites/list/web_folder.list.php
+++ b/interface/web/sites/list/web_folder.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/sites/list/web_folder_user.list.php b/interface/web/sites/list/web_folder_user.list.php
index 454e2c447f..c8f078a4be 100644
--- a/interface/web/sites/list/web_folder_user.list.php
+++ b/interface/web/sites/list/web_folder_user.list.php
@@ -57,7 +57,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "web_folder_id",
diff --git a/interface/web/sites/list/web_vhost_domain.list.php b/interface/web/sites/list/web_vhost_domain.list.php
index ddeaacc6e6..1d167a77bc 100644
--- a/interface/web/sites/list/web_vhost_domain.list.php
+++ b/interface/web/sites/list/web_vhost_domain.list.php
@@ -78,7 +78,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 if($_SESSION['s']['user']['typ'] == 'admin' && $vhostdomain_type == 'domain') {
 	$liste["item"][] = array( 'field'  => "sys_groupid",
diff --git a/interface/web/sites/list/webdav_user.list.php b/interface/web/sites/list/webdav_user.list.php
index 52a3ab9631..5d1aeec94a 100644
--- a/interface/web/sites/list/webdav_user.list.php
+++ b/interface/web/sites/list/webdav_user.list.php
@@ -55,7 +55,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('Yes')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('No')."</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "server_id",
diff --git a/interface/web/vm/list/openvz_ip.list.php b/interface/web/vm/list/openvz_ip.list.php
index 9184aa7faf..77a52dbcf9 100644
--- a/interface/web/vm/list/openvz_ip.list.php
+++ b/interface/web/vm/list/openvz_ip.list.php
@@ -91,7 +91,7 @@ $liste["item"][] = array( 'field'  => "reserved",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 
diff --git a/interface/web/vm/list/openvz_ostemplate.list.php b/interface/web/vm/list/openvz_ostemplate.list.php
index cf490559fd..ca6132d827 100644
--- a/interface/web/vm/list/openvz_ostemplate.list.php
+++ b/interface/web/vm/list/openvz_ostemplate.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "ostemplate_id",
 	'datatype' => "INTEGER",
@@ -96,7 +96,7 @@ $liste["item"][] = array( 'field'  => "allservers",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 
diff --git a/interface/web/vm/list/openvz_template.list.php b/interface/web/vm/list/openvz_template.list.php
index 6ba7faf400..e87314e98e 100644
--- a/interface/web/vm/list/openvz_template.list.php
+++ b/interface/web/vm/list/openvz_template.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 
 $liste["item"][] = array( 'field'  => "template_name",
diff --git a/interface/web/vm/list/openvz_vm.list.php b/interface/web/vm/list/openvz_vm.list.php
index ad490edc4a..51e23b3ab2 100644
--- a/interface/web/vm/list/openvz_vm.list.php
+++ b/interface/web/vm/list/openvz_vm.list.php
@@ -54,7 +54,7 @@ $liste["item"][] = array( 'field'  => "active",
 	'prefix' => "",
 	'suffix' => "",
 	'width'  => "",
-	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+	'value'  => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>".$app->lng('yes_txt')."</span></div>", 'n' => "<div class=\"swap\" id=\"ir-No\"><span>".$app->lng('no_txt')."</span></div>"));
 
 $liste["item"][] = array( 'field'  => "veid",
 	'datatype' => "VARCHAR",
-- 
GitLab


From 35a190769c20fa17b1c57bfae96107bd2c08e284 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 17 Jun 2016 13:00:54 +0200
Subject: [PATCH 032/313] Fixed Issue #3972 Invalid regular expression in
 helo_access

---
 install/tpl/helo_access.master | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/tpl/helo_access.master b/install/tpl/helo_access.master
index 796c3ed52a..a0ca138738 100644
--- a/install/tpl/helo_access.master
+++ b/install/tpl/helo_access.master
@@ -2,7 +2,7 @@
 # be sure to list your own hostname(s), domain(s) and IP address(es) here
 
 # Reject others identifying with this machine's hostnames and IP addresses
-/^{myhostname}$/  REJECT
+/^{$myhostname}$/  REJECT
 #/^((smtp|mx|mail)\.domain1\.com$/	REJECT
 #/^mail\.domain2\.com$/		REJECT
 
-- 
GitLab


From 37d53f6a386124bb17217ac40d28682dce331d53 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 17 Jun 2016 16:36:07 +0200
Subject: [PATCH 033/313] Removed helo check from template.

---
 install/tpl/helo_access.master | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/tpl/helo_access.master b/install/tpl/helo_access.master
index a0ca138738..41f182e276 100644
--- a/install/tpl/helo_access.master
+++ b/install/tpl/helo_access.master
@@ -2,7 +2,7 @@
 # be sure to list your own hostname(s), domain(s) and IP address(es) here
 
 # Reject others identifying with this machine's hostnames and IP addresses
-/^{$myhostname}$/  REJECT
+#/^{myhostname}$/  REJECT
 #/^((smtp|mx|mail)\.domain1\.com$/	REJECT
 #/^mail\.domain2\.com$/		REJECT
 
-- 
GitLab


From 768b3f3affbb059b6423e96d306590fc54f16cfd Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 17 Jun 2016 18:05:19 +0200
Subject: [PATCH 034/313] - interrupt scrolling on user input, fixed #3936

---
 .../themes/default/assets/javascripts/ispconfig.js    | 11 ++++++++---
 interface/web/themes/default/templates/main.tpl.htm   |  2 +-
 .../web/themes/default/templates/main_login.tpl.htm   |  2 +-
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index 21c8c1bb14..a2b9907aef 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -618,9 +618,12 @@ $(document).on("change", function(event) {
 	}
 });
 
+var $page = $('html, body');
+
 $(document).on('click', 'a[data-load-content],button[data-load-content]', function(e) {
 	e.preventDefault();
-	$('html, body').animate({scrollTop: 0}, 1000);
+	$page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
+	$page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
 	
 	var content_to_load = $(this).attr('data-load-content');
 	if(!content_to_load) return this;
@@ -630,7 +633,8 @@ $(document).on('click', 'a[data-load-content],button[data-load-content]', functi
 
 $(document).on('click', 'a[data-capp],button[data-capp]', function(e) {
 	e.preventDefault();
-	$('html, body').animate({scrollTop: 0}, 1000);
+	$page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
+	$page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
 	
 	var content_to_load = $(this).attr('data-capp');
 	if(!content_to_load) return this;
@@ -640,7 +644,8 @@ $(document).on('click', 'a[data-capp],button[data-capp]', function(e) {
 
 $(document).on('click', 'a[data-submit-form],button[data-submit-form]', function(e) {
 	e.preventDefault();
-	$('html, body').animate({scrollTop: 0}, 1000);
+	$page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
+	$page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
 	
 	var $el = $(this);
 	var act = $el.attr('data-form-action');
diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm
index 058eec33ab..24a84c5065 100644
--- a/interface/web/themes/default/templates/main.tpl.htm
+++ b/interface/web/themes/default/templates/main.tpl.htm
@@ -84,7 +84,7 @@
   <script type="text/javascript" src="js/jquery.min.js"></script>
   <script src='themes/<tmpl_var name='current_theme'>/assets/javascripts/bootstrap.min.js'></script>
   <script src='themes/<tmpl_var name='current_theme'>/assets/javascripts/bootstrap-datetimepicker.min.js'></script>
-  <script src='themes/<tmpl_var name='current_theme'>/assets/javascripts/ispconfig.min.js'></script>
+  <script src='themes/<tmpl_var name='current_theme'>/assets/javascripts/ispconfig.js'></script>
   <script src='themes/<tmpl_var name='current_theme'>/assets/javascripts/modernizr.custom.min.js'></script>
   <script src='themes/<tmpl_var name='current_theme'>/assets/javascripts/pushy.min.js'></script>
   <script src='themes/<tmpl_var name='current_theme'>/assets/javascripts/responsive.min.js'></script>
diff --git a/interface/web/themes/default/templates/main_login.tpl.htm b/interface/web/themes/default/templates/main_login.tpl.htm
index afcf4cf317..dd31363f3c 100644
--- a/interface/web/themes/default/templates/main_login.tpl.htm
+++ b/interface/web/themes/default/templates/main_login.tpl.htm
@@ -41,7 +41,7 @@
   <script type="text/javascript" src="../js/jquery.min.js"></script>
   <script src='../themes/<tmpl_var name='current_theme'>/assets/javascripts/bootstrap.min.js'></script>
   <script src='../themes/<tmpl_var name='current_theme'>/assets/javascripts/bootstrap-datetimepicker.min.js'></script>
-  <script src='../themes/<tmpl_var name='current_theme'>/assets/javascripts/ispconfig.min.js'></script>
+  <script src='../themes/<tmpl_var name='current_theme'>/assets/javascripts/ispconfig.js'></script>
   <script src='../themes/<tmpl_var name='current_theme'>/assets/javascripts/modernizr.custom.min.js'></script>
   <script src='../themes/<tmpl_var name='current_theme'>/assets/javascripts/pushy.min.js'></script>
   <script src='../themes/<tmpl_var name='current_theme'>/assets/javascripts/responsive.min.js'></script>
-- 
GitLab


From 8445649af724acffd59e469a5646ee4cfe6912f0 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 17 Jun 2016 18:14:30 +0200
Subject: [PATCH 035/313] - prevent some clicks while ajax requests still
 running

---
 .../default/assets/javascripts/ispconfig.js   | 80 +++++--------------
 1 file changed, 20 insertions(+), 60 deletions(-)

diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index a2b9907aef..a726d0a220 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -23,11 +23,7 @@ var ISPConfig = {
 	},
 	
 	reportError: function(request) {
-		/* Error reporting is disabled by default as some browsers like safari
-		   sometimes throw errors when a ajax request is delayed even if the
-		   ajax request worked. */
-
-		/*alert(request);*/
+		
 	},
 	
 	registerHook: function(name, callback) {
@@ -142,55 +138,6 @@ var ISPConfig = {
 		ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data });
 	},
 
-	/* THIS ONE SHOULD BE REMOVED AFTER CREATING THE STATIC LOGIN PAGE!!! */
-	/*submitLoginForm: function(formname) {
-		//* Validate form. TODO: username and password with strip();
-		var frm = document.getElementById(formname);
-		var userNameObj = frm.username;
-		if(userNameObj.value == ''){
-			userNameObj.focus();
-			return;
-		}
-		var passwordObj = frm.passwort;
-		if(passwordObj.value == ''){
-			passwordObj.focus();
-			return;
-		}
-
-		$('#dummy_username').val(userNameObj.value);
-		$('#dummy_passwort').val(passwordObj.value);
-		$('#dummy_login_form').submit();
-
-		var submitFormObj = $.ajax({
-			type: "POST",
-			url: "content.php",
-			data: $('#'+formname).serialize(),
-			dataType: "html",
-			beforeSend: function() {
-				ISPConfig.showLoadIndicator();
-			},
-			success: function(data, textStatus, jqXHR) {
-				if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
-					var parts = jqXHR.responseText.split(':');
-					ISPConfig.loadContent(parts[1]);
-				} else if (jqXHR.responseText.indexOf('LOGIN_REDIRECT:') > -1) {
-					// Go to the login page
-					document.location.href = 'index.php';
-				} else {
-					$('#pageContent').html(jqXHR.responseText);
-					ISPConfig.onAfterContentLoad('content.php', $('#'+formname).serialize());
-					ISPConfig.pageFormChanged = false;
-				}
-				ISPConfig.loadMenus();
-				ISPConfig.hideLoadIndicator();
-			},
-			error: function() {
-				ISPConfig.hideLoadIndicator();
-				ISPConfig.reportError('Ajax Request was not successful.110');
-			}
-		});
-	},*/
-
 	submitForm: function(formname, target, confirmation) {
 		var successMessage = arguments[3];
 		if(!confirmation) confirmation = false;
@@ -320,11 +267,6 @@ var ISPConfig = {
 					var newUrl= jqXHR.responseText.substr(jqXHR.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length);
 					document.location.href = newUrl;
 				} else {
-					//document.getElementById('pageContent').innerHTML = jqXHR.responseText;
-					//var reponse = $(jqXHR.responseText);
-					//var reponseScript = reponse.filter("script");
-					//$.each(reponseScript, function(idx, val) { eval(val.text); } );
-
 					$('#pageContent').html(jqXHR.responseText);
 					ISPConfig.onAfterContentLoad(pagename, (params ? params : null));
 					ISPConfig.pageFormChanged = false;
@@ -444,7 +386,10 @@ var ISPConfig = {
 	},
 
 	changeTab: function(tab, target, force) {
-		if(ISPConfig.requestsRunning > 0) return false;
+		if(ISPConfig.requestsRunning > 0) {
+			console.log('tab change interrupted, request still running.');
+			return false;
+		}
 	
 		document.pageForm.next_tab.value = tab;
 
@@ -622,6 +567,11 @@ var $page = $('html, body');
 
 $(document).on('click', 'a[data-load-content],button[data-load-content]', function(e) {
 	e.preventDefault();
+	if(ISPConfig.requestsRunning > 0) {
+		console.log('preventing click because there is still a request running.');
+		return;
+	}
+	
 	$page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
 	$page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
 	
@@ -633,6 +583,11 @@ $(document).on('click', 'a[data-load-content],button[data-load-content]', functi
 
 $(document).on('click', 'a[data-capp],button[data-capp]', function(e) {
 	e.preventDefault();
+	if(ISPConfig.requestsRunning > 0) {
+		console.log('preventing click because there is still a request running.');
+		return;
+	}
+	
 	$page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
 	$page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
 	
@@ -644,6 +599,11 @@ $(document).on('click', 'a[data-capp],button[data-capp]', function(e) {
 
 $(document).on('click', 'a[data-submit-form],button[data-submit-form]', function(e) {
 	e.preventDefault();
+	if(ISPConfig.requestsRunning > 0) {
+		console.log('preventing click because there is still a request running.');
+		return;
+	}
+	
 	$page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
 	$page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
 	
-- 
GitLab


From 875504b968611925c406c586bdbf6c7715cc8141 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 22 Jun 2016 10:15:36 +0200
Subject: [PATCH 036/313] Removed version information from stable branch.

---
 install/sql/ispconfig3.sql        | 2 +-
 install/tpl/config.inc.php.master | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index ec750ba125..eaf060a8a8 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -2482,7 +2482,7 @@ INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`,
 -- Dumping data for table `sys_config`
 --
 
-INSERT INTO sys_config VALUES ('db','db_version','3.1b1');
+INSERT INTO sys_config VALUES ('db','db_version','3.1dev');
 INSERT INTO sys_config VALUES ('interface','session_timeout','0');
 
 SET FOREIGN_KEY_CHECKS = 1;
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index 2ba18f3ed3..02a7b2f65c 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -56,7 +56,7 @@ $revision = str_replace(array('Revision:','$',' '), '', $svn_revision);
 
 //** Application
 define('ISPC_APP_TITLE', 'ISPConfig');
-define('ISPC_APP_VERSION', '3.1b1');
+define('ISPC_APP_VERSION', '3.1dev');
 define('DEVSYSTEM', 0);
 
 
-- 
GitLab


From 9f824a7bb996b64731d7b4ee948c8bb52367fc85 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 22 Jun 2016 11:25:34 +0200
Subject: [PATCH 037/313] - fixed bug preventing backups on mounted dir

---
 server/lib/classes/system.inc.php | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index 93cd524162..978a891b42 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1803,7 +1803,9 @@ class system{
 
 	function mount_backup_dir($backup_dir, $mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'){
 		global $app, $conf;
-
+		
+		if($this->is_mounted($backup_dir)) return true;
+		
 		$mounted = true;
 		if ( 	is_file($mount_cmd) &&
 				is_executable($mount_cmd) &&
-- 
GitLab


From 2b3dfac5e54e56fa05f98cb00d1df42110d6b896 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 22 Jun 2016 15:00:35 +0200
Subject: [PATCH 038/313] CentOS 7.2 related fixes in installer and apache
 vhost template.

---
 install/dist/lib/centos72.lib.php  | 40 ++++++++++++++++++++++++++++++
 install/dist/lib/fedora.lib.php    | 11 ++++++++
 install/lib/install.lib.php        |  2 +-
 install/lib/installer_base.lib.php | 13 +++++++---
 server/conf/vhost.conf.master      | 13 +++++++---
 5 files changed, 70 insertions(+), 9 deletions(-)
 create mode 100644 install/dist/lib/centos72.lib.php

diff --git a/install/dist/lib/centos72.lib.php b/install/dist/lib/centos72.lib.php
new file mode 100644
index 0000000000..3dcd7494d3
--- /dev/null
+++ b/install/dist/lib/centos72.lib.php
@@ -0,0 +1,40 @@
+<?php
+
+/*
+Copyright (c) 2014, Till Brehm, ISPConfig UG
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require_once realpath(dirname(__FILE__)) . '/centos_base.lib.php';
+
+class installer extends installer_centos {
+
+	protected $clamav_socket = '/var/run/clamd.amavisd/clamd.sock';
+	
+	// everything else is inherited from installer_centos class
+}
+
+?>
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 11ce4200f0..f7e7fa331d 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -89,6 +89,9 @@ class installer_dist extends installer_base {
 
 		//* mysql-virtual_relayrecipientmaps.cf
 		$this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf');
+		
+		//* mysql-virtual_outgoing_bcc.cf
+		$this->process_postfix_config('mysql-virtual_outgoing_bcc.cf');
 
 		//* mysql-virtual_policy_greylist.cf
 		$this->process_postfix_config('mysql-virtual_policy_greylist.cf');
@@ -179,6 +182,7 @@ class installer_dist extends installer_base {
 		//if(!is_file('/var/lib/mailman/data/aliases')) touch('/var/lib/mailman/data/aliases');
 		if(is_file('/var/lib/mailman/data/aliases')) unlink('/var/lib/mailman/data/aliases');
 		if(!is_link('/var/lib/mailman/data/aliases')) symlink('/etc/mailman/aliases', '/var/lib/mailman/data/aliases');
+		if(!is_file('/etc/mailman/aliases')) touch('/etc/mailman/aliases');
 		exec('postalias /var/lib/mailman/data/aliases');
 		if(!is_file('/etc/mailman/virtual-mailman')) touch('/etc/mailman/virtual-mailman');
 		exec('postmap /etc/mailman/virtual-mailman');
@@ -491,6 +495,13 @@ class installer_dist extends installer_base {
 		$content = str_replace('{hostname}', $conf['hostname'], $content);
 		wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
 		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
+		
+		// for CentOS 7.2 only
+		$distname = get_distname();
+		if($distname['confid'] == 'centos72') {
+			chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0750);
+			chgrp($conf['amavis']['config_dir'].'/amavisd.conf', 'amavis');
+		}
 
 
 		// Adding the amavisd commands to the postfix configuration
diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index f670261203..c19736ad90 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -296,7 +296,7 @@ function get_distname() {
 		} elseif(stristr($content, 'CentOS Linux release 7.2')) {
 			$distname = 'CentOS';
 			$distver = 'Unknown';
-			$distid = 'centos70';
+			$distid = 'centos72';
 			$distconfid = 'centos72';
 			$distbaseid = 'fedora';
 			swriteln("Operating System: CentOS 7.2\n");
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 49b0e3d0ea..4f13ff3a9d 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -171,14 +171,19 @@ class installer_base {
 		if(is_installed('named') || is_installed('bind') || is_installed('bind9')) $conf['bind']['installed'] = true;
 		if(is_installed('squid')) $conf['squid']['installed'] = true;
 		if(is_installed('nginx')) $conf['nginx']['installed'] = true;
-		if(is_installed('iptables') && is_installed('ufw')) $conf['ufw']['installed'] = true;
-		if(is_installed('iptables') && is_installed('bastille-netfilter')) $conf['firewall']['installed'] = true;
+		if(is_installed('iptables') && is_installed('ufw')) {
+			$conf['ufw']['installed'] = true;
+		} elseif(is_installed('iptables')) {
+			$conf['firewall']['installed'] = true;
+		}
 		if(is_installed('fail2ban-server')) $conf['fail2ban']['installed'] = true;
 		if(is_installed('vzctl')) $conf['openvz']['installed'] = true;
 		if(is_installed('metronome') && is_installed('metronomectl')) $conf['xmpp']['installed'] = true;
 		if(is_installed('spamassassin')) $conf['spamassassin']['installed'] = true;
-		if(is_installed('vlogger')) $conf['vlogger']['installed'] = true;
-		if(is_installed('cron')) $conf['cron']['installed'] = true;
+		// if(is_installed('vlogger')) $conf['vlogger']['installed'] = true;
+		// ISPConfig ships with vlogger, so it is always installed.
+		$conf['vlogger']['installed'] = true;
+		if(is_installed('cron') || is_installed('anacron')) $conf['cron']['installed'] = true;
 
 		if ($conf['services']['web'] && (($conf['apache']['installed'] && is_file($conf['apache']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")) || ($conf['nginx']['installed'] && is_file($conf['nginx']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")))) $this->ispconfig_interface_installed = true;
 	}
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 62ef151081..bb2d71d7d5 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -350,15 +350,20 @@
                 Action php5-fcgi /php5-fcgi virtual
 				Alias /php5-fcgi {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'}
 <tmpl_if name='use_tcp'>
-                FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -host 127.0.0.1:<tmpl_var name='fpm_port'> -pass-header Authorization
-                <IfModule mod_proxy_fcgi.c>
-			ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ fcgi://127.0.0.1:<tmpl_var name='fpm_port'><tmpl_var name='web_document_root'>/$1
-                </IfModule>
+                FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -host 127.0.0.1:<tmpl_var name='fpm_port'> -pass-header Authorization             
 </tmpl_if>
 <tmpl_if name='use_socket'>
                 FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -socket <tmpl_var name='fpm_socket'> -pass-header Authorization
 </tmpl_if>
 		</IfModule>
+		<IfModule mod_proxy_fcgi.c>
+<tmpl_if name='use_tcp'>
+			ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ fcgi://127.0.0.1:<tmpl_var name='fpm_port'><tmpl_var name='web_document_root'>/$1
+</tmpl_if>
+<tmpl_if name='use_socket'>
+			ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix://<tmpl_var name='fpm_socket'>|fcgi://localhost/<tmpl_var name='web_document_root'>/$1
+</tmpl_if>
+			</IfModule>
 </tmpl_if>
 
 <tmpl_if name='php' op='==' value='hhvm'>
-- 
GitLab


From a49635d0562bf5f94fa3fafae5754971aaddd95f Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 22 Jun 2016 15:00:35 +0200
Subject: [PATCH 039/313] - fixed handling of added / removed alias and
 subdomains in letsencrypt - remove certificate renew config on domain
 deleting

---
 .../plugins-available/apache2_plugin.inc.php  | 26 +++++++++++++++----
 server/plugins-available/nginx_plugin.inc.php | 25 ++++++++++++++----
 2 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 021078d430..73579c38a9 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -485,6 +485,8 @@ class apache2_plugin {
 
 		if($this->action != 'insert') $this->action = 'update';
 
+		$update_letsencrypt = false;
+
 		if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['type'] != 'vhostalias' && $data['new']['parent_domain_id'] > 0) {
 
 			$old_parent_domain_id = intval($data['old']['parent_domain_id']);
@@ -504,6 +506,7 @@ class apache2_plugin {
 			$data['new'] = $tmp;
 			$data['old'] = $tmp;
 			$this->action = 'update';
+			$update_letsencrypt = true;
 		}
 
 		// load the server configuration options
@@ -1177,8 +1180,7 @@ class apache2_plugin {
 			($data['old']['ssl'] == 'n' || $data['old']['ssl_letsencrypt'] == 'n') // we have new let's encrypt configuration
 			|| ($data['old']['domain'] != $data['new']['domain']) // we have domain update
 			|| ($data['old']['subdomain'] != $data['new']['subdomain']) // we have new or update on "auto" subdomain
-			|| ($data['new']['type'] == 'subdomain') // we have new or update on subdomain
-			|| ($data['old']['type'] == 'alias' || $data['new']['type'] == 'alias') // we have new or update on aliasdomain
+			|| $update_letsencrypt == true
 		)) {
 			// default values
 			$temp_domains = array();
@@ -1230,13 +1232,14 @@ class apache2_plugin {
 			$webroot = $data['new']['document_root']."/web";
 
 			//* check if we have already a Let's Encrypt cert
-			if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
+			//if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
+				// we must not skip if cert exists, otherwise changed domains (alias or sub) won't make it to the cert
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
 				
 				$success = false;
 				$letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) );
 				if(is_executable($letsencrypt)) {
-					$success = $this->_exec($letsencrypt . " certonly --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme");
+					$success = $this->_exec($letsencrypt . " certonly --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme <<< '1'");
 				}
 				if(!$success) {
 					// error issuing cert
@@ -1248,7 +1251,7 @@ class apache2_plugin {
 					/* Update also the master-DB of the Server-Farm */
 					$app->dbmaster->query("UPDATE web_domain SET `ssl` = ?, `ssl_letsencrypt` = ? WHERE `domain` = ?", $data['new']['ssl'], 'n', $data['new']['domain']);
 				}
-			}
+			//}
 
 			//* check is been correctly created
 			if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) {
@@ -2102,6 +2105,19 @@ class apache2_plugin {
 				//exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null');
 				exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null');
 			}
+			
+			// remove letsencrypt if it exists (renew will always fail otherwise)
+			
+			$domain = $data['old']['ssl_domain'];
+			if(!$domain) $domain = $data['old']['domain'];
+			if(substr($domain, 0, 2) === '*.') {
+				// wildcard domain not yet supported by letsencrypt!
+				$domain = substr($domain, 2);
+			}
+			//$crt_tmp_file = "/etc/letsencrypt/live/".$domain."/cert.pem";
+			//$key_tmp_file = "/etc/letsencrypt/live/".$domain."/privkey.pem";
+			$le_conf_file = '/etc/letsencrypt/renewal/' . $domain . '.conf';
+			@rename('/etc/letsencrypt/renewal/' . $domain . '.conf', '/etc/letsencrypt/renewal/' . $domain . '.conf~backup');
 		}
 
 		//* remove mountpoint from fstab
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index b2262b00d3..fa1f9134e9 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -333,6 +333,8 @@ class nginx_plugin {
 			return 0;
 		}
 
+		$update_letsencrypt = false;
+
 		if($this->action != 'insert') $this->action = 'update';
 
 		if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['type'] != 'vhostalias' && $data['new']['parent_domain_id'] > 0) {
@@ -354,6 +356,7 @@ class nginx_plugin {
 			$data['new'] = $tmp;
 			$data['old'] = $tmp;
 			$this->action = 'update';
+			$update_letsencrypt = true;
 		}
 
 		// load the server configuration options
@@ -1251,8 +1254,7 @@ class nginx_plugin {
 			($data['old']['ssl'] == 'n' || $data['old']['ssl_letsencrypt'] == 'n') // we have new let's encrypt configuration
 			|| ($data['old']['domain'] != $data['new']['domain']) // we have domain update
 			|| ($data['old']['subdomain'] != $data['new']['subdomain']) // we have new or update on "auto" subdomain
-			|| ($data['new']['type'] == 'subdomain') // we have new or update on subdomain
-			|| ($data['old']['type'] == 'alias' || $data['new']['type'] == 'alias') // we have new or update on alias domain
+			|| $update_letsencrypt == true
 		)) {
 			// default values
 			$temp_domains = array();
@@ -1309,13 +1311,14 @@ class nginx_plugin {
 			$webroot = $data['new']['document_root']."/web";
 
 			//* check if we have already a Let's Encrypt cert
-			if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
+			//if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
+				// we must not skip if cert exists, otherwise changed domains (alias or sub) won't make it to the cert
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
 				
 				$success = false;
 				$letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) );
 				if(is_executable($letsencrypt)) {
-					$success = $this->_exec($letsencrypt . " certonly --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme");
+					$success = $this->_exec($letsencrypt . " certonly --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme <<< '1'");
 				}
 				if(!$success) {
 					// error issuing cert
@@ -1327,7 +1330,7 @@ class nginx_plugin {
 					/* Update also the master-DB of the Server-Farm */
 					$app->dbmaster->query("UPDATE web_domain SET `ssl` = ?, `ssl_letsencrypt` = ? WHERE `domain` = ?", $data['new']['ssl'], 'n', $data['new']['domain']);
 				}
-			}
+			//}
 
 			//* check is been correctly created
 			if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) {
@@ -2124,6 +2127,18 @@ class nginx_plugin {
 				//exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null');
 				exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null');
 			}
+
+			// remove letsencrypt if it exists (renew will always fail otherwise)
+			$domain = $data['old']['ssl_domain'];
+			if(!$domain) $domain = $data['old']['domain'];
+			if(substr($domain, 0, 2) === '*.') {
+				// wildcard domain not yet supported by letsencrypt!
+				$domain = substr($domain, 2);
+			}
+			//$crt_tmp_file = "/etc/letsencrypt/live/".$domain."/cert.pem";
+			//$key_tmp_file = "/etc/letsencrypt/live/".$domain."/privkey.pem";
+			$le_conf_file = '/etc/letsencrypt/renewal/' . $domain . '.conf';
+			@rename('/etc/letsencrypt/renewal/' . $domain . '.conf', '/etc/letsencrypt/renewal/' . $domain . '.conf~backup');
 		}
 
 		//* remove mountpoint from fstab
-- 
GitLab


From 496602492ff2fce4cb0ce4f685af0738b8dcbb65 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 22 Jun 2016 15:04:37 +0200
Subject: [PATCH 040/313] - update LE must be called on sub/alias deleting too

---
 server/plugins-available/apache2_plugin.inc.php | 8 ++++----
 server/plugins-available/nginx_plugin.inc.php   | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 73579c38a9..2019eb0000 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -36,6 +36,7 @@ class apache2_plugin {
 	// private variables
 	var $action = '';
 	var $ssl_certificate_changed = false;
+	var $update_letsencrypt = false;
 
 	//* This function is called during ispconfig installation to determine
 	//  if a symlink shall be created for this plugin.
@@ -485,8 +486,6 @@ class apache2_plugin {
 
 		if($this->action != 'insert') $this->action = 'update';
 
-		$update_letsencrypt = false;
-
 		if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['type'] != 'vhostalias' && $data['new']['parent_domain_id'] > 0) {
 
 			$old_parent_domain_id = intval($data['old']['parent_domain_id']);
@@ -506,7 +505,7 @@ class apache2_plugin {
 			$data['new'] = $tmp;
 			$data['old'] = $tmp;
 			$this->action = 'update';
-			$update_letsencrypt = true;
+			$this->update_letsencrypt = true;
 		}
 
 		// load the server configuration options
@@ -1180,7 +1179,7 @@ class apache2_plugin {
 			($data['old']['ssl'] == 'n' || $data['old']['ssl_letsencrypt'] == 'n') // we have new let's encrypt configuration
 			|| ($data['old']['domain'] != $data['new']['domain']) // we have domain update
 			|| ($data['old']['subdomain'] != $data['new']['subdomain']) // we have new or update on "auto" subdomain
-			|| $update_letsencrypt == true
+			|| $this->update_letsencrypt == true
 		)) {
 			// default values
 			$temp_domains = array();
@@ -2139,6 +2138,7 @@ class apache2_plugin {
 			$data['new'] = $tmp;
 			$data['old'] = $tmp;
 			$this->action = 'update';
+			$this->update_letsencrypt = true;
 			// just run the update function
 			$this->update($event_name, $data);
 
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index fa1f9134e9..a8501fc49a 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -36,6 +36,7 @@ class nginx_plugin {
 	// private variables
 	var $action = '';
 	var $ssl_certificate_changed = false;
+	var $update_letsencrypt = false;
 
 	//* This function is called during ispconfig installation to determine
 	//  if a symlink shall be created for this plugin.
@@ -333,8 +334,6 @@ class nginx_plugin {
 			return 0;
 		}
 
-		$update_letsencrypt = false;
-
 		if($this->action != 'insert') $this->action = 'update';
 
 		if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['type'] != 'vhostalias' && $data['new']['parent_domain_id'] > 0) {
@@ -356,7 +355,7 @@ class nginx_plugin {
 			$data['new'] = $tmp;
 			$data['old'] = $tmp;
 			$this->action = 'update';
-			$update_letsencrypt = true;
+			$this->update_letsencrypt = true;
 		}
 
 		// load the server configuration options
@@ -1254,7 +1253,7 @@ class nginx_plugin {
 			($data['old']['ssl'] == 'n' || $data['old']['ssl_letsencrypt'] == 'n') // we have new let's encrypt configuration
 			|| ($data['old']['domain'] != $data['new']['domain']) // we have domain update
 			|| ($data['old']['subdomain'] != $data['new']['subdomain']) // we have new or update on "auto" subdomain
-			|| $update_letsencrypt == true
+			|| $this->update_letsencrypt == true
 		)) {
 			// default values
 			$temp_domains = array();
@@ -2160,6 +2159,7 @@ class nginx_plugin {
 			$data['new'] = $tmp;
 			$data['old'] = $tmp;
 			$this->action = 'update';
+			$this->update_letsencrypt = true;
 			// just run the update function
 			$this->update($event_name, $data);
 
-- 
GitLab


From cae251836676c76eba12a5667aad868792caac23 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 22 Jun 2016 15:11:10 +0200
Subject: [PATCH 041/313] - add non-interactive flag (expand cert, renew cert
 etc.)

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 server/plugins-available/nginx_plugin.inc.php   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 2019eb0000..c8aea78681 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1238,7 +1238,7 @@ class apache2_plugin {
 				$success = false;
 				$letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) );
 				if(is_executable($letsencrypt)) {
-					$success = $this->_exec($letsencrypt . " certonly --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme <<< '1'");
+					$success = $this->_exec($letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme");
 				}
 				if(!$success) {
 					// error issuing cert
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index a8501fc49a..feac371046 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1317,7 +1317,7 @@ class nginx_plugin {
 				$success = false;
 				$letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) );
 				if(is_executable($letsencrypt)) {
-					$success = $this->_exec($letsencrypt . " certonly --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme <<< '1'");
+					$success = $this->_exec($letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme");
 				}
 				if(!$success) {
 					// error issuing cert
-- 
GitLab


From 611407eb7aed764fdf7875af0799bde34f49e81b Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 22 Jun 2016 19:54:14 +0200
Subject: [PATCH 042/313] - moved lock file to front of file - disabled
 database logging of sql reconnect errors, fixed #3974

---
 server/cron.php                     | 20 ++++++++++++++++
 server/lib/classes/db_mysql.inc.php | 16 +++++++------
 server/server.php                   | 37 +++++++++++++++--------------
 3 files changed, 48 insertions(+), 25 deletions(-)

diff --git a/server/cron.php b/server/cron.php
index c197da9516..e8253a0acd 100644
--- a/server/cron.php
+++ b/server/cron.php
@@ -30,6 +30,26 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"]));
 require SCRIPT_PATH."/lib/config.inc.php";
+
+// Check whether another instance of this script is already running
+if (is_file($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock')) {
+	clearstatcache();
+	$pid = trim(file_get_contents($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock'));
+	if(preg_match('/^[0-9]+$/', $pid)) {
+		if(file_exists('/proc/' . $pid)) {
+			print @date('d.m.Y-H:i').' - WARNING - There is already an instance of server.php running with pid ' . $pid . '.' . "\n";
+			exit;
+		}
+	}
+	print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n";
+}
+
+// Set Lockfile
+@file_put_contents($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock', getmypid());
+
+if($conf['log_priority'] <= LOGLEVEL_DEBUG) print 'Set Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock' . "\n";
+
+
 require SCRIPT_PATH."/lib/app.inc.php";
 
 set_time_limit(0);
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index 7c46820120..64ba44ebae 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/server/lib/classes/db_mysql.inc.php
@@ -87,12 +87,12 @@ class db extends mysqli
 
 		if(!is_object($this->_iConnId) || mysqli_connect_error()) {
 			$this->_iConnId = null;
-			$this->_sqlerror('Zugriff auf Datenbankserver fehlgeschlagen! / Database server not accessible!');
+			$this->_sqlerror('Zugriff auf Datenbankserver fehlgeschlagen! / Database server not accessible!', '', true);
 			return false;
 		}
 		if(!((bool)mysqli_query( $this->_iConnId, 'USE `' . $this->dbName . '`'))) {
 			$this->close();
-			$this->_sqlerror('Datenbank nicht gefunden / Database not found');
+			$this->_sqlerror('Datenbank nicht gefunden / Database not found', '', true);
 			return false;
 		}
 
@@ -210,7 +210,7 @@ class db extends mysqli
 					}
 
 					if($try > 9) {
-						$this->_sqlerror('DB::query -> reconnect');
+						$this->_sqlerror('DB::query -> reconnect', '', true);
 						return false;
 					} else {
 						sleep(($try > 7 ? 5 : 1));
@@ -464,7 +464,7 @@ class db extends mysqli
 	 *
 	 * @access private
 	 */
-	private function _sqlerror($sErrormsg = 'Unbekannter Fehler', $sAddMsg = '') {
+	private function _sqlerror($sErrormsg = 'Unbekannter Fehler', $sAddMsg = '', $bNoLog = false) {
 		global $app, $conf;
 
 		$mysql_error = (is_object($this->_iConnId) ? mysqli_error($this->_iConnId) : mysqli_connect_error());
@@ -475,9 +475,11 @@ class db extends mysqli
 
 		if($this->show_error_messages && $conf['demo_mode'] === false) {
 			echo $sErrormsg . $sAddMsg;
-		} else if(is_object($app) && method_exists($app, 'log')) {
-				$app->log($sErrormsg . $sAddMsg . ' -> ' . $mysql_errno . ' (' . $mysql_error . ')', LOGLEVEL_WARN);
-			}
+		} elseif(is_object($app) && method_exists($app, 'log') && $bNoLog == false) {
+			$app->log($sErrormsg . $sAddMsg . ' -> ' . $mysql_errno . ' (' . $mysql_error . ')', LOGLEVEL_WARN);
+		} elseif(php_sapi_name() == 'cli') {
+			echo $sErrormsg . $sAddMsg;
+		}
 	}
 
 	public function affectedRows() {
diff --git a/server/server.php b/server/server.php
index 4479b147c5..689cb17490 100644
--- a/server/server.php
+++ b/server/server.php
@@ -29,6 +29,25 @@
 
 define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"]));
 require SCRIPT_PATH."/lib/config.inc.php";
+
+// Check whether another instance of this script is already running
+if (is_file($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock')) {
+	clearstatcache();
+	$pid = trim(file_get_contents($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock'));
+	if(preg_match('/^[0-9]+$/', $pid)) {
+		if(file_exists('/proc/' . $pid)) {
+			print @date('d.m.Y-H:i').' - WARNING - There is already an instance of server.php running with pid ' . $pid . '.' . "\n";
+			exit;
+		}
+	}
+	print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n";
+}
+
+// Set Lockfile
+@file_put_contents($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock', getmypid());
+
+if($conf['log_priority'] <= LOGLEVEL_DEBUG) print 'Set Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock' . "\n";
+
 require SCRIPT_PATH."/lib/app.inc.php";
 
 $app->setCaller('server');
@@ -125,24 +144,6 @@ if ($app->dbmaster->connect_error == NULL) {
 	unset($tmp);
 }
 
-
-// Check whether another instance of this script is already running
-if (is_file($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock')) {
-	clearstatcache();
-	$pid = trim(file_get_contents($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock'));
-	if(preg_match('/^[0-9]+$/', $pid)) {
-		if(file_exists('/proc/' . $pid)) {
-			$app->log('There is already an instance of server.php running with pid ' . $pid . '.', LOGLEVEL_DEBUG);
-			exit;
-		}
-	}
-	$app->log('There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.', LOGLEVEL_WARN);
-}
-
-// Set Lockfile
-@file_put_contents($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock', getmypid());
-$app->log('Set Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock', LOGLEVEL_DEBUG);
-
 /** Do we need to start the core-modules */
 
 
-- 
GitLab


From bc042058634fcc2aaabf6d807510291b16a076ef Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 22 Jun 2016 19:56:59 +0200
Subject: [PATCH 043/313] - added missing lockfile removal from previous commit

---
 server/cron.php | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/server/cron.php b/server/cron.php
index e8253a0acd..58d48ec9de 100644
--- a/server/cron.php
+++ b/server/cron.php
@@ -105,6 +105,10 @@ foreach($files as $f) {
 }
 unset($files);
 
+// Remove lock
+@unlink($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock');
+$app->log('Remove Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock', LOGLEVEL_DEBUG);
+
 die("finished.\n");
 
 ?>
-- 
GitLab


From 312ab0fa613356697bb52048444db9997e909fcf Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 23 Jun 2016 11:47:04 +0200
Subject: [PATCH 044/313] - removed strict warning

---
 server/plugins-available/apache2_plugin.inc.php | 3 ++-
 server/plugins-available/nginx_plugin.inc.php   | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index c8aea78681..01362f5f73 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1236,7 +1236,8 @@ class apache2_plugin {
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
 				
 				$success = false;
-				$letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) );
+				$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt'));
+				$letsencrypt = reset($letsencrypt);
 				if(is_executable($letsencrypt)) {
 					$success = $this->_exec($letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme");
 				}
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index feac371046..e65848797c 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1315,7 +1315,8 @@ class nginx_plugin {
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
 				
 				$success = false;
-				$letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) );
+				$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt'));
+				$letsencrypt = reset($letsencrypt);
 				if(is_executable($letsencrypt)) {
 					$success = $this->_exec($letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme");
 				}
-- 
GitLab


From 2be1de4e523cea741a000cd21acd166660d8b9c8 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 23 Jun 2016 17:57:39 +0200
Subject: [PATCH 045/313] Fix for an issue where plugins dont get loaded when
 logged in with "Login as".

---
 interface/web/login/index.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index a1da652ad3..2ecf4ac93d 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -217,6 +217,7 @@ if(count($_POST) > 0) {
 						$_SESSION['s']['user']['theme'] = isset($user['app_theme']) ? $user['app_theme'] : 'default';
 						$_SESSION['s']['language'] = $user['language'];
 						$_SESSION["s"]['theme'] = $_SESSION['s']['user']['theme'];
+						if ($loginAs) $_SESSION['s']['plugin_cache'] = $_SESSION['s_old']['plugin_cache'];
 						
 						if(is_file(ISPC_WEB_PATH . '/' . $_SESSION['s']['user']['startmodule'].'/lib/module.conf.php')) {
 							include_once ISPC_WEB_PATH . '/' . $_SESSION['s']['user']['startmodule'].'/lib/module.conf.php';
-- 
GitLab


From f496e926e7aae5459acb93714dfc77dac64e0e73 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 23 Jun 2016 20:19:49 +0200
Subject: [PATCH 046/313] Fix for amavisd config permissions on CentOS 7.2

---
 install/dist/lib/centos_base.lib.php | 8 +++++++-
 install/dist/lib/fedora.lib.php      | 5 ++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/install/dist/lib/centos_base.lib.php b/install/dist/lib/centos_base.lib.php
index 74ff8be41b..d6deb7e27a 100644
--- a/install/dist/lib/centos_base.lib.php
+++ b/install/dist/lib/centos_base.lib.php
@@ -33,7 +33,7 @@ class installer_centos extends installer_dist {
 	protected $clamav_socket = '/tmp/clamd.socket';
 	
 	public function configure_amavis() {
-		global $conf;
+		global $conf, $dist;
 
 		// amavisd user config file
 		$configfile = 'fedora_amavisd_conf';
@@ -50,6 +50,12 @@ class installer_centos extends installer_dist {
 		$content = str_replace('/var/spool/amavisd/clamd.sock', $this->clamav_socket, $content);
 		wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
 		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
+		
+		// for CentOS 7.2 only
+		if($dist['confid'] == 'centos72') {
+			chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0750);
+			chgrp($conf['amavis']['config_dir'].'/amavisd.conf', 'amavis');
+		}
 
 
 		// Adding the amavisd commands to the postfix configuration
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index f7e7fa331d..4b6dcd38f2 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -480,7 +480,7 @@ class installer_dist extends installer_base {
 	}
 
 	public function configure_amavis() {
-		global $conf;
+		global $conf, $dist;
 
 		// amavisd user config file
 		$configfile = 'fedora_amavisd_conf';
@@ -497,8 +497,7 @@ class installer_dist extends installer_base {
 		chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
 		
 		// for CentOS 7.2 only
-		$distname = get_distname();
-		if($distname['confid'] == 'centos72') {
+		if($dist['confid'] == 'centos72') {
 			chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0750);
 			chgrp($conf['amavis']['config_dir'].'/amavisd.conf', 'amavis');
 		}
-- 
GitLab


From cd14a1d379e76aa957ebe1220de8eae7bb090749 Mon Sep 17 00:00:00 2001
From: Martin <martin@enavn.com>
Date: Fri, 24 Jun 2016 11:47:18 +0200
Subject: [PATCH 047/313] Added missing quotation mark in search value.

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 49b0e3d0ea..3bda9a2e8d 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1686,7 +1686,7 @@ Email Address []:
 		if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true);
 
 		if(is_file('/etc/suphp/suphp.conf')) {
-			replaceLine('/etc/suphp/suphp.conf', 'php=php:/usr/bin', 'x-httpd-suphp="php:/usr/bin/php-cgi"', 0);
+			replaceLine('/etc/suphp/suphp.conf', 'php="php:/usr/bin', 'x-httpd-suphp="php:/usr/bin/php-cgi"', 0);
 			//replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0);
 			replaceLine('/etc/suphp/suphp.conf', 'umask=0077', 'umask=0022', 0);
 		}
-- 
GitLab


From 65ee3af0845f20cd3ae4a3d0c2ee3ce865f7fc7c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 27 Jun 2016 17:52:02 +0200
Subject: [PATCH 048/313] Change file mode of backups that are made available
 for download to 0600.

---
 server/plugins-available/backup_plugin.inc.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php
index 3e4fad6cb4..7ae4660abb 100644
--- a/server/plugins-available/backup_plugin.inc.php
+++ b/server/plugins-available/backup_plugin.inc.php
@@ -87,6 +87,7 @@ class backup_plugin {
 					if(file_exists($backup_dir.'/'.$backup['filename']) && file_exists($web['document_root'].'/backup/') && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) {
 						copy($backup_dir.'/'.$backup['filename'], $web['document_root'].'/backup/'.$backup['filename']);
 						chgrp($web['document_root'].'/backup/'.$backup['filename'], $web['system_group']);
+						chmod($web['document_root'].'/backup/'.$backup['filename'],0600);
 						$app->log('cp '.$backup_dir.'/'.$backup['filename'].' '.$web['document_root'].'/backup/'.$backup['filename'], LOGLEVEL_DEBUG);
 					}
 				}
-- 
GitLab


From dd0130670fe3cab4c7e2c1ab4f3bf0d2b2d512b0 Mon Sep 17 00:00:00 2001
From: Denny Bortfeldt <denny@bortfeldt.net>
Date: Tue, 28 Jun 2016 00:02:16 +0200
Subject: [PATCH 049/313] When uploading a logo which is smaller than the
 current ispconfig one, then the logo will be on the left side of the header.
 In my opinion it will look better when it's centered. You could vote about it
 ;)

---
 interface/web/themes/default/templates/main_login.tpl.htm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/themes/default/templates/main_login.tpl.htm b/interface/web/themes/default/templates/main_login.tpl.htm
index afcf4cf317..61c400bb86 100644
--- a/interface/web/themes/default/templates/main_login.tpl.htm
+++ b/interface/web/themes/default/templates/main_login.tpl.htm
@@ -27,7 +27,7 @@
   <div class="row" style="margin: auto; width:100%;">
     	<div class="col-md-4 col-md-offset-4">
     		<div class="panel panel-default">
-			  	<div class="panel-heading" style="background: linear-gradient(to bottom, white, #eef0f2);">
+			  	<div class="panel-heading" style="background: linear-gradient(to bottom, white, #eef0f2);text-align:center;">
 					<img src="{tmpl_var name='base64_logo_txt'}">
 			 	</div>
 			  	<div class="panel-body">
-- 
GitLab


From 56a9c765e6409900ed3b9225be839bf6200260ae Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 29 Jun 2016 13:50:19 +0200
Subject: [PATCH 050/313] Replace Windows line breaks with Unix line breaks in
 custom mail filters.

---
 server/plugins-available/maildeliver_plugin.inc.php | 2 +-
 server/plugins-available/maildrop_plugin.inc.php    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php
index 35001a4cde..2c16601f50 100644
--- a/server/plugins-available/maildeliver_plugin.inc.php
+++ b/server/plugins-available/maildeliver_plugin.inc.php
@@ -132,7 +132,7 @@ class maildeliver_plugin {
 
 			// Custom filters
 			if($data["new"]["custom_mailfilter"] == 'NULL') $data["new"]["custom_mailfilter"] = '';
-			$tpl->setVar('custom_mailfilter', $data["new"]["custom_mailfilter"]);
+			$tpl->setVar('custom_mailfilter', str_replace("\r\n","\n",$data["new"]["custom_mailfilter"]));
 
 			// Move junk
 			$tpl->setVar('move_junk', $data["new"]["move_junk"]);
diff --git a/server/plugins-available/maildrop_plugin.inc.php b/server/plugins-available/maildrop_plugin.inc.php
index 1ebb677e42..2fefa26cfc 100644
--- a/server/plugins-available/maildrop_plugin.inc.php
+++ b/server/plugins-available/maildrop_plugin.inc.php
@@ -211,7 +211,7 @@ class maildrop_plugin {
 						$mailfilter_content .= file_get_contents($conf["rootpath"].'/conf/mailfilter_move_junk.master')."\n";
 					}
 				}
-				$mailfilter_content .= $data["new"]["custom_mailfilter"];
+				$mailfilter_content .= str_replace("\r\n","\n",$data["new"]["custom_mailfilter"]);
 
 				// Replace windows linebreaks in mailfilter file
 				$mailfilter_content = str_replace("\r\n", "\n", $mailfilter_content);
-- 
GitLab


From 566c28a952bf361ba9a22d7c39d5c335f6956ab2 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 29 Jun 2016 17:42:36 +0200
Subject: [PATCH 051/313] Added "DATE" form type that works like the "DATETIME"
 type incl. date picker, just without time details.

---
 interface/lib/classes/tform.inc.php      | 18 ++++++++++++++++++
 interface/lib/classes/tform_base.inc.php | 18 ++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 1376d7ded9..503bd24eb8 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -235,6 +235,24 @@ class tform extends tform_base {
 		return $diffrec;
 
 	}
+	
+	/**
+	 * Generate HTML for DATE fields.
+	 *
+	 * @access private
+	 * @param string $form_element Name of the form element.
+	 * @param string $default_value Selected value for fields.
+	 * @return string HTML
+	 */
+	function _getDateHTML($form_element, $default_value)
+	{
+		$_date = ($default_value && $default_value != '0000-00-00' ? strtotime($default_value) : false);
+		$_showdate = ($_date === false) ? false : true;
+		
+		$tmp_dt = strtr($this->dateformat,array('d' => 'dd', 'm' => 'mm', 'Y' => 'yyyy', 'y' => 'yy'));
+		
+		return '<input type="text" class="form-control" name="' . $form_element . '" value="' . ($_showdate ? date($this->dateformat, $_date) : '') . '"  data-input-element="date" data-date-format="' . $tmp_dt . '" />'; 
+	}
 
 
 	/**
diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 5adbdf7d68..0c9cda5f51 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -562,6 +562,18 @@ class tform_base {
 						$new_record[$key] = $this->_getDateTimeHTML($key, $dt_value, $display_seconds);
 						break;
 
+					case 'DATE':
+						if (strtotime($val) !== false) {
+							$dt_value = $val;
+						} elseif ( isset($field['default']) && (strtotime($field['default']) !== false) ) {
+							$dt_value = $field['default'];
+						} else {
+							$dt_value = 0;
+						}
+
+						$new_record[$key] = $this->_getDateHTML($key, $dt_value);
+						break;
+					
 					default:
 						if(isset($record[$key])) {
 							$new_record[$key] = htmlspecialchars($record[$key]);
@@ -672,6 +684,12 @@ class tform_base {
 
 					$new_record[$key] = $this->_getDateTimeHTML($key, $dt_value, $display_seconds);
 					break;
+				
+				case 'DATE':
+					$dt_value = (isset($field['default'])) ? $field['default'] : 0;
+
+					$new_record[$key] = $this->_getDateHTML($key, $dt_value);
+					break;
 
 				default:
 					$new_record[$key] = htmlspecialchars($field['default']);
-- 
GitLab


From ebcb3bc7b70ddc312e5274aafb5ed8f3fa63f6fe Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 29 Jun 2016 18:26:57 +0200
Subject: [PATCH 052/313] Fixed a session save issue.

---
 interface/lib/classes/session.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/session.inc.php b/interface/lib/classes/session.inc.php
index bef2a10378..f4a90beda9 100644
--- a/interface/lib/classes/session.inc.php
+++ b/interface/lib/classes/session.inc.php
@@ -93,8 +93,8 @@ class session {
 
 
 		if (@$this->session_array['session_id'] == '') {
-			$sql = "REPLACE INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES (?,NOW(),NOW(),'$session_data',?)";
-			$this->db->query($sql, $session_id, ($this->permanent ? 'y' : 'n'));
+			$sql = "REPLACE INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES (?,NOW(),NOW(),?,?)";
+			$this->db->query($sql, $session_id, $session_data, ($this->permanent ? 'y' : 'n'));
 
 		} else {
 			$sql = "UPDATE sys_session SET last_updated = NOW(), session_data = ?" . ($this->permanent ? ", `permanent` = 'y'" : "") . " WHERE session_id = ?";
-- 
GitLab


From be08cdebf7c631f0f851824bb0d7df69d6711bfa Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 30 Jun 2016 19:26:08 +0200
Subject: [PATCH 053/313] Fixed: Issue #3991 hailed users dont get removed
 correctly from /etc/passwd

---
 .../shelluser_jailkit_plugin.inc.php                  | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index 5645953bdf..184a8ca69a 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -245,13 +245,14 @@ class shelluser_jailkit_plugin {
 			//exec('rm -rf '.$data['old']['dir'].$jailkit_chroot_userhome);
 
 			$app->system->web_folder_protection($web['document_root'], false);
+			
+			$userid = intval($app->system->getuid($data['old']['username']));
+			$command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; ';
+			$command .= 'userdel -f '.escapeshellcmd($data['old']['username']).' &> /dev/null';
+			exec($command);
+			
 
 			if(@is_dir($data['old']['dir'].$jailkit_chroot_userhome)) {
-				$userid = intval($app->system->getuid($data['old']['username']));
-				$command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f';
-				$command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null';
-				exec($command);
-				
 				$this->_delete_homedir($data['old']['dir'].$jailkit_chroot_userhome,$userid,$data['old']['parent_domain_id']);
 				
 				$app->log("Jailkit Plugin -> delete chroot home:".$data['old']['dir'].$jailkit_chroot_userhome, LOGLEVEL_DEBUG);
-- 
GitLab


From 437887f7cc8482aaf9a641ffc08694e4bea91f1a Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 30 Jun 2016 19:34:32 +0200
Subject: [PATCH 054/313] Fixed #3196

---
 server/plugins-available/shelluser_jailkit_plugin.inc.php | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index 184a8ca69a..16dbcc7a67 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -251,6 +251,9 @@ class shelluser_jailkit_plugin {
 			$command .= 'userdel -f '.escapeshellcmd($data['old']['username']).' &> /dev/null';
 			exec($command);
 			
+			// Remove the jailed user from passwd and shadow file inside the jail
+			$app->system->removeLine($data['old']['dir'].'/etc/passwd', $data['old']['username']);
+			$app->system->removeLine($data['old']['dir'].'/etc/shadow', $data['old']['username']);
 
 			if(@is_dir($data['old']['dir'].$jailkit_chroot_userhome)) {
 				$this->_delete_homedir($data['old']['dir'].$jailkit_chroot_userhome,$userid,$data['old']['parent_domain_id']);
-- 
GitLab


From da3c0c44e13c665034d5922678388e3ee52e2da6 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 1 Jul 2016 09:52:28 +0200
Subject: [PATCH 055/313] - fixed expert install mode and merged code, fixed
 #3990

---
 install/install.php | 662 +++++++++++++-------------------------------
 1 file changed, 194 insertions(+), 468 deletions(-)

diff --git a/install/install.php b/install/install.php
index 14c9815226..1e0899f02b 100644
--- a/install/install.php
+++ b/install/install.php
@@ -246,41 +246,99 @@ $conf['services']['firewall'] = false;
 $conf['services']['proxy'] = false;
 $conf['services']['xmpp'] = false;
 
-if($install_mode == 'standard') {
+//** Get Server ID
+// $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1');
+// Server ID is an autoInc value of the mysql database now
+if($install_mode == 'expert' && strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n','join_multiserver_setup')) == 'y') {
+	$conf['mysql']['master_slave_setup'] = 'y';
+
+	//** Get MySQL root credentials
+	$finished = false;
+	do {
+		$tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname'); 
+		$tmp_mysql_server_port = $inst->free_query('MySQL master server port', $conf['mysql']['master_port'],'mysql_master_port');
+		$tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');	 
+		$tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password'); 
+		$tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
+
+		//* Initialize the MySQL server connection
+		if(@mysqli_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password, $tmp_mysql_server_database, (int)$tmp_mysql_server_port)) {
+			$conf['mysql']['master_host'] = $tmp_mysql_server_host;
+			$conf['mysql']['master_port'] = $tmp_mysql_server_port;
+			$conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
+			$conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
+			$conf['mysql']['master_database'] = $tmp_mysql_server_database;
+			$finished = true;
+		} else {
+			swriteln($inst->lng('Unable to connect to mysql server').' '.mysqli_connect_error());
+		}
+	} while ($finished == false);
+	unset($finished);
 
+	// initialize the connection to the master database
+	$inst->dbmaster = new db();
+	if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
+	$inst->dbmaster->setDBData($conf['mysql']["master_host"], $conf['mysql']["master_admin_user"], $conf['mysql']["master_admin_password"]);
+	$inst->dbmaster->setDBName($conf['mysql']["master_database"]);
+
+} else {
+	// the master DB is the same then the slave DB
 	$inst->dbmaster = $inst->db;
-	
-	//* Create the MySQL database
-	$inst->configure_database();
+}
+
+//* Create the mysql database
+$inst->configure_database();
 
-	//* Insert the Server record into the database
-	$inst->add_database_server_record();
+//* Check for Web-Server
+if(!$conf['apache']['installed'] && !$conf['nginx']['installed']) {
+	$conf['apache']['installed'] = $inst->force_configure_app('Apache', ($install_mode == 'expert'));
+	$conf['nginx']['installed'] = $inst->force_configure_app('nginx', ($install_mode == 'expert'));
+}
+
+//* Configure Webserver - Apache or nginx
+if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) {
+	$http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache','http_server');
+	if($http_server_to_use == 'apache'){
+		$conf['nginx']['installed'] = false;
+		$conf['services']['file'] = true;
+	} else {
+		$conf['apache']['installed'] = false;
+	}
+}
+
+//* Insert the Server record into the database
+if($install_mode == 'expert') {
+	swriteln('Adding ISPConfig server record to database.');
+	swriteln('');
+}
+$inst->add_database_server_record();
+
+if($install_mode == 'standard' || strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y','configure_mail') ) == 'y') {
 
 	//* Configure Postgrey
-	$force = @($conf['postgrey']['installed']) ? true : $inst->force_configure_app('Postgrey', false);
+	$force = @($conf['postgrey']['installed']) ? true : $inst->force_configure_app('Postgrey', ($install_mode == 'expert'));
 	if($force) swriteln('Configuring Postgrey');
 
 	//* Configure Postfix
-	$force = @($conf['postfix']['installed']) ? true : $inst->force_configure_app('Postfix', false);
+	$force = @($conf['postfix']['installed']) ? true : $inst->force_configure_app('Postfix', ($install_mode == 'expert'));
 	if($force) {
 		swriteln('Configuring Postfix');
-		$inst->configure_postfix();
 		$conf['services']['mail'] = true;
+		$inst->configure_postfix();
 	}
 
 	if($conf['services']['mail']) {
-
 		//* Configure Mailman
-		$force = @($conf['mailman']['installed']) ? true : $inst->force_configure_app('Mailman', false);
+		$force = @($conf['mailman']['installed']) ? true : $inst->force_configure_app('Mailman', ($install_mode == 'expert'));
 		if($force) {
 			swriteln('Configuring Mailman');
 			$inst->configure_mailman();
-		} 
+		}
 
 		//* Check for Dovecot and Courier
 		if(!$conf['dovecot']['installed'] && !$conf['courier']['installed']) {
-			$conf['dovecot']['installed'] = $inst->force_configure_app('Dovecot', false);
-			$conf['courier']['installed'] = $inst->force_configure_app('Courier', false);
+			$conf['dovecot']['installed'] = $inst->force_configure_app('Dovecot', ($install_mode == 'expert'));
+			$conf['courier']['installed'] = $inst->force_configure_app('Courier', ($install_mode == 'expert'));
 		}
 		//* Configure Mailserver - Dovecot or Courier
 		if($conf['dovecot']['installed'] && $conf['courier']['installed']) {
@@ -307,44 +365,58 @@ if($install_mode == 'standard') {
 		}
 
 		//* Configure Spamasassin
-		$force = @($conf['spamassassin']['installed']) ? true : $inst->force_configure_app('Spamassassin', false);
+		$force = @($conf['spamassassin']['installed']) ? true : $inst->force_configure_app('Spamassassin', ($install_mode == 'expert'));
 		if($force) {
 			swriteln('Configuring Spamassassin');
 			$inst->configure_spamassassin();
 		}
-    
+
 		//* Configure Amavis
-		$force = @($conf['amavis']['installed']) ? true : $inst->force_configure_app('Amavisd', false);
+		$force = @($conf['amavis']['installed']) ? true : $inst->force_configure_app('Amavisd', ($install_mode == 'expert'));
 		if($force) {
 			swriteln('Configuring Amavisd');
 			$inst->configure_amavis();
 		}
 
 		//* Configure Getmail
-		$force = @($conf['getmail']['installed']) ? true : $inst->force_configure_app('Getmail', false);
+		$force = @($conf['getmail']['installed']) ? true : $inst->force_configure_app('Getmail', ($install_mode == 'expert'));
 		if($force) {
 			swriteln('Configuring Getmail');
 			$inst->configure_getmail();
 		}
+	} else {
+		swriteln('[ERROR] Postfix not installed - skipping Mail');
+	}
+}
+
+//* Configure Jailkit
+$force = @($conf['jailkit']['installed']) ? true : $inst->force_configure_app('Jailkit', ($install_mode == 'expert'));
+if($force) {
+	swriteln('Configuring Jailkit');
+	$inst->configure_jailkit();
+}
 
-	} else swriteln('[ERROR] Postfix not installed - skipping Mail');
+//* Configure Pureftpd
+$force = @($conf['pureftpd']['installed']) ? true : $inst->force_configure_app('pureftpd', ($install_mode == 'expert'));
+if($force) {
+	swriteln('Configuring Pureftpd');
+	$inst->configure_pureftpd();
+}
 
+//** Configure DNS
+if($install_mode == 'standard' || strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y','configure_dns')) == 'y') {
 	//* Check for DNS
-//	if(!$conf['powerdns']['installed'] && !$conf['bind']['installed'] && !$conf['mydns']['installed']) {
-	if(!$conf['bind']['installed'] && !$conf['mydns']['installed']) {
-//		$conf['powerdns']['installed'] = $inst->force_configure_app('PowerDNS', false);
-		$conf['bind']['installed'] = $inst->force_configure_app('BIND', false);
-		$conf['mydns']['installed'] = $inst->force_configure_app('MyDNS', false);
+	if(!$conf['powerdns']['installed'] && !$conf['bind']['installed'] && !$conf['mydns']['installed']) {
+		if($install_mode == 'expert') $conf['powerdns']['installed'] = $inst->force_configure_app('PowerDNS', ($install_mode == 'expert'));
+		$conf['bind']['installed'] = $inst->force_configure_app('BIND', ($install_mode == 'expert'));
+		$conf['mydns']['installed'] = $inst->force_configure_app('MyDNS', ($install_mode == 'expert'));
 	}
 	//* Configure PowerDNS
-/*
-	if($conf['powerdns']['installed']) {
+	if($install_mode == 'expert' && $conf['powerdns']['installed']) {
 		swriteln('Configuring PowerDNS');
 		$inst->configure_powerdns();
 		$conf['services']['dns'] = true;
 	}
-*/
-
 	//* Configure Bind
 	if($conf['bind']['installed']) {
 		swriteln('Configuring BIND');
@@ -361,36 +433,9 @@ if($install_mode == 'standard') {
 		$conf['services']['dns'] = true;
 	}
 
-	//* Configure Jailkit
-	$force = @($conf['jailkit']['installed']) ? true : $inst->force_configure_app('Jailkit', false);
-	if($force) {
-		swriteln('Configuring Jailkit');
-		$inst->configure_jailkit();
-	}
-
-	//* Configure Pureftpd
-	$force = @($conf['pureftpd']['installed']) ? true : $inst->force_configure_app('pureftpd', false);
-	if($force) {
-		swriteln('Configuring Pureftpd');
-		$inst->configure_pureftpd();
-	}
-
-	//* Check for Web-Server
-	if(!$conf['apache']['installed'] && !$conf['nginx']['installed']) {
-		$conf['apache']['installed'] = $inst->force_configure_app('Apache', false);
-		$conf['nginx']['installed'] = $inst->force_configure_app('nginx', false);
-	}
-
-	//* Configure Webserver - Apache or nginx
-	if($conf['apache']['installed'] && $conf['nginx']['installed']) {
-		$http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache','http_server');
-		if($http_server_to_use == 'apache'){
-			$conf['nginx']['installed'] = false;
-		} else {
-			$conf['apache']['installed'] = false;
-		}
-	}
+}
 
+if($install_mode == 'standard' || strtolower($inst->simple_query('Configure Web Server', array('y', 'n'), 'y','configure_webserver')) == 'y') {
 	//* Configure Apache
 	if($conf['apache']['installed']){
 		swriteln('Configuring Apache');
@@ -398,41 +443,42 @@ if($install_mode == 'standard') {
 		$conf['services']['web'] = true;
 		$conf['services']['file'] = true;
 		//* Configure Vlogger
-		$force = @($conf['vlogger']['installed']) ? true : $inst->force_configure_app('vlogger', false);
+		$force = @($conf['vlogger']['installed']) ? true : $inst->force_configure_app('vlogger', ($install_mode == 'expert'));
 		if($force) {
 			swriteln('Configuring vlogger');
 			$inst->configure_vlogger();
 		}
 		//* Configure squid
 /*
-		$force = @($conf['squid']['installed']) ? true : $inst->force_configure_app('squid');
+		$force = @($conf['squid']['installed']) ? true : $inst->force_configure_app('squid', ($install_mode == 'expert'));
 		if($force) {
 			swriteln('Configuring Squid');
 			$inst->configure_squid();
 			$conf['services']['proxy'] = true;
+			if($conf['squid']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['squid']['init_script']))system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
 		}
 */
 	}
-
 	//* Configure nginx
 	if($conf['nginx']['installed']){
 		swriteln('Configuring nginx');
 		$inst->configure_nginx();
 		$conf['services']['web'] = true;
 	}
+}
 
-    //* Configure XMPP
-	$force = @($conf['xmpp']['installed']) ? true : $inst->force_configure_app('Metronome XMPP Server', false);
-	if($force) {
-        swriteln('Configuring Metronome XMPP Server');
-        $inst->configure_xmpp();
-	    $conf['services']['xmpp'] = true;
-	}
+//* Configure OpenVZ
+$force = @($conf['openvz']['installed']) ? true : $inst->force_configure_app('OpenVZ', ($install_mode == 'expert'));
+if($force) {
+	$conf['services']['vserver'] = true;
+	swriteln('Configuring OpenVZ');
+}
 
+if($install_mode == 'standard' || strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y','configure_firewall')) == 'y') {
 	//* Check for Firewall
 	if(!$conf['ufw']['installed'] && !$conf['firewall']['installed']) {
-		$conf['ufw']['installed'] = $inst->force_configure_app('Ubuntu Firewall', false);
-		$conf['firewall']['installed'] = $inst->force_configure_app('Bastille Firewall', false);
+		$conf['ufw']['installed'] = $inst->force_configure_app('Ubuntu Firewall', ($install_mode == 'expert'));
+		$conf['firewall']['installed'] = $inst->force_configure_app('Bastille Firewall', ($install_mode == 'expert'));
 	}
 	//* Configure Firewall - Ubuntu or Bastille
 	if($conf['ufw']['installed'] && $conf['firewall']['installed']) {
@@ -456,29 +502,49 @@ if($install_mode == 'standard') {
 		$conf['services']['firewall'] = true;
 		$conf['bastille']['installed'] = true;
 	}
+}
 
-	//* Configure Fail2ban
-	$force = @($conf['fail2ban']['installed']) ? true : $inst->force_configure_app('Fail2ban', false);
-	if($force) {
-		swriteln('Configuring Fail2ban');
-		$inst->configure_fail2ban();
-	}
+//* Configure XMPP
+$force = @($conf['xmpp']['installed']) ? true : $inst->force_configure_app('Metronome XMPP Server', ($install_mode == 'expert'));
+if($force) {
+	swriteln('Configuring Metronome XMPP Server');
+	$inst->configure_xmpp();
+	$conf['services']['xmpp'] = true;
+}
 
-	//* Configure OpenVZ
-	$force = @($conf['openvz']['installed']) ? true : $inst->force_configure_app('OpenVZ', false);
-	if($force) {
-		$conf['services']['vserver'] = true;
-		swriteln('Configuring OpenVZ');
-	}
+//* Configure Fail2ban
+$force = @($conf['fail2ban']['installed']) ? true : $inst->force_configure_app('Fail2ban', ($install_mode == 'expert'));
+if($force) {
+	swriteln('Configuring Fail2ban');
+	$inst->configure_fail2ban();
+}
 
+if($conf['services']['web'] == true) {
 	//** Configure apps vhost
 	swriteln('Configuring Apps vhost');
 	$inst->configure_apps_vhost();
+}
 
-	//* Configure ISPConfig
+//** Configure ISPConfig :-)
+$install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y';
+if($install_mode == 'standard' || strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default,'install_ispconfig_web_interface')) == 'y') {
 	swriteln('Installing ISPConfig');
 
-	//** Customize the port ISPConfig runs on
+	//** We want to check if the server is a module or cgi based php enabled server
+	//** TODO: Don't always ask for this somehow ?
+	/*
+	$fast_cgi = $inst->simple_query('CGI PHP Enabled Server?', array('yes','no'),'no');
+
+	if($fast_cgi == 'yes') {
+		$alias = $inst->free_query('Script Alias', '/php/');
+		$path = $inst->free_query('Script Alias Path', '/path/to/cgi/bin');
+		$conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path);
+	} else {
+		$conf['apache']['vhost_cgi_alias'] = "";
+	}
+	*/
+
+	//** Customise the port ISPConfig runs on
 	$ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port');
 	$conf['interface_password'] = $inst->free_query('Admin password', 'admin');
 	if($conf['interface_password'] != 'admin') {
@@ -499,398 +565,58 @@ if($install_mode == 'standard') {
 	if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y','ispconfig_use_ssl')) == 'y') {	 
 		$inst->make_ispconfig_ssl_cert();
 	}
+	$inst->install_ispconfig_interface = true;
 
-	$inst->install_ispconfig();
-
-	//* Configure DBServer
-	swriteln('Configuring DBServer');
-	$inst->configure_dbserver();
-
-	//* Configure ISPConfig
-	if($conf['cron']['installed']) {
-		swriteln('Installing ISPConfig crontab');
-		$inst->install_crontab();
-	} else swriteln('[ERROR] Cron not found');
-
-	swriteln('Detect IP addresses');
-	$inst->detect_ips();
-
-	swriteln('Restarting services ...');
-	if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'restart').' >/dev/null 2>&1');
-	if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart'));
-	if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart'));
-	if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart'));
-	if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart'));
-	if($conf['courier']['installed'] == true){
-		if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart'));
-		if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart'));
-		if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart'));
-		if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart'));
-		if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart'));
-	}
-	if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
-	if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
-	if($conf['apache']['installed'] == true && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
-	//* Reload is enough for nginx
-	if($conf['nginx']['installed'] == true){
-		if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
-		if($conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload'));
-	}
-	if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart'));
-	if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null');
-	if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null');
-	if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null');
-	//if($conf['squid']['installed'] == true && $conf['squid']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['squid']['init_script']))     system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
-	if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null');
-	if($conf['ufw']['installed'] == true && $conf['ufw']['init_script'] != '') system($inst->getinitcommand($conf['ufw']['init_script'], 'restart').' &> /dev/null');
-    if($conf['xmpp']['installed'] == true && $conf['xmpp']['init_script'] != '') system($inst->getinitcommand($conf['xmpp']['init_script'], 'restart').' &> /dev/null');
-
-} else { //* expert mode
-
-	//** Get Server ID
-	// $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1');
-	// Server ID is an autoInc value of the mysql database now
-	if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n','join_multiserver_setup')) == 'y') {
-		$conf['mysql']['master_slave_setup'] = 'y';
-
-		//** Get MySQL root credentials
-		$finished = false;
-		do {
-			$tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname'); 
-			$tmp_mysql_server_port = $inst->free_query('MySQL master server port', $conf['mysql']['master_port'],'mysql_master_port');
-			$tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');	 
-			$tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password'); 
-			$tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
-
-			//* Initialize the MySQL server connection
-			if(@mysqli_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password, $tmp_mysql_server_database, (int)$tmp_mysql_server_port)) {
-				$conf['mysql']['master_host'] = $tmp_mysql_server_host;
-				$conf['mysql']['master_port'] = $tmp_mysql_server_port;
-				$conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
-				$conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
-				$conf['mysql']['master_database'] = $tmp_mysql_server_database;
-				$finished = true;
-			} else {
-				swriteln($inst->lng('Unable to connect to mysql server').' '.mysqli_connect_error());
-			}
-		} while ($finished == false);
-		unset($finished);
-
-		// initialize the connection to the master database
-		$inst->dbmaster = new db();
-		if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
-		$inst->dbmaster->setDBData($conf['mysql']["master_host"], $conf['mysql']["master_admin_user"], $conf['mysql']["master_admin_password"]);
-		$inst->dbmaster->setDBName($conf['mysql']["master_database"]);
-
-	} else {
-		// the master DB is the same then the slave DB
-		$inst->dbmaster = $inst->db;
-	}
-
-	//* Create the mysql database
-	$inst->configure_database();
-
-	//* Check for Web-Server
-	if($conf['apache']['installed'] != true && $conf['nginx']['installed'] != true) {
-		$conf['apache']['installed'] = $inst->force_configure_app('Apache');
-		$conf['nginx']['installed'] = $inst->force_configure_app('nginx');
-	}
-	//* Configure Webserver - Apache or nginx
-	if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) {
-		$http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache','http_server');
-		if($http_server_to_use == 'apache'){
-			$conf['nginx']['installed'] = false;
-			$conf['services']['file'] = true;
-		} else {
-			$conf['apache']['installed'] = false;
-		}
-	}
-
-	//* Insert the Server record into the database
-	swriteln('Adding ISPConfig server record to database.');
-	swriteln('');
-	$inst->add_database_server_record();
-
-	if(strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y','configure_mail') ) == 'y') {
-
-		$conf['services']['mail'] = true;
-
-		//* Configure Postgrey
-		$force = @($conf['postgrey']['installed']) ? true : $inst->force_configure_app('Postgrey');
-		if($force) swriteln('Configuring Postgrey');
-
-		//* Configure Postfix
-		$force = @($conf['postfix']['installed']) ? true : $inst->force_configure_app('Postfix');
-		if($force) {
-			swriteln('Configuring Postfix');
-			$inst->configure_postfix();
-		}
-
-		//* Configure Mailman
-		$force = @($conf['mailman']['installed']) ? true : $inst->force_configure_app('Mailman');
-		if($force) {
-			swriteln('Configuring Mailman');
-			$inst->configure_mailman();
-		}
-
-		//* Check for Dovecot and Courier
-		if(!$conf['dovecot']['installed'] && !$conf['courier']['installed']) {
-			$conf['dovecot']['installed'] = $inst->force_configure_app('Dovecot');
-			$conf['courier']['installed'] = $inst->force_configure_app('Courier');
-		}
-		//* Configure Mailserver - Dovecot or Courier
-		if($conf['dovecot']['installed'] && $conf['courier']['installed']) {
-			$mail_server_to_use = $inst->simple_query('Dovecot and Courier detected. Select server to use with ISPConfig:', array('dovecot', 'courier'), 'dovecot','mail_server');
-			if($mail_server_to_use == 'dovecot'){
-				$conf['courier']['installed'] = false;
-			} else {
-				$conf['dovecot']['installed'] = false;
-			}
-		}
-		//* Configure Dovecot
-		if($conf['dovecot']['installed']) {
-			swriteln('Configuring Dovecot');
-			$inst->configure_dovecot();
-		}
-		//* Configure Courier
-		if($conf['courier']['installed']) {
-			swriteln('Configuring Courier');
-			$inst->configure_courier();
-			swriteln('Configuring SASL');
-			$inst->configure_saslauthd();
-			swriteln('Configuring PAM');
-			$inst->configure_pam();
-		}
-
-		//* Configure Spamasassin
-		$force = @($conf['spamassassin']['installed']) ? true : $inst->force_configure_app('Spamassassin');
-		if($force) {
-			swriteln('Configuring Spamassassin');
-			$inst->configure_spamassassin();
-		}
-    
-		//* Configure Amavis
-		$force = @($conf['amavis']['installed']) ? true : $inst->force_configure_app('Amavisd');
-		if($force) {
-			swriteln('Configuring Amavisd');
-			$inst->configure_amavis();
-		}
-
-		//* Configure Getmail
-		$force = @($conf['getmail']['installed']) ? true : $inst->force_configure_app('Getmail');
-		if($force) {
-			swriteln('Configuring Getmail');
-			$inst->configure_getmail();
-		}
-
-		if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart'));
-		if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart'));
-		if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart'));
-		if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart'));
-		if($conf['courier']['installed'] == true){
-			if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart'));
-			if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart'));
-			if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart'));
-			if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart'));
-			if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart'));
-		}
-		if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
-		if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
-	}
-
-	//* Configure Jailkit
-	$force = @($conf['jailkit']['installed']) ? true : $inst->force_configure_app('Jailkit');
-	if($force) {
-		swriteln('Configuring Jailkit');
-		$inst->configure_jailkit();
-	}
-
-	//* Configure Pureftpd
-	$force = @($conf['pureftpd']['installed']) ? true : $inst->force_configure_app('pureftpd');
-	if($force) {
-		swriteln('Configuring Pureftpd');
-		$inst->configure_pureftpd();
-	}
-	
-	//** Configure DNS
-	if(strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y','configure_dns')) == 'y') {
-		$conf['services']['dns'] = true;
-
-		//* Check for DNS
-		if(!$conf['powerdns']['installed'] && !$conf['bind']['installed'] && !$conf['mydns']['installed']) {
-			$conf['powerdns']['installed'] = $inst->force_configure_app('PowerDNS');
-			$conf['bind']['installed'] = $inst->force_configure_app('BIND');
-			$conf['mydns']['installed'] = $inst->force_configure_app('MyDNS');
-		}
-		//* Configure PowerDNS
-		if($conf['powerdns']['installed']) {
-			swriteln('Configuring PowerDNS');
-			$inst->configure_powerdns();
-			$conf['services']['dns'] = true;
-		}
-		//* Configure Bind
-		if($conf['bind']['installed']) {
-			swriteln('Configuring BIND');
-			$inst->configure_bind();
-			$conf['services']['dns'] = true;
-			if(!is_installed('haveged')) {
-				swriteln("[INFO] haveged not detected - DNSSEC can fail");
-			}
-		}
-		//* Configure MyDNS
-		if($conf['mydns']['installed']) {
-			swriteln('Configuring MyDNS');
-			$inst->configure_mydns();
-			$conf['services']['dns'] = true;
-		}
-
-	}
-
-	if(strtolower($inst->simple_query('Configure Web Server', array('y', 'n'), 'y','configure_webserver')) == 'y') {
-		$conf['services']['web'] = true;
-
-		//* Configure Apache
-		if($conf['apache']['installed']){
-			swriteln('Configuring Apache');
-			$inst->configure_apache();
-			$conf['services']['file'] = true;
-			//* Configure Vlogger
-			$force = @($conf['vlogger']['installed']) ? true : $inst->force_configure_app('vlogger');
-			if($force) {
-				swriteln('Configuring vlogger');
-				$inst->configure_vlogger();
-			}
-			//* Configure squid
-/*
-			$force = @($conf['squid']['installed']) ? true : $inst->force_configure_app('squid');
-			if($force) {
-				swriteln('Configuring Squid');
-				$inst->configure_squid();
-				$conf['services']['proxy'] = true;
-				if($conf['squid']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['squid']['init_script']))system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
-			}
-*/
-		}
-		//* Configure nginx
-		if($conf['nginx']['installed']){
-			swriteln('Configuring nginx');
-			$inst->configure_nginx();
-		}
-	}
-
-	//* Configure OpenVZ
-	$force = @($conf['openvz']['installed']) ? true : $inst->force_configure_app('OpenVZ');
-	if($force) {
-		$conf['services']['vserver'] = true;
-		swriteln('Configuring OpenVZ');
-	}
-
-	if(strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y','configure_firewall')) == 'y') {
-		//* Check for Firewall
-		if(!$conf['ufw']['installed'] && !$conf['firewall']['installed']) {
-			$conf['ufw']['installed'] = $inst->force_configure_app('Ubuntu Firewall');
-			$conf['firewall']['installed'] = $inst->force_configure_app('Bastille Firewall');
-		}
-		//* Configure Firewall - Ubuntu or Bastille
-		if($conf['ufw']['installed'] && $conf['firewall']['installed']) {
-			$firewall_to_use = $inst->simple_query('Ubuntu and Bastille Firewall detected. Select firewall to use with ISPConfig:', array('bastille', 'ubuntu'), 'bastille','firewall_server');
-			if($firewall_to_use == 'bastille'){
-				$conf['ufw']['installed'] = false;
-			} else {
-				$conf['firewall']['installed'] = false;
-			}
-		}
-		//* Configure Ubuntu Firewall
-		if($conf['ufw']['installed']){
-			swriteln('Configuring Ubuntu Firewall');
-			$inst->configure_ufw_firewall();
-			$conf['services']['firewall'] = true;
-		}
-		//* Configure Bastille Firewall
-		if($conf['firewall']['installed']){
-			swriteln('Configuring Bastille Firewall');
-			$inst->configure_bastille_firewall();
-			$conf['services']['firewall'] = true;
-		}
-	}
-
-    //* Configure XMPP
-	$force = @($conf['xmpp']['installed']) ? true : $inst->force_configure_app('Metronome XMPP Server');
-	if($force) {
-        swriteln('Configuring Metronome XMPP Server');
-        $inst->configure_xmpp();
-	    $conf['services']['xmpp'] = true;
-	}
-
-	//** Configure ISPConfig :-)
-	$install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y';
-	if(strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default,'install_ispconfig_web_interface')) == 'y') {
-		swriteln('Installing ISPConfig');
-
-		//** We want to check if the server is a module or cgi based php enabled server
-		//** TODO: Don't always ask for this somehow ?
-		/*
-		$fast_cgi = $inst->simple_query('CGI PHP Enabled Server?', array('yes','no'),'no');
-
-		if($fast_cgi == 'yes') {
-	 		$alias = $inst->free_query('Script Alias', '/php/');
-	 		$path = $inst->free_query('Script Alias Path', '/path/to/cgi/bin');
-	 		$conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path);
-		} else {
-	 		$conf['apache']['vhost_cgi_alias'] = "";
-		}
-		*/
-
-		//** Customise the port ISPConfig runs on
-		$ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port');
-		$conf['interface_password'] = $inst->free_query('Admin password', 'admin');
-		if($conf['interface_password'] != 'admin') {
-			$check = false;
-			do {
-				unset($temp_password);
-				$temp_password = $inst->free_query('Re-enter admin password', '');
-				$check = @($temp_password == $conf['interface_password'])?true:false;
-				if(!$check) swriteln('Passwords do not match.');
-			} while (!$check);
-		}
-		unset($check);
-		unset($temp_password);
-		if($conf['apache']['installed'] == true) $conf['apache']['vhost_port']  = $ispconfig_vhost_port;
-		if($conf['nginx']['installed'] == true) $conf['nginx']['vhost_port']  = $ispconfig_vhost_port;
-		unset($ispconfig_vhost_port);
-
-		if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface', array('y', 'n'), 'y','ispconfig_use_ssl')) == 'y') {
-			$inst->make_ispconfig_ssl_cert();
-		}
-
-		$inst->install_ispconfig_interface = true;
-
-	} else {
-		$inst->install_ispconfig_interface = false;
-	}
+} else {
+	$inst->install_ispconfig_interface = false;
+}
 
-	$inst->install_ispconfig();
+$inst->install_ispconfig();
 
-	//* Configure DBServer
-	swriteln('Configuring DBServer');
-	$inst->configure_dbserver();
+//* Configure DBServer
+swriteln('Configuring DBServer');
+$inst->configure_dbserver();
 
-	//* Configure ISPConfig
+//* Configure ISPConfig
+swriteln('Installing ISPConfig crontab');
+if($conf['cron']['installed']) {
 	swriteln('Installing ISPConfig crontab');
 	$inst->install_crontab();
-	if($conf['apache']['installed'] == true && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
-	//* Reload is enough for nginx
-	if($conf['nginx']['installed'] == true){
-		if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
-		if($conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload'));
-	}
-	
-	swriteln('Detect IP addresses');
-	$inst->detect_ips();
-
-
+} else swriteln('[ERROR] Cron not found');
+
+swriteln('Detect IP addresses');
+$inst->detect_ips();
+
+swriteln('Restarting services ...');
+if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'restart').' >/dev/null 2>&1');
+if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart'));
+if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart'));
+if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart'));
+if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart'));
+if($conf['courier']['installed'] == true){
+	if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart'));
+	if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart'));
+	if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart'));
+	if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart'));
+	if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart'));
+}
+if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
+if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
+if($conf['apache']['installed'] == true && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
+//* Reload is enough for nginx
+if($conf['nginx']['installed'] == true){
+	if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
+	if($conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload'));
+}
+if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart'));
+if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null');
+if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null');
+if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null');
+//if($conf['squid']['installed'] == true && $conf['squid']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['squid']['init_script']))     system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
+if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null');
+if($conf['ufw']['installed'] == true && $conf['ufw']['init_script'] != '') system($inst->getinitcommand($conf['ufw']['init_script'], 'restart').' &> /dev/null');
+if($conf['xmpp']['installed'] == true && $conf['xmpp']['init_script'] != '') system($inst->getinitcommand($conf['xmpp']['init_script'], 'restart').' &> /dev/null');
 
-} //* << $install_mode / 'Standard' or Genius
 
 $inst->create_mount_script();
 
-- 
GitLab


From f9cfd80565bc062ffb6e23ebd2c5b57c8916ca91 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 1 Jul 2016 09:56:17 +0200
Subject: [PATCH 056/313] - fixed client welcome message, fixed #3993

---
 interface/web/dashboard/templates/dashboard.htm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/dashboard/templates/dashboard.htm b/interface/web/dashboard/templates/dashboard.htm
index 65ccc7eae9..7c8b46e2a2 100644
--- a/interface/web/dashboard/templates/dashboard.htm
+++ b/interface/web/dashboard/templates/dashboard.htm
@@ -1,5 +1,5 @@
 <div class='page-header'>
-  <h1>Welcome Admin</h1>
+  <h1>{tmpl_var name='welcome_user'}</h1>
 </div>
 
 <tmpl_if name='error'>
-- 
GitLab


From 33f68a7706452c727767af05905ee6e7934c14c6 Mon Sep 17 00:00:00 2001
From: Martin <martin@enavn.com>
Date: Fri, 1 Jul 2016 11:02:24 +0200
Subject: [PATCH 057/313] Load correct datetimeformat

---
 interface/lib/classes/remoting_lib.inc.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index 1299080156..e697810ce5 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -98,6 +98,7 @@ class remoting_lib extends tform_base {
 		unset($form);
 
 		$this->dateformat = $app->lng('conf_format_dateshort');
+		$this->datetimeformat = $app->lng('conf_format_datetime');
 
 		return true;
 	}
-- 
GitLab


From c7a80c18152ea150ee7910772685195f62fca4ba Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sun, 3 Jul 2016 19:16:36 +0200
Subject: [PATCH 058/313] Fixed backup list link to website. Issue #4004

---
 interface/web/sites/templates/backup_stats_list.htm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/interface/web/sites/templates/backup_stats_list.htm b/interface/web/sites/templates/backup_stats_list.htm
index 3dd0959d5a..2941608423 100644
--- a/interface/web/sites/templates/backup_stats_list.htm
+++ b/interface/web/sites/templates/backup_stats_list.htm
@@ -20,12 +20,12 @@
 				<tbody>
 					<tmpl_loop name="records">
 					<tr class="tbl_row_{tmpl_if name='__EVEN__'}even{tmpl_else}uneven{/tmpl_if}">
-						<td> <a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a> </td>
-						<td> <a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a> </td>
-						<td> <a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a> </td>
-						<td> <a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="backup_interval"}</a> /  <a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="backup_copies"}</a> </td>
-						<td> <a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="backup_copies_exists"}</a> </td>
-						<td> <a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="backup_size"}</a> </td>
+						<td> <a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type=<tmpl_if name='type' op='==' value='vhost'>domain</tmpl_if><tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>">{tmpl_var name="active"}</a> </td>
+						<td> <a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type=<tmpl_if name='type' op='==' value='vhost'>domain</tmpl_if><tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>">{tmpl_var name="domain"}</a> </td>
+						<td> <a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type=<tmpl_if name='type' op='==' value='vhost'>domain</tmpl_if><tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>">{tmpl_var name="server_id"}</a> </td>
+						<td> <a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type=<tmpl_if name='type' op='==' value='vhost'>domain</tmpl_if><tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>">{tmpl_var name="backup_interval"}</a> /  <a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type=<tmpl_if name='type' op='==' value='vhost'>domain</tmpl_if><tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>">{tmpl_var name="backup_copies"}</a> </td>
+						<td> <a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type=<tmpl_if name='type' op='==' value='vhost'>domain</tmpl_if><tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>">{tmpl_var name="backup_copies_exists"}</a> </td>
+						<td> <a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type=<tmpl_if name='type' op='==' value='vhost'>domain</tmpl_if><tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>">{tmpl_var name="backup_size"}</a> </td>
 					</tr>
 					</tmpl_loop>
 				</tbody>
-- 
GitLab


From 3768e3732b5b48e478b9007aaac33ab8dc13391e Mon Sep 17 00:00:00 2001
From: Moll <Moll@mhknet.de>
Date: Mon, 4 Jul 2016 11:09:15 +0200
Subject: [PATCH 059/313] Removed none from subdomain / alias list

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 server/plugins-available/nginx_plugin.inc.php   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 01362f5f73..7aaac0002d 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1207,7 +1207,7 @@ class apache2_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && ! empty($aliasdomain['subdomain'])) {
+					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain']) != "none" ) {
 						$temp_domains[] = $aliasdomain['subdomain'] . "." . $aliasdomain['domain'];
 					}
 				}
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index e65848797c..a3981520c9 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1281,7 +1281,7 @@ class nginx_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && ! empty($aliasdomain['subdomain'])) {
+					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain']) != "none" ) {
 						$temp_domains[] = $aliasdomain['subdomain'] . "." . $aliasdomain['domain'];
 					}
 					
-- 
GitLab


From 13aef587a38d03c96823a7b658f1c3d663aabe07 Mon Sep 17 00:00:00 2001
From: Moll <Moll@mhknet.de>
Date: Mon, 4 Jul 2016 11:31:52 +0200
Subject: [PATCH 060/313] Set default env[PATH] and env[HOSTNAME] since it is
 cleared by default setting clear_env = yes in php-fpm

---
 server/conf/php_fpm_pool.conf.master | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/server/conf/php_fpm_pool.conf.master b/server/conf/php_fpm_pool.conf.master
index 2ef6417c64..c0884acfe4 100644
--- a/server/conf/php_fpm_pool.conf.master
+++ b/server/conf/php_fpm_pool.conf.master
@@ -28,9 +28,11 @@ pm.max_requests = <tmpl_var name='pm_max_requests'>
 
 chdir = /
 
+env[HOSTNAME] = $HOSTNAME
 env[TMP] = <tmpl_var name='document_root'>/tmp
 env[TMPDIR] = <tmpl_var name='document_root'>/tmp
 env[TEMP] = <tmpl_var name='document_root'>/tmp
+env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 
 <tmpl_if name='security_level' op='==' value='20'>
 <tmpl_var name='enable_php_open_basedir'>php_admin_value[open_basedir] = <tmpl_var name='php_open_basedir'>
-- 
GitLab


From 9d9c762a3eeab7ed1675130812140b49f9e37d63 Mon Sep 17 00:00:00 2001
From: Moll <Moll@mhknet.de>
Date: Mon, 4 Jul 2016 15:27:27 +0200
Subject: [PATCH 061/313] Little bracket fix

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 server/plugins-available/nginx_plugin.inc.php   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 7aaac0002d..18219721b9 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1207,7 +1207,7 @@ class apache2_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain']) != "none" ) {
+					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain'] != "none" )) {
 						$temp_domains[] = $aliasdomain['subdomain'] . "." . $aliasdomain['domain'];
 					}
 				}
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index a3981520c9..4bd5da5234 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1281,7 +1281,7 @@ class nginx_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain']) != "none" ) {
+					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain'] != "none" )) {
 						$temp_domains[] = $aliasdomain['subdomain'] . "." . $aliasdomain['domain'];
 					}
 					
-- 
GitLab


From 8c93e18d6e527e39c9cf58f53677c1c7d31286df Mon Sep 17 00:00:00 2001
From: Moll <Moll@mhknet.de>
Date: Mon, 4 Jul 2016 15:32:09 +0200
Subject: [PATCH 062/313] Only if none there is no prefix else it's www

---
 server/plugins-available/apache2_plugin.inc.php | 4 ++--
 server/plugins-available/nginx_plugin.inc.php   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 18219721b9..ec92e699bb 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1207,8 +1207,8 @@ class apache2_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain'] != "none" )) {
-						$temp_domains[] = $aliasdomain['subdomain'] . "." . $aliasdomain['domain'];
+					if(isset($aliasdomain['subdomain']) && ($aliasdomain['subdomain'] != "none")) {
+						$temp_domains[] = "www." . $aliasdomain['domain'];
 					}
 				}
 			}
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 4bd5da5234..9933aae618 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1281,8 +1281,8 @@ class nginx_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && (! empty($aliasdomain['subdomain']) && $aliasdomain['subdomain'] != "none" )) {
-						$temp_domains[] = $aliasdomain['subdomain'] . "." . $aliasdomain['domain'];
+					if(isset($aliasdomain['subdomain']) && ($aliasdomain['subdomain'] != "none")) {
+						$temp_domains[] = "www." . $aliasdomain['domain'];
 					}
 					
 					foreach($sub_prefixes as $s) {
-- 
GitLab


From 644682dbac70a71834050552ae3e0a0fcfcb4121 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 5 Jul 2016 08:38:32 +0200
Subject: [PATCH 063/313] Tooltips on several templates

---
 interface/web/admin/templates/server_ip_list.htm  | 13 ++++++++-----
 interface/web/client/templates/clients_list.htm   |  9 ++++++---
 interface/web/client/templates/resellers_list.htm |  9 ++++++---
 .../web/dns/templates/dns_soa_admin_list.htm      | 15 +++++++++------
 interface/web/dns/templates/dns_soa_edit.htm      |  2 +-
 interface/web/dns/templates/dns_soa_list.htm      | 15 +++++++++------
 interface/web/mail/templates/mail_user_list.htm   |  9 ++++++---
 interface/web/sites/templates/cron_list.htm       | 13 ++++++++-----
 .../web/sites/templates/database_admin_list.htm   | 11 +++++++----
 .../templates/web_vhost_domain_admin_list.htm     | 11 +++++++----
 .../web/sites/templates/web_vhost_domain_list.htm | 11 +++++++----
 11 files changed, 74 insertions(+), 44 deletions(-)

diff --git a/interface/web/admin/templates/server_ip_list.htm b/interface/web/admin/templates/server_ip_list.htm
index 373bc4c6da..f24e93dded 100644
--- a/interface/web/admin/templates/server_ip_list.htm
+++ b/interface/web/admin/templates/server_ip_list.htm
@@ -38,10 +38,10 @@
                 <tbody>
                     <tmpl_loop name="records">
                         <tr>
-                            <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td>
-                            <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="client_id"}</a></td>
+                            <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
+                            <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='client_id'}">{tmpl_var name="client_id"}</a></td>
                             <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ip_type"}</a></td>
-                            <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ip_address"}</a></td>
+                            <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='ip_address'}">{tmpl_var name="ip_address"}</a></td>
                             <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="virtualhost"}</a></td>
                             <td><a href="#" data-load-content="admin/server_ip_edit.php?id={tmpl_var name='id'}">{tmpl_var name="virtualhost_port"}</a></td>
                             <td class="text-right">
@@ -62,5 +62,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+	$('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
diff --git a/interface/web/client/templates/clients_list.htm b/interface/web/client/templates/clients_list.htm
index e6b153bb99..9f6086d19d 100644
--- a/interface/web/client/templates/clients_list.htm
+++ b/interface/web/client/templates/clients_list.htm
@@ -47,7 +47,7 @@
                             <td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}">{tmpl_var name="company_name"}</a></td>
                             <td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}">{tmpl_var name="contact_name"}</a></td>
 							<td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}">{tmpl_var name="customer_no"}</a></td>
-                            <td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}">{tmpl_var name="username"}</a></td>
+                            <td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='username'}">{tmpl_var name="username"}</a></td>
                             <td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}">{tmpl_var name="city"}</a></td>
                             <td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}"><span class="flags flag-{tmpl_var name="countryiso"}">{tmpl_var name="country"}</span></a></td>
 							<tmpl_if name="has_robot"><td><a href="#" data-load-content="client/client_edit.php?id={tmpl_var name='id'}">{tmpl_var name="validation_status"}</a></td></tmpl_if>
@@ -82,5 +82,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+    $('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
diff --git a/interface/web/client/templates/resellers_list.htm b/interface/web/client/templates/resellers_list.htm
index 9538e71086..49ef5164f4 100644
--- a/interface/web/client/templates/resellers_list.htm
+++ b/interface/web/client/templates/resellers_list.htm
@@ -45,7 +45,7 @@
                             <td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}">{tmpl_var name="company_name"}</a></td>
                             <td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}">{tmpl_var name="contact_name"}</a></td>
 							<td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}">{tmpl_var name="customer_no"}</a></td>
-                            <td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}">{tmpl_var name="username"}</a></td>
+                            <td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='username'}">{tmpl_var name="username"}</a></td>
                             <td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}">{tmpl_var name="city"}</a></td>
                             <td><a href="#" data-load-content="client/reseller_edit.php?id={tmpl_var name='id'}"><span class="flags flag-{tmpl_var name="countryiso"}">{tmpl_var name="country"}</span></a></td>
                             <td class="text-right">
@@ -67,5 +67,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+    $('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
diff --git a/interface/web/dns/templates/dns_soa_admin_list.htm b/interface/web/dns/templates/dns_soa_admin_list.htm
index 0f14534c53..b2b6d27917 100644
--- a/interface/web/dns/templates/dns_soa_admin_list.htm
+++ b/interface/web/dns/templates/dns_soa_admin_list.htm
@@ -59,10 +59,10 @@
                     <tr>
                         <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</td>
 						<td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="origin"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ns"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="mbox"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='origin'}">{tmpl_var name="origin"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='ns'}">{tmpl_var name="ns"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='mbox'}">{tmpl_var name="mbox"}</a></td>
                         <td class="text-right">   
                             <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_soa_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
                         </td>
@@ -81,5 +81,8 @@
             </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+    $('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm
index be2e7fa831..f35a7e7a3a 100644
--- a/interface/web/dns/templates/dns_soa_edit.htm
+++ b/interface/web/dns/templates/dns_soa_edit.htm
@@ -170,4 +170,4 @@
         searchFieldWatermark: '',
         resultBoxPosition: ''
     });
-</script>
+</script>
\ No newline at end of file
diff --git a/interface/web/dns/templates/dns_soa_list.htm b/interface/web/dns/templates/dns_soa_list.htm
index 5162119900..c7b9e46c0f 100644
--- a/interface/web/dns/templates/dns_soa_list.htm
+++ b/interface/web/dns/templates/dns_soa_list.htm
@@ -56,10 +56,10 @@
                 <tmpl_loop name="records">
                     <tr>
                         <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="origin"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ns"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}">{tmpl_var name="mbox"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='origin'}">{tmpl_var name="origin"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='ns'}">{tmpl_var name="ns"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_soa_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='mbox'}">{tmpl_var name="mbox"}</a></td>
                         <td class="text-right">   
                             <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('dns/dns_soa_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
                         </td>
@@ -78,5 +78,8 @@
             </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+	$('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
diff --git a/interface/web/mail/templates/mail_user_list.htm b/interface/web/mail/templates/mail_user_list.htm
index 0ac26e105a..5ec9dfed63 100644
--- a/interface/web/mail/templates/mail_user_list.htm
+++ b/interface/web/mail/templates/mail_user_list.htm
@@ -59,7 +59,7 @@
                 <tbody>
                 <tmpl_loop name="records">
                     <tr>
-                        <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="email"}</a></td>
+                        <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='email'}">{tmpl_var name="email"}</a></td>
                         <tmpl_if name="enable_custom_login">
                             <td>
                                 <a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="login"}</a>
@@ -92,5 +92,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+ <script>
+$(document).ready(function(){
+    $('[data-toggle="tooltip"]').tooltip();
+});
+</script> 
\ No newline at end of file
diff --git a/interface/web/sites/templates/cron_list.htm b/interface/web/sites/templates/cron_list.htm
index 77c89eedf8..58a44cc125 100644
--- a/interface/web/sites/templates/cron_list.htm
+++ b/interface/web/sites/templates/cron_list.htm
@@ -46,14 +46,14 @@
                     <tmpl_loop name="records">
                         <tr>
                             <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a></td>
-                            <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td>
-                            <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td>
+                            <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
+                            <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='parent_domain_id'}">{tmpl_var name="parent_domain_id"}</a></td>
                             <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="run_min"}</a></td>
                             <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="run_hour"}</a></td>
                             <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="run_mday"}</a></td>
                             <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="run_month"}</a></td>
                             <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="run_wday"}</a></td>
-                            <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}">{tmpl_var name="command"}</a></td>
+                            <td><a href="#" data-load-content="sites/cron_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='command'}">{tmpl_var name="command"}</a></td>
                             <td class="text-right">
                                 <div class="buttons icons16">    
                                     <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/cron_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
@@ -74,5 +74,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+	$('[data-toggle="tooltip"]').tooltip();
+});
+</script>
diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm
index 8203fa1096..d377ff5ea9 100644
--- a/interface/web/sites/templates/database_admin_list.htm
+++ b/interface/web/sites/templates/database_admin_list.htm
@@ -46,8 +46,8 @@
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="remote_access"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="type"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td>
-                            <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td>
-							<td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td>
+                            <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
+							<td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='parent_domain_id'}">{tmpl_var name="parent_domain_id"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="database_user_id"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="database_name"}</a></td>
                             <td class="text-right">
@@ -72,5 +72,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+    $('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
diff --git a/interface/web/sites/templates/web_vhost_domain_admin_list.htm b/interface/web/sites/templates/web_vhost_domain_admin_list.htm
index d613d6e921..64ecd9e9ad 100644
--- a/interface/web/sites/templates/web_vhost_domain_admin_list.htm
+++ b/interface/web/sites/templates/web_vhost_domain_admin_list.htm
@@ -42,8 +42,8 @@
                         <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="active"}</a></td>
                         <tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="sys_groupid"}</a></td></tmpl_if>
                         <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="server_id"}</a></td>
-						<tmpl_if name="vhostdomain_type" op="!=" value="domain"><td><a href="#" data-load-content="sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td></tmpl_if>
-                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="domain"}</a></td>
+						<tmpl_if name="vhostdomain_type" op="!=" value="domain"><td><a href="#" data-load-content="sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='parent_domain_id'}">{tmpl_var name="parent_domain_id"}</a></td></tmpl_if>
+                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='domain'}">{tmpl_var name="domain"}</a></td>
                         <td class="text-right">
 							<a href="http://{tmpl_var name="domain"}" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="icon icon-link"></span></a>
 							<a href="http://{tmpl_var name="domain"}/stats/" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="glyphicon glyphicon-signal"></span></a>
@@ -64,5 +64,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+	$('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
diff --git a/interface/web/sites/templates/web_vhost_domain_list.htm b/interface/web/sites/templates/web_vhost_domain_list.htm
index b81227870d..19a1192699 100644
--- a/interface/web/sites/templates/web_vhost_domain_list.htm
+++ b/interface/web/sites/templates/web_vhost_domain_list.htm
@@ -55,9 +55,9 @@
                     <tr>
                     	<tmpl_if name="vhostdomain_type" value="domain"><td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="domain_id"}</a></td></tmpl_if>
                         <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="active"}</a></td>
-                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="server_id"}</a></td>
+                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
 						<tmpl_if name="vhostdomain_type" op="!=" value="domain"><td><a href="#" data-load-content="sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td></tmpl_if>
-                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}">{tmpl_var name="domain"}</a></td>
+                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}&type={tmpl_var name='vhostdomain_type'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='domain'}">{tmpl_var name="domain"}</a></td>
                         <td class="text-right">
 							<a href="http://{tmpl_var name="domain"}" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="icon icon-link"></span></button>
                             <a href="http://{tmpl_var name="domain"}/stats/" target="_blank" class="btn btn-default formbutton-default formbutton-narrow"><span class="glyphicon glyphicon-signal"></span></a>
@@ -78,5 +78,8 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
+<script>
+$(document).ready(function(){
+	$('[data-toggle="tooltip"]').tooltip();
+});
+</script>
\ No newline at end of file
-- 
GitLab


From fbfdc438eaf2a70d5fefda74c919edc76e82d0fd Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 5 Jul 2016 10:00:30 +0200
Subject: [PATCH 064/313] Fixed IPV6 regex
 https://git.ispconfig.org/ispconfig/ispconfig3/issues/4002

---
 interface/lib/classes/functions.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php
index 45c8d9b44d..03bd11d390 100644
--- a/interface/lib/classes/functions.inc.php
+++ b/interface/lib/classes/functions.inc.php
@@ -190,7 +190,7 @@ class functions {
 			$regex = "/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/";
 		} else {
 			// IPv6
-			$regex = "/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i";
+			$regex = "/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/";
 		}
 
 		$server_by_id = array();
-- 
GitLab


From 6ffe3ce6675b4999543538f5b6cca88883d6335b Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 5 Jul 2016 10:33:26 +0200
Subject: [PATCH 065/313] Tooltips javascript made global fixes #3995

---
 interface/web/admin/templates/server_ip_list.htm          | 5 -----
 interface/web/client/templates/clients_list.htm           | 5 -----
 interface/web/client/templates/resellers_list.htm         | 5 -----
 interface/web/dns/templates/dns_soa_admin_list.htm        | 5 -----
 interface/web/dns/templates/dns_soa_list.htm              | 5 -----
 interface/web/js/js.d/jquery.tooltip.js                   | 3 +++
 interface/web/mail/templates/mail_user_list.htm           | 5 -----
 interface/web/sites/templates/cron_list.htm               | 5 -----
 interface/web/sites/templates/database_admin_list.htm     | 5 -----
 interface/web/sites/templates/database_list.htm           | 8 +++-----
 .../web/sites/templates/web_vhost_domain_admin_list.htm   | 5 -----
 interface/web/sites/templates/web_vhost_domain_list.htm   | 5 -----
 12 files changed, 6 insertions(+), 55 deletions(-)
 create mode 100644 interface/web/js/js.d/jquery.tooltip.js

diff --git a/interface/web/admin/templates/server_ip_list.htm b/interface/web/admin/templates/server_ip_list.htm
index f24e93dded..892c263f20 100644
--- a/interface/web/admin/templates/server_ip_list.htm
+++ b/interface/web/admin/templates/server_ip_list.htm
@@ -62,8 +62,3 @@
                 </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-	$('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
diff --git a/interface/web/client/templates/clients_list.htm b/interface/web/client/templates/clients_list.htm
index 9f6086d19d..644c770d34 100644
--- a/interface/web/client/templates/clients_list.htm
+++ b/interface/web/client/templates/clients_list.htm
@@ -82,8 +82,3 @@
                 </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-    $('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
diff --git a/interface/web/client/templates/resellers_list.htm b/interface/web/client/templates/resellers_list.htm
index 49ef5164f4..50a9ec239c 100644
--- a/interface/web/client/templates/resellers_list.htm
+++ b/interface/web/client/templates/resellers_list.htm
@@ -67,8 +67,3 @@
                 </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-    $('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
diff --git a/interface/web/dns/templates/dns_soa_admin_list.htm b/interface/web/dns/templates/dns_soa_admin_list.htm
index b2b6d27917..fbdc0398ed 100644
--- a/interface/web/dns/templates/dns_soa_admin_list.htm
+++ b/interface/web/dns/templates/dns_soa_admin_list.htm
@@ -81,8 +81,3 @@
             </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-    $('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
diff --git a/interface/web/dns/templates/dns_soa_list.htm b/interface/web/dns/templates/dns_soa_list.htm
index c7b9e46c0f..22cd19484e 100644
--- a/interface/web/dns/templates/dns_soa_list.htm
+++ b/interface/web/dns/templates/dns_soa_list.htm
@@ -78,8 +78,3 @@
             </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-	$('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
diff --git a/interface/web/js/js.d/jquery.tooltip.js b/interface/web/js/js.d/jquery.tooltip.js
new file mode 100644
index 0000000000..e22dc9e40f
--- /dev/null
+++ b/interface/web/js/js.d/jquery.tooltip.js
@@ -0,0 +1,3 @@
+$(document).hover(function(){
+	$('[data-toggle="tooltip"]').tooltip();
+});
\ No newline at end of file
diff --git a/interface/web/mail/templates/mail_user_list.htm b/interface/web/mail/templates/mail_user_list.htm
index 5ec9dfed63..4e2fedd50c 100644
--- a/interface/web/mail/templates/mail_user_list.htm
+++ b/interface/web/mail/templates/mail_user_list.htm
@@ -92,8 +92,3 @@
                 </tfoot>
             </table>
 </div>
- <script>
-$(document).ready(function(){
-    $('[data-toggle="tooltip"]').tooltip();
-});
-</script> 
\ No newline at end of file
diff --git a/interface/web/sites/templates/cron_list.htm b/interface/web/sites/templates/cron_list.htm
index 58a44cc125..b38a6224a5 100644
--- a/interface/web/sites/templates/cron_list.htm
+++ b/interface/web/sites/templates/cron_list.htm
@@ -74,8 +74,3 @@
                 </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-	$('[data-toggle="tooltip"]').tooltip();
-});
-</script>
diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm
index d377ff5ea9..efec228556 100644
--- a/interface/web/sites/templates/database_admin_list.htm
+++ b/interface/web/sites/templates/database_admin_list.htm
@@ -72,8 +72,3 @@
                 </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-    $('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
diff --git a/interface/web/sites/templates/database_list.htm b/interface/web/sites/templates/database_list.htm
index 6aeb8518f8..4d9f91a7c1 100644
--- a/interface/web/sites/templates/database_list.htm
+++ b/interface/web/sites/templates/database_list.htm
@@ -60,9 +60,9 @@
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="remote_access"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="type"}</a></td>
-                            <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td>
-							<td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="parent_domain_id"}</a></td>
-                            <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="database_user_id"}</a></td>
+                            <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
+							<td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='parent_domain_id'}">{tmpl_var name="parent_domain_id"}</a></td>
+                            <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='database_user_id'}">{tmpl_var name="database_user_id"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="database_name"}</a></td>
                             <td class="text-right">
                                 <tmpl_if name="dblist_phpmyadmin_link">
@@ -86,5 +86,3 @@
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
diff --git a/interface/web/sites/templates/web_vhost_domain_admin_list.htm b/interface/web/sites/templates/web_vhost_domain_admin_list.htm
index 64ecd9e9ad..6f0e8f39ca 100644
--- a/interface/web/sites/templates/web_vhost_domain_admin_list.htm
+++ b/interface/web/sites/templates/web_vhost_domain_admin_list.htm
@@ -64,8 +64,3 @@
                 </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-	$('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
diff --git a/interface/web/sites/templates/web_vhost_domain_list.htm b/interface/web/sites/templates/web_vhost_domain_list.htm
index 19a1192699..1ece7aca9a 100644
--- a/interface/web/sites/templates/web_vhost_domain_list.htm
+++ b/interface/web/sites/templates/web_vhost_domain_list.htm
@@ -78,8 +78,3 @@
                 </tfoot>
             </table>
 </div>
-<script>
-$(document).ready(function(){
-	$('[data-toggle="tooltip"]').tooltip();
-});
-</script>
\ No newline at end of file
-- 
GitLab


From d75040c9027195bd6a80ad67aea1eb0a792c5a18 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 5 Jul 2016 11:13:21 +0200
Subject: [PATCH 066/313] Move tooltip js to global javascript library

---
 .gitignore                                                   | 1 +
 interface/web/js/js.d/jquery.tooltip.js                      | 3 ---
 interface/web/themes/default/assets/javascripts/ispconfig.js | 2 ++
 3 files changed, 3 insertions(+), 3 deletions(-)
 create mode 100644 .gitignore
 delete mode 100644 interface/web/js/js.d/jquery.tooltip.js

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000..e43b0f9889
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/interface/web/js/js.d/jquery.tooltip.js b/interface/web/js/js.d/jquery.tooltip.js
deleted file mode 100644
index e22dc9e40f..0000000000
--- a/interface/web/js/js.d/jquery.tooltip.js
+++ /dev/null
@@ -1,3 +0,0 @@
-$(document).hover(function(){
-	$('[data-toggle="tooltip"]').tooltip();
-});
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index a726d0a220..d791b19cba 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -134,6 +134,8 @@ var ISPConfig = {
 			'fontAwesome': true,
 			'autoclose': true
 		});
+		$('[data-toggle="tooltip"]').tooltip({
+		});
 		
 		ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data });
 	},
-- 
GitLab


From 6b42bfd0a14c5276c498da1031b19feb312c998e Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 5 Jul 2016 12:53:21 +0200
Subject: [PATCH 067/313] Forgot one template for tooltips as mentioned in:
 https://git.ispconfig.org/ispconfig/ispconfig3/issues/3995

---
 interface/web/dns/templates/dns_a_list.htm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/dns/templates/dns_a_list.htm b/interface/web/dns/templates/dns_a_list.htm
index 1f9d125152..b8d57401bb 100644
--- a/interface/web/dns/templates/dns_a_list.htm
+++ b/interface/web/dns/templates/dns_a_list.htm
@@ -69,8 +69,8 @@
                     <tr>
                         <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a></td>
                         <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="type"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="name"}</a></td>
-                        <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="data"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='name'}">{tmpl_var name="name"}</a></td>
+                        <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='data'}">{tmpl_var name="data"}</a></td>
                         <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="aux"}</a></td>
                         <td><a href="#" data-load-content="dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}">{tmpl_var name="ttl"}</a></td>
                         <td class="text-right">
-- 
GitLab


From e8275798cdb0e05b71e059d6167a08062162e6f2 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 5 Jul 2016 17:04:48 +0200
Subject: [PATCH 068/313] Missing glyphicon fonts (fixes #3981, #3886)

---
 .../fonts/glyphicons-halflings-regular.eot    | Bin 0 -> 20335 bytes
 .../fonts/glyphicons-halflings-regular.svg    | 229 ++++++++++++++++++
 .../fonts/glyphicons-halflings-regular.ttf    | Bin 0 -> 41280 bytes
 .../fonts/glyphicons-halflings-regular.woff   | Bin 0 -> 23320 bytes
 4 files changed, 229 insertions(+)
 create mode 100644 interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.eot
 create mode 100644 interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.svg
 create mode 100644 interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.ttf
 create mode 100644 interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.woff

diff --git a/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.eot b/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..4a4ca865d67e86f961bc6e2ef00bffa4e34bb9ed
GIT binary patch
literal 20335
zcma%iRa9Lu*X_aGIXLtH2X}XOcXxM};>BGK?k>gMi@Uo+afec%&=$Y_zI(@iAMVRd
zMzYtMnVHGh`(bBgBrYld0G2WU0R1n+0{)ZW{#ye8Pyh%N;2)-_`hS4`dHjR_o8s?3
z%Kr!aAA=Sk15gC$0aO9906BmJKn0)-&;Wq`d1e4dfc3v(2XF@106hNnKnJJ;tp3?v
z|4=i4`#;17p#2YV|JP~<aQVjr0oVY{0M>t*4IuDO^FK=e+xx$$?LVd`z~aAr@Bit+
z4B+|46aYB=Q+D{L`5%t;Kdt|aZw_GpXL0?v@B%pgd3^uI=KcSkIq3hHHvk~6A@l#d
zDHwovCxFWvz!d;sGQ^&}h@CLq(3!MVaFhSyL!rg*&d8F%X_&hML`QYBTiRZ}i=N8C
zfX|m2SCm$2B^?XKJ=3POS<xXNB{p2XXK+_wMOGVZnBZVi5e}6Y|6&<yQ)U%t_?I)|
z$UxGPI3f<gbzDcS=uvd*F-hJ48@*B~rQ%a$ce$2W*h2m|CL*EzQysJG(21!-486pi
z9Op(2E~L-}(eO7?`oQPh!vSmW(NSH=-))ZKL~;2xY%vBbW>}r1sVM9Nj*l5q`5#S%
zQ}FD^zy1Pj*xUGOm4;*C;l80oktO?~%SdX8H^8@@idBFWyOINSr_!xo{REWRlXgw|
z3-(h5XcHaEdPKzyy2-P+Rljn4lR?IelEOtWLiC?_9FW&x@kpuRtfsn*-QLS4E<Fz)
zG9ld#Bnh;*Rbk?ER9!Ta)FqrS7@C4{EAs~A!V%DK>oN{{q0u8pt_^hD_!V);D{hen
z-XpV~5QeQTYTIl1+B^5r72`!7FRQQ$Jh74=Gm*OkaIoNUC<v*|(E(8Aj*LvEM{1C?
zyZ{#C??5QU&iBe&ZNxqGYA?UnmFg=wgvPZ$3)LsZ<b+4p4zbj9^8U=85Dk&+ntVHr
z-r%wsOFM1J-)x^j=IMDx@M(3Dm-KN|ZXVOBlKmw$OFqyu(Llh8E3%Y~Y1Zon!|%`h
zMcSPk^tyruyKs(okWegQr7FUGWbEIh%zF!S#n>7!wk7rRZVuVK6urnp@}QDpB~9*S
zkVWg8LyXz8-%53>GXb$%*H0(bqkUIN`Oz8g=bse?bAumC8`5XqA+(_y{fV^j(1$BZ
za*@mJ(&?Dl2k;8tW}O6OaavJE|17u#1t>M^0!@SDJc2)cLZL`m7!-)74CQUXoksM*
z9m|Sjh}@dm-Tnc8<77&TfjT<DBnM~uOZbdpn&3nTeG7&uB2JuE_!o?tRkNOzP3&=A
zEDuTrGt7%gwS6eHB2ZxuiO)~H$16mlbPgX8`65kyA_0q9Jew6Q1?oKNFm36(NeDbT
zyoAZuFs$gjT7S+q9g&=H<@4}a3NYbc%Huc5)Gu8~{PLXe11y!f4`DxY+GU7$<OPgI
zKA&H2TehO}XUXyf6XLWE)!&2|tW?qu6)DUjXH&lLih<2cjkXGyG^Kb@F}{FN`O7_A
zha#<!6v2V|85wmU=0->6H{3)kXMM774`D!eA0|(<upEfJww;oFGKR9TK`B-XFHDiJ
zgfovK8YC}?nt?-yJ3&V9yEw2GTcsxSag$w)zxt#lHbo&aNr)yz=t;gG@-99WW(#3&
zouaUeY$ja)`Gzz_iZln>RuQz@iQO(4-7lX|aK*M`Y=f%R{_&<<ZCpgesc!3o%>*A?
zB(AZUl6JXgz^9c9q7ZW~Lpncpv1I^6O4mGX@3P^Q)?jBgx(f#RD_4y0q5aC_beGG>
zn%RbEy_vdx`sL?|Jvlgyxal-}XM^FDQYp|Euiu=%8o(=wic+XSimJ4(Adn3`QH6^D
zQ}H@oBN{|Zg^2u|@8c~h7Kv&HCx??xy^J$3{B0{XnlrThDaoQqjXjXHi#b!KIjA7(
z$hT;Ah_VP&j)(Z6&(xn;KF3rHsF^A#il?$)q4Pp#sly?|%OmoRG|MiNW3+)?3Wd9=
zgbUjzTLX+!G&oYj9P;jnHmT91qKPzxkj@>rsqi|=M5$PfrRCY%E7${xLDZFtYcC%k
zorpLj$T65dN+HV@=yRlKSS8W~SMxFkK1~U-XW2@DXcG`4-V)z|605uD4Q{MP10fD5
zc!T#)n57))zXXfg=dwnZuD_`DCJc3cHE6HuA(>36o_neqgoF0pRK0eEc~{rD8%Pfh
z@dtE6ovkazKj3fd{)*&tB0YA^1d^^?2oeNyB7u(P+O4$@lCNc~%mb5iP)dLGM|z;x
zEkRYM_^U`g%s5j<P^+nOOTy8^iNh+21HwPm!4tDZXyB_m{E__A7TT$++afF&z$%d5
zdbJfD%=H6{Yf~cV?+Rzx^RMpdNs;Rbegf65K#JCFs?Aj|Pp-_KSh;iZ)`&d5KF8sA
zSTK1}bE2=(sOE}r@EuJD5`xOEryD%18G?xM;om|M5-F!#&|Y)1#1=-H$E8L9ld~*p
z`={=|ZfPBqdY-{($JY@KNU3*2U3j;NB|GEwg&yTp_<`fG+2#^DECE%f(&>iH=8Q2h
zlS%BdC6DaYEWi0UNhnc*zFT$fV`4_VMNU~nH;q(Ld?!#lIvm)K;W_4C(l3+4TZ=QI
zD%siB%cY+Y7vMFM_KAg?sxm(^nJsMIV?v|vAS8l;zotv$#Ml-Y!n7|X5Y5C)=TiGZ
zQ+=(9%lk0&L&hDtwRD=Ua6wQeS{g2mvwc>^|4$ot-2Hi`z)|V$N{mNAEZC3gw_8%z
zq(L3Bcwr2gin62<CFE6*m7X=38JYv0`R+-1aFSbE%?6(FH>dXM8cG-D-auD7HayLz
zJI2|m=8$F?Ko>v@P4{(W5g=}-b$%tJgfywp`6&A96|Zx{9N;1@_>hto7TQf3EIMm+
zJ`;@@4ycXnHM>|iJ?FXkWGc8YuGviO&L*^ajd+vyLIxAAT{isADQQM5S;YP+jAYp7
z3E1Nm1HDd%SXi``NR*so7XidvRPj#BM7A`S{cU%VISQOhrMLr08;N36AYg9}40Ml#
zU)GUxQy(D1%P`@`HDaXn&%m8`hOu~_2a`%P{v7w2;KUNhll)N(y4wD#p#{+($uLOB
z!X;K=sci1erRm1=Qcx#ja(r=E8*89RNH8`C7T4|#uVRc=Kaf}0Xw)>8g0(4H!ZrK^
zh-Kf(V#NQcMU79on9bk?`U7eI{Nu-CdboLYH-7lJI|7VCob2872$p->3n)-J>N|b%
zIn3vzKet~nvHB=bP6rDRV|&&4LL}S7`iu2ok&r8ecw~yUROul?44VSV3;<PPWZ~5!
z_|9gZYsa;uPFf1MZVUgTD4Fk3FD8RN+a+VIvQkXq2WiEoh9-D5rq2+~kYwFByFH0V
zmHBgwt2=Um#HqKIE8^q*HOkzSb3#IJqMAe+j8?%H+JkNk9xlmNWT?fmFz7?eR#L2R
zp($LHR$)v1K2`$HpZoUZ#WqP3-t6C)MpAtsT1cc2)CUfH#!oyXo<noD#b!SlX%D&X
zhuWjVqw@fXq<RZa15$&L!{AKrHIJFY`&jXv7?sAhaU_dse&o*RNB(ip($=~<v#*(~
z?lmG+0~@igA~er}*y6#PA6I-!k;^$fAg#%n>z7qSQWl+y^cX=$j~O<Bq?IYYtt*Av
zr`(RTVdzagmx?Srl~9;7Pzk3?abKG2R}WIw<Z=}$WIZ}_#0FlU31&cp!!iS}79B$!
zH<OV9U;Iy3cs0)u>Q;o~0+_)5WDRF0^JbuD_umr4Mn$EPEyB-_e<pQ3H010%gdgQ9
zH0;sXO{u1bNMkXf4|e&kIYW{QvjZ>og^1*P#Ui}dCDH6-GndXgi$XV2SNHe#HHQoU
z`2f{kT*~Y-Gtyd}I#v=*PbShJzp4hgaK>cr++;2GSGr7^2gA_3H1F;=<l9$`^knte
zpQ^;CAfUc8JdE2Jgu={Rs`bMCvm#r_W3-mRiZjX=QJ@T*0UVz%hey|>06B{L4@fTs
zD?F!vb_51Hnzb3BJlYiI4qZ5fDt|CaKX-N&2aP_DVX`bH*FN93cV*3fPvociz|dFF
zDI@_;;4`*j9yW7pmnXjE<g**}4Sp!*=R~NKa2H(U*twWCy6bfcYbY3I%V(c!2|r{7
zY31<}TcSMa)NDLaz|=u;BON-McI&lS$B}9Qio7;d+%{vkxIcB`O&Byf=^ODKX}vXE
zF{&$m8RE37?XNMPViooY02Ob3_b`fD>wqe@BEQw*5Kcl$=zJxCo$}$5>0aU8*UXir
zlo6vuHSn81M=rz-M|tYukSa7I2M$#Q-7`8&2-+UvW25@8gOf1VSR}3RdVFr|-&}4T
zky0u`XuQc%0#b=LJWu5hm&cbB$Zk<Hwb(>2FeYD~v-Cc92u|%sI<e~IKs@PAPBFWb
zlR*CsinQd$1x+D9hF|0+awrW08Mg>Uh-6<!tT`|@EG}TQY7ag)w=g`+g5$LeDEOl*
zhZ0f(LyYXxp_<HTr91$1QKsLh42R0!XSK4JDUG~Y=w5Ju2P=rh3jA{D(CfDrtt6bq
z!!67fVC;8^+g%as8;~hF!vyz}g%6k#-(ash9?6;-)s}HWjB}Z3&?dxmQsg_h>5dJR
zZ3)g?oGWe-H6(Dl5E)k2)Hal?$9R73FM9`l`qB^<^f4kuce&|T)yCo{^=_a`TY*c$
zRRh_284jJjLoW$Wjv_@n$8LbXuW0pZw;g`-3$XUHD0Me!pbdD8z$3+L^KKYOabFdl
zZW8&J8yRWfjLh?e7QJEkgl<&QwDnZ2^WwgBH0{AjxI^@Q)51nlGRVgj8j^jL0%{L5
zg~N&QybX0(ldaaot?}x4%vuVeTbZ96fpg*k(_p?a+IFGn!YUuS;~_Z0CLyGFeQ=ow
zhS}^5R4dLfu9Q@MFw7c5_Tg`%mq$XF81YXSFD~rt=E6o|lVBQmHpMG(*<)M(E(4f*
zifS(;Yjenr?~y*l>F20zQ%mciliU45f-wznJZdw(tS7t6>004*2#X3Ej3pco3fi`a
z?|gM_ckVQxZ*D!nTeU<CtC+)eWn7Cp-#HuV`z@+~X*h<KA_>+|gbdPEj(!rKUXu)|
zkLqUGanZqn25Ek?PHa9%4W|%Ad_<Af42^|XZBP@V-(-P{AzOtc=k{RfE0lAHndD3w
zCorJ5w>2AJ^C4ZsK(9AW?d?fe_y54j#ceCX7%ZMmS`{x=_0fcCjb0L>U_D>5f4kNy
zHQQg5@4aYV)6gpTnv`z06M5a}w7=9Zxp`bcn&i(EOAPWj!?Z(2O?^DESnGfRDGcs1
z?IvJ*{LKonl7#robcFc@OJ<~_Nrt1&v@ePe#wEFKMxfTA!AwJm2~n9HG8Q3?YR-Yz
z9Qm3kx|c48;)6Kyoo?<`!|@@xwp~u#ofuQm>ip4bLvO_8W)9{2phqI7{WR9NLgJ5S
zHO8hXtJ(CY)mUG&o(gGo!3Qk!=#XUS13O&o{vweBJ4o1y<~#&5^$s69ECV9xM}=+2
z3!NJW8%Q`f_Ja)nexErX5!VB@V=TLVghSEjRt5vdJ8zuRg0R+Y>(Wb*7ED)es#R7<
zyy<hf-A~;fzE_Vhzy_lJJ_hS5C_Fn-Ys8&4`90}V(U6AdcX;ahv0V0|D$%GVTo}%d
z%`Xq11N@_+QTEFC8kq^^q<^$qHbz{`pXRyMV!^rx(?*Detg(%?lJ-%GNxD*UPY)8T
z{zwpVSO1CZ4|w*uRQ(o0TX(GnCrSa6xB9WZTTVS+WF#0<=gQ&#ApBqkhtln9(AI@3
zPaBm+C7>j>az=m}1XQ+E7Z@KG=Cs|{!+EejQ_B-7_Z_Y<Xf-uVv_(PTS2Sw=Q4|;&
zgu$v5i<{QHHtZ<)O|z_n0Tow~R##jqG)Ko>;kETxVVJOayFzr&scDu#RzsdT7?ZD(
zjt$GiPqMQDN##jNA(UuHMgjopqE;pkUTep+3YhG2G!BnK?~X#v<ppz1GopVhVk~iJ
z9)J}bWR2N4McPD8cAjR)(es%iC15{NvDk*ur_>(Hh{G+w3pu5aBF+5$)Hq);#9CbG
zsE7UhKwvg;w*V(0K7kvgnm5CXt2oMK#y!&dqW6^CO`o-9h;rpe8sX@M7vdNHrSI)y
z9KlvS+@+-`CzlS3h}P)VbJn)MN&1rZJDgsR=F2FHZMpd&S1VRKi;7W;=|X`v`iwr;
z6={w%x(Bj(^(a<%?7PB*S%}>sft}U!!qdscsQgT@3X5WihmLBxuS7?1$@SvvJ3<<|
zt}Y%yqH_W&6!_(na-jr#Zv7W*Cu#c6Hqr$o{eMTHmIWfcuI+rsXc1x$ibc)|lxs`|
z^lhQp&^b^BTL(xEI!6k8bxom-D8C}+6_a%`?CYjSuFcEh5J1&Y`Z-6Dj-I`%()n$9
zg*b<&Zs^xdC{p2ab~}fxiuobr7XT7pIefDq+B0S-e*#Ncv}xLJi{{yPWu)?Esyu0;
z1qsK_FAEg-C+$p0cp*xgs1s4btkM&3lqqeQRpD2eomd(OP0Q@*e&Xas38amh5^boC
zOw$(pnvN$4MdoQ_u*a%EGU#34!L8h;hCq2qu>vma`dr@6OJ$uR*Uy0|v+9(q#{vUE
z-6#WJn9K=D1b|=3z9t2tlyis<332BeH7r+zY@~b=^WA5yu<fPm7RjBbbuqrcXHVKv
zw+nPMm=KzG8)-dK<z$0Pt6Ui8{T0zsuyDZ}B`O{xKE&IvZtp6*up2w)J@gX?S9Oqy
zCS5`6J&kx=5j&$*J^v(F;@(WC?74P&!ks4Yd!<9(*N%gDX&Bc(3)tLgvT;OY=1_7_
zj70d-6D}2OF$6th?$0z7wX0p7u+;C=j&lCgh?r{D&rp#NcC$1?MZ_dJu}SsqkU?TK
z=qE|t<m4~g{3P3t-VJkRb}};PpGkMyk%<t0AF^a&-6ybu*Hu`lNpdM4WcezZTxb`5
z-XD9Yjn)34Aj}!N$N3;qy8Zh;9^Fq^`$_SV^f`B&XF-t*4w<;XH?t?0elq8<A8Amp
zJB%m<lWH91bDt*zIu{w2eg|zT-NtNe$TFe0H-^%;M}@;qR(|m6^w76OUUF<!bkYMc
z^Sj0z`C&>vSMiyU=H97SQ7PJ=xDq8^5h@!5s)7NwIC(^9c}UqFKh>XnFPu|+L@P;S
z3sSA!`G>+GcF}A^nfl|n_2P=oi#0>A$BphJo^niV$39q>jBn7=yG3jodFC|0-)C$R
z@AvsPawzRcdI+N@#+XCUhE-bV6R(fb0#L8<{kZo-bBF0d_eb2=Oq%CRy|M%BGBmTi
z*(vF=mDqfB)Ffbr1WObL5rtaXXn7h$vMIMyd!!E!)5Fe{yHa{ZKHpGwQ9J-@cQ$OX
z8Bux&6WJ%|zF+jJZ&(g-&u~QV-Y_~q?DJ>#3~9WiBeIU_uh)eb{b{VUn_K9kFfYXL
z#W?5L8z;XrA?Kc&ua35Hi_uhWghl9)h*)J}%wG+Xnnp2ZOl*YtK3VQxUMfBM+z>E2
zeI`!tBDijjXYxlLEZu<O@O=5)cfidSSht6%IB`qR^SRi%>7t_T<~!mR0{o>6W*Ejr
z6v8z^G$W!dDq*^y$WbyhI)x}-s>tdk0<Cc3ioO1pJ{fP6Y(F$trRT2*j0^mu@xips
z)8yfpsJ|GZpA*8m?W)5OAKs486ubh`#8%{HZQ7h)9%|@<)1g|^V9S{Ud3i&m5k;ry
z5$istivD`~Kx@|!1j%2HedK9<<`!dy4v&fNjAM1C$4sWcKL@Zey?!dG<4WO6w{&}5
zgKHE4{N%dHQp5v73Lb9fcx$k|yQz_nf&<E4Cf8EsIM1uVvPU&jMv1jo`rnnb>{-;A
z91U?k6Rg*%T*U)Uv_P<mYJ~IjZKh?I?nr?S?oQgvx#teX-mCJ%f4hb>P_}4jhJ6|~
z)$B}m4(d`YtCBcrVbz?cQGo|NhMK(@OnGsU7<Jm>OAKgUB<ntwP0|xtI#IR3rhRUm
zB}lRG%Hqg|8^>JLh?E@OO@sfUG8M``oQbcDgDKEy^t6!AhE@HqgSG<3Q{ND7tH!G1
zQFCZgl=Ykxr~0pdq)`n2y3~Y0cvkO5i!CLTAc68-9cOMi2c29BTcg!W5=XzHR68tT
zH%o4w$B?>YF0Aq0w*Q@DIf|UyjajcxO2`!Av{p;s2#z_Xfp*{$2fM>65~br|rCyhX
zcrN@r4!w~3imlj-eew7qq8d&vtYnSAT9&|&Y&=~}zF5=-5at@Gr1s6~`eBk{nJh+@
z#(=xEI>c6xXU(ucS*a_!ww@WYvo?~@3dBjqAUH~h9mW5q!R#);8l<ku!%jS!9Y6-o
z`uOWoJ&>%8+oJnb+-ydqv)LHQJSgY=p%{@~Fk(V6=o{<5fV>)fPWOyXSo|G?G=*~>
z?z><)(Ss@<re!j_43?Cd9-d~0STy;Ikqe~!)>lE|vU-2vhORxCM>@LEx4O{!kmzI5
zFUOuOX^BHASj%#FATqS(FnqPTp^|Sq;eg3wKvIzUJ%FNpoCY`^OPv(^>&j{V#RFzE
z@3Y)bA(4m_iaS`J&gG(v^)Jth;W$iESCeCBA1#B(N63V{dggoJ%RQn}c>a@^%gazJ
zI$Shg5<N22t2lIl;+e)HfO+hN<$(&_ug@>yVpcpnJOOWY^dBUI=3iC>#a1p2NQs|b
zgZHukR9HwV8Sgp{#+jN7ZB3DI6<m99=;3fkN{smAXFJsq^M|0vAEBpFy_o0U=vD?t
z?zmE8_}ZmDiu0CYKf!?6jGmiuXjf_hP<2fs8IP)4%~i1W79743#nNSJ&>~hIHv@&%
z=$?K2gzM;xC?K<9N0|-BMSk4bLI)uB*!ugfY0qP3R%y5O?&{Xfzojfbw?zj^P+_;e
zRVm>&GsN)=H<Py%__i1^7|tOxuE&!af_os_K8Kc7^4GqKwMnuX?hv?wl+viMTYHy1
z?Xzc(PF<I|uv`C8l-?8wk8jGK;dR!zb`y5%6?tXlXrqPk_62k72ki(<(YNuOTrNj!
z2{9#lK#um1_upuZc=!#Efe)@&Et@FqiEbt6$IpFhlCiH1Gp6VMJ(1r+i6Sv;hob#<
zBWHJD^gTk(__$MsTj}G4^QARKgAd^4W6~cYFvhAmio;J&%K}-3N%2UhHR{bme?<_V
z<3O}lC#vJ^*)+_=d4d+GQKgkUzBbI~h1D8#2}eLNbb<W;vcdQ3dBlXk4qd*5P85k^
z^<d`z@}nh%>BH+0BHxJo&ckuL8w0=_w~q6R{ghxeMmsDh;9@n%VFE`Zx%pQglC=A4
zmJFxIgNwqP)8^b#RwBGP+eI;wi}{^<jUT6)>pYMTtQ4h21k5DL#G?TZ4VCjrqHlXx
z5GWyy1)M+9Im*H1Nb!*p1miCdMHEs>^!0KnPX60;FztLJwN}7vh;E>|7i^aSKwZPp
zbmc@;Z{n(|)caxrl1<CFphzpY;P}JW9V&YY%V}bcpLg7B{&;!0Wku&3Fh)b@+WPh3
z%uyrV0vM2R)&++)NU>Z94YDTS$mif`TC>B#m4S#$l?uReS>1@v!TRjv$vg^osFiop
z3Ec1yBx|_DM8|$B+gdt2+Wo8>VSiOZMk{KxbsETEqXrMe43bz3J;k2|bk1|VfW}}N
ziBRxsE0VSSOf}i%^gY0FFMldwBHt78EjW?Hs`TiH)s0WX#E(VMU>!x(pRNEl0?(%d
z(09!|c3J9g+xi&)MKNr%Lz~VacC(%gKWoY@ID6_>a>(E=mVmuqrKtH5d$d}xX&NeD
z5RiuBXo9`O{xL>+V-49mRc(3kT+>qNP814Xc&F=6k?M%@t6NOb@@_X`d3htI>|zGN
z&z3d$7^TV;cV+eyHCzB+pyNz1atbYX3gZfiSjHB<0Ehv&M)7xxzlJu32@Iosx5?qd
z-7Ka#WS9+1pr}6b%d2z-ZT+Fzpf`63fy)jTb-|y39hX-WFKTi7kn^+4(;QJI%l!pK
ze2L!7r+ad0PfD2bsar6XgD>XWJxwwoHCORf9r0VEIM_<BWND<pEI5=QaS)gGF}@1R
znH|v!Z&(5!-9pejNy+g(h8$6$1Y__L`z*OvF2iqdO8c)js=PclmH;D-Cnm?*f^>qM
zCzw=0@8aB8TV{tjzE5zvR&0MR>so`xq~rHSLBuI)mS!Dh1{CI~)~Nb^?^R@Gb*0A1
z=&MnM%PG*qmrKBjp8ZIYS@DFDNwe5Ww=2e65vs{7<p%KtHF2F3Blir)Z<5b=;%pun
zKrxw#sJ%83soGV`tbKALGcfhXP8-ZWTi4{o)mVBuvW!BuyJ`KPLF439_<%%#bA7Q&
zp72T9-<8K_mT$v9&)zzxLEMqBt+Tz5J=bB1W1Otu2VF8Vpl>e0?Ou*xB{?A9P$i{y
zM|4xJ3)%!G%8d{u-AC5&>)0?3EeMgln4Yut1`I~s-Cl*~G*Ri1k>5}JY295;&pq@-
z#Lm^4Hp$Vz)X?2y^sW@;*ClyG-%gBU|LBB2+bG$zX%YcrI$cSa$$Sdz2EBDDiX$!I
z{_-)%I3e)hC3KOBqNUpTOsPtReVV3GD|?sDzlE<cZB*G{Ydue?ezLGN{6bFMbmW-r
zw)Q*vo+foQLpFc;$L~RxkCGuIY`BhQDYOu%dzULfTnIGlI(s4wBDp{&G1YN0HvYt}
zCpFsDioRlY8MeBK9Wmi7dm-f)XBLIb%nu6Pv{6I_7UT0ATHB|WAcn{TC`PxUeWV-*
zhdK9<bP{mPv`$gSdL#zbV!LWzbq4pNn2}y&iy`ogaY?A!C5r`8Jcp0<Zw)3EEN-~R
zLLW;)Y6+&JsViQ4#!(yp6a<>Y;lsV>UYEWf_58h)t*RN0JkrGu0p9p8L{s_RPwvTR
zXR9)eJN*RNMO^RZbZOXGNdieWgVSs&xvqTIv}1x>vCDtEk6_WWAVXu?Nu7sREv!;U
zh%KMgdA}u72`Xz6{1nx8ud@3we5$9_>x#f2Ci}@h{1$Fh&}3<tbk38~&rUa<5)0^F
z^Qb;FS*o<SguKe@X&a1LVx~X!UMwbTR)aw`9oiQ*f`d)}`LPRR8bdG?2mL4>CiF{d
z+}gjEHbU-5+06vi&lbqcVU4dKyM_2lgko*<ReACrRdJ>2LU$@58M9ER0>@8%8{Q`H
zM^pmfKp*!)YkLi|P(GT%H`-^=EmrEUhQ4I?ux{(gb8Cfs3Y;=$r!4-O%2yn10(6sR
zU6x<wcSlR3=Xy>mo^&_$SnfCEbTemLPST3#%z3J!5Y}po{ihZicg?6_ADfUcz?o1}
zmJxCzhnNT~o!=vhmRTEXGQ4OT$Zvhr5{5Midj2y-p}oGVqRFwQiNxp#2-*sjF6fsF
zV6X<GK@F!wePUU;7xT5>hhsSL>wR!QmL`QcBPeEpof>)1LNkZE`AL+G5)@6qC>qR!
z8+){akxki?kaFfX6i}pXp_`Xlck94~S-?9*q=QqL2z=I4B@Zvi@4?yJho3QIdNI8l
z#4QKGd<)2;6Vy;X#e*x_gP*hHWyFFgqukOJH7ndQUKry!7s+}S>|FP?VT3DlK1qQQ
zk=oA%rP<Di#}0$a?hQK@^jNC2+{{nOa{1-JuGN-u{`9VO-+ywu6Afn5!+)vInz}{!
zBl0(x?R(%zB>%@u3Q)BH<r|^Paa2MPE=FFo3z*x4C<&P&<>2;)Li&oL3#M*r$!{Ih
zASM=(#VCobo1BhR#*@dO*~PX)#gN9<0l;rNRKG4|p!^Nocw@Iy>-~ZJ?0T#CqSxD+
zevj?m@H}89TT2L<6HsC#BB(?}DykVK9k*1%F~}N9y4KadeB)RvJq;@3pmQntjRuyp
zd+bH2w#~~?gnNl>cBMwx5@vUCsl~4k*^~r4aR!EORAjW02r1eGW<}-vIl3BCwVUEw
zh(xbpj>h?!;M4gDxV}8^il-Ur;r34S_`LeD#vXa-JKk@`B;%!=m}ILfo6GC<dZvO?
zS7(QZPL+pBE8);iH4PKjVa_*y6Zt2g>RP-vnwGMvS1TCwL(fwPc-To}O1cyV3K?4x
z{_{<Fg{d@#rjB5}AEg<^=qEQRpIA97HMxux`4p1VPC2C@z2faqsTOl$2-|+8kh&a3
zbrd^IFP)$co672tU{8;er@;7LZqm#|XEur)a+_u~rnVETrT<E4$EH3X^TuOrTC%TE
zc@b^#eTC{a+k)_}X@_ugF0$jzW7TGbtt}NG>-<pm*;sEvkI76dH5uivPuy+3TYCiF
zwZQ^BDoqoqsG>2*jZ}zOd{hm(Z%1afi9LPcXUtDSf?C9Eh3I80lt-6uc=&~q`FuW)
zKHDvFXfegSj8LcxD#zUuF<lZDwF2cd8MqiH=n+}$F4<UvUKgt0VO&vaIwj!MS7uhG
zACQ5QGZ!fEFC+eW0rja@5v|a!zf3zhNh5MRk1)K$J~DKxqme{)-x*>PYuggI{ZvI5
zj|TJPpX&$cTSpufZ23uYl>m#4Uva-%N<10wTI1Mav~)-=p+fo(j6RRxz{*!Z9U-)C
z9>Fg)gf&-?LrVVy@(_wx>%nb~#fWvMjZ<K2yhtV7T(tpP?anusB-trf%NM~yT`jjT
zXZIu<$DGmp{vWQ}{T?~D<8bi6D`5!o9MLFX(azod6iahGu?|%r7YXp_25ce!<7I+z
zdr{_0jli`OqO(qQlE6cRj6Z@iI09z^i-FLJf@3klwfN=mcKQ$BgEcHyT&a6QkUR`R
zU87{V`XVeB{1EP08nE9gEL_AOTa!DXuz4Kb$(mQC+Pxt4fxasUtoF&`Ad)0uD`_l5
zK)gSH0amD9$|PSYwtfin-1grFUYRKfPB`eBpeP4ty`~H#JB8TnnzwZhx6zx_dgbFc
z^{$LTcfHng8ZMPA?lTjHuBs>~3snIE4PjYc%6*#^HD>*h`@M=No(8gEO?tGG;DGL!
zIknN6VVIpLepd7%^9kPQ=@m~$#G`d&22uBd7N`xiP7nd~8%zL8zY7$6HJXuC?e(YU
zo|ZhfFlXWkh}8`aNOTEuicNS}80_)bI`FU)e}Gw)H(>SGZcAB2IjJ%f(xjS0D3g$f
zpKWvE6C}I95gE5ucsGJw!I(^u@Qq2m!}b62JC2|pO%)yPHM(i^a4hL6s!^uhSYDQ(
zs6-SU+3-3w$KoVN{lR=H^hVSP#<mTjt&w+5$(ctAUFxIZurQIiFcp;M8%2K_=Jv?_
z>EnRfCNooS9%oP_bri+sHqLwpN!J;gB#HbCT*wP$kPMWfp>3s$!F>BG0nI}(tOBcS
z`;|a~gZLF43#h#S#h9K<bvS-?439-?rOv?zBZqMoDO)8m(}QWECutrkfa?*Is@T<O
z_&jfAiFL_!j%tT}KF9GMHjvg-?(sD}e=&tm?rVzY0?dj#$<o98aBEy#sGWl@eCQ&<
zuX_2pLGi*8F6sN!-M$d5HTXuHH7~<mrr&q;EKpi-9-r4=cadSsugA<m_$nj)<xVdu
zgqs&1m0`|;+JE0lmQkS{2ZC;^gkmx&$+7`Otgu0UZiHf~)0;bg(clJ~R1uB9MW@DC
zS@iDss&sLFhO!7{zhcsBzjs+@Tt7;tY)Og!98tADI$YXMvWgm#G8*hgxmNa9fI*96
zAZ;`oqa`)sTa&j`De_`tYY^rvf?alzBdN*1Z(|Oq?^I;UU~5GJs2RpVO9_Ehf0fp$
zcg@T0?@Ov2V8mtsTu*c{?^jA!5T!4QcbYZA&ul|HG_K^p2({}{<g=QyIA6z5t<d%Y
zpo8Ici{k$tK^<S*&i#bS1t?OxX@XYVA`!?fOl@4jLKa2nq8w9Hi1`ZXT<{1_<QZML
zRE@b95tIwo8q>-xNW62tdPsD6m#K0iM?V&GbYaL+Tv1R7X)gj~#SmUb78qLnlqoP^
zSe`gkIP@zojM0&GO=h@|U1Brj_A5+?CK^Vl?qgjE)=Mo|Man|gckYv`pkbSNoKK!l
zI{10#kbR9{p%uRJ4wx<2MtMI>or0N#cP<&(WR_(NRzrNObQ6E4VtUzc?fH?Q`SmTe
ze9vOyJ~XZ1o3+9UPw0YlgJEIwL%gBxaQO=tjEqDxu@8q>P<_RrX#GyAh7*w=e!%zM
zvmm+X4>-{%3kZ>L>`>A9e(Oe^W8*8imEKjvrX~B9Z?mF4pdgAW0GcqQ8K?PWbOtli
z6v1wXRcjUM?UkNSiRv~-lG&n<e--rauQ9#NC1=FP*xvXf62yZe-(g1=ElX!ljP>=6
z$-Xti>!AZ`H4B7vrP6?>0{7UrywB2v>KcE_pW4LIO&E1X8z-=<F0PfslW&!6IV5+!
zqWqqqE?X)B5Y}b&<wa2KA9JTXGe<G0ugB@Y;<ejIkgztLNM19ut6|sb_HD8hD#9IR
zuZ1RpHvx`Gnn&<8O^IGc@VgbIQf$R*xJF2K2GwkBQ*fheO4?L=A}&V`lHnt_b~1QI
z-9r|Le#_eOpb9T(7PTra#Um|&-^9k%7*eo6v7!P3xFzd<lp2A(tqAu)E=A~N8iM@H
z<u(IP)cNtI;C2d$PE~U?M$<m<v1xYiZopLT<`<Z*4xM#2-p4g8L85)ah@e;S@HNA|
z=Ol8NurlG_jBO((r<gie1VCws6;hKp*WIM*YybG(ma>J<qFb_5pz}6L?%UnRtvEMt
z$pjZt++<)(td{kmU=tnslLn^wky>L#R3C|YNnMkc!*60bMHvnH<`ilEG%{J&Fe*%+
zjTZG$y6;1$L>`qR_sp}wV<hTsgOfV;QwuVw7e|k8cB|9Nf;n9Hbf?HHIQP-fE$pV1
z#JkN^-|$Xv_HeIllkdMG_H);mUPU)3zG7&CNP!iDh>!83lNr^{s08V1fY$}RtDBk_
zY{PKqIRP(E+njlJ>;-Ne9DTE9Yc-7W#!7e7F3YVtOg2yK#&M<)w#4K*c(bn^FnHGi
zOO53p1ce|18`isRiPy2)Cp&cXWCMewS7U(<3?fr$6<2fP(VAkoOk?Mn;n6cy6eoEN
zcTNR*-IloNR3v5#qTkK~&Q92!hf<Hg;5*feGaQW9#5h~%v>f@mt5?U>fQ)(sn9?kZ
zoELH=@&o-m=!`QtVP*4!Zq3MI*C)c*169O@A6{Sw1BrU77bX<7)o+B=OKOT3M_qUu
z)G%1v*Dw$3!{WTWe}2o~d*W7}{itvohqK!zI4HNk!NALAmrWckmSUmNsWC3}z589I
z?(Ph?T0sx*T5P5eOv%MYbRzUJ)6Kn!@@StdaavA^up>Bu#v(VH%nlM5iNgY!YUrMi
ze_F{-tA~K?Z+>D_Z`ea`+x(I<v}`yjSJ@f>5S4r<h?^0#X=%Wal|me=zQo6%Ws{Zl
z=}+-u8|cSCJ!T@_UYH<%$YX<TRjg$Zl<$DRvW$!jEr@(;cl8%tv5L0M$dqu_cE`17
zMI9u>c!$&2G#xZi5!P+od8TU36$-U+2lUz(G)^M=`)XHCub}p+?s<^N%UM4vVLX!W
z3!0^;2XT5crok6h1={vUZ6hmQ4N20z`>5mfN}W4i2ah$KgcnPPpEs_(#;Q{)27f<(
z*y2iflq`qB-OJXu(8w@R=)->-a6|4bNxNMnft?20HkuCy$6$L09kd)G)W4O=9BM|{
z0njynOnyNaTVrFARb&?Wz)KO0c=aeIrmJGdj2T21U*d{=r&%WGB_fB}!Crdq%$!h6
zTYHZU91PZ_u6~E*gTy3XA#JV7W1QF6sjN;@hLE{nCX07QHTpvH15PaG$-!bfNO#d#
zL<U}`Qn>z-yQ&tSY!D@K{1sPCqy(XopWKKD^Su(X0yAdtrAPbwvb;0KzwfBiTWK|Q
z=@~d0^<3M_hSR&Ce?AW}16N8iRRYrnJD8B8G!k~7@GQoI<#32mT-zRtY2CpF2f(XA
zMU6CkH@0EN1UN@jBxhBao0Y7;t{jc1e4a+0fB6N7b2yPo(8A@@2haBnasAf%nJCjH
zql`!qJ9zbokA$A+Li$D^=r%*k928%W0a#o<gs&`x3@ms*43R~6)ynuL*qETxc54Nv
z^pBjRgAQ+@bKw`5;mQ|kZCg0Gw@KQe)8%EVGk1lJ<f4_oO2bud96F<Au}P+y9pZ5_
zadu@Z;OMTx@X}Sm_JkwiZ42|}V<KTUgwsLX9z^4Jf!Wc-X9FRs6DjJM?42@;z_eC5
zUJ21(owhni(My_rYDNMIf>K{oyi-%i#({q!i0)WJ1(aFJgY*$gn{8I=(Ww04qI1{H
zye0i*Mr`~uq|h*1yj(Kb6ltw^K@0a<ye8X(oRqDde~yan6YYyu-Fn2RK#X_5K=Ppq
z-rpjOTr`I4OJ;W(>m&(EmI`#hR*0ct8#{B~3BSz88+3Bzg4k81*^8%KE#*02QR*UK
z2M-^JFu#z+ux)Gj9-Ypn7I{$oQ)oL1`l&|nToNk4Tamb^hRS)nuoZIEjHOtFqfhay
zZUTan1jXVWhNrTYA$UlLl2*5w4DdkB`Zffs@;~cY=26uyjz?2T9bVi&2sRpcJQEc}
zsw<xl^KlN5{CdJGgdh3YfK~~bf@i6+a1k`1n_L0^rf&!;tv*PXSF_&+QjFzMV+z*{
z3z<A(vf-IEV-EC<-lk{Xp?}FhdX1TA65X2fDfyy*7Pf@qRpgF~XW4FwZNf&>q*+P-
zDN^CmeDw%s_1+%}Im49+!#OjZ;j(Q*hfk#Bm}vcixtLUk-l>q@`BV7ppOrG2W#Z%&
zW()~2c*wbgWlG&}uVk<U0$Y?beTsvTbSNqYPCD97tBNC!-8~e57?YUrlBx*ZLKn{g
zcBPw`%8s^Su5C+b#GMET{v_#pq(#hqKNXW8uxJr!mWcI^<`7UR<IWE}EZ{43a!Oy)
z$w_WC9xi}v>UND;LEy@?#C{}77N~WYzz)?Az@B@SyxF&QfwgRVOOn%0aye75&&}>S
zzXc$D2{D5sKzp?kZ^aDn`*nF+3|f|e(o$M#yR)s_4THwu&3vi*JPwOBR)%9|cQ^)g
z4XHCFEsKY{w1K@z=AIAvPKl3~tb_^UIhBwmBDl`00~fq=Sz&xh<>PA2hJCH!hGwUW
zSgtprf2*L$jmE;I<{4F(Ggnc%YAXfr=SqhudnSKgbgU~un2Z{YIR{ZU&<I3x!^_iT
zd6J4u;Fn@-WyexQ3?V<(Usett3C++vK)`ux$MaZS7UG<_$O=<e&c7X8n$ReU`wY8q
z?n`O;^Nm-AThR0xjbj)g0!weYObHM-BE)A+;z{bkS&M>6?3OUcSLAaY@eW`eEgpt7
zlUlHem*R=;T?P@87+ei=K*i)c(`M7rgYp~;1v3UAroT0zo2b1J>$(E72e7wJRJ^j+
zfwa{lP}t<C*rwUgoVd5LVnEn5EM1ks_wbZY3vFSs=#|3cw@9}Pkfq3AF7h7aR#sC8
zxsEs|MsOzJ5XuyRfK3#A9}Un2qYDGT3x>eWV2Cat(t`GRp|FvPh+q_fqDrDbm_Mgv
ze11tcDh~Zxw+#nx2(x{He?+>B8}7!V`sarmVDe6{$$s5`AD)NF!*)Lkxhe86X@8YJ
zUKj5XynC5Tkh`933miE2XeIrq<MiFpQF2nV|K7lzL|8v?M%9Tq9N#$?4}FL6Wg+_Q
z&7!?a`a3PR^Vppce;!n(2=H?W$eoi0I?xqdaa3c^+-`wjPE~=QkHXl|{#vtX@JW?i
zB5JNRT2b-_T&XiT0qbrq6QHR}zG^P5NqGXJt;oz71|{K&DhM9Ir`H>#2DMX^k7QLZ
zL|1DDSCs`<i3V58E^0J|R#1$}OU0%k0x2=+r9qmGyp;oHYM`NF)1jh)l72Hdzrom>
zP~b8wgEc_A<xbya)Vd!S=|g{ht(CM<-QT2nCjNC!N<IKNg$GD@Nl&$+8B<w#gr&v}
zT|6x%)*c&N2fT08Y3}X<u6EZ~PF0uq^+nk~V}Ct|FYMzCJSx0V+;g^m;m^E!7peET
zY%Qs7kF6Fas?fDhC$E+Ztz1K{)updBt}gJdy4Wh$u}{gb=J&2F-zq+{58J7}cCO*-
zu8FL!(66?!uhPpYYqw9>KuOkS68=kJJcC!<yf)I-%phM1Am{Jw6V&AVcK9geu!_;3
zNztZCv>LEhv(jc*PJc+JDJEZntc9XnDeon^R1KS8VypEKVS=!F?4_G(KTNE3yww1&
z<<4Fsm#(W&-EE|$ep#8R2{KX@^9n+)nbR_CuKu2`y-?j&_Et#qL+_J4;tN=2WAJ?_
z>GAwa1Ld2`rz_J{-N+hUE`7D?$vACB{U+#Df4rK7HY2#|H7ad3`gquCdhAM5`64&^
zml&N+{;t8*A@sURFNd(28=x_y`ZPiZmZ*JTwE@14fXfD|h6GL5)jmGBn&D0L=Vf@m
zCfsvhVa?!2*QXbkyXRHMl<ZCH{j?F+zPGq&hEgSZ&=(wb@UcLs>vIPVI=m<zbw(|3
zh!~I^EDuDbU<H%>yUYfFf`Kvx;HNNg+~nfLnniq{U32A~2`%1Vz|wmTEs2e$)WSRz
z)ul1TY;;WAQl)z-Kdg2cN`8In{^lIY0O)kQ^I2SoQWf~F>*MJp!pVm!TB9y-tC8z^
zo;bCQ?{j%6p6`I;Hk8t!SYr(BA&><YJPn!Vfv_1bci>}DrGx<Rk~V(OXz^s~%l^1L
zNs5F|1DJoS9X=rV^Ei{UhI7Sa>g2UYggV|Zk#`Og7%@FQAPviijGoxn3uBn010T08
zQ!nF<YbEU>ZtP~|hjSMd!(1+p*Ez!^!t-}`5!<GW`N3w9{opB;L!0<0{){=Qf0!sd
zdJZ21P^{l-D9VyQS)>O{-R&*GB$6p41JkhO#U#<lJ4wKTdjsZpyVjnYBjmC3Y1Abb
zL}+_=q^VTKFx|qWC{qo9C!}CNsimA{RMI-G`?I>f{uNj#66xGL$#dz~=tSkpT%4i1
zgjkQKiEa<V8V&OZfnTe+HLLN9bvb%P5(qZD6th4Q4psZS0g)$^JCVnlr2=1=B^pnz
zHkEjoK!<?g6-lg*C<~Q_JN=V#vDjAEP-wFaMHVVaIw_Lp@ug<v^HP_jA`H=G{$EQ`
z2?MstlR2dsX5Z5S-G4`oWRj8u>nt8(H)O7-+8ZSoA)7^JvjbKP-NF5#si838FETR9
z{>F}aEty|AxCF?_9K2a!PCD&{mLIaLn~rY9PkVlT{$&jW-^9L(DZPjb!3!(?6gP<p
zSnHDlJ|Ei{)+mi-zA8QS{Uldi*T{fvj~1f;;~TBD5&0tcY#q@+SKR4<>!oRptb@n+
zj;Sj1EzP&rTH|dsUF5T#cGro6G4AR2oYP4A6C$$HZsMhb-}MgVJ|9Df9nr7lJz}vl
z148Mpnh9;=>i)2Bv@-|m)b&vQU&MMd0hk@(3OOg^&bfmPD_5YKI;h1GgnmUyKMvNS
z*Dl@jFEe{GgQYV82Q5l}U@Y#R&i56es!fO#KF~6>m8^j5_VYi$aL3MIurDD=iV!Y#
zw)C$KqzsWw6ml!_bkB58+Pnr)j72yJ19dZ;QpeC@=Ysqc6~m1XlxJ}t=Y?#A9ovZP
z4*s&io?KSB=5X_Mq0Qr!nZ-97Pc{p8>NN2hw6L1$?|*wdwE()u@GV+8cRmVu4i|nF
z2YCia`{H&dzX+@+F~z3}&2HZ~A$J#(3rizQU8HeGveHLO?>XOiq=P#{F`>io&|}#}
z+qQJb#$=b8bg=Ps!<e=*Q1NgtcRPDjv(skV{LWDb2qM%@0jkAdR|YXU0)}J-VZ(VO
zv{x7b=rlg@Lz!+#pLF{TdI%25r;P3_tLf~a<1m~dWu^)9X|!-0660VwNc|xU#^vge
z@^(9+jgIL+eQIJRI$f4Bvf&oE!3Tlij2W+dFrJlUF}JLwhCMn|&0t0&QiAZsfXGG{
zjVgYBHlRRYDA$rq63PP+5>{v58DK!Z#EWBz+L4AD9zp%|)i>xTf3e{0+~^1&1o6#K
zwr3ZRDa!hJPfU|eB7lm6qeNDi)%|oq=$rtSjhii9m6^WZH{st=9fQ#dhr52sEKcDV
z){U(4C-G#*1B4TJGjp`CK?-PIECS&zl`y!FXqtN(X=qEa*gBq3^TFm}Cpj!<Z{cv#
z;p5tQI%$Z$20OlQviaF0JElDg#~SU^X~`l_pY%vASZ0xn9S0Yw$2u3igP1lXelC%Z
z2*Nof*G5IpJ`LAQfra2br^_S`U+d$_|6|HwCI3FVcFQm=9DfPaw@B4Y8{dT0y+k4E
zlgVOJAdU3x>nLubX7V)$@?A?AU0HyDi|)^#d;oP?m&OB|M4~*^s!BC_{@R=DqVy`)
z^iz3jFK^wAHbnd?@;r6FdFZxmHA=CJY>9NY7`vW2a@8_3y<&DFpgBkW@T`=eFK8oO
zT(y#eS}lrO`ZBfcPaK>$9u2=+_Mtg1J;2yBN4^5}D8XEx0WdGci3PQk{1UaB<UE<p
z8D`qI;@`ZcO@RWg>gCLjA8J&l$QM)18CRi~T;S54ZH(@Xo~$ZF&Js?~!|%D|ZX{Jj
z*pc-L3P~#WkVf!P51DxQ^K}CDD=Y?hNA?;=vpqJIB;E8g<Grx~XB0mj5jVCYFvz3m
zozDa>GMv4?>|>Zb{znXRL*?)Qk_|}2j?T(<E&w89hKoiSXZPI-lh9uBE~nB`%*8Y#
z0*Mb7{70kelul8q(i?D38kQ;^)BGIT#K;2Gc0O-)-=R8XhCD-fRvj!KI&~!nB-tRG
z6%kRhp-(a38yn%fxx|3}2(9<WM#3p+PG7FznDP&kSXY4la!18Kyf5=Ze)I7u!bdJ(
zu?5bwDq0yf-U=#2@w}%y&$HLPl6$#(8-eKuK@GsLtjyl^z3cs%=|~N9Fg8@Hk?0sO
zFcH?lo!^oJ&7L(?lfC9U1Xsda3V1RB)6)_cQU>SeEif3wmvZ0!0BKWR*&#M-@We+n
zd!Y-D_)%BP<+!zHM-WgMA-<|E26O*5#V&wF-H?7K{bi0t!Ja@<#T11p`z7kR9bL^I
zxiX|bgk@gG;U~e3#Vwfd>bW+G#e;04x)I0s4A&VgI(Fju_0T|cY>fvK^f~+n#M)-I
zKA?@0B{P@33F-*DS_^ETL0XcaOIRdDW5V4B_zY`Nd?M#7>oeG!Z^6Ba-dCk{J;lsy
ziiSUhyO+>s{C7)Dns`2Rf*jY`gHkmU5gRa2MLAKjTZu0mAO#oAut#vEzYF_C!?|MG
zQb|RYeITrDng~^K9yR@$=Tu)pB6?55gtAr{5~EPTj*pnXeR>Z%m;6GME0_TE(4-rw
zME3E8f@iqWlgt=}U9DMBcpA3%b9qbF|E~5M9NWd;*ghbr%TH)&^)5!yC%XZ`v?wJT
zr0zUE{g^+XtUw(U<CES&(3<db-ms$#xRyo&i|iLUnwfO!GBc62%3?D8j2l>kwXI0C
z{Oks!jZS1P^C2&m%)dTuRCl66MJ9OSvo;iOkk@*49_fS4UK2sIg}$oN5`T)WV_j~$
z#*y;(_hW2|toQ1WCxQ6-vCr-?6*3i$CB?T(Iy(Uu4B{Jjn3Fs5)HYKiwn<7UMvAhM
ztl~cib)k*j3wl0-&k>Du))lCI$!YL3LpY?I>g)lzF_iS&;YrENcF9<pGPareaKQ_u
zk;9qaZ5X`WZ}92U{WL!Q3MCp_?{n!Yd&lr1)Boh%g|Xxi1SaS4j?y{-XsDM?QC&ZG
z1C!MO!N?iNJ%CMtP+Z^lbl9d`GfLmgia1Po*<g1)0qa?4#NUk37pPWwGKaoPxaGKE
zlC=XR0&?TC4_PvoZuC)-t<rLGRTQ$iP`5hay$5HoqRo_Na|Pnr`tU#HHc07|;74Hj
z!qm;VWU@G*IT(xCLhhak8R26E?%PS0ZvBuA*UK2NMgLa-ln!h0y)n3$^pz2`t8-vW
z_$nTKKXezOjOw48006+*nwmFJO1`#&fdGWCiqkD7sasUfz;_pVMBcRwH{1}QD`~wD
z3f{p}D|=i$neFMFyRFp(a3=Mu7kqE95mqL_urHCyiPQ)u55VgID%`}l`e(;=enO4K
zO%min#Pd)4c^Ha7g-73~U~Y*Re}w@G-v)?<N(pl{g+kn$^z->RH%gj>X+U<l5{R#i
zeRb_z)DtHChjKhzSXdd2hJuFVx-!?UZ<{Bv&F=~~Smfx8c91VFSwMcY!r~gQh;_4J
zOUX5)w190A)A~Ii(mm$Wdjz7+@!Zbw)y`;qFC#onmdMN*Scb&IMQx0<4lOaVs8c46
z!IMGIM-vi&2Wu+U&QQ#StkB27f*;S9WR3)~LZK5_XE#vZ^VVau69ZT*OE>NtpO7cW
z=y9bt<!tR_1N{UV6(xx*jJ0I+P{#hKL*kwh1!Ez^Yy~o>%UHUm14b%KvB>fmkT=b_
zigd)xBgK2#{h33=bql4K;;83zkU~UB12jdN28+Nt#W^PWf(SsT=lZwNXYAXwH8p+D
z2T-wD1`6V}x`JJU5)g?l{KfbY3U{K*jkF9_;!&pOj7b7b<4O5g2XbEfm_g;#Ldp;i
zD<HAyfJD^t!cs~WCSJOZK#3RVPGsup88C`7Rf3=cAq^6&T7fs%O63r?XE~yi1!mA7
zna;{J9Qkw1-3UMA0wD%}%n!-Y!Xj9=+iWqffz)Qr7>-*QR?1x>UX&lEA{7w}jiYCK
zu00NA=#@F<vg;mbDp+u2Cm`^pB9D$SuF?1*ev~tQ*g(VAhomo-nH)TCcp+8*-Yg6!
zLi{f4nxX{d2{LSYa3e26(CocWi^ygemrkhSURI982(!+05zXQl!4QP&O!;PCt+s1Z
zWR_PxUi3&Yixw5M8nCHkDg6_=f+hk<NnN9L+cM@b=#dgGpHK)@8o3Tu8lzbqo_cep
zfkrzRw<d0IDq5HAtvFClU_=X?$v_a?KO=Yoh36u0OxZ$S!+WUQ>mB`CEgOPGL>*m*
z6L!@dqJzFD(40JE-qoB9C0HFL3|4tOJ91pPVZFhw7eu;Rz0}w$sh&XNz#XOq2TvIr
zi{~9k7L7M7L#!M~crc`I6W5)r$aG3}pV7pj%;E`lEP-KW&v?w!L}n}ma35b;S~Q7u
zWn6QD1W4v?bv$l;!Bx=gbOuF)QJieN_M$nWNG4939a7d{0~7Bj<(#O7(pw&_f1Hi_
z;$$f3(K$+laQ-ssV9rcZ7sUxH?h(ODxMpu8`~q0R@3V<5ZUR7N0B>X7i^k1P11+>c
z0#{3cU70M%f?eOzWe+MNx@4`<J(Dw-w@YU)iGhI=G%cAjvj9+hKt~smnz&+Oe@r!<
zV6?O;tlzihz6-JNHINBuQ5fDw>O6KfNE}>-%Ay*gOP`j%nlT#j2qpj#<ZF-?C*ig5
zk8s^+=$=7F69S>O3UrUg4^id>oy3kT*kQp^XA&x9M7QbcQ+v;w05OGe_zv}@RU3qi
z$Z4Z<QLq}U0KqK8lA(HvUg?_>BchBcVa$fo1DFN}YOT80bTTwDSQdcHnV+giyD-Lt
zKm&qZyc%9CTM%PKoN%g{XgsPsNM}kO0}&4>JwWdya=9)5Ash~^0(uV>M^ySibGCwz
z5$PN+Ml%p<d(<uKY~w&;a`wo<<>$>JJ^#x6tLs0KGyLupO&M$44kv!@+P4tPv-(Q)
znW!s-B&%<X1rutuz;h!IMzv0su=E`}4cMUKQY-DkXd~rMVw?iG_$~;jzM?dERP5pX
z@Y#?cvzEl%35fhKmUs0)0Sqmu3AkeDVMk@C6hoiH97G5`0^;F&iLxet#G@4-dX>k8
zp97OXN@#wwog-#6l6D~%M86snd|3)a+4OKr(u$6rle32G24##}>NW&kj7TOs3VXJL
z<NyvrA~J%pX_!2TaZ%Mn4nO))0T5>c4+@7K%h<|@DEF@-){fDoU^iaDFf32}t$^lA
zpl+iL|J2M+g9i#^{QP|PQi<;e0S?)xbB1g1_`<>Y)*w#P&y}I!c21Uq3Lc<XiLreo
zCi(N(DRN-CGN=F_tqsA*{+t+Vy@iPEhscS5^dUHMT)VyoJ8lf8MK)z>PcH;4bqI0F
zG%ZQswtudr3r3w}tQ`@KXB^ZxMGFdmidyI|W43A#-3$(6N2%hin*<U#`Vsw|3K*e*
z+Xq8pJwmOUD0D<I**m0DZ_Ezzaz5l>4IsSIG5R3xLv0o-OG?OH@C^*jHSMd|)m^=k
z8q!UF2K{Nd9S!5tX!S5^0(g18+nY#vy3{(tRE6@P4?zeK<>TM)kmGd_VPnQA7kRXf
zk$~)TlH+gOn7m=j2vbKXB-!<?3w3xF`M3AFy&?>=9II_qaR7Fbv(Ms=PC#2#w`w#W
z=rj4$Sqg431ZfI;P81F=%2aAK&1MMC_yLxuW9PMtShb@O%)R9~IY2N4HjJUXmwXHl
z=J7qh5e!n|i23lJ3Aori$qjbqY+@PGGUPbj6mN#$9u42-kWv1HK)Xf*7du4zI&Ap;
z+W-ZUfh=WXWVbD>z!yT90&Ktv@`?P+^ljzwm*<EOSQ!YkOiVo<Be{j1h`=k}S%4(M
zeFL&?6~d#gd+G70xDqLF@j_G33z6kCr3QxYN_Q?~t3=z>P~Gn%)O?gB<ADH558H4S
zE5cL+`0b!oSp)CyG_W>56rc2k8*yqZ<hgU@nH;7{RA7%vVjvt$C^wM09t&}apn3UA
z!L9@*O|!YI!hQ<rU1vA*#s^oY)!+}EJcLz(c^@;wOG6E9v7#p#04m_B3DD!iQ5N{d
zjARRIM%n#>4@7nX_L)j_!4bYw280A2s4z^0{)=R3vJz7Qz(N>0jX`Il$M5BbQk_^?
zmb=2DwO)gQyg->t3JD)mBx;B)gI6cNIfElwxl5wF%+%+FNg$PFXf~%ubeSK6L2;*k
z-ZS~l5;+l-wl6{w7Dyq}{-FV>Nn6E;24mwA6(n)DhTzooXGRi@WQFLUlc&&iO=I^T
zivywJNawc^=E=0XFqsVRR01*<Ms0+Qte(862=!p!HfwwNy3sm3nig*3uWQ6)M8nNw
z;zr&c4RH@kO+!!ZWJceGKI)c54md@nvT_ox-E^9HF1$yC=N5RO`I|yDLuRLk5~ld=
zav}M<1ZaB)`08RK$`BHIa9Y#Zka|vJvMh>cO<5HEij|eEmVK8g?IfsAJNmq~EgQff
zwRv%UW^p&6vzpem6AVaGtc3Q>G5wiRktPK3ep>JKPbd%NiVnQsT{NC%oJLL-qJ!8-
zP-h)BwRyVw&H(-~!<FC{mXwl9ti39ohEf4rK?9XBq~H>h9FwJlK~Tt)s~GW9=N{%H
zkHahpK^rHdVncAWv!My;Py*&Okv>@=Pj<^*TyrRLzrxUph})=cnGJ9$3I}j$lr?}=
zz=2t)jatn_^K@B=I_NPS=#K1BtCqqQnsGNTQfmt49zY^Or3XLIkcNQ*9`Dm{tm+te
zGzr-e8FMH~?kI6@V_qIbW6`2CEQp*Gn9!4LSZEWt8?F-u?T9E8^I{i=*dP+gY2|H`
zMGdiKCZIJ#i3pZ4sls`onRd=e0U%n#Ca`${WrC4WU~lwxS=8N0NZz<u`9cKid(NN<
zFsfY7BSEJ$B<7F*#5mA{&Zx}{jpGKTwORvcvQB+y*s1I#P`iCV?+xGzr9b*LWQvI~
zrhhpch%QjYplTjtZ|uO1%ml?(NWxbMN0G3Y$01InG)n-fngI@h=<$y!X45_xzYZ<;
z4|EpnZuD8WG#tw++2doVPQwY<VfNOCe?%wX9=RS1CSNe=7ELA~UfP(%Vg@b3Ie@4?
zWgW4dy>6!0k>0lr7=-Wgf`_F=oh+|pA(=&dOHWYHAe`np>Wv*)f@;~V6i<7s3mijc
zZ4@C`gzXJ?yt*=6ewBc>XeQn}>W!UeP|~t^p?bStnK{#S5dlPbxd9>u#Kz1>gvttK
zd3?&C7ALU8TXCu$a(pA?no^B&vR|6~ij}sirp*p(@KQZ_I24%eSY5C<cj*<5x2O(1
zQ7zNg%?Dm)>Jm0AN|Z&CLzOTfN7OG#0F=>!FqSk3<=Di4`u1Z0Ib8selOlzIIm3id
zjw-_NQX_~=kIB1OdIh4uG&6)a$uAeQ-?@5aMkFz+U%>fER>c2C))6vM$q`s74=$Kg
z<YQ)MSJLzORlSA*>iBjcvbZ75zzxgoHpoIECg8=M24@g-g`GL-3<#WPqoB05WJPdl
z87<p^%7H7OewkiI<Lq+-QYB$D?Js>W0Pv(0o1vBq6^KzM1C(IlMdk&y!2xc`xZBy4
zbk(td%vXIm4b=}{q%u%bFrCz%#{%S}5bPliB~ozxLV*SG38`@jJQSBCAc+;i@e`;N
zt0M8yifw!cxT+TeLU39XDrBSe#GhY&)-T|b;$R9N<h$qwC8QBId4VfUBKq>G^AM<x
zW{qZS-ENHrsSdf5S-ouDAX9k*0%67<Rphyn%_~k&k6OP#jbGb=pA)02JE-dS`b1O+
zr1=;C6wFyiI!Tq?@<bwOp$VQ6<}27az_&?Ed(ewMf%20<^Z~F$y);Gm$3>HI2^Lq9
zN)VG}(M5cuIe|8Czv84=B1p?kNhb&-+kCJ~Cp@^WbcRlQNgg+8V1=ctJWBX)kq0fd
zAfF&H0wQim;D^RNLt*)8>Blbt34>^ZniMi^9|qnB%ES;E!kSQ!IK8Y>A1x=m76zre
zZ2g#{aC_l);B}ZbGf3Y$5Pf?Ha!#0t3<5F`ED$p<#rl0e5CFtqc!!Oi7M~UH7I8~>
zKcNUu8%}Z~Bb?-HK-;xoKCjL8>_&0cLO;{MS&3$vA|)_!KSn*s%ug690fdLcraD7-
fD&x8tjE$WbXjs&snU8)|^B;s6yTptcKAzx$Qp3K0

literal 0
HcmV?d00001

diff --git a/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.svg b/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000000..25691af8f1
--- /dev/null
+++ b/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,229 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph />
+<glyph />
+<glyph unicode="&#xd;" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
+<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#x2000;" horiz-adv-x="652" />
+<glyph unicode="&#x2001;" horiz-adv-x="1304" />
+<glyph unicode="&#x2002;" horiz-adv-x="652" />
+<glyph unicode="&#x2003;" horiz-adv-x="1304" />
+<glyph unicode="&#x2004;" horiz-adv-x="434" />
+<glyph unicode="&#x2005;" horiz-adv-x="326" />
+<glyph unicode="&#x2006;" horiz-adv-x="217" />
+<glyph unicode="&#x2007;" horiz-adv-x="217" />
+<glyph unicode="&#x2008;" horiz-adv-x="163" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="326" />
+<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
+<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
+<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
+<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
+<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
+<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
+<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
+<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
+<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
+<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
+<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
+<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
+<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
+<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
+<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
+<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
+<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
+<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
+<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
+<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
+<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
+<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
+<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
+<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
+<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
+<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
+<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
+<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
+<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
+<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
+<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
+<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
+<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
+<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
+<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
+<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
+<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
+<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
+<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
+<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
+<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
+<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
+<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
+<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
+<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
+<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
+<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
+<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
+<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
+<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
+<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
+<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
+<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
+<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
+<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
+<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
+<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
+<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
+<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
+<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
+<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
+<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
+<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
+<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
+<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
+<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
+<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
+<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
+<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
+<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
+<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
+<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
+<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
+<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
+<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
+<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
+<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
+<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
+<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
+<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
+<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
+<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
+<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
+<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
+<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
+<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
+<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
+<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
+<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
+<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
+<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
+<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
+<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
+<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
+<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
+<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
+<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
+<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
+<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
+<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
+<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
+<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
+<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
+<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
+<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
+<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
+<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
+<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
+<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
+<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
+<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
+<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
+<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
+<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
+<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
+<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
+<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
+<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
+<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
+<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
+<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
+<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
+<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
+<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
+<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
+<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
+<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
+<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
+<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
+<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
+<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
+<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
+<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
+<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
+<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
+<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
+<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
+<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
+<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
+<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
+<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
+<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
+<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
+<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
+<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
+<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
+<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
+<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
+<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
+<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
+<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
+<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
+<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
+<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
+<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
+<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
+<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
+<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
+<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
+<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
+<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
+<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
+<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
+<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
+<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
+<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
+<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
+<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
+<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
+<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
+<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
+<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
+<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
+<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
+<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
+<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
+<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
+<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.ttf b/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..67fa00bf83801d2fa568546b982c80d27f6ef74e
GIT binary patch
literal 41280
zcmc${2b>$#wLd<0X4JKkMs=IoY9(#guC%-Ix~!LV@5XgawLzwtVoFRi&4B<;Yzzq|
z1QHw)z@da0*@PsIyqA!`6G@b6oWOe_b_$P#@)GbXG2Zd-d+unfZAkvV-{<pRThcUX
z?mhS1bI<vnG6E9>LBX3Wc;?Pswd9i3FaAXkSUrx`&zn7GF0<l{z@}h7wrpi4d*Ks{
zZpZ!*_Sc_(*@n#v|6=<B_P;3z;#KEwxh5twNq6GM+Hl@_!R8AuTe&~;1opdee&dB3
zuHKB}9zifaOy@7W^!f`Tkz5@6UloMAr(d*jLqR-mNEd{A4&i+7ML1y3%5Fi}RgL||
zi!Qt7y6=5Y*@^w>_`M^SUUB}0?t9iO6@<@rQX4MYaNTB6W_twTb8q4L*yS58+j!vF
z2j3Nh`>lc?ZQXpu)z^G$?&B8=!spQk>+PGb+PGPLztt}YU&eW%<JyhqT`=_QiZ`)O
z{War7)DeC><I$he=TDu%_l-|m2S4M&9<>aO!9EjS$4lmWxSf0(+a;I;S#pX$!?81r
zPxe(ID}q`APM!R3^`f;)g#n@JcY^fY<DiwPTG)y!c}ptai19rMd-SR|&aq3eM_1Jg
zGFy(%<@gm7QCp}IVnVC1CuWajV&}%5Zty0LrC8dQb{~=s*$&klYChC=Xu+X%ht?mu
z_|Wx-?mqOuVcX%F!_9~L4$nQj;PAS`7azX<@ZE>+Km6eDgyYBYd&V!e;1`7xevutA
z9r7HC9qK$ZaA-Mx@w`Ku58Zlb*I{<pb2xUm^YFmo`G=PuUVnJ=;ad;yI{X0tMRxqZ
zj{pAn>&GuRWclsyf4l#;7ri09Ui*6RHTP@wSWT=t=8ZXH=9myY8a)#IAo_0fKca`D
z*F~?2UK+h1x;}btbX|01bV+nx^t9+egvQ|i`5yx>jQlJU@$>W=|A&(_6vm%?s-YdZ
z;Q!}OV(bZjm;rz1-#tQ;_`j;qrV74A>f+@?>cTDSR3S05S~a&0%~;2e-Lx)tKxMv;
z>UNd2#a>sPt?jDVwrIuBoW#0#yDGI^Tpd#fmJh|%fpzVw+(uuGC*n5@{id$Gt`64?
z4cEQ9t}YQ*O|3)f+%4<)iFNDnd#1Lkv(9K&&23r(y9;-Z-F4Pkb*g}$v9xK8{LsMY
zA#0mgiS=dLRa;x^Cc4QF@cS`UN-jvmR5`U!6_yWe-?)84j5em!#pCPhw)4Fe#va|!
zZnVx*=ZWJcj<(n@cz2v_v5abIJ!>cyo0pio;gZ-;tZ<(36Leh_-5IxzZI8{{K6gW6
zdu)4x-!7pFD~8koT#5eCZPkH|w1e-s_?>1Ptd7U)Vh6W_4EWLlv~6{zZD=1ZbGId8
z2P-#E#D*5Ftc$B`-OzS)XhC9oBDQ_O_QVEi33Z3wsXZPV1}}y|p$^c7cTxw?(8S!t
zhD+9u?+Ja?*M?4Pzmv$eu#nhpQDe)8rq_KJXZ&sZgaI}%ILH=#(<7WO@OQd+HCi6q
zzG5hG9$KFmtiuOO41)3lD~5_fOqg~4V3EZbKGfLxYR$%a-ctNxpiRY5&;@Vp#E_7w
zkT-73wkGUcB*ievEJBCIgv|7!MHb)9YG%{FPcKR$HU&+h!zMahw3wx1(~FFb=ajgT
z%qfW`HlV-tm%m7{V~3g`k(p2s3i4uku@Dj(1y#tXRXLTFRY#Vo)fv@yP&H*$Z&|fu
zwHnqcbawfA;^}-y$tn4eB_4=}ENLa7Skn0dlb+x4d<icm>BA$NM<yN6hxujHC;ajI
zI)sHn(JlzBbaM;8xhY#@g1vR$0F!L3Om${d`$1LAs<yH!XNxvFow8YMtwp<yHtm9~
zRjcByt6_2U)A+}Bu{O3#->e@P+tN3)UA)gG`7`p@g}ksuP_r4esa$Nz(oZ#Y*myhQ
zydBZ3YRahfIn`WNYqM$~qdLmPfP*d!c&KGlGHRZ;tf8!hquH$5;L+MytLn+B9c9&>
z)%sYg){s}cs-;hDSBj2Uwy&>`sF=@n=M(u{Z@xE|4FyAq?hY~0;1VryOWYj5TSU%f
z`^BD|*<wyKq&rx;P`J|cdg0FGqEGC9fAe(nbGgL}Bh`JgXZqNU1^s}T?Z&&Uvu{=|
z5MH=A_x0$8O;41sZ5(v6BZW*);fXVLeCNVT@<W|9{<bsv3mv_Mh1U$Wx@$Yv_B?&b
zC%)A2)ODQCN^F<BSbPEe<>kB}m6<AMG?Ov%AZtmw{n%C_Ck@}oQb5~67xs_8&)Vb{
z<<o?K5EWD@qq@o%Go}VJS_nU(*(AlQIh4M>&MwIx%*C_4-Kj)_rGq6J%mIJM#ave|
z6W_b;$tSPtXlr}!^3VTT99+%bTYl9u??3I@aP6-itZ}+F;Z~$u6l4`VD`Otmv91d}
zER<(S#b#32t`d6j;d0id9}tJcA&h=ofez}MOMLIh@MGecx|6jH@5S#($3Hm!f&3l$
zJD6Q&(h@95us6di-`kyGsRm0GTk_j84vH5XTyyaJs;URwjqa+=zdhYJa8^~?^<Wk5
zU*Ts}Rt1}o6N*?{T2)I~l`xI$8P$4FmC8lQN}MB^z_?b4Hmznbu7eX-i8BS$sVA<;
zDmCudA&^oXetr1$LP1Q?@4Eym=F78?96~C>^8KtwNh&Fei-jtC-6@O7#R52HmK*O{
zb{aZAuyEO0ulKHHb62|T!ydZ}`=7qNxi+xAMLg%B;s5c3YOm_eH`jzt&r4U@9n$wC
zpM7|lQe8tUd+7K(@(<((1)oqStP_e*@>*4IMh%tKx(s^5)cTCd4yu8&8t{;8P)(Qv
zVE3AU;@u~S9&cl)Pc<pvd_nWNFa>OVYDiH%eQKR|9}_GlobT-NdeEVO-@<}^H#0Y+
z8Q5L)1Y^CPR4l~m!D{tOS)0XjnbmLA4_v#m^vM^Q_j}*d-(&C6IsFf%o!9CIaPl&X
zg|#geFV+9@;`eX`hJ?@aA^BN(won6(WNK|j6%G<ly2@Ie!P4FRVuXe8CI<X2$<iSg
zrkru@wb!?G-gw<7hI(gRfBWA4{wHp~ewO4J*s`)+UNC#ke7Sw)mVv(OZ@s0sdUf%Z
zTdxPLj(<~_C*O~;w+l|NRNR;I#hK5>d{TZs`|W+=eeBozwtMwk^=<ckPLyI?DE(QV
z$$a{|>|gMSwn`IzBM5z3t%CUFVn_xPg)&+-Z}Nm+_k}F^P&%JTTTZ;stRF1+?)Mjd
z@9iZ^PjW}`nw`J<%#J^P=9j<Zbiy0v6SNu3;~v)2keb1|d$YkX^P3X^7GS%QGu8i9
zXC~RMdl)O+pDS%u)vcx6{RRE_J){L2-(SqvB?ne2A6An($bf{9hQ^)2j8KIlE^1Zf
zvQ`~~ptNMvhMa0GtBqOJkx^4Q)mc`XvZ_0yw&YY#S#8UzzKq(DQ~hPNGfVxCWOGCg
zrgrmjl*{|9PLIDalvQO9iKu<HDkVU>)n&CF?*><fvudooud%7ElTO7vS{zp<o7=l+
zS1M~gB$%8I2&US)zCP8hX!T(dP+fez>`C<GCcb=-f|#XoHt9HBC#xUsFO2>{+zjvK
zuNOv-VW}N|3CU6jr(;`3FW{u)Z?q=6LBotNQy3JAAabkPmIDEaWZ{fDos*^;yfMJ(
zfi(x~V>RAAS`5<>L~AaqQ?lA=oNs!R?p{dTU_il`#v4*K7~%2z>|@S{!3BYEIG}H)
z_pxnpX#C#z?d;e^VeztYJHy`@w=?040O^T8t{05-eVK5saD{M-a1YjMP6ciHrC<aw
zQg;E26wYXiw_@L4)@EOW{q~G@)@QKaSk_kEo&|Mw5p^^VF`W&}*F>KltrL=JU^%w?
z%G&%P`t)e)acuLg*uJ=|U3XVDtKG{fM{{8sGiF08Ye*?QAHB~$=KSRE|D)H310@=Q
zQ@pWVr#!_^eBAl$=<l+}PPTdMzfN{^+_fKj0Y?-_-i+}#jq#cakAttl<K2AvFV3m;
zWpy@<s(KcUsk#ayx_-ilhE6e}+J=*lo<E4e?8Ts_Fqr1R<k6+kpn1V%ALa>-)<^As
zJhjCaXt;)F)BDM{$J2alXh-S%@f4-CE-W<2@5?O&s9@<yvvin!Mamu+{_;=Q%lcVT
zH?{!ZFyRv65_zsXS8(v_@-`N-F^i2|!fN$553pKRdq97azu}{Q;yzC6Z(^;Qpc|xx
z=O<_fPzw?{HC$HX*<yW|)SUVhG@fuhZHA-JuPgdP(>VPh1%VaGs>!k%%NCO<x-^-<
zw^B*kOx5FC$x$t%8S^v+Eu$y~A+r0_q@sHJ)Ea0VAy4f%ts~@x*5T>X!q7hU38p|b
zovTxd{u+j_eYEZ&L7wLVxj-V2==n%JWNx8UD3m@%8`0O%MTNo`?Y_YEs;F@G1lm<7
z6B|dFie`mXi)&WTk!DpN9@opsy47=}Th&KCR=bk0jD2*^NKaw!Rn)8<*XyrZg3!aP
zBWl)*%=02T#&ty@BtHoKp$@D49Dxi+JJ#tozAjnHMJVYQMGK5M)#A~d7;9g-==9M+
zC+sLPnKY*bgA}T+PoUvsAa#550cf*+sDeG+sdP`!3k^+d=n$DPfw7($6FBsXCobH2
zl%02U>xEDJ;>?F$edpDO&Sbv{2MRQk@FosD&zkxl&zG*#jvm#nE9D>W*MI%|7F>mk
znUk(EmLpgb1%W{>X`^~fr%;5k(W+UUxg1kH8C5<=T0J^pMJF6Ela21U%bLQaO&%6D
zgK<3auK;7Dt%RX3F)~Ql5#33aHxvaxlcG>7)XBT$-NHQKbm2UK)a&JCbx}s`1@%^N
z>dh~!^F7)U+zkubO3-P(KsMA2u>BHcpF5E2BUWhiYBd=cmfCW#yk>y{qb^eRN%8a?
zI@{~jT2CW}_xYn@Fv={!P(BpIW-dEZ?48L%z4>&$7n?oZ88MY%`Bd7HPGK|A;1<np
zmNr{L7Be<Yq!b4H=7v<Q`2o>YEiG@Keut^O%am$rsLQ0x9U0T7rgScss@?4KCe!Dc
zCnPOzoBk<Nd#BmB!jx?@-7&3Wxl~gnK44}S-dwyH|HXCj=9Ias&Ge~h9j8mRIAt<D
zAXe2%r?<`cl&P(YzFgm)GUr-MpPHIEU8->zKkurMPR~sJlqu6;PIcA{-F)-Vx|?r?
z`d|?X$B)aZ$q&7MOasjecMHWhX;F=^_B*??Sm@K4VoSC+2X&#Y3>A}<3RfGBXENMw
zg?V3lkXD^WkCwy`019a$&9s<o;t~qDgWBZLAdl2eXsI5p3tR13wY#iVWsBWibWyht
z7j=6`&xBAUK!AfNw5W`(EaR3NAJk4mK_gc3;YI2uebTGowlm+fX4cj`jrr_um*c}X
z9j=0O`?Tia+0E0SL_)?8pBd6dW?8$t&^&EgGrpH~xLn6BC+2IOKD}9dVR*Lq0xaVX
z_Zyp}b`f^ZOab{fuw&YUB2+Qx>)?Cn=eC2St6RCAO;o}h)=XB2SH>r+jiH(R9}{<p
zx0mz-^iNzT-afo_crVEjaftYx1mIhc6D~m!8iXQ@C4ea4df1WXa?#9)U}h^Mg3p*u
zTqhl+2vb<W<zWBDcDWqKzV2{|L#(YvzS-f@ox^9Ndy<#>PBK;&Wcg|NX{>QR@W3{K
zY;bp3^^^Hp4EgCcp#a7O7KV(e2E!07sKTguG(W~^?4lZ66!OsI#=Iw^QS(<pPT3`w
z4>L<sLfEm%ZnAX+&F{vZMX2)7DIc9OGsTG=T57zFG1==8<yfP)V&3{lN(AIR%*$po
z@18ySd-@Cdd%+Lbnh!qEpPUDg@s05(_UsYQ)t~%;P7muK=>ZUvY)|-*On%Um?5>WA
zl?50LJ%&XEbBcfmH}zOz=!^;alP6P=Rtc7q@Q=l%gyhRfi2{4}=YdE4KV#1hzuEkL
zQ`e!oCxJ!)KmnXWYrzo%_u;5NbadmMK<}VRv{vp06NK?w7^1Q$Tj<s@%@jyYfOJ?H
z=<b?DhNKd0kW^I)<SR$TU~@6TDbXTel|2deXZ;P5pZXivI{fUj1U!)l1#@jK6)?`=
zSJ?N@qURwY0`S$al6-tFn=r6ZKCntzRSe|;%4EGq3!oJ+1z;p;HHzZhUnP4(TsNp!
z)JUHi@a}h-d_h`c1uf)Lyw5SKO{lG`s6Y&|5s@!NY-A)QF773E?w&V}ys_t8<KwLN
z*{b*7*PmX#yR`c#8+QWdMNxnHeLAo6=?bQu$g{P=h7q2vuqZTxQ5GeY05&cR+zMaT
zQ%}H``-v}M5%;OpiW=xsafFyN$a~@gcRt6=7J=(QCud2i4ih<{oQfxx9X-1H)Lf~b
zN7Ikkh4_+~lVb`r2b(L>1RM!76<rcBIQ|Tc1dMMRR5_WsxK7ri_~La0J3#gJ<wEg%
zP6Fr{`&R~8x6R=ym9nfYTiP)EXbt-}l3aQc6Q8|_W%kGf8U}!%%pIX2<~>dG8csvB
z!8uB~T2M}Lf-thpE(M7RjA_gX6%1j2BB6X0eI$mNZ8{a1K44Q>^W@3P_G84KehO22
zJG-|8&J9&`rg~weKrl1JkCIVq&`ucl7;DHYw@0%Zyc$6}?KFTU+2;?{&=A`cEfAzN
zU!jp_g3S-`18T6M@<#h3A_2$=zd4rj5XfwaD;BKizzZu%((a@Bm!J{db@_d4*S%kS
z85)uJ6H=aVdJ9w~XjG@unH$c0h>vFo<4HQ6M~DkI2t|eFJmy!hTnt8Ojt6To$AMXy
z%Ec-Z9jL;jXKDjiV*u!Qj44=K))MH9htwFwi|JpZJZ~{M?9ff()c#tpX0uYaf>A6l
zaV{Qgbe)MnbW#laMf4`G#PjHlIUp%<3ly2&o*d>RpmOTnmY2VHufF-SoA1<)E?~R(
z=WgS$I7Euy4Rm(-QH_=+`sBw1ta=csoM*|uG8xBOE~wUwTAd@51<n9CCEysqpaEcl
zVi?P*5Hs;Ctuc)`LPe7hgD`Qd2a7<dNZEkzz~v2MixdVZ0XeLgwA?3QXr#xzd|2>j
zuy`QZW4sK^2*CTH5tN8z;Mj{$CxYdT<=<HPhxgL8#&%^clDsB;2=W?3*{Z_GAZ)%7
zBX&@&Ef-C-G-xK0)U_U3>Hw1#U3GNO1s#SIAVG`KswTTkWM*}C5vDY4%wW!qp-T+P
zjiH`H`Pj08wXN8~6_I0Gp}9bcbE~-^4mD3Jt=O_<MF|SbUMMQ!A9s^J&iReTf-o=%
z*loyI*T|DV5H4Ul@+W|VSVDdMEF$)^yy9XVlG%c8PrviJtyf)AXl}ak_FZ>gbB3QV
zH@0hfXH~q;wCr?t<n%fArY8HG(@8{ecQwZR0dRGfaGG$TP|Of@`g3ZktoHJ84uedC
z6<dZ@u?EnlwXC*!v@Eu!mDOn;&4aB_S(^pc&bER^PDi*NG!nE_2D8)R@%bg<ZYS0{
zH>u*vs1?)CViBPBqx&5q{6GO8C#^wH0-chR_FWDrbUXgQ%zxOyH_!jd8*jbwmGetZ
z>mI9<zllR*+sp?k>0oWQ{QRn`etwI7z}UM6U%>aS8Ge=hn7*WU)BCt>J`RFVl82<X
zfGc3iD{+%ziZj>?Fd<+Sqyf4cQeRYe?3g$5AO038R??pu*~f{I-;y@--*Usl#4Re<
zL0XHkkYPBDUr**?V_4F#Mn-@8g*jJTGHZ?Tt9?CpKKr#hdN1F8-^loVTRu<vAGFU6
z3}ia@TM<eef%}Pmo6tU}lVEWziqY|5wb|zhhK%K%K@9D)xqJpc!+V%il5F(;u#y6B
zOTZNb%LoP>^_1Pm+j5TO#%nF7n|JOqvwP95V~0xY6*TP0JMx!rzqf3C;CtWMZ5^~0
zfB$CDI*O00kSYqexd!cwb5wk$FblTdB4HV028U~%vtf*Q%f;rdIV3Y`GsSf4V#7cw
zCfk?Lv4)H$nsHSE3V9aY)Liqi7Y81?fbh=cWVC3e2(E;^A(2-yY~Y<$WZLA)Y7gE$
zT8E=mZQ+p1K(^Syah8q-KrYPTrn>-c$%9<8=VN<XSxYUXPmi`3lpM^e%gV*R8FNXN
zosNq-!&sU8f$Ey>nP74)pTvUR)I5b;omxX3DD3l3;dW|5Dauo)5oQzd4%ke=n%?~M
z83VJpFzJdbi5`Mmay@YZ(+%OsARvLo1SC=ifx8=s3|(X#g#d^XKyO?vL1Z#q?Zb;5
zA-fy+dO>$`EsG3s{LwJd8U9DwWodXXebC_2=_AG&D82jX5Lrq30g|WU3-n9;qCyE<
z1?eqPcW{p*(2a2s325o|LSc9|Aw45lHu+UfTu(L|)=yFP*VE`$m9;=Po8=Y}R!}aM
z;WRW529hmKs7+7^%Bl}03PuiYIM^lC*n;I+XCVHGG6`wTL(U9~xvx*FgS6)E49qQ%
zC;{JnAPtIzXtlv-0G~aTPufS%E41M&N2w&e_2F_XBhp*Ps!L~{dD73yyf)TNi=pdT
zNP@zwBc%)LA(R<Rajxrmf$|guvxDn;ijS;d8x#DYU>5GyG`y`07Vhif3$W;Z9geJw
zgy{`K@NafEbUml^`&HpcBusC(FOTyw{RZ@<`_@2y18KsYLzqEybJdUOVAyuJKY9E#
zy8nLMKS(N6XIC9}f=p~dGDqksgTh&9$ghkW;;y0tOrSfn>_uvl!!@Z%D(&MWjXlLx
z7&NiNe`EN*;PWEA7v?n9Fnd|GPcWzL5Jg4N0^J9*27<y{WU`6V39%N?-Js{hmBO>q
z7YoDQg7}`yo;_9#7Azd&p?6FG5Qp_rgBBy82SCT5LYo66_9A;R95{9;5N0pvbL5--
zkqE^(jjVfQ!-e3bgNHXsw1b5N%MmuCoqMP$v;wgoMTy5;j9QS;YtRL7CxS8nfe{!6
zYy=iEL9<ry-#({1-2f63<0)K?$K;L&d{F2mxckvEiv$-o0qao~<l24->Hy%fV~2X0
z#O3|xh#tG%Z}*6UDbZ(VN9;Z^B|7ZGd+js^n6tA>CGoYbTiF@3mVJ2J=j|?+o!-zl
z880I~AS@(>cJRd&JQ@M$a&ty)hnfb@Dh49Udl4-cqa2@%X3*EDM@yqOtz|8Tu0$~m
zYE7Tknnsu6jma2wNo#M$UbG=W7NHtfw2m$aG@p0Bqoy_kFC!^NMs$OLQFh2!z+Ix7
zM>z-tp#eb?{XvR;XdvZpTC?;Pp)|W?cP_uOrPRD)YKOzQ8=6vKS83O-lDU7Vzki5<
zI&>8&P1d?OJ+0UY_@_0)6vj2XSd1>}KL?^m6nZ%CJqw$-0WX955Z4na7eyyYccvyX
z2oy84(4K}4Hj~9e7zP9&q!4U^wJrfm(Z$@1`9i)Pc3E?Oqwg$s=L%125BqXMlQ&{E
z>$jY(Us+x6Y;n8Ureeo6gTdamKflqw7Liabz7AKF^yV>dXPvVae))f8uY5-TK6nmu
zLi#@DYYY})m#|SN#)#+QW#bcJM;M=$vf9P1p(+nJjE@pf*Lay0t2mY|j1H`cWbB{<
zX62)l?7%1mF)+<>Y}EIuEedwkE&~6dBlb|JM0baj?lBR1Nh1-F@yQZtvKvTG?J+hI
z&{0KOurbPhb=|i^@dk$zgzj$L^7yjSm)G5T(>afPdhw-uA6jS0HA&OzL*Xj7Wgb&M
zlRrD(WVJ}n+-Y0puDW+gX~U{BZY$ilWW@%sA>;t&rE~??y<?S;KtJK8g&1&=*PBEX
z7fwb~^S)jhf;7N+m*i%WIT#9*mRxOp#@;l~Y%{U1iSeloH73)o_Re{ImRT9;^eK%#
zCc&d&O{9}f=dpk7o^I{~F7#Xl7qVdv+$<F9h|<waQ8Wc<!Eu7?ouu1G0l=$va72m=
zY6IOSs}r*YIshU%fHf4Wxg)0<CSEaIO<xPw;cGx3Xl(-ejX9&)AzJ|olK6^Z(WiJ1
zr=rRjf;85id?=yhEWo_t*uiMDG9?6d%PTNRrNE*^i*C9JucN!g7j|bofsS}Xsi1Ez
zlp5k0zXE0Qi6@R7dO|v%mf3JRU=xphJzFSbr4^zrkPd^+q7Xm+4f!6(Kk6@#UMuxi
zEOQfee0S|=x7+A0g3A8kPKKe|>=UgvhIy`es<9(OlyR{j0uR*$h-@{gKz7%1**%k?
zlOYRapLB|@$Dc5IS1`Kn&y01wBjCvqRq&F2I@<N&E!1^!`$*ThyrZ>d%%3V$1Q2;S
z`7-d2?uP^NVzR_O+)wXPjNWMt!S-8xyPDp`A$lL)3)O{|74C5<edN~P(^i;5SQog5
zmbV?4%Y^;O=O?yxtlgzkx?4w^$c~I|>YGP5#~nRMds7vZ5&8wZ(r^v{u0f2-j0|9Z
zip8kJTaaIQyx-V2iuPB)t&iCs->brSvZGsL<3W8K8wA7Ug?@;aj&AC2jc$%R`qBL|
zdSvwO<NEb+{_)A@$M@^++0KqOpACG>Cdpe&d%pIK&4rQpkrkD3LrejN4lxDjC1MIN
zbgOuL!KFODppd1J+?pdF&NUDdw~~%f^u#*JCbB^gHccU`=Qh4}PL3Uz9NF=4`(x0F
z!4s2d^>O=SPR@_sBD`gcXa1h;e}L-8c74pSj2ky(lN<+{$Yqronrf}kB1{D$72{Sr
zg21pec7W=O5Y$8JI+^Eu1%a_gQk46_CW(W;L$pl@_}KW$<ByYhLo<h_Jc%#3fZJ$W
zKft%SRM5F=xKNP_Fbhcz>rQ}4Z&r>0#QMlBVns7F0E8Zllg+cxU*K5-Sf8k)>cByD
zR+)FVvn&69**9`M`(WL{B4+<s|D;$U{shqVkL=J`cRzfSKs7OS)1ty6jxUyE6}S$e
zI_*4i5mSt;KS2F36kvV9t)|&%G(AucWFXcY{O#<T9EJwVr7bGH7j0{c4tt|*((N$U
zed2b$zXk6M7Aghqj@U0W&qIikgZ;uI<bX(zxN;dmoVfcK_KctuKp_?P4@FdjYtSME
zE+0kn0b_>Zf|eCMz5v#4M2e_>(&f1matzv>$xLYm+}2ys<ZHe1kgul3_u*b|ZQ*}d
z%R-iX=UDZnOE)iFy17j{;;pUq9&_UT-EVyIVb-r70$T7BI=2*b`y67A>k)hGhn7C0
z(gTPkq8vJcwj0s41jbqohgBWoUbHHi+8U;|T7+t@X8;ywxom{_xz^qxr&GjB+{7?{
z?)snKaO2OeU$Eex`ugk*=bwFb>&zD)xMb4<4;<Vr{%Py4ZoB!_|GxjK{~jE)HEg<K
z&!SK7=4T!toodX#77!Lx+6Nc{Ha%e!0Apd=8{RcS*f7k1Wi_8tX(G8OOyt?q{P3df
zBQF}aj=Yn6XgQ@}qU&tQhpIZ+V`hW1LRy11eFC{;zcsmqAoM%|-InqZ1dk(hzC+9-
zmN(xarc(%NaIsI!zU=C&BY_3W)-IWuTzc~tmR<GzTW@xqd8Wq_?6A8<o9(PT+kMVA
zzx>6Q*3Y|V%e7a3;!|_hJy@6~o6q^?%_}agJ<l9m*tB3rckc4tn8yacy(C|Ryt25E
z64naETGB9q$iOQ=1D56kW_Xu~8o{#GMAU$HX`eY9A=6O}Dq6IG2x28yaUg8CJY;2G
ztRa!)wBhqXhO-8?`>3LmN6ZCOp;R)DbTxD_!`^<3T^{|m{t6j{><Ccww;$6FJoYx*
z|7G^@Rr)6Ow=1s<oJBzUV{e<S--eOsq$_VK9e(WXw=c=Ehp)sn|9j<?tLsTd8NRyv
zA*1TyL7rdf8Kw<<H)-If97~ZsaM3f0i~w5#uIeQD+~5HV2EvVCLCsc+xs>eFWHUZf
zm^jAN4w)_Frm6I$XQV5vUy8DTjRhK9CUnLm-m&`L$(?y3a^Z#NM#AhO{Xt9h{8?*e
z^%*@{9vd3z(Stqc5R0b}Wx?3b;V$q0wde}vW?eScuf6D37=90||J(*bzj%*0#>V?H
z=Jx0K8Tas8B2mIGC}KU1@v@<#`+~6f>6ol&u{eSF72$P?(XxpM!b9KMW(*efuT1XT
z8dfLf@77nq#YUqP(nh*8r}Q=I(+>R)bpG_uk`0L$)=UkOZjMm&65nC&!Fq&!W5aTZ
zcq>1=B5*_zBuv5hn#YexXy!64NHIZGAxJb)(FDv#0PQS*H3Cr^_^>gcu0V`%0IMLy
zE3x$VIT~8}zWy5U&60Q~YkJu@^0NMG{lLqJ@4%HW6O9e~_IA+N2Pzw0K?h<+AR-Lf
zqCJHCVQm}rU?7eIF)rlQz#<Igfm~U9BWoBJ`Xcrp0AJtI7h*N$_rM$18A#F>;T}S|
zkDDU0&~e-a63FN^N1Ke`+yL%j{4?%Uxe?v!#GC0gl^a%%-joS<jp`}>N<Ih0!dNnd
zcHu@o<Ja#JyXiLpPNl|vWrQx=e}&lv>hi=Hx(eq+U;+S&`Fa@@1PE$UPz<mLQ)P01
z8;CR#3OYV`mwU=i)aokthSQM$KK(jbPxR~Dn!>M*eQ7r>_r@;&9^T|8jHMYXl7SkT
z#`hU~qhNt%N5t;oAIpoW!<3=I-ZFS}+!*19z=J><MwnC1lF$HWf^_sV6mCvI)esDv
z6ME>_5q4xuktJ1&?ts^Gq?H}xCMWxbjzPlxD9Qk_L>0cH`(Z+GzVq^oEQf(Ocfzf3
zl6xVHWb97-J`?UiV^o0OOO>0rPUEfUG^EgwDnsl%$$mrV$^<h_UOfEzQA0CE>zP~Z
z#$5T9V3GbNe~riJGKAiyza=jJi~b1P@E39Iu=*Fa0bA5J&+%W#E97g)nn~JNo`oy{
z9Aq2xNB$~K53phNMSkh<OF_nlHFO^Bm5^)wjQos1c<vyNd_blPQr2i~!aTuBJt6Xe
zgak!C?4!sBNHswVP?#(Qi13AIe8iFuk+58;gnLHX!+emlKEx}%i+H7X?=JB_9_}!D
zaL*ogIzK$2U2f<QV{u8;E;!Cd+eNWKK#(amsA@vHoOZ}Bi-09Y#;U0?cs4pG1XPj3
z{Dfvv;>AfCbt0{@yiFB-)gTmsV4PVs3&S0q9$K<xYDN__!$~)XBNXmXL`+&jlN+(}
z)g3!t-MJI*2X>s$mZp(2I6rax6k$S}jQBXCO;9W<Z9=%rNSnArdBS*svn=V!t=Yu<
z?4f7hx!{DB+^)aP9{Tz_7Z7d0MWcK)1>V$4Id%HV>U6FP06B+x-ED9c3}wu<NLh^-
zuq<fSkM>1qy@_{Yz3EU8f7CQ}8fUNcbR4E(RO5=;LRnx%r@Mm`?QTUg1HYU^S40y)
zeeE|*g<eZRrxuqS%Js`Vzz!)>(uehGat~j*M|NAxqDi#LF4-sfg4U49oeo#ClF8fN
zP@m|U-Bp)8eNO5wta21vH;!M$8qw^uTTBw-i#<W7hsmMnjFe<=&JJaBi<_#=)jjL=
z4vIM&qYrs<r;TtlW*Qb`WXd9lCs?LfBVzChw5xeZZRb23B<=Xb?&jgeL;@h(n<wiS
za@`Ea<B1Kw8wL?V1$O~jAB(xFhIjd5p$JD0_rpbbLX?mxx@zJC{xU>gC)&9mpp#UG
zqN%=_@C`&|TOw(~H@Yy6KBy4;8WJ5DK73y6A*M_dC@d%3r!u7&X=>)ShtiWn`~@5t
z5ix`gxR?cATtL`4sN*==n}>fEyEuqbxxn|McYeCmyJeI2M?b20eqHG^cSY7$U$Llk
zfA=e;nvDxfi!QJJIefP_-CtWO`ImokPU(WZ@t0nzd*G%8msS7dC!Jp^Exe@q$3F^P
zI=^J_>-bpD=vd5GC2r0Lr8h!5AzEl&li^1(Q#|I&Po9548x4-*aRC!KaWu+rT-3v<
zLcbQ=dFN##|2d0|#&wPl-~6|cOK>fpbL0C^b3z}+ho@HhK#{0peK6wI#`<75H^)na
zu|7atu~W5v(~h-2-l;!+%7*KS9c#-w^(Rhfb6us)V0^GYF}{%;YOFXEuL!#H<j|2=
zJ2!<XB6cl^aiBHFRfqkFbVr~YqYy725AW(upU~=laZ2Hur#>ie*!<K7(<V2X?Z3Jp
z=KDVwet+5rPi?OFVg%uQj#HR{JW<RYxnnCDohF*V*aF%BeF2eK3MCICe=osaA}_!G
zOGC#Q_k972*SPPGVpWub4lT*}K56$r?x*PkteyCk2|tF8wGjRwGwHHO)&U9x$1q~B
z5LOM<Qj@72tP)mD4f!#95w6>VMmqEGUdkz?-?<3F`puEwF^~KXmeY~n!P2F|69iS2
zekIN>VohjEi$2q68Bc%4?+C)ba@`v6Ne_%^YPw4@&%OIU9;W`EtA2G`>GoHjxzNho
zMlZz1*`F9MYs`pmQ4DR7sjiIXuIP9nhJQZ1lz8YimfESme%sqSS?V@@Gb+MV4oEgS
zf?de21|cEuly`zIXbBA6xB^>O;lI+r(sYsj8ryptOYhWQyG_Lree*W`HL-_&EWJa2
zZ5t%B5mWgfbT-O8UB<PxSQ*Yvf_VX~R3a-tBv?uwBOno|1w~ENz`}dZ<gAk8Wa9y{
zNI*{8Xt@d_X3JQf#^V;u7h$BflfMq8jG4stNMxlEV9C}@l@tD6e?p!rSNne&sP2UH
z{#_-)()bYP>c8-Z!+zF*_u-cy!@&^T?ofd-v<RI-H&&Q#p_nE~-jyTgD0y$O7<ci?
z3_z(-nPCRn-`$1C28YwvGnJYTF3trIErZ|~v<r^r45KW2q*z<9Nwdlggv5{42Att*
zpd=7LS_;cYC<=TRttVG7No;V;NXNqe8T9%B@5RIE8TN!IUV-!Q%t;MC@2d#K*YEkE
z$rbY=t=X^;3(VoOKArAVc2xzdox8jpDb4D)GhQ{|$okIAztEPxS-SltXY*S4DFxy9
zpAo}NxkFiuAGbP~nuE4MA+TCE=cYgpU>&S6{ieKMbjhfdVCfC!dz0YTeul6S!&fa^
zer>Z#fhirCi#LAZ?zb*#TX@lxpS<qIvsSv#_oip%*_62(Hl5iVl&uy&VvW8yV}^du
zy5K$E>zRJ*dE2H<U!7}@^hLg-|M+JQt<KrZK6n0>s+EI#Q!~%Kbye1HGlgq%SI1&6
zVfr$}6FBAB@_zs;Ng#@C0oP*Zl+`&NZ90ZxAzstxfPJR+LP>*A^CLw+6f_zeVL<4h
z%S4b|m+zPJy<$2T3Z~)n74y(=B9cqCm}#3`VY1Dg8y%cFrO6$0`IoIxOwpj-=9VO@
ztELg9A2!VzaHk&oYA}$V=k_jJY06c#T)42qEjnc@V-8QPH#Ie6adppR-x`cexurc|
zPxjA<48EIQzPAux(B|{U+##!j$!353j9Hh@dYY}gtZnrpCX}G~)NA)!qZeHE#7gJ1
zy6(EBP>n~ncPv>G>$n^u=lJ)9o8))p98j>Ch+Uf{P=pN<ji(ynr1O!Od{E7owFMwT
z9xC5}-Bwd;ZEou6=W$+uQl={2=LMy)qo;px9vAu;L~}M`LSmB3+|Xf4=Od;pC<73a
z^uC5vPj}vo8X0*COqfw?uAjT?>Mft$_1P^~FPmF$uAO|~A<L}xGgsYk>$NM^was_1
ze0XYKq)Yu@wc~<2x-Pyrx!C6yhnnn7YgetGm&wdqziKUZChyzV&p2mFYg6v5X&1TJ
zg5;d3H4E2K%KPdCYp>oq>*DJ5jg2%-K??!2P=Q5KM8j#qmxZF6W-3{tgBgkjReNi{
zJ>x(B^EX1E)vmfbT&nZCCe6kE=2EM^i}>z+4!6_Sy3fPkYxsLDe{baPNqR5hER~W;
zm|>tHUK%md$oN9qW1s5i6P|ZCt2{NejmeJ69~-dakjp*cU`K~KP|LuJL~9D4&ang$
zIPWF0RtP*3G6JC=xB?kq`G`mZB99V${*39#&*?9JF1h0It1eF4ANs}f$xZigqGm#o
zscsi*N(I|94V}IW+t8Yxbz4VOZLKAF#>UT%kz3jM;qrR|8!x<min~dFvv-I0iOUU&
zX4clPsH+`*;$C+uo0?fYAl}k>U++Bw{-!2p_onm6Fp-Xb3Bu9Kb9%gx6GDo^8fi4y
zLY6et=YUcNDC>&4q{)@63k=`vpW+|B`M=nA*mv|N$l)`4_Pm%JYcRz=JXjEaIoyt5
zH)PR3dnS=f@mc|_gDS>xzCgjF6dc`>QIlNGLa}jVi$NYG8LUPWL^4QG5R{{;wSv=w
z2n*1{5wgi_5o`vNWY3V#H&5sT;T$Z&D5p4`RCsQ2h9xX!s<V(+Oy*P}h#;DwtwU^+
zJ6Nsg4;E^D=e%)_ueP8+s8lm^v%ky5=CGChLqq-gGx|Tdy8O-lD(BzyznvKz@GG{Z
zOKpmOAb2LT{LM+LG5&adj%`vEhCEi2(U?=@9jwKgKY|azh&EzjC<+LMK9DF1qa2A$
z|3|k0Ga*vo!~OE&Z~(PwoCV-jh%fwzKkj=H-y69Qh|fZd8vl>==I`1f`xP(Kb*SxQ
zN2Wpz<|LIBLexGyi#{H7W98)~s4&ZjaYmXOG*K+|4rQOE%FFX8Jh0MWV|R8T6d%|q
zp`_q4nEHr*4jKDcAcy`+VHuAM@714T(hWPF)1ML_-*LkubnveLPKRD51ob6S*>2dm
zfB62LHyQ_s-)M{|X2T0z)TpikG{i~H>2WC2ME4j&uuN(sT5R}f{bz_*V!J3H%!r>S
zZk|Ro088`nPlB7<h4lg=+#r?UzP9mH4I5>G1+o<KgJK(i_*+4Z4vwX!s3-;%;*dO=
z7vc*+R|qw2%W4^LxkL^;NFJ}EMWP^Ah=Sut!9;iqVmL!k)ceipZc1M8yG#(}BjuQ2
zqnee~>7L}Y=BVO;jg9^4^pcHV{O%VwE=gCLp_f8W7KchluZ*2l<8b)v6HRR$)r$3K
zsb$5@mt46#ms@`2B{#2NYlyP+BJ#20zZ1SGUnIRjT9bq{_B@OHo~>saemDHj?4jQi
zT=si$7SVdH@VfkCnQK>Y6hN<>E6x@Nf2Tj9?~%g8-w|j1o<KPIP4W0tp<vnq?9_^R
z)FhB@P9p*k#==!=LSSS>I+2QQY`DNA63>7PL4(4JfOX|%*2>y`#BTc)D*1fwSL`O*
zZ!IBiv`+scFGU0d9kr?c2sZ%Kd9)F*zKnD`XhCy@Vgrp=O-^kC?LEju;L*Y4d;v}c
zHX+#r6{+!{3ez4Ti%0;Y>;ouETBsgvYv-eqLUE}$6ePk~31yXBVk_e-Djy-NtTUh!
zVtJ*@;9g35O>X4W-kLJiDd!L}-1~}Xjd-KsmN25OTEba^VZ~7A@SU-Clk`-z*Y~Ir
z!0}@<<*Fc`y;<Wu;tzyNEkRCCdgFX9K`S2@0Vk6-jx<@`m(h$wqyQ+0#xp`^0&z&>
z50@i3geSZnq2yKRb|azH_-)K0#Q#!`hzDb3Al8`Z$a;jukBC&Flae7u9v4f1>_Qk8
zWA})I8!63k+?|e9Q*PPF)FPmPu@3OqHjIxAnh(#7<&~XaO2D*54JQMZlabJf34ts|
z&ICDp?d6wQ3u}4#W&I#=IPor|g~7l0*$nK_ZTQW4o?S%ts6E3=LTRJnWZYd7Ckce$
z_R*ifPw^ksfA!K!L}DTcU%%XtdX!%Pf31_as22Df4|YL{5-1Mt@#8LV?bVH7cSwsM
z*%0N$)S`&^<r!Kw0($uLo*c?l2i28An?gQv8bKH)Mr6{l>gH+Dr%jE1agQ%)dRo7S
zi|v9jWROy9wfOsBx;-@9$iwK-WC`&gMy##_vMLX&hgVgDR|hrM%pR=;ZOihsX{`m0
zMa_w@I#Of6v<R*1kV8GwrGC>i)c#5)d_lx?HjrN_Ez+txl8@Ao+L*1WkzEb7!B<cV
zPc~WPlK7S3vytL%ce+i|N`F|+OK*h(#Pd`zAX}ZSsyZrK0>Sv|qtK`AvPCk9?C7zt
zm-Kg>4ptvvr|Z9yR&ck(*YPc~hZlnW7l1!nQSGRwl0}4M3q-U=b0kx%v&Ci}Q{9}T
zytwX+QF^F3hhDWIf*4|yTq1eoGv(pIrb%lt2Vgk(LZbjEW-A$TrU)6H=7xoJe(xt{
zx^GzNHGBQ%`0>8-2KUS@iodSbYmF2xd1Tp5f1NtjTg#qsPMJH!(RnF5ClG#y&0BJ_
zKjy0q_!^n-mL>YPo<Yx>ERrJ}@HYGXmgax&nlYmbhyp{dN<e;Cewg$vUTTW6et>o3
zAK-5MLkdvfPfHKAKlD)hp{0M`zyHr8+ke`}zJo)5+P9CNez@)M(m(Cr|EHyg+mNnI
zYc!2H<wZ2W<6Mg|hiGd$NIrA;m9=0KSkF)6Oj!%eKaG)x43;)H5nim(;w>mifJCX8
zEEhm2LMf3Z=Vf8WR`=14<a^;6Y5kk^Gt$|*PS^T-{e|5q7Q|jWdhjl+%EKQlD)h0T
zXltSE^evX%ZKpTYzx;#Rq<%NM_SFN=9==Jxo9l$s&Jo!~?L^K7{N+3{7HF@KqhbJ9
zHG#~tEET(;niqzD9K((EQwHxMNhjgasJw}hu}ifA6r-0ZAPhxoQyW3xM!s&dS8c_r
z(m^7;1q@LGIRdxoG)CMILP|1EjO8E1<*3k*k75d@<2_Qsl7Oo8aearzOQ6n8Y!?Wi
z@10D51Fxd<>{{x)g!Qk0xTV#6j7}4-7bu#hkr#i1wTB38ASx_d?BdDvT|Cv($dQ}e
z_jca*Vml8TZl4b6LP>J%==^@CQs<|PAwjEaM3)nNYO|tN_i27$8O6}_(>S`E2Z}+y
z<C!dp8I5cKO38xsF;+B2aS{1Y9J2;AqG;|!yhWt=mmXNYX_K{7s7HeEB`$~Jyv*fT
z%{o?Zx@^^^ZI(K>{*>i$*Z|2-n(N#@@_4--J<lAnO|r<cXtIBHjs6U=%HBm{m6EjE
z-ZVQmyZm0)^^12c)t?EbAFW%*RtB0P0e_e=Q8GzRtE=kymG2PkAk#L2zt<qDhkPiY
z9sEk59S|t2*Hb9JLY<l|PT}HUN*{>>_)@TxP%Z*5f)H(khK7Zm7zc#*d#G@PI^A%v
zq#&91Tb%WBGpAjcXqTd>W5Ac1GzGL{Y2vERE)hb|WRL>13z<;nu2Nkh4JQi1-yy@}
zc_nF~L^q4e)B<u+4B5s@iBJyLWmO)Bi(Ll1<Y}w^l&8+TZPP0I8}2&uCs}fn{<XFD
z+D*&^g4tvT(;KBfmBd-Q7PIR;o<P-=PV<{`RazN-zv|0P0k*Qx?AM=J$Nu}>mEUx@
z9X1dQS|A+fpfF7{2^sIuSxqijEWL;coF^3XG}oqJPEE_G0bmML&#c%SAiJx1D#(+=
z0T1b=RL_ramu7OZc!9ZSE+kzdt_uRB4#}Y-{_k`W>_M?8=@j5EGh|s1h|+Y*4(O#x
z6%3gaOPq4ZHt?p4RaK8R1@vc@?pl1kJL%dSJagsq!5X9G*(`Nxoo=%NP5r5Uzu6ak
z+``rnX)alH`KHzSFIG8O)#X9Qn)|#}qcmbAg3^9Sgw$V0e0!<l!w?0#^e!q~hk^A?
zp$a-ZMh%!gUilRHdadPRD^I~`or0bt%^1n2l&1oOY$|%*O1?=aRC3LYOck|?dhRnv
zVRFud$Ourb$qbg{c@UT%1pZ0Bct}CHND?Wj9%VXKm2}F@NRvnT#m!YI_w{VauBB|H
zzxmOs;SVqa>|c0?{m(l6X+P?1NfvW;@SFFc>kFd6%d41Ub*|j8>e9<sT|$$It+6~_
z?{e$gFzWj2+syUu9|pbNAS*d69;;O4y-&Q7cU&aB9rNTV)B_1%%nf}7$Sm}?N_-jg
z0FROEt9jr$(0C>|YV-*{2u+h0(4w($QcifKyoLxB9QCXMrgQiF=7vW{eSGiiVM!6{
z6T45pTwHy_Z}yzKM}LPL*zi^RnEjO(S&Fs1RPmubg*JJx>P@LwW|)EqxS=*-A|uoW
zH7qEULGuHVq1sbH1r=-+66DBICqIV5v(%}oBvt$n3C@Ox4=uWW{GCheK57z>ecmA6
zV532g>94=|3h8wdY1Ch#k%E>OsnACB9a(CX=sSgsStne=WTlzlu2yZR7X&g9OYl~W
z&<WLm@sFKIC#<80@Hv4<h%h5NZE~BIRN6Ea6o^4H;ugm>D=?v1aH#WUfn*>e1{UcW
zIL39L@k5E=2dYPLk|vT@1qSxyfqaY#{Epa%@+g0K5Y6*>;R~oBZ&=!Z(U)b^&t#bT
z5Vv{_5jzAbVq_o2gz}T6i-8?d23#(a4?cnE3s+xv`yF?G4kA~z1J$f*NOev-<H9Wu
zet`?&Wi3E8gPpz8=gwcfmah4XGGMa{{-I0n*s+toG(!DRp75E27Jtx!m`zyD5iuVm
zj1yT&B$Pyea+Cx_6@krA2FaV+3#1F%`CcG%z>}lMFTj~RP~}vfT;+LWIQ6D!#^cJg
zIgN6r<`iMgxQ~k_e?FMSn?D%nkn%ZB((CywpfHYi_WaFSXKrB5V70Y+Rj|J=Z0(R*
z+Re;#(I+Ae3CYz_<(jM5X2d!?S&s}rN*1j(wIQF+VfL7t>dek2m&+&1N!et#R0qu-
zYt$RE*_#tHoeo>H*XgiiR=9m$cWZ6G)jh)<=$9nqEOjwSs+H`D!)s}<wbeI1%1)RE
zY+d}?dfVI@hfj7!teJ@HUFe?&aNh2et`0Z$M^U=Y;&Cw1;YftUj96urf+=sfCR`u!
zm>IL!eMxu(76d}Ac2|qP#^&`&Hb*EOh*{F6D#;`_CW1~$a(c~n25MQ-Zb!({aOIWG
zMvL94$knTvXqKJl()t8TQxM^&xC4<<!gL@FAboGh6v{(MN734b3?h7n;!D?mb*Daj
z?}t@iy>Z*{)9zOH75B7y#I+k=={;-X_P1_+_N=*?;io+w;OJ1Vh4qkqPjg=tRY)al
z4mBoFSE9SD=DBqYCu(Pz41G)|=$BJaX#jvE=05yCJqNX}KAw}nYg!h2xb@aU)*IEj
zB%csw{AAPZ<1z|>qsA$mhP+whjk;59!wN<88~6Mmck>5hhTgYMwh3GlKp^s{NrvE!
zV^k8)*fR39DlS!Ipd$I%u&V`4pgL2OMn;PhiVq+a7J0A77D~74kCx=cKoqGW5EX#I
z-<WMdc6w4+&k-D80{G2vjx>ep22d?&WPkzyb01V2c-29718EjeO;7-w7xG4#60)2r
z`z=AIs;LU0n5A`B&|Fw?)hHTeKq;h!8dx0+Q!?Gcq@o5WH$9+$ma;mnnT%tCGNv^n
zkCPA$5RU(G!<g+t0WZ3sKq;NjOOJ3HM5a!0TZ#OlerQJ{k$GPD80s_RRmV7YDbQvt
zAwZL`%?P2)E6B73SgE8fx0QC5$m?o+h_6-lO5{?7qmLh#V*KOSgT_hmP2(E|p9=C`
zd9UEW8Xbj=J}4{}eo?8|j_79~<qLBtTcgfFakPxu$LkVwXNygoW=*GoW>^^rLR&H}
z*b8yumBjTpQrJ;xBW0NS{bjY^!~G`n%lq>4XIbI(<km)>*TJhqKP-iWPElO}yNj3A
z(E1^Lwf5=IfATOLp0l}qa>j@{icp}nMQ|!4lWUZHE$!3$X|u@)!ch~7mO(*+&aP@U
zR-tRG%1@AE_lUl3=;e3<ZG~Wqh#WN|BLr%+#c)$4jf4Q$=%*;@^}%J)j#w-dT!L3D
z77VRuj^4m*#*WJkJ7<25MPeOMoQkpH#M)n@<%8}t&i|n;9_xsGJJw~onYmm++Ogk@
znpL^nieQXx1GZtue=SUtzYRNk8MG^kcL3B2D-P167o&zDS)QT#4T6@Yn1h*pYE0Sh
zaM#wMHZqmL(y}>jM3}MM<g&CX!J9$;)-*YgEe!ltsb6oQvfVgbxr7Szz|To)W|Yx4
zupr?pkg%+-wllG1?#wCif#!6R!nP->-F0X9Z5^j2^cyX6*!6y2s4nI9G!Fl!dqMsT
zo5|hTn5y=(v$|(&>a7W#yTxib^VqOuj%b=SMe$s)Y|hF}XEe>z1$OYCm-Y?Rd%9X$
z+vr!%%dAzzctXF%GK+m8=m|BZ=@$oQCi({&8w2!v`5sw$=)8?*{_VJ6na+;S+JE-i
zPc_E#)%Y>`6CsOx<?qWwm~lPG%^)e<&T$+IuyT+ON{&%Yj1Vel4OA?n1%~@R$>KKR
zaZnY^tD5-2PsSIAqbN@SWP!6cjaArB%XlyZ(-xJQV7bCS&q=%drQ7d0@4|a-doi(g
z*1VV2E1uS?<_^xAwKnnOjQ)Y(*&9||=^U8VzrJtb)Gb%#=1)Ig@_h28+irX5lO1PV
zI&bd3d@>Z8dfVL7=FYqHjE=fBr}YQVxZ<oUoc(i$>gR1(`PA2!pKtW9@A&)jwemls
zPF4=+jvo!d7&Bh<9-)k=fRAyunE43^6@;KdJpq_Zl~8Cb5r#RqWA>S653;(!!5vn|
z#Rv2o|L0t9M>s!tU~q@UdGP^u2lg|Oa3VjrWAN;A2lPJ<vJK}B>>Q-8e0y+*%}U?-
z-*dg~Q}TmMJ{#Y%^KY$Jx^m&fC9OCzIH><|fZ8kZJZh>PNEKAV6bH{etq?r0su6Yv
zM27McAdWCH*!LP$Uw8!#E^0Eo{7W5z6N_dOoIRuv16SbX+(xWo)LDpoE1CJF=@&fw
z<QEE44c7{a6AbVD!HhLCW~?bl-wI?qB9V@4;MhD!?7xaH9D9vU%s@LyPcY<l^;lF)
zO-4hZF%r{&_Tm`h?tE`Hgp&6bQXCj$G|T+-7f@*(3AfwT;$n6Dqf!6UfuFIhKRdue
zjX3Id>u<X0BccD7e&82B6(p7xys*6wBbR;#Jn;_*l#vRL4x9x2*<!m)t5!Q92~ZmV
zLZYmUcN!h@qMj2|XY&F%SnIMtau8SI(b`yRQT9%yP(T=*{%Akn@@NBKafpt3%DJyA
zYjeQrS&A+a`_wiCdERh@v}3oqPo1WG1EE~$sodAEdMRR%&~WIu3gS;X5WNW%lp+P?
zPy#|h2~j4#nc@X0>D}j#NZ>M5a`F+9gY=0{o7OHg`^1jHrJ4B9wq=FXoE6hsrAMs2
z3kMpeFV8m>A1Zu)byLk=kJ93=x5zUV{Q1eD6---lzMCy$W*3U04&~3fbCzZ4GTGNQ
z^Wwqzi>map%i?RBzOnz)Pdb(?Rn|6b5+mWZ>VVk-K*DRCHr(pHV_+U0fq=0r2p347
zLrnE7VTVAN7wiV8C=u>WM2UGHe;|mDKM=&{s?Zc}qCQ@OzA;;@=G70YBXAg7IR0g!
zdKyTZN01chB1Fk*IFt5?QwC>|&~+=%Iij(at{m;SylNY0+kz!cYbWDUP_#BIa-<36
zh+d#2mnz7or{WTTiy=`c1T%<j3qbl_n$sbwi$<0JqzeLQAdU-<SNrWYDbv2;@!Nj*
z;Oym%$yNU5cqsDMm#l$6^VGz7f%s?Qi>GIsm!(@mzsRQ7gsSuAfF0rDwoYdw%5-$)
zYp1O_r)j8oZTF)3aG<TPeq~FpklhxZ)(gC-A@bRpkTfXEwNA&qvddiMQ0)18=0T<+
z+DHC6<}m3ph<+pg1jUT0PAVosM9~~D230FJRt?+FCXxjxavuup<;o}b0#ea4!=rL+
zt8_bg_wf6?zNi_`VF&_!YY-l<)PymkA|@3g2Bd^SrWiQXix*@tdKG3t1(_>`xpy=i
z!Wf~#8(bv7Y(<EB#E<c~I(pCmh3Hj<@I}ac{>T?paY2HMR!0TqfmJwave|uJPXL+=
zGUae1Z<#7>01QUQ%zdg=!I}W0my}vO3!_Q_PK5zAY;i<u1yH#Ndah9j3B~PrQKURn
zNb%(o`H*&@_7Lpw^9$z_*j-@wk1WY!TY1q}ItzUmk_1{gd@rR5G;u+9B%16o@>w*C
zohlD;OcH$sS%AAhasq&<LvcGUQW5tsnE)1a#vMRs!M_SsmvVWy|0_%c08xA(&c0f^
z0|cPbM5snJkpLEh01W^!_o2cKWgBSq2)+aGi#$wtoW`h8={;3?nn0Ct)F2w5qZN{z
zKSm9M0w@)OLk3ljZ3WsUa~`Bxc*G-KaLJ~T`lVzN5UK(~aHc3$xky-6DKxQB99SVN
zYM;-epl87R;TT3q6?_G8gjA8q!Fx{+>EIP`_6wq9=2aqGh&9$sNZCZkDtHF(7`g?{
zCQGZr-NefnGh<AtM>MX`&@q&#^MjIqcu)iZhNtcW+Jx4_SB*$+FR!odrScx=lnZMk
z`rsh!YM+mf4h2Q?CoZ86U}EZn!daO2!G|h7<NAO&-HClb;Tp8wV9@mVJ`lm%3Vb9+
z`al*MU>W@5TuDnLpQ{zS#t!_CMq&lG)zATyMnU8-xDl+#rz&r|`(V-H@X?Y4CZ)2I
zys9li;xI@-NMHVd6wQH&wGX5>vRFn4jv2+>r~ES)7!fB(IHHyr<-52QTOm4mlEz;D
z-`eXyd)>Uf5HJuvcD_#7z0_WN@MGGGif7~6JlbAr6R1ipKEk&Q9vN#YHJj)QNeD(+
z4Bt4#!nTa%?gCRFV+>{h$5x4Z$ruBAh`4yDC=(-2;9D7q531ykQ9|RR@4fpKN;f6X
zJd#h1%tgZ89(&t3@%CwS)Hr9@<YR4V5P)JL#Fxv*N^2lsC%1-VW(Z<Iqf|>lt49X0
z7DMjr$G6be&fa^J+Cn+8UwL;zBTH<FzK>e^m3NJd+3_vaokx!n*$ltm2<`si_VNT@
zqrGVQ$G10BN9nwyEt=5Y0_w2x*1q>B5qx}W3+Tv_|J%0y!?cY{)Yg%4p4e7)gg4e8
zJa}a07!!bBml!;WTGf<aSPQ?{=yJ?qAIco?f-|vVKpj9d3xZl8N-5OF)HhNILRA!1
z;xy#}5kQ1SQX8>lJlh6~AEpQ3AcHa4E@}@Ev7|o=zzC-d&a9+NW4xL08ie&h`Aa~I
z5b*<jgsOvKNv!7{Y2ZLwkX*7g;6ooF{%#WG!CV}+9Q>~+T_@y##U@O>-h40O`Wm2X
z2^RBf))4D>$YiqFY%Zq*Ri|7wYe@ek`+_K1Y&N%DenJ0Wkw>)n^o9O_!|JXQFGlJ-
zLt!_k+iCNdf2sd`jgR<|&t*=xYRqL+lLLctHO5Lg*_3L87!SmCKrB*dhcUIGPtk<d
zYU!D46q%@cP%sM(H!`vFJwU9C(gpyRGYDW0FrZZkGNJL!^cV@_?1-y$_SuiUO)C=@
zIv}R|TL%5UC0j(1Cea9GD>8@t`e8gva8;$9z=*K^)S_Vk-9~LQM9dJt2mhw#fJydT
zbxkB1Yb31~`auGO4g$D&&T0er%#YS89Bms-iBDT#HxTMZeL&Pin&K6cJZqpbo0i@%
zl2QHemW2i6#v{G*es<)3{Yir*&RcNf=SCRxhNW*mW@Bsa*PZw4k6=!X&&R0~&fqy-
z=m%I6!EjiSNP<FiK`Asci>RaoEYX_Ly3#z?1@6e_kzMI>19nEwP)r<{)$<6!N5rmj
zVwUAdjt-o*yhPjy`7V{p@S&^rTy@o+$@wm$#o=`?oxW<E9HW>e4|G3Nhvzl@;WOgS
z8vc++*v&}dvqE3sPp9(|fE?s20i0L}45L|P6JZxC6zt=2$kh(dv1&xszDS{sR4tQ=
z%ew9QyHbp*5)+%CLKX4th#Vccf9s_CGcwvg_U6c@!9Sj#K6-aJe^^?d#Zc{T<nAcU
z2u@^2K74b+y>CI^>3L)$eK#};^5lU8(CAQC6Ma{B-xcb+k*q$x?=V9rbiGSl^#y(I
zZt;$BH~*ggQ*qTp`rHSGr)Dd$SfpdxIA&Xom>`4lK;Ga$q`PC%207V-{MJFbbp<0B
zB|9oTq@|<}fi|J>4cKsC!)EbY($V`5+|Pb8)&}X{&wF(Pf(^xg`cItEt4`LA5h_e>
z2O?uZg^y_pB7gugJH|C->w)uLmFRANW2Em@_&_Wi*l>WojrM)+UGZBV{)vwVJx>tN
z<dC0*=4Yim4*=Uxt5JyonNQ|2)j5aqfuwrM`9X~f`9VFY|8SYOXLvn(MDl$23iIgK
zvOQ(#$>Ax)TO<>a;|>~A7UmLxRu4QvLNSxduFx|#T-l;op*^#VJu8p*t;in;O~6BB
zgF{MEDxDjlWkp*MH4@13G(-xxE*Ik2>7=bUq^RHFz)^5~DdOKfJR9-Mu!IY{rMLVM
zE(DK#9i<Gw{bA|C66gJX{#*vCOd1vj1kz{GLN{-r8%9OZ%oW(t<{8ix7!>3{NS>gX
zAp(nzkWt`eT%!WW?&VENB9|}3s5EY+Vfs7Q-K>9#S~lm#>)3`H_2l94Eqq;n_qtoq
zKn*9?--v*XCoAy>!1+xs(2}0pmjFdaYGW9UL3-3As#wyPl@*%!;Bny22k>d785cf@
zbhYOz1S&lF<Sirr$B3nWz%Sy&`tVhL{?@P2g`;wV))6nK-KBg@2JKv&b}lk$%pNik
zka_|<O14r?ltDf>D9o#Q8jc*kK%$I3rWQSt%9-ULU@es>@j)Ovv6^c{V2vNLV|g4$
zXL=wf^|IoHCNp$|&YN{7?;a!$6z<YEE`S{l3O~h#5ma@mRZ9G7$ilHcoq3Wzovb%t
z26_yD(f;v`M_L-ic_2ugn8aB__z)J!$z7-nl;P{g>OR_q5{Bq<-UsgOM?B`Z!MU8y
zj`jliV55DYnh1*_*N9Ul=MGS0333MFpb}N#`*69e8WjX#fgk0u!zl{xN5w!d|3UJB
zB4SehI`l!Z0gcMow~?np3)TXg5E1%O4|@+Onhw<afQ&*eer2oyv)Q@bN}2>c)6+xC
z7FJ<SBnRAc`$UsrfCoXMeX<0v0@MrmfV}<yxr2m}luxJ}8bgGHY9+2P!fgWxC?wc{
zzqnpRyC`;_Ff<{8S<o%A!Dx#%TL93A-{u}Y05$r-m$`oreKdTXH1?F2jW`#$kRkgz
zxjF=_7N}AP#y7wPn<oTt0a3c})u3`YY%@Df0BGql#3LTMOwn+aH_K@4j3l1+5Jgdy
zAdi7VsSo}nSVTNl{__eVyilOS&bJ$D^>=ELh(_N9+Z^lW==<g$>8H^Uv41Iqd*an*
zlYTYr$}6Hi<r-xU@(2uElrZka@EjmQ21ihzI)}>QMbY6R`@AVrtgcT|ra4gKTFlLn
zVAm!Jb~VSyD#GKBNO|K=J3_)qLx)5&Zzfsk+;K{)AZ<q^0_WYR`?YIP4Lee^2#+YH
zNM1zr>YEqU=+2r&`sR@%Q=BQbUEh*&PMN|?wt!2zE?C3FDLAZeVcSO!AG?bVgX{2D
zv5~70fgOXL+=2M}A}T8LBD2t22{Y%ZK3+e;K$(nD_{dB3fMltLYW$C=)MGVP5L1^+
zQoZI;8$KQi;DI)Afd4&7)cYmxFSOGGaQR|#T?}1jZ2>{2hDDF@Kmum^Vt$MiD&uOy
zph4Z^^YnwbvSRY@DxG&;sW3eED|dVac8o{x$dAa6peKSCP<lklAsU1dK0!dh?ZAF1
zeAvxAEZTqH1sDGOfg7XIuP7GZcYWQSEjy2G+@hFWpLVr-AC>;ldiOmCF1YZ%8FBWg
zx5IUpOIEgQJhpR-(&c~AXI361(s8?l^8u}InM!>nh-LVJDQ@qyj5bK?m=kKR7Q^$&
z)Fx$LsyREriAJFbdAO7MB|J|DwV*2bQKZv@k>L_!Ggxmdgy1!}rVzf?A*1Yr>}CN3
zB#Ob*ip?uhsD8pOb3xpExZfWM`+w*U?_m8q_=dT*u=Vwu&wBh5g_&(OTlRoI=VF<x
zTotPc`0MKJ_N@MMSI$r6{=}yOHF8{T2;5g)eP5sfn>B%wwdS<0=0LouDekb3&R@zi
zs2TOYQ||Y;%Ds42M?6jCY~jloeJP;;J-y?&^o^S!BSxyu<9R?d?EDX|{tD&*cmJqt
zCHu*ECb}P9eynULRZD0xP&&Slas7bi(8xpZ#!B4eFmWgVA)tUs5KTZCLi_`91$>8d
z9v;F#pOoi7pTo0hJWcd0Dc%Osn4|pJz4I$rjiEP_-Ge}sQLKji@j#9c;;Si?KkX01
z5=|{!wgM-`er+t(L{X}U*dJAE4ZDq8ZAd;&AU_$3Rv=-5s3ol12LV@5w~8-NzUA=j
zttzja#2KDyQGsqmNbIvCbcOE3J7sI^HG~+6;x<H9(p36?)Tf$%tWSK&FxUVp<45(0
z)(u)YPSqpy_6Q>J=;;NcJ(4GkQ603k*(Zz;9_cc9geb$EMrfZuz#kq7AcODK)>D<U
zQ;iNvl3;Www~{_jIVvQfC}Qx$G2t!e?WeJr*!Cdi(ur+{4m7##yw-)$cK(>IO4|cL
z{v4!JwB4it20Uqt(WVodsz17$4)3N?f0O0`)f`I$128a4%mWyX@CzlfRH8A-AN5l~
z1R(ZC+fMV;i1?@6tT<}Ud&mt$_yL~VP?<NzbAV1dGq5lwdHKdxCeyMGJ@h2KA-><%
z+}oGh29Ig;wr!~shk*M*R&86eX4@(%nKgNiCwRW=Xx}P5LEh_VPbzIi_S)zik0YFd
z^rw+I-jHhg2rim1$LTSKm=h=Ii@`(S`FjiGJpj=C5i^|dZ`6_<FRzTOr!=CICiiCi
zxQtPr_vU$jptc^R{;2q((Vyr2)wOk~)|mR}9^qLUxd5d;eN=x68%b21qBE%IgZOU}
zSG+UeyNUgw9IhmggNMfYgJ-=oG()RG5&_tcn+wE^sGAFeKAjywrp8NXJU9%G!Kg4G
zv0|vauO?IvEfbg_egUWz_>rDyl;ri^DVhcO9nF+<Nco|Nupblh$kU*tFlf<!%F{Uc
z)C)nLSG<=X5qUJBIm1<S(jkW%^Iu6wFnGNtjW_DQL$!u6We7>`LLxhAJT@1m+zLeY
z0h>b<2zo@Y$|ypIb#oM<qxncZ9!2QrSwOX@Y4n`k<&*fs{(vnbatzM`q*62hPVrEi
z{gx^KXV|63s^NipL6q`zD&*BeRfm&2(oyQk!)By^rvmT774ZWRbn2%&@&y6%l4K@g
z?~LbI#-J1I8R;$RaQSl-xClrRV_%uJ09Yq<7^P3@vc(ur(TO1lL5+C`6jp1pl#LR?
z`zSdGh>cOfCn5)R7)849424EK9m(yLIYAoY6@u{RUf?;(p=x9tP@vctQN~Bnjo_K^
z5r()@gjJp!RHq1!tDzN~l%m3^N%I9VSd2gDpU2-n{;>R_d>U4gm~a)3a03SJ^{7=8
zsRBnLWqE^CkY$FMMTK;YdS&op6Ziwh*JQ+c7Xu-x*RMrLRrSI^(Hw9*Xl`^+;14?8
zC)karE>|h2*$^<E3@CBQ4E2TT>;m@ZQ5eXCb}=Mw;U9Bdx$F(L>(=X@eDb=EwzlUk
z|NO7T!PRUk`iSv=Z~6ae?P`Ofy3X)@*98F)Q4tXo*AGDD!+rOA0f{J5gTzwXM6lK%
zB7zDS!4DdnrY5n}8f(?0CK^qnX%nj!t+B*9Hcf2DwvOo}*0lNPbexRikBsd&X{Y04
zpwGGYS;fSD{K)Q}ecyBLInQ~|-RIuD_uO;dv)26Q9KCTQW$A`@o*9#zva0VXlVYx1
zZnw?!`Ddd?2HpDEm(7w+#(&i~I2kxGJkzWXgRU9djznBB+k?mknBfebfE5X{Uv@3&
zy3-6CappF{*s;H_HS@W~jYmIYiTTfP*0QN~x8nZ70>KC4LKk!5#g9%|@tYenS%TZL
zz8i<l2j&}jes5vnUQ>g4;uf3l+66*~-Fxw$gAr%xqs`0|JU+pso4nyrFy<%EZUct4
znC^TGRmWb9?}|=$w^T(6Of5yBs+L4w$-{M-yOwkwbfqL#wYbg%Ye%J~SG8pKT`VjV
zUv^7X#&}QDj75*d*FAKw(>=`XYB6mvq5Q@E8`~ZnR{9TXJnqKvdNVl@^LicGU);Yh
z?gPxiF<#{DdmCsd7njlhxcyz+_jcR|Hj*h4dmWHoYl=Y|5HP#ZiMzI$lK43(1$WC*
ziK2gIIEc78&gVMPY(rU7-X75G?!hQM8w;MI9Zb_tHyQzX`g@&lN8K?y#v#v2<~8|Q
z#>#Zc8jrGeJ#Jv^gKo;1G{kM)$bsczcE#}TCS#cBCAwu(5ISr%-ZcAPft)a4+W?II
zy+}9ZV`;k?UpF8vwk?L=jcrDc1#UO<x$Qb%b@xar^g;h2nEa-lu@J+*fV5_WSbQRM
zvoB(Ctmo4I2EzfQoA$-F8HsrR7061+V#pEPj`ra`_EuiI&BhlP=DFW0pMWxEUo1s%
zA;fW;k+ER8&)NAK9TH-kZ;cf-BP1~*uo2uH_;#|GZ^Jnhv%j4$^x@s{YBZzr%~1~7
z*uU@2w<(D;?hS0iag4qa=iOu-`fqRX%3P_D$K|kGls;F;wa0bAb$w95pz1*%yVu4w
z#>3}Nd`0|~!PSF%2473qo#;)hPu!i9lvI(_opgQ314DKUxtd&-+%t6S(Dg$Prxd5u
zr)*7mf7qW=t5dsEFAq-{o;!T^h_n&)Bi<dEK5~0na#};$=~20(cBVI^zdO2m^p?@r
zG9nq9GtQ1F7_(>0Cz(~5n=(&jUe5e5D=o{LH9u=h)~T$&W_>(1W$dD{hsItX=NtEW
zc53$4?2pD*j(>jqYvZqY;yu$mm7X@w4$qAVD<_<rIBVkhNsmlAHaTtb&dFDE(sH_U
z_T`+&xt_Zyw>$T2?zOy>yp?$ur$nYSPU)Q*ntEwk+q94JoAXcP-z=yo*i(46@M=+0
z(axfq(~G?s-cy>ZkLX*z1YfVe-oGP|8F(S+4mJhPhSEceLnp&Y;rj5A@F$U)$jN9%
zv^M&5^ipv~@si>##g|J8N;*saQaZD=x%B-R6*FEcOD&sQcBbt5J>Gkso#~ocKl5by
z#PaU)zt7q{>tD0GXaBRJw4%OZzkT+457(5oj~MVo5a6gm;NSqisd){vPV*c$()gsn
z6_>d2*w9*un4=4xl5e8!Lci@H>VwR+H+4692K%VTSsNupJ>Ck*G3p6cx_n4I5&BK)
zL#)ZJRO-pl1Jp-Cucdz8N_WL<_^su2?cA_oL(z)WU2B?KmbJHa6fJ9S#i-48%-Qb3
zl|c*E^=!5}ah32gg3t0|#H=4$1GaiFbAPGT200J;*F!h?SD`1+1Me}b@ix~MF@z2~
zw%qE#>Q!rzdpVAVBFt8;#tH;AIE&wlTEA$`hi@GZVoOoF384k}D^O+u@~?mg`_*<W
zijrR2mJ;iJ)V>hqO74pFS){^GVg0`rcs^C`0lOU?u&~|U2Lo-Yv0LF-c-zuu<m|*+
z+a~{dw9+Y2g!xNeSl^14tpcXW(}eb!wl`pp7hx2=2@&jfAI?>Gv-f|u^6tOX-BUMM
z=3RvSy&Avr8vOn(w7LVS#{O12$LEn}AzIvk_L_ZSSmx}L`|S8_e)+JEJlIPSJOeNc
zEXKYFAjRQh07s(z!pdFtBU2|f;QKusr!FxbXop%U7$*`Z@o;{XAc>MBLj==};nL6a
z?GBd_*55FxH4UAr>3BexA!8&{vSch~`<fXC9(XjGD3fHe<Y3Zk9^67s#jskqtC2$V
z4o}A!Td{__Ujh=85T?3CB#ITSOQaM%vSpZGI8(}HmdwTkl{r!=U%>hOUa69KQZ4t%
ze2lxUkuS*t`LcXP?uWykg;FbZvPixvi{)#wL>@FAdZa;?p-X?cG|37$rfiXwvPxD<
ztF%eGtdWOgt#nAItdsS!K{iU4d|e)vP4W$SM7}AH%C}^*Jcj?2CuEC!Te{^tvQ@q-
z+vG{vF5g3U)b}w^c$e&!r{rn*f$WiI<XPD(`{X%X1|N{;<%jZu9F#-yqWnmHEHBB+
z_;>n=9Fe1POnxdoavaldekLd772JvZTzchIIW51CGZ^)7R(>h3$*<&fc|*?0ujMyb
z+zv~>%J1a&asge!7v)X)16Cq<OWu}C@<+KW@5I}uB^|u3t;Os0RyeZUYoreel=gPS
zeT@4l1C&9^5M`J$LK&qjccib<k-<v$oONs4?MSe4wk<<mr?RluDHQhFndf+&bV%C>
zNZSZVyK+doa!9*!NV{@K8)uGJ?Z!ab_>ja=;;7viq!Ukxr^Hj@De-*7^AXQSJRk9V
z#Pbo)M?4?#e8lq+&rdu*@%+T|6VFdPKk@v;^ApccJU{UQ#0wBFK)e9)0>ldtFF?Ei
z@dCsP5HCo)An}643lc9#ydd#{#0wHHNW38NLc|LZCq$eOaYDoi5hp~P5OG4p2@@ww
zyTZf^6E94>F!92~3llF)yfE=1#ETFwLc9p^BE*XjFG9Qs@gl^F5HCu+DDk4iixMwN
zyeRRa#EUw3O5Q7ZujIXYopMV4EBUYFzmoq-{ww*f<iC>tO8zVPujIdy|4RNV`LE=^
zlK)EnEBUYFzmoq-{ww*f<iC>tO8zVPujIdy|4RNV`Hv+t&3R&ulK)EnEBUYFzmoq-
z{ww*f<iC>tO8zVPujIXw_e$O?d9UO>y#F|MkoQX7D|xTvy^{Az-Ya>pA%_o2{ww*f
z<iC>tO8zVPujIdy|4RNV`LE=^lK)EnV@(LhUh-ebe<lBw{8#c{$$usPmHb!oU&((Z
z|CRh#@?Xh+CI6ND$GmXI4)R~ge<lAl#`~yq9BI@!j_~i(EB#OO$dlH*o`jm(<09MZ
pj#tL#*G}k3t((`AwgAebb>n*C^B33F^`zzF+C&yytvzO0{|1%B6xsj)

literal 0
HcmV?d00001

diff --git a/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.woff b/interface/web/themes/default/assets/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..8c54182aa5d4d1ab3c9171976b615c1dcb1dc187
GIT binary patch
literal 23320
zcmY&<V{j&2v~_ITn%EQDwryvUOl&(7+qP}nwr%T)@#Xz))vdaxYSlh#^~UKsfBJOq
zc9j<s0|Ey68QNGt$p6_qf&bzE&HwKZ6H}1|0s{8?QStu6AJzU_aS>6mA1(8T6a0V(
z7zzkXUYUXEN9+9I!ap!DFOd#1wlTB=0s{G=z_>rwLFyJd-Ppy62nY!Dzg$rNAC#b>
zW_IQ_KN{(eU)_(Nsd6JjiMgTUPb}E#|M~#|A(>mdoBe3JKtOVEKtTU^2nd*oEldqf
zfPj=PfBaZ}zy@NZ@n!KN0s$!#{qX<lkisy5AzIitx&3H7KQ+*PYCQJ!AxB%=8vppI
zDEw#@KWJr%QIoSVbo;5R`tcL@Upx^A7;x@iLmN{dAhn-dzyUw&^jfS*yRx%&bOHiW
z&;8*7KerOpCRS`|=V1C1tF`+RNB<vc?`hCnO^trmtc~=;A^w9#jneUt1^xlhByaxA
ze|82A<NkjvG`-upv4M$!!7iu~Gz5}?kpWo0w!kFF@oyj?_)=haAfW%Qn^~G<_V$kV
z_D>Et`TP45!w50c8!{TL10RAG)dniu*zrR^LTrn}O+tRb0xd~0E&>H($0brSGJ*iX
z8bUAs<d}-%mmV-c8osevmk6I%5UC7vh0-by)a@7&y&?k3<Z9wTgT)U|*lKsVAQ_rM
z+&xXPgm8?(&&*sD4SGrU6V}DU^V<FD+WbVgCL;-D+8{ONP3x|b(K?Z}FqQyDA8lEK
zfxcR(LOT*zcWBYweqCi%t<h2v=dH4k#a&-ac4;gT#=k%#pf1hx|HU#VgeV+oAC)04
z6<?!EWj}**203RT=#5@wm77PFeIX#u<?oLuhz~4>lphEzmTHiWB72`anLv4VuEY~_
za}WVZu^zT;R-~y&T~BYSiJ>00^O~gpl9q$zHI%Y>Lhsr-MaOrb%y%q|(42pX<4bce
z&%S(EIYGx}q8~@4pX*EKdS?h=SI&tEv`GGM8)AScL0;U}brn10v;~p2;1NOn2Um$W
z*U=i%VuwBRz@Z11qKr(qgO8vr*&X5{?12dd{6*l`Yp`?k3MDcih%qI+g!qV2n61L{
zS-80y9H-NmrN`sSUC*p$lut-w`?nyb*goYXni_zf3okCBA{zrCwXDq^$DQB5U?DQ*
z61o2X9r4;yA!5sN`)f6pe9e8pguH(cK5%0-vMf9<azURFgB@qsO9$RyPqj}Vz6C7p
z88I>zrWWth^A{_9wXmH0nW$}wo9hf@Mt&V*5m2_W0Zac{Bwl*3N0W}7D6V5mO|AbT
zMePe7b5d1qntWOB)2(kfH3+1h@`qd<P;-YPKtLo%n{Oc<r-es;GO8GaLQcSg;XK+L
z`zjQ8l|UKpl$7E=2x)>Cj$7%?Ws`6C=E;z?vBmFy(ZuU>?ZKAjdKnE_$3iyZHlp%_
z77-FteGS2x>7s==RC=EgNc20pi}B5ZYP?<*;Yn$7M)<7;<>9ljc|Q@}q1HAXA>?XX
z{-<=FYU*8Yx_bmPn*eq|(6}#S=KV{`|BZ*Xn#BSEOxT0n<2%3UJglM<ldqm)p{Gvk
zznudH0{;F6LUdd2>Vh`FJxT)N*_o6m(8iH0h%=F{CzZaZ8j3d^x{KT0bRC__^79ko
z=tr+cA_{hBgbop+gr}pTjdh4lR9OGJYID{f-h7TdFVsTYrJ)sVL)@`Nes|mRJSCBQ
z1vY;D{cTS=MK<Mm<GJ&`%?mft_#5sOZl&KYvbRt=XbdhHJlmT=n+fO3rgpNfb}W&D
z$GUgGv~Lt2mll;L8@0fQgkpGOlooKs|D9&V`DBLsjvB%!T0F|Im%_-jFit5WR(FD?
zq*|$&|H2%85^FR{eO*psA`Lu0CUbFjSWp%~dpsCGD^gTSTR7NCSqLNA&)akG3eyQy
z61~KRD9@D}JvRXa5Aikku9YS#v)0d;<>u(Wy%|e~Iy~QIi?KJEB~oXKHbERbMSWb}
zZ$4oLo6Q7!JY7E&nSn99sadal3PMV~{548>MpAHY2H1T`ZcmF;%7p*Gd@)Z2X$V%V
z$1bYU`a7{N-&8b(7EKxaD_#{2yNI&{t3rygLIQh8i%wdtQ^A4QWPw@AUkIZjStyRy
zt6gfVP}$xz$w}4TO!~910gWc?ujr|I`%rxo*~ZRJj0)|c2kf0tb<J$b#5f=4c81x(
zZ%7)E;8Mka7RH<jgof8lMaE&{G8Renh!ku+hV5hxuca?UHbk792|7)*r{|fpGvXD@
zr9iQI*zKu>H}jLi*?h7#a}r#3UcIh%=Rq+9Oy<}9gOY2vy$@K}ixTio-4X=M1@9qI
z^=K!qz=h?boc7!Dn&O<!kiOq#v5G#>o<J`XvhMyBD8Vy{aO<O>iZq*aBh4h7*kXhO
z>pcXk->0DSLp`H8gAy`9imj3RrTwYMLn%~ax2R;y6z$S#bv?dXh$n!f{I%|F6CUzH
zNglJr&iX(OdhO|M-zijiorLRikL!4b&v<-I;cb2U*9AhJqg6Km0|C@3UPi3VuIeHB
zE<VAre{dbMO!g>vJkk^d768V;-U<9n39<fS4Z!%OE6P*)w|cf~z&NJ9q>OEzwHebV
z^!;=ohVM{+SKmNmc(fHuOajOg)eZg4gP9Z?_0r_5C&wd<_hxoo_+<48kwZJ{Y3kdj
z-euRxbNtS4ORoUDw~*0{d?YbybVf*Z&j3f0Df|p6wtg}#){z60vHIVDYyvXYiqt<E
zv42ntRD|g6;QriC<grTFp5B)Lqd3|98*VJr$rST6j1b8XNyF5`p`cVWJdx#RkA#3e
zK~fI0Lv34q9~2^ftGRpUzt2|_Cshs_!#Ws{m%d-|Pq~eGfxM2-tNOYQxA)ybo&tPr
zy}D*~4m(FY$#qBh{JlV|hcVkn-@(3qcZ{-=R5EM+SZ&PVI;!a`!xqz&hp{B8=wre4
zg1>w5fLstI@;wPh+Bd5ldW?|#AJXDCfR%eUYew_;&(+g6-=ThC?S3>8w7??8cY@rx
zXANRWBOACbA6cC_l4+aF!&NSKMmj<F50TeM^11=0$IbOguWx+Ry>mK4PZoF7UG%C5
zf)X%cLC&;>^$NdUhi>}OaeOh-03Qt>c;rBMl8FXlh6u#+T;)aNQAM7iYm9MwQAwQ$
zauN?iXC->xfF|9A>Yn3rfOkVpm+8&z?LmtUcZTECdVP6@K8N`=NVn%wvgYT?wv(~@
zRQi1syDn_w+iAw6*B2j_C#*4Oa=3>>HsxLFzfc-lqHiBWPsG=v_Rqfna_4v6=XxDj
zbWvX=bCj4jf>-mGLa)^qT)yEMN*AOa6}Y=z5r^W#5+eB*=NMYFLlxp|l;Umkrykmm
z>1Pb@=d7ZMXh-p<@vNTD{%C%$y%YYN-VTD)5%>5QvQP<I{bfuNJ!2gb6l~c^l`rwM
zG@=4mWTj39^|f+JZJM_C@N;q3-yGkk&ndIcW8)lqt|q(bP^jigG875^*m;bm5S(E(
z$scq?l);fG6I8|J^XaOU*kozS)~ZEx6&%b`;&S$?N!6A6W0Yr^`&HBn^<lmo8Nv=o
zMJdt0^ta6G+d8Wp)b?~K^PkeL@`F0Q%ID#3aMVNUrKFwpt+ZEIc$W65Mfb)<JY5m5
z9hQ^`z!Rom0;pCOcWO9>lpLYJRS<O<9_~I0F{K1kixeF)9XlPIeCxgt2d7r`-nbZj
zV)f_UpvRSv<VKp8V;I}L7M8^*W*G-2O~g{`@yk|{KpW#s@*<feBo|;ie@Dy@h^~n9
zcXmk8`Eejsb(PD^B+KP{f!^mKl2*&37|ImXnfS?UQsmh2f$0zh3&po%?~Jsp0Vuc<
zY&a(MHfx!m`u|Nc67f<TbZ2r#v?aF1wZSg`kqVyQ73C}xE^A2@l}b#uo+74`a;y&e
zyp}n8Wa#y=YHEB-rd2RUD^qqLUP$wQU9V3RS`bj0(gNQ2T$&F6yqr<n_!(!|23*0G
z7g_zCF_U&x9^cc!B3idTC9Nw={eJO||Nee@i&YT}$l8sH{Mwl|zwkVqJFp>mulc?J
zubo~#6g|MIS#tM^y?0~C`jU2#a#T$VEGW;6HZHFWLEd6C6gfhTw6Hw56Q8*V+~VWN
z4AL!NdF6?QxaUpsR*ZThZ22BrG(+5-Ud8j`|8n^?HPZ7*MH$Y-GdTEy_<}Ip%UH`%
zC_ybkuvZT`(*5-7zTSgt1y-AX_=4Vq{_y1PK|t=n8Jsz8N`x^1R#L(Hf(SZ(R}et=
z20=K0`i!{GTB{~I3$HZ!fZ7PE0K3mgrlOj^=HLjmlzB{Q!INjU2`4JhvkVArhWI3g
z2BFDRMNusx)0QK>n-{_BPLkO*tH<t6Dz(DCVw{(pWg4$U6mjW^M?!b)K>?}~b^*t2
zL|B8@3a#it1GzFLG>-jntCpno1TF0OMs-3&ICPgAm$awK{?_0%(W?W=|3Ym<2B399
z6?sOv=odFeFq-4ZH~dK}*A#W0I_F%hOcy3B(B=(oS9N?rZK6R)u8SFgYl67%j$Vzn
zT2com)G;k5ej>5&f(ldAjf;DQ6!5hOSn{C{3@HGgJ<Y#}SD=GkOhxTYRR&WZgTQhx
zH_d=VT<?t*N+>fyHHbCwb;JWINl)t_@@KmMH+bk8Q`tU&fRBnQ(#)4NSadxDOZI(w
zdDV`IZHTev{l3e|YJOjG)!*{Qd3Bbc-oK>W2LbR{;`&r7v=uuYN}Q!j?bR6qQf6%Z
zD|U^HaP=Duw&<9^4wcHPM`Vo0d8#?cwduvt)W!CY2}SzBBsBVDmS^qNq)C$4z-w!v
zu|}GDNU(nCqGP?m2nGh>so7Y#2j<s;oMD)xzvzC@oAEg^IkE-H)aIAdPE&ddbR{Kv
zz?P4Ls9REPf?_nP3Y37utt$xkK1mOG%TcYwRL-8$gEJXuB&z{Uq<|?HBo6KK(Wj?J
zn7?lpO((?e@oqz1L?HE1V44tGAJ;Rlb*G73(-gvZ*QVV})sDeYktz#OLucHjCa`iz
zj#G{XAhW@jqDko)(_*u1&v1QghF|w-!*B71m}pm0C9o7Ths?<4GzUCzkEOtcFd(N)
zR-NK}WafFMD|Yn9UNLQQ#p?BeUtWHSIeazWv%Sn@qu9vfc(%jk;7a67g6}2v+3{N;
zI#9U6dr!|U1?vC3mcwzx51E-7&71_sTc6<u*&Iv5&S5s0A3kjCeY4qE&Z)P-9ToDY
z@_9tA!RpL?j<L!GKSn6V8){pIS^jF=rlmzMlWF_4kpk+RR|Z2(PK_Q-&yhW*(1AYr
zzDum*tfgB7Ha$=|AChj#IVVPj1`4-zEaYA&14_4~dhTC!T{*9<db#Fci>SAF;UD3l
zTWTJlAQB4XoWDz=q%Vn+jEY#AwT@9A52;uB*W>Xje?f=`^s2DJ+s}<wE);O8ttKAV
zVVdi0E%z=EH;#44EW3V7YGseH0SU3b=c!pSV1J2X(*4xe=knCMiuVMhF)aRUm66^B
z<_q!fn{|~)S7uEH;JoWOJ2Mrkpw6zyi(3XJqtBEoaErvHIYp}H*j`(3Nrw&~`l>6b
zZHctO--vJs(vA6u2D!C~MMV%ZF_OWKERqY*L7bn~pu>emnX~};w>xKsx+HmlModD*
zRe7jxvS`Tr6uHz_O`!|yld+VyK0FQd$icoJ&6I5J_C@tYl{!GM>wg8ezB^sMFG{SP
z+~tO=8DM|68>>8kL{vLa+9stZVE2&^q(j<a=P=MIUQl<~6qs3Whk!U)8BaM7o#vWf
zHIdjUw~C6@0W0r*n-~|yri;{}t?kwlaip!a)eiKO8x;G(J1BdM^qkFm{(cS&@ZJeE
zxe6sLm!E`;yNen|^?a%|FO&BQD;ZHCIurauQ%lG@$_T+Qi*}@{)lwgXX9S0l#4L=D
zD0l8gWM*QRXx!cyo`47GOFBNpDIXnyIo80RMDX+##KZlh_6}*oYs<#lM{_E`*&a|0
z9?IH-SaET>&WrimlxADG12>h3l$)M<qSLSC7+dyn!#^5>nnoG~F+Q9%u&_RYNWV-S
zu8Zij1T3udO7yF++y7qK8?@Qy;j&>d29gBr(=CZ4lKGZq^?3#ajS1CkdX7~BF>3+>
zYZVG#qpmz`T?l5}q@jYe4}&tAuC*{c-?JynbwY*R0wc+;hotR!1CBsHEV}H{pEV_Q
zQbs{v@#pEsI<-g|xh#rQJeXH}di`N|kNqjL$UE~3So5<F@?4q5Mb!nL7@lG`&~&MU
zulIpEtGc%l)tznBy7I1aI$su^HayiY>Z0bsl-UTxtBvq=J|gu+RP<bZ7mBGQ#%SN3
zgj~!&&tvvZGu|rTA0DRsV8TQU-kP&fwaU!0U7k$;vNuead<VU(pSX@nojEX>Erd8o
zq%Cu)1CPBz7A=EEzAUR|YC=IU9%hvt-M5s$vP}yYbrS8_xEfnDFCI~k&{z?<!G1!E
zK^iZQe+bHf`7!IHXQ83rJd#1}5)~%c_&+uxINN4BK3{JfWuezYs-XMRHwoBD>w$lx
zkHl$$>l6w9E<=%h&m}p0DcU+fGPM`d($iGo+S3fJhaypcIE2yU{5H<0HCgoFK{GLe
zCVD+P9e_etX_H9_t6xc?c?>7@pb;TOf<dm}8%_nHJ)`I(F}c!$ODTK9uZilbNw2u_
zeb8C*HyGMNBey@3QUre)`94+`W7q(zLbH@7+)X-{T$!=p$K>6%r&2oND`VL682Y@H
zo9cs|v@$?BZbm;;TeI&1a|hDjryghe`LAHHYtRh=V`G;8&hH=u_R(Y1pv%n=LH^3^
zFkvIs>V~3aP^2c9bjt$HI!&KIsHF;<6GGV<&cs3&h&!7&F_0TJrW*V^F`?h4z4b9P
z)shrVOIq;gnBtPE8xy|c?B+5Qhe9v=A{q0$_8i?gn>U-#3cMhdDV#r)gg$jBSHuwk
zk}gryawT5)H|i8gP1CW0tGr3sKVvSH=C;mKYmExi&<#lKQbxbVfh72pcQ7oRvXB%=
zj1OXzBoz0nqSwe)?dUE|N0dA`Jm0((=&k$p`<hR}4eiPswo$9aPyxLO4i~!g=mnTx
zE>L1c)=>Mo*a}LJx~+>;2tcjSh+G1pg5Y6PO}pj8+;D<i%(EpdjDHzVa5^P(H!aRN
zDG9aJ;;WOiOGzB8X)Nf8hRU|IOjcSDRn-2j)z^c-OzLsWd>LXc4La-kzxi{dPSiJ7
z8<GOI{i~RF1BpdCtTs;#S~FBa!Y7@=1{d(WZMJIG^D(UJx_Z+Vv+cN7VVIAJM38F`
z&w!hdCl8g+wz9NpnB>JC>pyci_t`xsI3_*zD$W!<hdW6$Q9Ua-zyo25I&FrlHu{|_
zYp#0clvH2Ks-Oy?Lx!n}E7joN)Q~0cD}!}Wrbv<rv_aX<y%W!&1%8=}Vw|(??+{!<
zGGpBE^MdtcpA><jqcoA=99>*$<4tXVP|Lyd;LAI{(?h2Cw%dD@_;lH-jHe9S+i*4E
z4mm+=yxP3;fjmRcM+tj5WK$Q-9_(!w&4?Zu{~+v=o|o<F@{wDx{!G^tmVmkOV5uOB
zh$QgAFD4CeDn>`vvKeY_m&uw>iUOhrn)3ws&_6vxHpM+hCYx}osCc0Y-Tyq0z<hZX
zfpCQ-{8OvGpZwcW^f)}Lo+>_HH?lw9s=QM+-Q{gQx~FocK9j!8!mtbNX&zBR0Xt$l
zvErya$XNJ@m2B@ie45(Z(19?S0|j@Eej=zw0gE??YVlwp4LSl7VHUHoo|LraFf00W
znbw<}e@I<Hbw;);W7UCbDgM&wIGk*$E`08I8>Uzes(fu}n<{VdSNo|T`)7axnJ2E3
zGN-K>ywjN_qvqSYS+3(Tift}Ac+Th~V)w~#F13j;D~$iUE^?zyrm7R;K!FVAfwf4+
zgEe5#q65&2_@2P9Xi0@IzKK<kAr!<DPjQ=xFOaLN-rrtR7gc3RK{~fhjwdfH&csKj
zaZe1M4|b616oGh|PlK!ylqSbV+%BkUfh6LMQBPDHedW1RPRNBs6bBoa-b;N6+{mbS
z!$ND!ZmgFWmo}hTfxvinE|g{AU`~8Q0za+=Z8c0n=;zija<Evjk@?80M4rrT#ZQRO
zrBy?VgD@Zjk%XQb5U2>B$Mr=t77zjDw^ry*`L~i%3hjv^6l}?gMTjnmHPNyRD!RE?
zVzeC>gkFuW>V5P|ms&5GT4O@NM-mhCx+a!f0)LQsDAs{!i(cE9Ov8j9Ot~S$SX^Tu
zbvv@~cen9fE3YI>r2~|YyQVnWpZ-X~m^M6OE$L`m&MG`G=33X8DprYlBgvrAjN>#)
zf7F5}TO}Od#i%Pvr08HxB1L|F7Lms;vt;^z`LYoE^HAlcM$*80N!_Nc@Z0C)>z37!
zB*8pC&7s#0b$L(fb6zzb_{hxyz+_iYonkQLn|M^r48oOlXXt>e7{zFo03wLhcxL@>
zruxmZD;ZM5U?3RR7ni`br#{#)H87#K@FBbE7!;=-Y}c+8!h3d5JExlz2JatQJ+?rH
zEiUGqC0jaoW>(Evnh`H^?>C|E?;wdM>7y!8D4dVkC<+|T0zP?LNZT4#$T22k5m50<
zzoALNpZ84Yo=WEiK^k;g##y>nq*73%RqJFJOX%P{Sin)USV69lwgt`-QDJjC{IgNf
zBW4`*siNB=F5h|FpHc}mY9&H}jGvvlX!|~~dIc_J`?;(WsSic(jU>39iqS|Q7u!DA
zY&kA%G@cdsQv^FWgQ+Nx#A;({7tI>&nigS1N0T`xz+mg6@_{zT%;E%P(``j&bsETN
zs(q(bWF8KI1M_eY6S%3}4I-pbgJgDL2EYIzP<M(+c_8ONwVQS94>p(Kd(4_CqWI0N
zt8t_kb+H2&h#4kT$#q>Ac%Z2bj@0N+O;y@sWv$8hU9Zv@p#uT7sP~{kG6820-K~jc
zzx+zAW+=CEi%kufkYzrAXi1hFg5D^8VfWJSQx~1y>x~0bBV$33&FY`a087m+i@@r#
zv~L(PphOgimWm81wL^lXk96(eK$#U=hQ}pu<-Srb@X)RzEK4@vVL9cwNBv&D7`P0@
zqV@&7+T19`yV}oc>o1R%dLPHOtgykfkQ$mBKeZU*==5=O;{`t7RV`&nOFus5HWa@{
zXbhx+TZxRv=(Ko|DZe>7Tjhggvxn2ed0umrYSl8cq1^h1GLxv~Ovi$ld?|yHWQbL0
z!Ivh5s&TPz0K^%VfE05%mJqQKs?A%Hu%Xt@^>Aoa$L6|fp<>G;+%>slePPEnR_yRL
zj;yc0lCyoP$Ic|g#bX(o<$00nsg*!S33aGHMx(FL1IZKmm2(3;)8v<UYB+5=P6wsg
zSniF&#fPt2L{XsG-fQTT_#$ivPp_t^(ahKd(Rh(8Ou|TmUnGJfHU<g0KoA^t>{BEh
zq+0};_3dYnO)g&8rn2p~Esgh&5iy4}Tc`s#l(NQVP*B`-s(Tsgb%=E*x!`vNJk-`k
z+fm(7Qcae_0=zlj<0~2F)s}a7tknTT`cdo_)g;9@CX6}Sx(tZ<L{_8e_IXE&8e26V
z;CLS(t^T)iM*3Q*+_UBMm!L%|#-JZ)!8T?7qZ1fd)9%>-vBXh9eV`-C^l3uT_&kk_
zy!QGr?i9qmGaJ`03`VTK^)eYd43pD#6!NwJr0B=zjQz5pDVIxqPspfGxc527cKuN}
zM+02tzw?((Ojfsh0mh)!EsE8yz$@B*zv5LC{@~DSWie_CKtd_%3$Mw8a()p(IDD|g
zE`aGjSXm`BggX|S0Iz8=DQwWq7Y>nH=l2gF6&gHY9=4{U@)*&>a5Lg$i6r`O!H}dD
zW;VLr?c@ISTZz-X^w-r)NsJz*7Ik*4Ly0i!Bq{Zd;rF?m8fkO1OM@>WW%j&Gv#v`$
zQmZ$kLeIBScr38Jb@l%c_PQ|;xB~H7qh?jaoofQxl!Mou$divTfpW_5t{jt5n6rPK
z!vRqg8v?Nc`M^e6lM(@2!!NA&BnKun1vVjc1z9YJv06oEUF=G;UtEZ%aSas1z8-O2
z9BC#xzszD?1bF!myHOXw5=A=9o9-@Lhm!h0YZ-|@A8@Y(+_Z-DK5aN{$p1>cump2t
zD5Y<$oDGvcGH&@I&=`_@&z9%lM_#_W8iyXJa<&`Ydn;~#brX*PwN-j%3h<fB>f05d
z4E%>Bj9t_c-iGDTJ%p5oMe%gVzvc6bd`PTb9cQF~$q=bA787VjPi04Chi`i>W<+{G
zV&FRA7KPur^W&w!IseMOaI{i>RU}bnWQwl$BQA-{N7}-t4=-KVk!vbXQ}zLtKK~Vb
zh}Ni+HS~8TjiAhC5SP%}5)++t1N`_`^O*%;^P^`Rj#KY=<U1<4iRfgcC$Gn}AMb1M
zN?s6PT##cH6iIlsJTd~6{wMa#z>G1%z*MAySF&MiUH~wJ&BDU^kXcQH6%9!xbzqRA
z*C;FT!ttCmLLmGAVU95En90d_(qX5~%fa`pstx}K4cq`D|L4WUM|^?pXIDSM7j{_`
z3G3~Fb+5YFcta__mAzP+vqYM1(W%@8)d!*dz-)tf@tMWp!rn*|T0x9DwQmg`{~HF^
z(&{06L_~x$VO)QgY!}xSiz9L|mX<F;xlthCD7a~1a@Gs3cyPn{grQxByg1GOXdc~g
zC&tNHba*q4{u+aEh4(Vc$rrXWAwRiwf_2gno6<9!ufwpdCfLD}U<ho-u{69IiT5KA
z8$Az5fb@wbUgN&CY#$^xNtXax7fm*Q|0*Y)gFOLDY4DfWRy#SN)58U?zu(EJo@?!k
z`g~m&={E0ikHy-t=>(gredtzS?t3cy_RjmTIU(u5dB$Pw+b^CLxKo!Kal-ql57<b|
z#z$iOz*q>+p#JJ3zg*_!Lh#CTQlhLZaSdUpir$y9?7cH^D{5SFz4E4#R}~cZf9Y7m
zo;9Cm&MV)C>%p+!bv-*M+$WJVT;|<w-@zHzJ>RqRPchoQ_7BbK-|yWM-<~FecpFY<
z*+V%yqBEN@TuW|VvPKxu;wzn6PE#vLx(^m2Npl0_=R`(f{eE#>@hhO=C}MNbxWW_v
z>i*?56p5poIt)%$`T(F>Fbvwm_u72fIj{*&-QjYl(EG&}&x2XCp-|gm&6LNw(*^~r
z(;e^7)q{$HCsydP(lnZ{CMFoZw`Di*O0teoyeuOUSTp1qVs*`Z9<21;EeAe2nsvN~
zRC6*s$3cgHx807}TdF!K-J0iGN^SO{w>QZ;&Y$k3Kg?6j$YHFGxQg*a{%}-aq4xqy
z&jBywOH07(H!X%N)*9k*pouLg-u)|*fP*&bSExgq7b56vts%pZKc$!0Wz)kTr{n^c
zH0~1dFP!u<3h8{HY$Lt50id%$jqN@8k8{VALlSz2UVh`a-#R#>zHXSNNR|{7e9pN>
z7TX5KSq#wFmVO-1xo)>HN)vR#Rlnv;&}%R75X^KT9xE{?m|>iz_BH-9O;l0+ZPl<=
zgateSH#Dy&8cL!Z-sT5hq(D<^FoqY@mUzl=C-x$<T+(cfwtvuiXjK|(NH0Xn9A|_8
zN@Q$ctLyk|VnTqJ<NKw#hx8ix=C`ZQ=y`SN17CnncVUIa8w(jE!LoMo8}(k9DHQHI
z-g&fb4KwDTDdi1#zx9j#%q^`6*=ori8}VKF8$0S2b`R=}fw6)b=D-v}<oUJtcxAX^
z5yb{cj{=L1IfI0%x5~<*u#%4nyRE74AKhkNb*K1%B>j>?y7nvAexvXwZ#MsHgqBZp
zatbN4V_H3K-L2vU@+EGATIm6Ap`GU7lnAV|6g`8C(61y*zDel%2}VNAy1~`blPHN=
zu~bPszDZI<LbFNp<XK!85Ox6XIee9uyf^$d&821GmFd;!#5u!KAcJ}-GvLVn{Rtzt
z4zjdT6ugS_{As}g_ErL5f<PA_xGS&hN1g8BpwToJRatyg9x>*Nw<W)=hPmW`YgJD`
z=B+8j-?sG+Thqq_vo3^H8CG)Xn#qUaQ;fyaV0>!P&qvtzvpA@&tGdJu;DIn1jLdX;
z)t`xZwPI`TdB?s+nt}J71mU}hawwEbPnX$OL8-5nO5zHu%kT?MIW=*XjkB-H;p1>i
zcVuPz(G&BP?D09Rzm-PH5sJ;n5|jQEen*(AWy!9%8%FrobT2yz?d&1r2KSS&4>U<6
zI`!cdm9dC1Hqn|R>+xX&B?|~3hd5zh)13!mfVsLczdYF0Z^iL|oZ=M%0c8`h0j{;h
z%1hkP*~06j7+rI@eA;#HV5_3yPVSKp^*V2eP_Sfgqg3u-*%?R0LP3RyTYh<}z$74T
zm;u}KQ$iP(LarIp;*m~l_iNZU>-f~@+~!>SGMv8xF)qs2Y$b}ymmJp+*51+kk=cjL
zmrRQpnwbhoGj^9~t(5N((?x;Acs$~9zAnWpC^CsfbL2PPH_JB*;3Rr>5>gypdKu}@
z_u^!zU-oM)A~Rv>w@^Qe=A>t8Iv^I5(_hL|C*0994Dztje1-tP3-Ei}#z%jPDdt{8
zyj~NQD-NaTJp#iw;$eW^b71W?UD@s5BzgyHwZ@1vXRIB(t^Jc6R_Dv)Hs|F8qoLtu
zkC$6KPc3aY4^Z{pf-Y8+AhHwBfE}WYF<334Vo!l}AXb%trV`AC8!T6My>xRvk#pm3
zHHM+JX=1+RLngN;k-3IQ<#A5MJ7DB2=>^LqD<l_g_~$luZN9^63q#scdK0@f)9IOw
zA&(zw%*8yaBSL&uLmjAs8KwkiSI6xl=341jC97;R1@1QVV~D(vZNyy8Xl&h?Y?;E!
z9Z1Dl3|0IWE(K{uonkZ1LcQK)G$v8J8#|F7>b1%kc#Q5A6%d%>IN;UIK4n-`2>D{q
z6jHM}#0~z-%3!K9@Y#+aN0N<0nV7!}Yjdma*li{=yZCa<F`-5NNS&=0#|ERXw{Gy_
zeoZGR<(IJJ^nA8%&J>;H1McT5{GWCXe?F`+{8IZy5lj<y+5J1!-z#B+u2;#MN>QQS
zrTFrqEl5LQ6y%wNh;`4Sr5J9RFfaH9Na!?n-M<k|Af+EbiZ7QA?2xsPhD^qz1z5x*
zO2?bs*rPyYgwJ%?SXv5v2bAex_t4(hJro?l(T((Jv!`eG90#&V04Z296VLz}5!%p=
z^(GEIK6V+H*Gx1sQ-NMVFsf|%1QmoudyaMWuoK5xSjasUxi`JT<{9<3W^0G<T}b~E
z`7*D)r(1~cq6nI2K(`WfW=CoL3(B|r*xoq&GdK<UP58`oRb~tO+q|^w^G@xp(RYjw
z%T+~^DCV2*3+QV;IC_*m?!z(30jGX;JG913#sV23j!!DHsAG3$-@h??7KUB0F?)DT
zL<*@-Ew>FD%$2Vk4(|tbc=g}P52_RgNSWcn3t)I333gCka0q_DoXC$EE|u?la)3Hi
z^Oqsl%8F|h!W<CC1cZi|dVYNdge6i>fxtA3&}E0KOg)%}(*;8p7JP~oIr7x~qr5ZS
zt}-eG#D;|kb-q_a=YwMke!SFlTUXIIIyhgBr@r1$`M=v573zGUZ&Z;ovB#T+9BM0n
zr7D53GV;cMPnitw@6~l#XLgD-r1|n4y?bO!UcEc(qc7(MCKr0=6j!>Gfu7UOSM}Wr
zrxrvQMB^yRGbu2{3OLrjP=6`>V`nK;{YAu2$`B8FPF$7gZq2ZawtwRV0kK!LeuHJz
zBRuR2nG8L&T7&sF(BmF^9-`K%l-a6BxnQhEsSCcMv@ca`7C+N|8~^)`NY6R>9&v-F
zrSt9am3)7()<FA2XNl4(@>aGkIp=6JF|$3I0`=vgS2}W>J>gIe0La)`lZ<Dt$gm|Z
zcmtk}6gR;1VHh5K&H9jg^Mu1{S46hfy;3(K4aO|1iR)rdSd;@aWuSB9|J|<c9zMPs
zQQ}@)X*RZjpDOe6J72Ol<6K(TDwoQ9YY<M;G6T1Cf=OeoVA$=yl*-788E&GT<ruYO
zrdKCMK3(HqvlZkq4EVz}e4!vKUZ*=zxyU!Vj_tL%aT4{w?AG%<67P#6akCSh6N>1P
z{l;udc}QmIM(7D`(wZl?Lb}i=W9(rVd}caMm3YX@2^XEe7&6ov>SA_Ul!YAv^tDYe
z*R}KK;n3W|(DgTksHFp3@6t-fBvNI)YrjgMY^JK*K9SzP<OUBT4KSew8yLe$5W*qA
zp;CX{?+b-;vd0|07I6=L94UCseOgaTWXHY;oyh|qfO@U_$}@a42Kz*l1%^?a25)hR
z(!!u($BZqmb4dbO!itc^ir)ZkvFR6f%i`1~9mCrC3g8!^_anuZrWSW1{>;OKf3rVT
zZIRx%tWtOEFkX+LaNh*i3kxphn^$o6AR{?)Vf=48wJF#hmJAL{4=%^PHvR5{s~IP{
zw@K5SuH&}_b<P?45;M%vM|WKItmW$i*#LIx;T|TI!fog9o9dfmNLwz?_uk!f9oJU=
zkASy<oJ+j~W?bIs{-`I_U!DofGwqhn%T{bbAZ;{ST6%B9(`nM!xcs5th-Scc*oqiR
z(dpW%$L&&qjA#+NtQ?rD=3<1hUG|=)8qnT2wT2+I0raTkVTk&t#>#waDN@Dr*1#;8
zj3>L`zy2mj!ymgpko;mUZsF9%+di@q6&^JI&CNM|2-W!Zeqx=@JCWw~Na&^Xr+cBx
zD~Z_rhQn8JeQezgl~_%EHY<}DHhMelQ2W>38M}*g^5Ct4+hNyYc-PQrKYdKg5LHHH
z5W7c4sF^;~J5~Mpel;s1wg&NA+sZYw=yb=+oocgx@pdsA=k7k;S&^0Ye2PKV+jA=J
z%kv8!s;L>%L)sb~z5JD`X-KkMJ5d1~ffCHpybzHPuu8Wkh9i;1AKMAU1s;ZClWgMl
z9P`0tCm%NxKJ+&MOk+0dFd)syx<+DEDBOC1G?twC@TmJP@Pf+(*wj=;G#0iQZJ(iJ
zhG-xA3G|5*R@}e@#7hh_*PQ0J_Ka#hcc~Q+8mb_($57A2Z^ikOt#!vf@PA|k3?1E5
z^UZ$&A+KqZAMh0`O@?fzgWeM%dCVoQ%|~*CFOh+?GLu=z8cs0Doi&=R*WpzS47aux
zHba&$jRt-gFb4(L@D#uGjmM|c$++VCtQCqFUas=KKW6lql}beIi}Ay+xI^LtKc@0l
zdkQ#o-z()ZN*r?{x*<<JW4l}CpTW9Q_N*te=v;@R3~~W9{yt=@HH}X+|9pnlXLxLz
z)^z<1tVpW9e>KqloOm<s7_-#Oz@ZD~a284&Nu$B&TjMIZ{LN9)-+<N8;u)c65uo%b
zUIOy^2D{EDp2^ktTwcMcCa!aMb5@-&$^M8T%-C^BXwR=?{gZt#86BQpyv$g5GEk7n
z^ti?x8Kb-AY2T+m+kB|Wy0%u{Ip5gx`9O)vPjjB4$p|ox*}0N2OJM$NSj8>bT5w&V
zwbjn3a$Q(Enfrp$2j4p_eha~MoJ&}&iUWxSZ!8q_P97wWkI`RGWaL1RonK|Uak^P;
z{w86F#atZuy~}Jq{ejU<W@f?ZQ9AnNRoM|10M`+?c;7@y?Yd#8W_(ZS;3zI8sla(L
z5Y1sqI2Hf+I+b-4RHIg)bq*%?OlHs?+HaANHc)#etx)3C-BRPX4S5~|gZhYGh(ZFu
zHj&U_G|CAMuwW#Q;G<Y;^tte;A3J-9I0qfdJ(*;megylO=I3B-bnzlErBveR_4sIb
zYki7~$Fyu&wS3BcZdi6}>dkdpr)fS;-)D&h^{m;kRv&q0P&gY>_Wn_t;WSnIeQ`eb
z%#)mE*~XX(4i>^EwvF2`&wtc>49nS`qmL5rVz_@uPo?s)>dW#p*sb5eNQ$qmB5fE7
zIKEk*|9H&Y!}-D<?r#-H;rn-P>4T&BI9rH|YQxZHIugY!WQFWiyQn?n9k3;PL8)U<
z#A$~V3iae6z(8e(o%*Jz6x-yjLA3G>j@cDD{8TQFa@~$UQzl;@bJcoH%=3~W6|DQs
z<e{K1lyude^*(aF;ojwvJEwmPp{rB@?BY+HmT_vDjz#dxh$p$yG$M+(=&LYn?J*Up
z_-N)AJ0hc2Hah+{n4KeggFlt{?eo-9eOmIL)Za1k<3<QF;s{f3a=BvZZ%PTPXrQ?E
zcGdA2vv7vk(gf1jyABAdI<Y)|>(HWs+Dv4k7d(U{^^k~iOA&FEyEHm?ov{QGSJr>~
zNBu!tDZKyZ{}g5cj*I*BSypu7bHuIB>1sJ{JNP717@@1r>7Y4r23)bUfoFRm^)9*)
zCp9u|gQ?d{lA>+D7QCSr-=sytp!RCmlefdPbI3o?<*$WGQBXkp!Cmif{c*L*AGg&b
z?7DWdx+ZbqK6&wh=w7UbYfJvH%6U0zyA-;}t7CBq?(%dq3th6bFl7)PLYI4xVL;II
zyHxo?4$HrM`P6?8Tvl|24X-t54n_i-h0-n0Sl27fDZZL8HpAEcQr6*yVHCb~N7E27
zmK=cCh>pD6WTW;ikgkvgiM7ROCf}QC3cT(BH$oGu-0t^8PgZ6MX?z=8Lz0ne4T4^V
z-thAcyiPMh&#zu3J_ES$FBkO~$SuMt-s!u@48@57H?*$e8Pwbi2Yrp3CQGtR8@!yj
zUk8<?1<K6e*y=Nk6->vkyy#dDr0sf^D6wod7j5Ylf6w`wCmvcUyN^|w?dyUD_KL31
zE~V1>J!2e)z`E#xwN&7d0=DYa2DB6pQ4$wj;@8aSM@4AZA{vjr3qxAHqrY=7T1`94
z_r7;6x{PXo9hdnJ!N8{tBM9uaKE8=KN-T_n=P(rOra}Vi)`j2v%gIZ{7+g3|lAtj*
zB}}a4stt3~a*NENyqPR5c(%njgkzR6v4J&RA53RN_zXRj1VRWa@ng<k!Qa@m6fFa`
zYzyZkjpB6J>nMMCvLZvQ@+s}}=U?P|DLxeem<(Nuv7p63NlkA7!CE10D3wO$!ANw9
zObXX`YL=R6%2TeGd1?xrLK$VEwP`qN7HPlo`MM}dK3I_H9Mzu;W}$)%JINEGUpF90
z<gvB7E(zrOZxcP#6{UX~`yp&i;NQ9R%e4utineLnt8bPaovVl{U<?4W^;QtD0q6x4
zi@>#}mTOLB17SWhL}ZMRGTaFgmU`2O4g(>;@kprlF*Cp)kpy38(i>~14$R3s?6^?3
z(HgVQFov4jM7QWqadph`*vm$aIIXJNNcy|m2$G|ntBgb!GwWC48iMztD|o=(>;15q
z{$%3Oyvm9@O`4JoB64cJ6IF%XU*;BiuoJW(Z#j^UH$l#9HR{Mm7GhSUp-f9TbS(>+
z=TBhELjbeJW#KE%-tr3Zh`nd{*Z|1O0F`(MTCf5%G2HfRAaIr0SmvO)Tb5xAR`)IS
zDJQ*_aT_PknaBS3@{3I7may&O+zm8(y_ea0+%G2M5N-*A7TFy3Ev_pPhhj93^hy2p
zsf~STscg0VHv6)-suJJ_HvfhYQrC_Zn#OPKnOTJx<X2^otW&`+!NnGf3aSt3yp|54
z+yQPf*!ss2Q(Kpt?XAz_dj6}O?~?T=!sj^5(-A(8x4!Bf+V_L6PhXv<jB3ax*7njB
z(ZN)fN?(@hO&2KRV~x^%E70YK<#LQLS3d(0I9eOJyQ1uyeG@@(Wb^n;QV}xx?EYO-
zdy9$(39dUI3(6v&26xINoAl#VyOx&L3aF5W2yuk1Xqz-X9i2;xi(gqo)d?+79qn>|
zt$bef1E2v24uA^CoX;uvbNr#<^;$Bn%#1V#=IB2G9-e7<Y@mLs%DwUC)-Hx+BO`{b
zhM$L)vLPrd>lqg49ji0~i?uStqONO;%fa+^ReCL3RZjio@nXo^g1nNPbwp1HNQV$>
z1@gTfZyF)87$l6~%5yxJnEQ+ie9+G%;f-}&?6HbOe(kPIzzE$iqX`vfok4&ai`W-d
zwC99WD{QBt=6MXVD;D962#XX?i!3ihIshIg{q>fXgAMys=@kLkS%9d+mfwd@#_C~~
zWK@5#ngAyP8WOs%@7M-tVjQG={`OIT#6O?~USMV}Aqz>h#^!wFb!x$Ak5eY`gw_Il
z+T)(XzI$10nIxlz0YQ2v4bhDugbSQ_y@s>>rHp1+Svi2@-tSsqlpIzzPTyUJ4&6Wg
z8t%*#w>(z0UiMXQELXctsZ9~k5wCOwHVp$8E;=11PHAtA3;??YDwCu|jO0#YA&u$Y
zH5r8Whl=eb)AhDqcB?eTs5~8M?tF{1{8~NvkvAAqv1XpE@W8WAi4NlSL<2eyn*gM<
z`9H|9_I|T^m{J0!3b3`LzciFAtd2LRu7s*s_Jsb0!7S+S7aJc*lt;`*gA-fKO8ArY
zhA?VR7)jaRX;6nU@n|8Tf?%{mBM3tZ{xr8|dm^KZpSP}F*K>^y1+c#*N_x*PnQV4j
zHXXs6C)_oV)=7T8wRg}#7y$*Oxzi|WxACj3t`$g+Hqob;^h}z0MYNO*)*)W%TP2K^
z8+E9AzoFgl+*G|4FIloWVp$TG!&6mGHAR&+;NTh5J^p6y6{5nltCkJrWQ|oU6qW*h
zPfOY$qZTp;a(A%n4fddVdJyiB=7!MR^#1%L6Aw9d{;jcxYG!qJqe2pMrVyVhg_AWH
zCaVB55F%KKa5^A)lmMTPG=x(hh32&U*SA$xDMyd3{ZPxizi!QSz5K)*82;WGBaTay
zHDeWU8ME{rnLTO@q8U-xW(Oe4ST5z)w)yoW?X}$W+<N7V69>~i-yIXAq7T_olt03#
zG2Gu}eml^<1&ha=qIj=`nCg>Wm_0+Cwd6oS*LRkQkSgAw;gvpLKW`3noP`D1=r5(`
zPz>bAt@<5_%*bgTP#IghY!XJ=NFJ98zDt@(K^*}B$ts!PZjYpvq%tq5kYKLcJ@r)h
zpjGeWgspjG<GafDL_GP^8o5K}%PZ<VzL7lT5HNT1e$4Cl)*p6*!d+KArn*qU&~5?<
z=13dW+N(1QRo+4<sP69GTD|<}p1FF83s<#E<LG!Ncw!3Yh<M|eOrXGqtYl$!`uRHo
zz|PwfS$tzTC9KQlG}_)o;2jyN7L+2h{pBIsO2B3y2#z@^!j#!`va-UfgP7FS5lX6|
zkTc4APIj4o;nQ_e$$Q@60kkMgThl2KUwA;KtM83s;LumjuG=zc0Q1I@+Gq_Ckvy(&
zZ*)V(e(an?7r9!aT2>$}U5I3;E(wFu-T*ttBj99nkVSJy04B*>3M>M=4CJBW{W+wr
zmo8Lbm?dVE#ijL><;n9dCt|#Od|9HFF4#}Y<2rV})IKejs~q4`MWlQNc41Kjp$r;F
zAUY8dDHmc{hLF%=Kik+j1W{WEZP4aaE0T_9G2k3)50J+n4@!F~;6Mm#3~zA2!(uNW
zD?3~9!k5Ez<bEJKo|shg=HV_MzmL2RhEsG=wqr%^(7TYkCpz}~z1~}mY0ilUA<weS
z)oL-t+Op{}(shbk+iI?PS$EjzuRODJ-<wi~q__QZ411Qnz|CwinBwX@hTW%a2)?WC
zIbFu*zA5@EHzSgLi{%}#LSZt;N*lTsfT(My2Pv30h+)9h?|TVl4Q7f|Q08qJuo2uX
zl$ta^3L?dsNd@N^YyvEN6wH!xF1;5SN~1iS2ue=X9E!fnhmiRJu8*<Z$wxJX?vPlx
zqO@;G`k7HShV_drXXjA=3ilc@ZC*#bB@T<vQI!MZ1kbX=INO5Yk7P$ZeKyvH`!X8T
zI6=(PDN{2mwv7!!Xy^%QXCKLnw^$0*e)3fE(~C^T65d&ZX7Hp`$;j0u970B>u$*P;
z0Z-5cF&^e2ZT=G7;H2(U6=DL_gI^{}SNj?dg8|^Sxt0p`cq^jwVM;7!Xjm8d4}Ns&
zKcd#kpeC&YrVPU?^63<(P>{Ui+6jp;gFDhm^1pecu3C8b+kR_Tdy{IMWKB?1fmzJA
zRrWbi2iAWJf`OWX5*Mgp>n7+MnqV+8M&DPEmPa?H%ZJ7^zBIqoh9?*U3kCchz3T<(
z{o=DphBZPs)&O&+xL<}PTrSUw@BBJF-j`J7B@go*T)LO-j{0ZZpPSq}+fSEg4@}1L
zZ8|B8jgb2gyHh2Popw{~EdhN#pk1m(0#ygca8F4f!i2@Brzr~+t!U)sEME!yD(7c}
zH<p^y$`^Do%eXFLgQ>IM`C5Sn4OHuPfASSw^KEK{5G&ZKT-udhQ|yIrv`02n2nEE6
zJaaj=cYtkxDp%*vn;v7!mw#(ERHUI8&%?XwWWwd<KpDk(zORy8V*vJGdJ4n9x6cKw
zfd*LCF)T_bQsEZ^g)LOAC_~c&_(PViw7@Nx3OEp{ey=;vVhe)=`~fkT72CG2q9Dcy
z8L~9Qav?TpXuW14gRE?o5^+S7io#dEAR}0`65pC{WVViSDYVM%n&<QLfgr;B6o)rv
zTIb6}hLPs7#OGq}s~%}B#cV9lGRx);Rdk6gx7t&ilp$ilgyv0LB@Cu9KvHdOt8WNU
zRKE)Jmffi^kZ1~E;OK3djWI^Fpjc~Zw8H9AKhg7Hm~#E+7sc04Yv@z#YVE2vr`%0h
z0#-i0Nt+D*ywDBSwdR0Zq`4t^JgxPfRRm83TuXWye4%JX;j%9Ar})cG729R5bu8e#
zyFXy9Sgt5k3m1GHQhvrqBSebv3B8uXLOW`nQDR5wndp=soDn~pnVZ*3Y=R5Minq-=
ze;L<YU;KHO@o%%GB!`p^tto`v-d)0h^XuIi{>^?J-?@A*9kw-cvd2{8XJT$}8H$!5
z(CR70IjoaC>DD~Sdvbq8(GW$Ab&QVq<a+b~w99k=9&}6LFT3*KMEP01Q?{#*n~r?C
zvt-+rN33S#(1B3y<PPt=Wu3o8HQ=_wp9MW85HGf%H?)vfFc0`js*U>s>5qM-s&(pM
zPqqe9RFj;kYc-8w?^V+V%7{u54k`7Ve?+hh+r~`oRnKXVB3p_X{b-SP*}HtZ{G!PA
zYJH&DPN4_-LI0Qq?XoMhMUDvc#~1H5z9hRdmx!A;m8^?6m~Y-#b1hlP<)Eq8U>?U?
zbrG~tojEl{f3~|C?x{5NaaOUOJ;yJ2hOz;`4;z|OgBGHrpdB>_F3<8WI*%OHZMd3j
zy2oRMzZ)xk)fy^F3L0R20hg0paZ$rdG{I|!)H%|BW%n4OCnFJO{@5hlKEt@{ZF)bo
zm3&_P62l@ToZ9vsZl7rqgY|j&J=M}0aCXo$QWJ`uVjhB(*uS+H^UDM}9<dRkDnlc*
znAM;mGTO}Ao1UY|3y&UBgw?_ap9soX+%OBoMMb88N+Y<dHS*nr(I!;0QO8(LisB$V
z<!{@?<-<+;>(ER4+JpW&Q9Bny4m*?YQ~L|5@IZr?xwVdan$7a%9{gv7nROdai@`14
zG+-^|Z})4_OtE~I#aE~AS0(LCtNXU(!?C{8pLWYD$$@TV2HsDljoVJZ)B}69$9)?5
ziNy=R_Yv5a^;<rYaG7BE09?Qz657Ti2c;I2FS5a)kV2poDVF{gnp}ioiqH@FhH&lo
zNh7nE#KPz(LINNl@EqXFJCTKeE`|_&iDZq5N7~ZwLyi}YDdrNHX}?ShK>THLpxNLO
zy{q2MTR&jkfAcY;d3}8rjNG3Cyi-4GYlGzJkoOXtWoKd{@;N{&Tdn@M?Y}BW7UX`*
zGLMt1)|BC45~;O<iG{uDYNd+R7zlyRioO0-GzLFjJh!_*Fra|clo*|^suLEj*rJ!F
zkIi$_N71d5nHQ`UZc+L*F}t3Z*Ccwat;B|pP|`48_exav-A};rgp-YxJ}bS&pN)<>
zYEbYSZ2{~+yv)QlkAVg?M_pjZ-!GCpjqn>zMaydQ%*lyE0`=2E_1o>1!sJ380i_My
zB})!KN8vNL^sR*WbvXhjt`v!TIljZl+nd*r_Ksa?e3=XQf1O-aR2;mzg<{2Bixzj6
z!AsHN?hb=%ahKw5#bL1GFgQgEgBN$VL0hCa#pd##a~|%x_wD3M@@21Y<s~o4TG@Li
zKvvuZRmC`t6i7fS^4={cls_z;u{+2QrjY^QMeFKzNuY5V$E^Or1}_&O4u*=0RhIMj
zPfa1o)WSIp2R)SrIdRH~T%FOUx*gJk@uA7DqTX{|<N+71#BcK$WWROSv$&%-U8mg!
z`C`id2GkcYkNkAQK`V~WxR)I#9w_!s5*&xmjKSJ1QZ`librtCu7f&f5*2so$+#Bf2
z4e;JKW4ueQbeXAH-j0<r^!2__bXa}kZ)_3OroSCU^l}_?!>V9+3{YvzBcTXYf<5#f
zw@nazWj_=%=H(>O2QSy@P=u8`{8`_bk}x;!P%>I-jlqoScuG}=Yua=oBl+#ICF~F+
znS@$6yzx^4vw5R$n+4Gep@PYrOxf{U!b#0SW0W|~0Cd`pg<Rvo4*OxzaYeP0>H+d9
z<CT0ieN&>HF2Y}rq%oV6;IeW|n{J_U0dOcSD`AWh!D^dDYCb*c8^ladlx6e8v=7}U
zpGCJ-DErivDK7O9PLYZ!KW$fh`Bl7Ghke)_A2^fB_mP3$@dtVOu4PdD;J9^%pt#r7
z9aUCSF@MAA8f69~*msmp;gomRMsbEyIuir9mRT;mS7@#2U>)4Yq%WOoTL5&hULy8K
z>kDnMX|3fn-RNuw(0Sen*8dtIY+Cz>5U7I^6VXeO{2jLdd$q><>Xl&1Vu0p7fs&1|
z$PbIJ`zdYzEI~m!7&#%G%tX&h5*}N*sl~^UqaR>nhk<lr{hTHXZ>NBS8AZM}wh=ZX
zrjv;)`|w%_y2#qZAId_YsddV+wJ2*du<$W+5t&FUFZk{rEi3ntr&SUnt|%1C=Jd5_
ze_<yanX6@z147LHKx@j@TnwK7aynuRYD8{a33Sf1D$a1HOjlmEEBTsOo+Yh^|Ko^%
z#z20MgXKL|1u#y|Zpseh+BP9sNZlb;3yv@~@Ov0{>CF4u9zeMdmT+erqTwwyjqRMS
zXmyK_a6D!#O9m>R+q5u*q)F~4F&iq;iKuj7YDjg=gR!K0M@3p&cI+#a>do7bc+EFf
zp}{hAArKj;X%SHZ6D9Rz4`|SSmahv#VAGy11cXaX)Mt;d8M1&}1|-hAvZVNiXA6o<
z6cfy5!JL;QBlt}Ru*oAMLs~|FY5`ga72TPzIc9tZFpU~37kdem-*}k9(J*PIpJJ^J
zsSU)i+YsOesy~Wy%t%w6zMqz(_qC;@@v>^vIJuyqXhxU}irkNHR{VlcZHy_J-_{`!
z{(i{Z^`o?+;-T}NH3_eik^=@7nJ{&KH>NC>I8$+d06Es1h|Pqo^o{1;)^}_EW(|57
zyJj+53*y)m6e5F~AR#?Ia_O;t0+cCf@_;lqd9@>cWM%$cNkbgsDZ7Cp`OsmBv5a<U
zjh^{aGIUo4i-y!0T=1g3w9$iB8CV261F0G%lg>=TQADA0^??l-fO1^j=fqzmv>$Ik
zsF<+b%&B*pk!HX9Wifnau{En>S<+**we#g+tIq++C!fFshl@IZ%_AS&j%yNkj=w#j
zV1zL4>BCBv?8m!_A8vU5w_+jRJAUa*K$Sh=>u;o)@%gZm(Hl#>>H9yA=VD<p@r1Rd
z>eWW`zerl}&-1icy~%Cs2WRZT1JiK;)SUZQ>Vwq?HIZ#4y{7%`Ht@uU9-2mT?U8mz
zC94OXy-c}dfYYZ@TnK!7OnYwUnU#=S)k-Tj1Py{Y_*g>!$igUn_8Hg?Yd`YAZ|<hh
zk~N=8h?1_pr*6E4d9TU>zO)ET;+xY)CD|&4M8hSGJ5rwlLozN)`xJkphmTWhnkH7R
zp|GN?8<bnBp;)ahkVscbCR7;QM!t_lE8kzXl={MGio#(UZs0#}ScXhYD&vDw7yAHy
z;1Wl6l%nBSxH3Wb;2jNP!5@sLiaK}~M&FPvTgpw^zf?p2F<tcN!h2T<sXv6B_`}ck
zq|uwu9pKSt;s+j3OlaNU+o2^T9))uOl5t=Y1ZbT<U@kEFYicx8UxzC<pXepzVaI})
z)n{JDWYpe$bp>6tSl;KdX2OoQGhRYBxMNYX@MpSn5D7F}DSPf1*q`Ib#*a4Jg@qHh
z`7qyVkKaMCcRemWNY651aHvi)D<vKqkvwl1p<meSi&(~-=)zFH@IDQaI7VtC`hZoZ
zq;&+xoxe4EbjNODw&HE8CRyV6QCTwD&RXY{f_q#{hWG;yvo%}$YL8BRA0h1o5KK*O
zXD3rjd>t;N!*0nRH%gv3csv7=?{>O*|2rMzztJ4FC53iHh~I24S*ZN8u3B45qTO2k
zV#a%<aCGQ#Wan|7k?*UJ|IW?bBFS}!^|`1$gTuL|(_JODa-|cXMJH)anre2(uEuqy
z${k#Ws8<}?5mj|d-F)cVG`Qp8-~37TJ8B|MiCI&p^uZT?;hIgoU1@FM%YA>2-hio?
zIFEIohf8EYWRDv0QIK6XdRv9JD+t>+-4?eH^&08HLs(EaIj}>ufdPG-&FK`ox(hP)
zSX*Zqbos^?mzT7`kU=2R(_sFto#;e1-jS!3{wMk2OMcoJ>~6zIk%mvT-Jh7Kvbt$B
z8|rO?J^g2Xr^H3M{Vu`P<)l*|Vr*E1X<+$j`p8kgt6ScMbN952xjmdzc;`Uu<QHf4
zl~+TX!1`0?ucVcQ&IRAQq=}Km!mS9OlBq@0VWTPwxEavR`#bgV!0ScvE>BmU19zH1
zdQm<7)we%}!ruutZS5wmd;bx?EJ416t*z8Mi{3Jr!!9It;_W3U$&c}W?2NupfPAbz
zaEvS>tF=;!K5Ao~-wL{`AaKW`2vX9W!v);+3<v!_qH4;)NV~`;e`*3LWP>Ne%UcVx
zb;L=lm)%rYtA=x^cwa@f^IsmG_fHBMF!yLCJ+BFOHR>7stJd)?=Nxz%<lP`F<7F6i
zl(Ho9v=s6I2a&Xf0<qVjc%moSjV*_;&?jyU+`ZB>8iP-Ve6eSZD~t{%G|HvhpWj*;
za3=~ov&HyCmD2vW$N+mUE$10$G3&6M?QY&iR^o`>Vh|lw=YCxOOE?w`X@(U<9Y7~6
z)Fcq!<`YOUk`P*#e17Azvnu6Onjf2;iYsll!t!`CbngkGOAaC^m4^RW((d+S-n)L~
zTM!mauKzQ?74*h_S1<vmr>@6)A_2|}RmHj8#A&~vV*Vg@W*Y<^Q_2%(ZD@hdlKyCe
zl)xetJ8!pZ#}qf;Cj>*iNq*>30qx?euIoKYV8uSrbVuX;KB~UnQ#KvGL+w`BNcSS1
z;U~2{1T}vKDOh?GjZqA^@8P+OEsh={qVYmQ$vY&4jYp=IpNGGesr;aBWx6o41JoSQ
z(}BH4cv2?sB~?BFm6;E1bvk7aC#n*P%Oi?dG5L^1-hlm5(P&r2+cnG+!{_XV`;L8<
zl|p)Pedy^d3gl4Zq{eg%;hsN&<yB-qP%*JDx-dYQv_c*-)yQp|O~sa@A@qd80>VW1
z*YjjpggMwY-|~3Adr8jW^cl@Ov{4xMvHHP;dHlW{U@^uuI}B#!zEBT+oebadmu;(T
zo?I5REG^zcKLB?tC^&z^j$_l$2Lu>djULQa(#{(k8C0@jcH@Y5plQC>XSdZR<%2Fn
zC1CnY9?x1zI@i<LQ@m?QRaFCg8bH71r7>^uFuX5uMtLaq!#%??TkQR2I!ifI;x}j8
zfr`BP^Q6sA8vDu}yITqBe`9jn(s4p+U@XAi4YXGwT!~ej6K_%!Fo)U1FJx5?IX7s?
znI|z&$~=$$T+LNGw@LY9(K6|S?R%;K9(2@!slJPxmJQWG-*CpPI!DGkfnTM3=U`@k
zo*N7*koGrw`pli4^pJpjgSMLFVm&}>!aSM4cPn7hzsL14QkK>UK(EW*q=T~B>6G2r
z3kc0PU=Gmf_i1!^$IwY;XsZc*z39uQZd1T0?3v{XK|jR#Tw@inoudHrzw!~8x`ZUL
zP>9mhb4GJ95$7l35USY0dK*R}JR4u>ysHdTTaV{r`q%*N4gv7}Dp8PMMD8}ve;U><
zz?5tAj*Jp><IN%YdB8@cm3jxX9*mppISr~d;tk2{_{IB?(_%J4+iwPWLW7@J_VAYL
zzdJ+ZteN4DN{i_VlbhK-Ppe=T&+r+1hx5qxl(|W?sBMQw=h7sewyaRI({(_eSk4<;
z`Bh}Gu})Q+7wA<cBygT$NEPbl#?A3U^Fk9K3l<q4HRljayEgA*#Nkrbh%gU3hN$em
zPucOG6oHlBnNr1wzDFxK_wh3}^r95;j<fX$*qk{H%6beur0}K?J%93#EZ#HsUUlmX
zCvMC0cRVC&7=A1sW)c_WZlhXii{CUwErjM2`T8?jf1<sH=Tx>e1)7Dm#5|^+uIQ)R
zX62|+|J^j_h#O};zES66?fadp5IKr-?2tmw=@pHfATcp)iM6Rfhw?q^hF;g%B>Ngy
zio;8u$*OB7`R;LZ8jGhZ+?gbNu(sYs<hh|bmbY{K;N*kL<Od%8%}u=IF69X#MV;qL
z+QUIFpOZ9=kfclQW6E9_B{Om^e5D0i-uxVg%-U+Pj$+`81*I#9GMEux<W9CsnlD1k
zn7%enEHH*A&~I37UC<en1fA}f)b*k$QY{?{{&i4%_PJsMq9n4~{0rC1CGnHUPnuuK
ziw|0M=%KfWDSpsigScFy!0PBq<YuYpAc7l;3G(_fS1<}+T`>cLxZ<bt%BXGvu)SmG
znX2o;X+a%wa9G7({6BvKi{r!*K=hl7MV_>v$G)#thMhWlfXW2Q$W_rJ(Q!NDXH0+x
zQ<!jQ;88~H34Bc(d2W+-QGOZ|#FCQ*l>3s->rPUy=JY3Vfy|$uMz(uPW}@g0hNlv$
z8ijAn!zVyZm6Y}Z3dOh3D#DU@xDFGReL@V#ku=QZMao^QT&DAIy!9<RP@~8U+%)@q
zVkwJ4LLwV=RLDq9_{*r$_FzdGgK3W-h=qmW$65GyKEm5=t>xSy^UP-`SW&!tYS7JG
zFuK6m-6-0VSp-+>X2;maXQ{4IlvcA2;7P8*nSegnv|P;nf$F9NvbhM?*;a6o)S^Gb
z(#qjN-*PB$lw~&sFU;|DeLP1Jbw(%3@f$Qif%2~O;`X-ZWzTE(*kP+j%s0<2)Gc{o
zZK-afhs+SDT!8Ina4zgiAp9*+$_7H7)cTEKJW8+e^gJKxMz$6cypGY^89fs|HazKi
z9n3p~+HR|@$_yMOa9sUnF;{1K)uoFj5JlS{O;LE*{bHusUdI3Tf@H8^QTqikAog%~
zKpdW@gb&u4i17=8{|9yEsYL~NCnUb3#Jq@Qp#7zhik~?7U0OP-<_c7yiHiuw$`g5h
z4Dk+W4~Sojj=p;}luTuL6Lg+6F>9i|YRt#X8cuo(eUrk>Z>~;aJ7ZEaCnWA`MdBc)
zf<hNND~}u*o2Xd)Iri|0H9swb`LbSWn2cDSh0gA+o%>cc&Z3TO&v%@gFl5^ijq;B^
zvz8RN(2l6Y91W9g(>MrZChD2F_&#rCv~!<f45JT6M}OHkUN^WVXTJV^{V`r3C9l0(
zr3a_1_2aelWao5ys`qZW$Sl%_pU=?0-NJS3ApDa`^LG;=z>t_Y<!og5^sFzg=y_9L
z4Q*po6iL{|iHL<GG9-zr)%V!Mm$b;e2U>mXK2dn;Sfp`KiR*b4t{fjQf3Q%`r#62E
zj5SJx>6Fh)rVp`o2&;!MR!DuBI_q1wKrBVwev-|v@UfT;AjKp)rCR(I^k*jgDeg((
zdIc?W4ny#lvCc_WrNwMjR|zJNNMLrso)T%|FFxc4pSXieYJ+Job9`0RJB;*H!b0G7
zyjcJul}ATXgRQD@Yuqc@Nx`3oT8^GKT7Y2wB1^J~i?05JS~|{5gv0O!nY8;jhq0iY
zVPoNDo!<0;UZgQ{97H7O8$7r_f}$GyC*2ad(Cb5O_SsS6e2xlbCFI@169mKacNBKf
zncO?#D0m>Z?KHU#0TyrHUQLXd?I=E6L`*<Nz{R)&V^|S@lZo6^n-eRj%x7Xwle&*T
z{OEfJad==KTsS)DNLC@yY)&opBP2c#6`1|dhksAi^QACjV`HPU^3JTXqh9CSkNrs{
zbPLk~3wrTjRiiX&jsE@#R3YeFEL7@&5r7AT7_SxXaO&}Oqo1dq8G3{QL|mVl`#1}H
z_i1Y&T}N+jC4;*6F4;S%YhEfkbFCo6Y?pEdlkbFYnuatv{P#X>jy4f<!LT_BWAOgt
zr)Xy7YV-ipR2A)=&_(wBiYbX3c_o_X$Mw*=00Y!`>(hrAVIealGr`&NqObgCPsaV$
z8;05!V_^4BID!xGSMV_+$cnGE^*&HvV`wNmYWa_4B{2+)8oakTZumHz++1AiUv>v2
z#nF>*L#C+#6)*VlrjjSHLTcbM41+%nJ9?1D{^dNxjG)t8k0`ncWIu@OM^XynqfH0G
z=WwG`Md9|NH0e)Y7u}<yL}vTGQ5YwnxeaDb))}a~gE>|NWi1mh^%BJSW&Nd4yG7L!
zA@u}#ogp?Nh4ArWVO%kyr}loh$H1|nzQ_RWz(EfYHvCCq4=quN)z(Gd%sNZ1qRFGv
z^hc><PfVFevc;BWBCr&^9Z-@SM<cY6>BnG`qrT+|>4Uw)fXDcX!5DHZN5M4o<qhsO
zLzdMCJX{+|BxW;wB<dR2XEhr6LzpT|0)C$bUW2SI;Ggp{n-1&ei=@A&E`cvWv4pck
zhq4TPj)!H9X92nL&HaXJASaNgh_Yz@h=e5Nn2Cr}+)nIA<Xd8LO(9Gne4%nzH@EMu
zp03?cENH=x=lJ178-#ic7t(VUan>Hh9*!Q7CqcvjL}A1_)JxPVR25u2+)p?i^lS|4
zjQzB!bd8Ey${wkDsmttcR2Kpl#CSw_%6N}-o^&?yFDaL)RVk|sp31*snxmUTn+rX1
zuLX`#W=*Z`t%|L_j&!B*r;5=rQZLcp$!;nKg+9Uml|yqxGeC1j^F_la5N8H5Q>wdb
z2p1WZcd5uoTc?ikYU3_oEdZ)=wYDl{Dm^PsHT{bw%L~eaR3K8cGL})_vJVJrMQa6D
zNmp~5gOA&f#-}&RAC)+jT~aqW16dJJ!<{1SBRwNC<AvhANEk^}xl(xat;Q^JfE`mx
z<7`8Yaez$Uu)kzi5=8JshHUg~v~1=2CJm|J*e3g?4q&aNu|?q2P#**2Ah9;?6iozP
z1iMqr>-+@s#0J0xpc8U*({ev?ecGPiyM}y+{LPI^Pz?Ji3a8#5efn?b(KWc-fBU|^
znzO>c4x)cqC;rQm)MvF;V?w20k|d9a4=;gCLFjI~FAkIXegCKr4lG7?rbLS=Ln@|L
z3$L)>=Fje6xLl#+7Nq=-S)MTw-AEsaotO9R?|`NzO}OzLB(ed{M5IYv+ZmE2)-yjn
z2;LdNB6l201nn}Usb78XPvsv(=a!oOv=Mt%G*z0SZdP*I7d0QUxQDKO-T~4G=ztAc
z@B5-Vu`Zg*ttfNbRp&NiZ?^jV+^<Um45H05gZ$*n6|^Cta*2GY^5zj0{cXrzuAxLr
z#+M=kVOt@iW5`D0L&;&B-r9BAbrh4CR?Zg(hfGD$P6d9^2;^zHrC;O7qCN)ZiplM*
zwVTW2rCQi%_%UyPDbHNdC8@sAwDXnz-G&vP(xd5%U3e~*-3KmDoj*G5srKYS&`aGS
z^~lnL8cC*AVcMgqBxt+2N5tgnWzY_<&*{OS?8Cv87Yl0Q44uY7`vQR?V=Yrvk`uwu
z^y5aU!(uWFo)z8f+vl?Elo8&ju5q3zHlA>p<pFxaXmrFs9<NRd+DqxyaI!lqA!eZ)
z8?~Q%uNIfzUaf3wyon8AV)62RZRXzI!=V!Wg`oS1+wr?S6J7_P#8e-@gRrG=$<!9Q
zu*@N>KthCKh^v*imA8R6#*MAthXKqK*C3<_ro+!3&|sV3VO#qfx35<~sF#wVm#wXr
zv7ndFub0-Mm+PsQd81c|xtyG^oTa>+{`$UVUrwz(!b9^**P7>RzFx_3TK;;vTtKm$
zGI}yV@QugpOa4lP@k+wRO1RicT=z;;;7ZanAOryr9S->N5fBdngwX<GO8}9UfJ7)D
z6dw>{r(}c7_!*5CkfA>g#46{`oCAdW=8fv-O$1Et7)?S0IJTuYb}cw|G&rE{b=#ln
zcJ1qS4C<hM&fBuiyFlk19cQT5*|y5ruJhTB$r&_=a{B}2t~uq7IwjPtU|XSJ*REhk
zzX0lMvMpn>Yi+WlZDI*ue}(LFN#t^cb$&^Ceg#i;iA!~bT6jrXc!gwoNoab7xphgg
zb%h{ti7#=5-h273_iFgwj`wgXy8!hHIC13FsTn2m{qdX#eajU}<UGZ`F;=@V<h0Qv
z;@dtr;#!^J7Vi7mCaI@F_FKI3sd<8_eMbourB6&~Cdum*g)JJey@P;F<#P|pt$Y2u
zv|ucA;JmeX?e$>YW!4kITQvWO?tT;Vf8g(x{~xTU8MmMO%erSx?CP6!SO0-5{u$k4
zCf4<hx+~Qu+W&&9CQjw8nroG(^IrBME%~b|mgN^F3Ee{`mh}xw%MK^}w`Bgc-HRp;
z^({-Q4yP@*2LFOvCjUEvm*dV#9*@K!R9pSE>#NV_{<R`qa@SPPa<G};|2}QV-OU7g
zQ2n1&-dYYjl6XjZDfw>_?ECrJF}4UgOzZ`I+?ZFg9Uc||hEIS~1iw|&Yk-GO)NhbQ
mX4Rts<LE1b2{c|8A^H?xWL6_ReJ}y*KfbXV2YPjIaQ_1m_8C<G

literal 0
HcmV?d00001

-- 
GitLab


From 3560c8d8e14e5ddc8a619844d9ab86d3b9d8d52e Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 6 Jul 2016 16:29:10 +0200
Subject: [PATCH 069/313] Fixed issue in SQL lib.

---
 interface/lib/classes/db_mysql.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index c7105ec323..c74e6e0e9c 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -563,7 +563,7 @@ class db extends mysqli
 		}
 		
 		$query = 'INSERT INTO ?? (' . $k_query . ') VALUES (' . $v_query . ')';
-		return $this->query($query, true, $params + $v_params);
+		return $this->query($query, true, array_merge($params, $v_params));
 	}
 	
 	public function diffrec($record_old, $record_new) {
-- 
GitLab


From e37c4206de73fea71f0d6e1fd6b47befa81f580c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 6 Jul 2016 16:29:40 +0200
Subject: [PATCH 070/313] Fixed permission issue of bin directory in on latest
 Debian in chroot jails.

---
 server/scripts/create_jailkit_chroot.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/server/scripts/create_jailkit_chroot.sh b/server/scripts/create_jailkit_chroot.sh
index 6ffa889cdb..cc39b6e4cf 100755
--- a/server/scripts/create_jailkit_chroot.sh
+++ b/server/scripts/create_jailkit_chroot.sh
@@ -30,6 +30,9 @@ then
 fi
 chmod a+rwx $CHROOT_HOMEDIR/tmp
 
+## Fix permissions of the root firectory
+chmod g-w $CHROOT_HOMEDIR/bin
+
 
 # mysql needs the socket in the chrooted environment
 mkdir $CHROOT_HOMEDIR/var
-- 
GitLab


From 7827db364a0de419f678301445421108574c3d37 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 09:03:43 +0200
Subject: [PATCH 071/313] vhost quota not correctly pointing to document root
 (DF -T) fixes #3984

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index ec92e699bb..e3b8bfe695 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -884,7 +884,7 @@ class apache2_plugin {
 			}
             
           // get the primitive folder for document_root and the filesystem, will need it later.
-          $df_output=explode(" ", exec("df -T $document_root|awk 'END{print \$2,\$NF}'"));
+          $df_output=explode(" ", exec("df -T " . $data['new']['document_root'] . "|awk 'END{print \$2,\$NF}'"));
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-- 
GitLab


From 3dfce62636b90575495022d0f55da931d8ddd10d Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 09:06:17 +0200
Subject: [PATCH 072/313] Revert "vhost quota not correctly pointing to
 document root (DF -T) fixes #3984"

This reverts commit 7827db364a0de419f678301445421108574c3d37
---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index e3b8bfe695..ec92e699bb 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -884,7 +884,7 @@ class apache2_plugin {
 			}
             
           // get the primitive folder for document_root and the filesystem, will need it later.
-          $df_output=explode(" ", exec("df -T " . $data['new']['document_root'] . "|awk 'END{print \$2,\$NF}'"));
+          $df_output=explode(" ", exec("df -T $document_root|awk 'END{print \$2,\$NF}'"));
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-- 
GitLab


From a481a62a13c241df0b3269f7f915789f4451d51b Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 09:09:33 +0200
Subject: [PATCH 073/313] vhost quota not correctly pointing to document root
 (DF -T) (fixes #3984)

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index ec92e699bb..e3b8bfe695 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -884,7 +884,7 @@ class apache2_plugin {
 			}
             
           // get the primitive folder for document_root and the filesystem, will need it later.
-          $df_output=explode(" ", exec("df -T $document_root|awk 'END{print \$2,\$NF}'"));
+          $df_output=explode(" ", exec("df -T " . $data['new']['document_root'] . "|awk 'END{print \$2,\$NF}'"));
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-- 
GitLab


From c959635e7c473615bad57186e310626debca8d80 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 09:32:22 +0200
Subject: [PATCH 074/313] Tooltips on used percentage within Dashboard

---
 interface/web/dashboard/dashlets/templates/databasequota.htm | 2 +-
 interface/web/dashboard/dashlets/templates/limits.htm        | 2 +-
 interface/web/dashboard/dashlets/templates/mailquota.htm     | 2 +-
 interface/web/dashboard/dashlets/templates/quota.htm         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/interface/web/dashboard/dashlets/templates/databasequota.htm b/interface/web/dashboard/dashlets/templates/databasequota.htm
index 828e344a28..df36f28a13 100644
--- a/interface/web/dashboard/dashlets/templates/databasequota.htm
+++ b/interface/web/dashboard/dashlets/templates/databasequota.htm
@@ -16,7 +16,7 @@
 				<td>{tmpl_var name='database_quota'}</td>
 				<td>
 				<div class='progress'>
-					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}%'>
+					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}' data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='used_percentage'}%">
 					<span class='sr-only'>{tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='database_quota'}</span>
 					</div>
 				</div>
diff --git a/interface/web/dashboard/dashlets/templates/limits.htm b/interface/web/dashboard/dashlets/templates/limits.htm
index 145d54a342..cc98f78e8c 100644
--- a/interface/web/dashboard/dashlets/templates/limits.htm
+++ b/interface/web/dashboard/dashlets/templates/limits.htm
@@ -14,7 +14,7 @@
 				<td>{tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'}</td>
 				<td>
 				<div class='progress'>
-					<div class='progress-bar progress-bar-{tmpl_if name="percentage" op="<" value="50"}success{tmpl_elseif name="percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="percentage"}' style='width:{tmpl_var name="percentage"}%'>
+					<div class='progress-bar progress-bar-{tmpl_if name="percentage" op="<" value="50"}success{tmpl_elseif name="percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="percentage"}' style='width:{tmpl_var name="percentage"}%' data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='percentage'}%">
 					<span class='sr-only'>{tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'}</span>
 					</div>
 				</div>
diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm
index 3c3bd2c62b..5ad01d6865 100644
--- a/interface/web/dashboard/dashlets/templates/mailquota.htm
+++ b/interface/web/dashboard/dashlets/templates/mailquota.htm
@@ -18,7 +18,7 @@
 				<td>{tmpl_var name='quota'}</td>
 				<td>
 				<div class='progress'>
-					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}%'>
+					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}%' data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='used_percentage'}%">
 					<span class='sr-only'>{tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='quota'}</span>
 					</div>
 				</div>
diff --git a/interface/web/dashboard/dashlets/templates/quota.htm b/interface/web/dashboard/dashlets/templates/quota.htm
index 09895a69b6..4152ee074d 100644
--- a/interface/web/dashboard/dashlets/templates/quota.htm
+++ b/interface/web/dashboard/dashlets/templates/quota.htm
@@ -18,7 +18,7 @@
 				<td>{tmpl_var name='hard'}</td>
 				<td>
 				<div class='progress'>
-					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}%'>
+					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}%' data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='used_percentage'}%">
 					<span class='sr-only'>{tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='soft'}</span>
 					</div>
 				</div>
-- 
GitLab


From f1193b43f4c9fd132741d30f03f0b35841011989 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 10:21:38 +0200
Subject: [PATCH 075/313] Database quota fix % lost in change

---
 interface/web/dashboard/dashlets/templates/databasequota.htm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/dashboard/dashlets/templates/databasequota.htm b/interface/web/dashboard/dashlets/templates/databasequota.htm
index df36f28a13..46db3cc6b8 100644
--- a/interface/web/dashboard/dashlets/templates/databasequota.htm
+++ b/interface/web/dashboard/dashlets/templates/databasequota.htm
@@ -16,7 +16,7 @@
 				<td>{tmpl_var name='database_quota'}</td>
 				<td>
 				<div class='progress'>
-					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}' data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='used_percentage'}%">
+					<div class='progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}%' data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='used_percentage'}%">
 					<span class='sr-only'>{tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='database_quota'}</span>
 					</div>
 				</div>
-- 
GitLab


From ff26b4507aed2e81ab30180a784cacf4f3e1000c Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 10:26:54 +0200
Subject: [PATCH 076/313] cron_plugin.inc.php $document root fix for quota

---
 server/plugins-available/cron_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php
index b54e9711be..00ea6d32b6 100644
--- a/server/plugins-available/cron_plugin.inc.php
+++ b/server/plugins-available/cron_plugin.inc.php
@@ -136,7 +136,7 @@ class cron_plugin {
             }
 
             // get the primitive folder for document_root and the filesystem, will need it later.
-            $df_output=explode(" ", exec("df -T $document_root|awk 'END{print \$2,\$NF}'"));
+            $df_output=explode(" ", exec("df -T " . $parent_domain["document_root"] . "|awk 'END{print \$2,\$NF}'"));
             $file_system = $df_output[0];
             $primitive_root = $df_output[1];
 
-- 
GitLab


From e8dda462f3b02628b4d878ed2c133f1f04d26a50 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 11:25:42 +0200
Subject: [PATCH 077/313] escapeshellarg document root for security reasons
 (fixes #3984)

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 server/plugins-available/cron_plugin.inc.php    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index e3b8bfe695..f4b6ab7bca 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -884,7 +884,7 @@ class apache2_plugin {
 			}
             
           // get the primitive folder for document_root and the filesystem, will need it later.
-          $df_output=explode(" ", exec("df -T " . $data['new']['document_root'] . "|awk 'END{print \$2,\$NF}'"));
+          $df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'"));
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php
index 00ea6d32b6..c7109a562e 100644
--- a/server/plugins-available/cron_plugin.inc.php
+++ b/server/plugins-available/cron_plugin.inc.php
@@ -136,7 +136,7 @@ class cron_plugin {
             }
 
             // get the primitive folder for document_root and the filesystem, will need it later.
-            $df_output=explode(" ", exec("df -T " . $parent_domain["document_root"] . "|awk 'END{print \$2,\$NF}'"));
+            $df_output=explode(" ", exec("df -T " . escapeshellarg($parent_domain["document_root"]) . "|awk 'END{print \$2,\$NF}'"));
             $file_system = $df_output[0];
             $primitive_root = $df_output[1];
 
-- 
GitLab


From 505fc4feb44bf9606f6ecc1f7bae897cf61446a3 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 11:43:19 +0200
Subject: [PATCH 078/313] several updates on dutch language files

---
 interface/web/sites/lib/lang/nl.lng           | 16 +++----
 interface/web/sites/lib/lang/nl_aps.lng       | 40 ++++++++---------
 .../sites/lib/lang/nl_aps_instances_list.lng  | 16 +++----
 .../sites/lib/lang/nl_aps_packages_list.lng   | 12 ++---
 .../lib/lang/nl_aps_update_packagelist.lng    |  8 ++--
 interface/web/sites/lib/lang/nl_database.lng  | 10 ++---
 .../web/sites/lib/lang/nl_database_user.lng   | 44 +++++++++----------
 .../lib/lang/nl_database_user_admin_list.lng  |  8 ++--
 .../sites/lib/lang/nl_database_user_list.lng  |  6 +--
 .../lib/lang/nl_user_quota_stats_list.lng     |  4 +-
 .../web/sites/lib/lang/nl_web_domain.lng      |  6 +--
 11 files changed, 85 insertions(+), 85 deletions(-)

diff --git a/interface/web/sites/lib/lang/nl.lng b/interface/web/sites/lib/lang/nl.lng
index 4772673ddf..cbde78ed45 100644
--- a/interface/web/sites/lib/lang/nl.lng
+++ b/interface/web/sites/lib/lang/nl.lng
@@ -12,24 +12,24 @@ $wb['Folder users'] = 'Protected Folder Users';
 $wb['Command Line'] = 'Command Line';
 $wb['Shell-User'] = 'Shell-gebruiker';
 $wb['Cron Jobs'] = 'Cron Jobs';
-$wb['Statistics'] = 'Statististieken';
+$wb['Statistics'] = 'Statistieken';
 $wb['Web traffic'] = 'Web Traffic';
 $wb['Website quota (Harddisk)'] = 'Website quota (Harddisk)';
 $wb['Cron'] = 'Cron';
-$wb['Stats'] = 'Statististieken';
+$wb['Stats'] = 'Statistieken';
 $wb['Shell'] = 'Shell';
 $wb['Webdav'] = 'WebDAV';
 $wb['FTP'] = 'FTP';
 $wb['Options'] = 'Opties';
-$wb['Domain'] = 'Domain';
+$wb['Domain'] = 'Domein';
 $wb['Redirect'] = 'Redirect';
 $wb['SSL'] = 'SSL';
 $wb['Sites'] = 'Sites';
-$wb['Database User'] = 'Database Users';
+$wb['Database User'] = 'Database gebruikers';
 $wb['APS Installer'] = 'APS Installer';
-$wb['Available packages'] = 'Available packages';
-$wb['Installed packages'] = 'Installed packages';
-$wb['Update Packagelist'] = 'Update Packagelist';
-$wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)';
+$wb['Available packages'] = 'Beschikbare pakketten';
+$wb['Installed packages'] = 'Geïnstalleerde pakketten';
+$wb['Update Packagelist'] = 'Pakkettenlijst bijwerken';
+$wb['Subdomain (Vhost)'] = 'Subdomein (Vhost)';
 $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_aps.lng b/interface/web/sites/lib/lang/nl_aps.lng
index 29fb7b6a40..9d51f7457b 100644
--- a/interface/web/sites/lib/lang/nl_aps.lng
+++ b/interface/web/sites/lib/lang/nl_aps.lng
@@ -1,29 +1,29 @@
 <?php
-$wb['overview_txt'] = 'Overview';
+$wb['overview_txt'] = 'Overzicht';
 $wb['administration_txt'] = 'Administration';
-$wb['available_packages_txt'] = 'Available packages';
-$wb['installed_packages_txt'] = 'Installed packages';
-$wb['yes_txt'] = 'Yes';
-$wb['no_txt'] = 'No';
+$wb['available_packages_txt'] = 'Beschikbare pakketten';
+$wb['installed_packages_txt'] = 'Geïnstalleerde pakketten';
+$wb['yes_txt'] = 'Ja';
+$wb['no_txt'] = 'Nee';
 $wb['invalid_id_txt'] = 'No valid ID has been provided.';
 $wb['details_txt'] = 'Details';
-$wb['version_txt'] = 'Version';
-$wb['category_txt'] = 'Category';
+$wb['version_txt'] = 'Versie';
+$wb['category_txt'] = 'Categorie';
 $wb['homepage_txt'] = 'Homepage';
-$wb['supported_languages_txt'] = 'Supported languages';
-$wb['description_txt'] = 'Description';
-$wb['config_script_txt'] = 'Configuration script';
-$wb['installed_size_txt'] = 'Size after installation';
-$wb['license_txt'] = 'License';
-$wb['screenshots_txt'] = 'Screenshots';
+$wb['supported_languages_txt'] = 'Ondersteunde talen';
+$wb['description_txt'] = 'Omschrijving';
+$wb['config_script_txt'] = 'Configuratie script';
+$wb['installed_size_txt'] = 'Grootte na installatie';
+$wb['license_txt'] = 'Licentie';
+$wb['screenshots_txt'] = 'Schermafbeeldingen';
 $wb['changelog_txt'] = 'Changelog';
 $wb['server_requirements_txt'] = 'Server requirements';
-$wb['php_extensions_txt'] = 'PHP extensions';
-$wb['php_settings_txt'] = 'PHP settings';
-$wb['supported_php_versions_txt'] = 'Supported PHP versions';
+$wb['php_extensions_txt'] = 'PHP extensies';
+$wb['php_settings_txt'] = 'PHP instellingen';
+$wb['supported_php_versions_txt'] = 'Ondersteunde PHP versies';
 $wb['database_txt'] = 'Database';
-$wb['settings_txt'] = 'Settings';
-$wb['install_package_txt'] = 'Install this package';
+$wb['settings_txt'] = 'Instellingen';
+$wb['install_package_txt'] = 'Installeer dit pakket';
 $wb['installation_txt'] = 'Installation';
 $wb['install_location_txt'] = 'Install location';
 $wb['acceptance_txt'] = 'Acceptance';
@@ -52,7 +52,7 @@ $wb['installation_error_txt'] = 'Install error';
 $wb['installation_success_txt'] = 'Installed';
 $wb['installation_remove_txt'] = 'Removal planned';
 $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.';
-$wb['btn_install_txt'] = 'Install';
-$wb['btn_cancel_txt'] = 'Cancel';
+$wb['btn_install_txt'] = 'Installeren';
+$wb['btn_cancel_txt'] = 'Annuleren';
 $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_aps_instances_list.lng b/interface/web/sites/lib/lang/nl_aps_instances_list.lng
index 5742b7a6e9..fba33a5e2f 100644
--- a/interface/web/sites/lib/lang/nl_aps_instances_list.lng
+++ b/interface/web/sites/lib/lang/nl_aps_instances_list.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'Installed packages';
-$wb['name_txt'] = 'Name';
-$wb['version_txt'] = 'Version';
-$wb['customer_txt'] = 'Client';
+$wb['list_head_txt'] = 'Geïnstalleerde pakketten';
+$wb['name_txt'] = 'Naam';
+$wb['version_txt'] = 'Versie';
+$wb['customer_txt'] = 'Klant';
 $wb['status_txt'] = 'Status';
-$wb['install_location_txt'] = 'Install location';
-$wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?';
-$wb['filter_txt'] = 'Search';
-$wb['delete_txt'] = 'Delete';
+$wb['install_location_txt'] = 'Installatie pad';
+$wb['pkg_delete_confirmation'] = 'Weet je zeker dat je deze installatie wilt verwijderen ?';
+$wb['filter_txt'] = 'Zoeken';
+$wb['delete_txt'] = 'Verwijderen';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_aps_packages_list.lng b/interface/web/sites/lib/lang/nl_aps_packages_list.lng
index 68c378085f..b52ea0e1bd 100644
--- a/interface/web/sites/lib/lang/nl_aps_packages_list.lng
+++ b/interface/web/sites/lib/lang/nl_aps_packages_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Available packages';
-$wb['name_txt'] = 'Name';
-$wb['version_txt'] = 'Version';
-$wb['category_txt'] = 'Category';
-$wb['status_txt'] = 'Unlocked';
-$wb['filter_txt'] = 'Search';
+$wb['list_head_txt'] = 'Beschikbare pakketten';
+$wb['name_txt'] = 'Naam';
+$wb['version_txt'] = 'Versie';
+$wb['category_txt'] = 'Categorie';
+$wb['status_txt'] = 'Beschikbaar';
+$wb['filter_txt'] = 'Zoeken';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_aps_update_packagelist.lng b/interface/web/sites/lib/lang/nl_aps_update_packagelist.lng
index ce9fcf68fb..252f92d2d7 100644
--- a/interface/web/sites/lib/lang/nl_aps_update_packagelist.lng
+++ b/interface/web/sites/lib/lang/nl_aps_update_packagelist.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['head_txt'] = 'Update Packagelist';
+$wb['head_txt'] = 'Pakketten bijwerken';
 $wb['list_desc_txt'] = '';
-$wb['btn_start_txt'] = 'Update Packagelist';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['legend_txt'] = 'Here you can update the list of available packages. Please note that this can take up to five minutes. You can leave this page if you like; the process will continue in the background.';
+$wb['btn_start_txt'] = 'Pakketten bijwerken';
+$wb['btn_cancel_txt'] = 'Annuleren';
+$wb['legend_txt'] = 'Via deze pagina is het mogelijk om de pakkettenlijst bij te werken. Let op dat het bijwerken meer dan 5 minuten kan duren. Je kunt deze pagina verlaten, op de achtergrond zal het bijwerken dan afgerond worden.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_database.lng b/interface/web/sites/lib/lang/nl_database.lng
index 919ff25374..ada5ab9df7 100644
--- a/interface/web/sites/lib/lang/nl_database.lng
+++ b/interface/web/sites/lib/lang/nl_database.lng
@@ -23,11 +23,11 @@ $wb['database_charset_change_txt'] = 'De database karakterset kan niet worden ge
 $wb['database_name_error_len'] = 'Databasenaam - {db} - is te lang. De max. lengte van de databasenaam incl. voorvoegsel is 64 karakters.';
 $wb['database_user_error_len'] = 'Databasenaam - {user}- is te lang. De max. lengte van de database gebruikersnaam incl. voorvoegsel is 16 karakters.';
 $wb['parent_domain_id_txt'] = 'Site';
-$wb['database_site_error_empty'] = 'Select the site to which the database belongs.';
-$wb['select_site_txt'] = '- Select Site -';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['generate_password_txt'] = 'Generate Password';
+$wb['database_site_error_empty'] = 'Selecteer de site waar deze database aan gelinkt moet worden.';
+$wb['select_site_txt'] = '- Selecteer Site -';
+$wb['btn_save_txt'] = 'Opslaan';
+$wb['btn_cancel_txt'] = 'Annuleren';
+$wb['generate_password_txt'] = 'Genereer wachtwoord';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
diff --git a/interface/web/sites/lib/lang/nl_database_user.lng b/interface/web/sites/lib/lang/nl_database_user.lng
index d00aefe1f3..d23dec7388 100644
--- a/interface/web/sites/lib/lang/nl_database_user.lng
+++ b/interface/web/sites/lib/lang/nl_database_user.lng
@@ -1,24 +1,24 @@
 <?php
-$wb['database_user_txt'] = 'Database user';
-$wb['database_password_txt'] = 'Database password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['client_txt'] = 'Client';
-$wb['active_txt'] = 'Active';
-$wb['database_user_error_empty'] = 'Database user is empty.';
-$wb['database_user_error_unique'] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.';
-$wb['database_user_error_regex'] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
-$wb['database_user_error_len'] = 'Database username - {user} - too long. The max. database username length incl. prefix is 16 chars.';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['globalsearch_resultslimit_of_txt'] = 'of';
-$wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
-$wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_user_txt'] = 'Database gebruiker';
+$wb['database_password_txt'] = 'Database wachtwoord';
+$wb['password_strength_txt'] = 'Wachtwoord sterkte';
+$wb['client_txt'] = 'Klant';
+$wb['active_txt'] = 'Actief';
+$wb['database_user_error_empty'] = 'Database gebruiker is leeg.';
+$wb['database_user_error_unique'] = 'Er bestaat al een database gebruiker met deze naam op deze server. Voeg bv. de domeinnaam toe aan de gebruikersnaam om een unieke combinatie te krijgen.';
+$wb['database_user_error_regex'] = 'Database gebruiker is niet correct. De gebruikersnaam mag de volgende karakters bevatten: a-z. A-Z. 0-9 en evt. een underscore. De lengte mag tussen de 2 en 64 karakters bedragen.';
+$wb['database_user_error_len'] = 'Database gebruikernaam - {user} - is te lang. De max. database gebruikernaam lengte incl. prefix is 16 karakters.';
+$wb['btn_save_txt'] = 'Opslaan';
+$wb['btn_cancel_txt'] = 'Annuleren';
+$wb['generate_password_txt'] = 'Genereer wachtwoord';
+$wb['repeat_password_txt'] = 'Herhaal wachtwoord';
+$wb['password_mismatch_txt'] = 'De wachtwoorden zijn niet gelijk.';
+$wb['password_match_txt'] = 'De wachtwoorden zijn gelijk.';
+$wb['globalsearch_resultslimit_of_txt'] = 'van';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultaten';
+$wb['globalsearch_noresults_text_txt'] = 'Geen resultaten.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultaten';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Zoeken';
+$wb['globalsearch_suggestions_text_txt'] = 'Suggesties';
+$wb['limit_database_user_txt'] = 'Het max. aantal database gebruikers is bereikt.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_database_user_admin_list.lng b/interface/web/sites/lib/lang/nl_database_user_admin_list.lng
index d7f88c4c36..0850b4e44a 100644
--- a/interface/web/sites/lib/lang/nl_database_user_admin_list.lng
+++ b/interface/web/sites/lib/lang/nl_database_user_admin_list.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['list_head_txt'] = 'Database User';
-$wb['database_user_txt'] = 'Database user';
-$wb['add_new_record_txt'] = 'Add new User';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['list_head_txt'] = 'Database gebruikers';
+$wb['database_user_txt'] = 'Database gebruiker';
+$wb['add_new_record_txt'] = 'Toevoegen nieuwe gebruiker';
+$wb['sys_groupid_txt'] = 'Klant';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_database_user_list.lng b/interface/web/sites/lib/lang/nl_database_user_list.lng
index 8c226496a6..1a6d1858b5 100644
--- a/interface/web/sites/lib/lang/nl_database_user_list.lng
+++ b/interface/web/sites/lib/lang/nl_database_user_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Database user';
-$wb['database_user_txt'] = 'Database user';
-$wb['add_new_record_txt'] = 'Add new user';
+$wb['list_head_txt'] = 'Database gebruikers';
+$wb['database_user_txt'] = 'Database gebruiker';
+$wb['add_new_record_txt'] = 'Toevoegen nieuwe gebruiker';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng b/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng
index 72d068db78..64a5a0753e 100644
--- a/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['list_head_txt'] = 'Website harddisk quota';
-$wb['domain_txt'] = 'Domain / Website';
+$wb['domain_txt'] = 'Domein / Website';
 $wb['system_user_txt'] = 'Linux gebruiker';
 $wb['used_txt'] = 'Gebruikte ruimte';
 $wb['hard_txt'] = 'Harde limiet';
 $wb['soft_txt'] = 'Zachte limiet';
-$wb['files_txt'] = 'Single files';
+$wb['files_txt'] = 'Aantal bestanden';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng
index 2a0a066561..6aaa1aae5f 100644
--- a/interface/web/sites/lib/lang/nl_web_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_domain.lng
@@ -27,7 +27,7 @@ $wb['hd_quota_txt'] = 'Harddisk quota';
 $wb['traffic_quota_txt'] = 'Traffic quota';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Own Error-documenten';
+$wb['errordocs_txt'] = 'Eigen error documenten';
 $wb['subdomain_txt'] = 'Auto-subdomein';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
@@ -72,7 +72,7 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['ipv6_address_txt'] = 'IPv6-Adres';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO Redirect';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
@@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
 $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
 $wb['ssl_key_txt'] = 'SSL Key';
 $wb['perl_txt'] = 'Perl';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
+$wb['fastcgi_php_version_txt'] = 'PHP Versie';
 $wb['pm_txt'] = 'PHP-FPM Process Manager';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-- 
GitLab


From a2401ddb28154829f254378b72e081ac2d4af289 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 11:59:12 +0200
Subject: [PATCH 079/313] more dutch language adjustments.

---
 interface/web/sites/lib/lang/nl.lng           |  2 +-
 .../sites/lib/lang/nl_backup_stats_list.lng   | 10 ++++-----
 interface/web/sites/lib/lang/nl_database.lng  | 22 +++++++++----------
 .../sites/lib/lang/nl_database_admin_list.lng |  2 +-
 .../web/sites/lib/lang/nl_database_list.lng   |  2 +-
 .../lib/lang/nl_database_quota_stats_list.lng |  6 ++---
 .../web/sites/lib/lang/nl_web_folder.lng      |  8 +++----
 .../web/sites/lib/lang/nl_web_folder_list.lng |  4 ++--
 .../web/sites/lib/lang/nl_web_folder_user.lng | 22 +++++++++----------
 .../lib/lang/nl_web_folder_user_list.lng      |  8 +++----
 .../lib/lang/nl_web_sites_stats_list.lng      |  2 +-
 .../web/sites/lib/lang/nl_web_subdomain.lng   | 14 ++++++------
 .../sites/lib/lang/nl_web_vhost_domain.lng    | 12 +++++-----
 .../lang/nl_web_vhost_domain_admin_list.lng   |  4 ++--
 .../lib/lang/nl_web_vhost_domain_list.lng     |  4 ++--
 .../lib/lang/nl_web_vhost_subdomain_list.lng  |  8 +++----
 16 files changed, 65 insertions(+), 65 deletions(-)

diff --git a/interface/web/sites/lib/lang/nl.lng b/interface/web/sites/lib/lang/nl.lng
index cbde78ed45..8e07a1844a 100644
--- a/interface/web/sites/lib/lang/nl.lng
+++ b/interface/web/sites/lib/lang/nl.lng
@@ -9,7 +9,7 @@ $wb['FTP-User'] = 'FTP-gebruiker';
 $wb['Webdav-User'] = 'Webdav-gebruiker';
 $wb['Folder'] = 'Protected Folders';
 $wb['Folder users'] = 'Protected Folder Users';
-$wb['Command Line'] = 'Command Line';
+$wb['Command Line'] = 'Opdrachtregel';
 $wb['Shell-User'] = 'Shell-gebruiker';
 $wb['Cron Jobs'] = 'Cron Jobs';
 $wb['Statistics'] = 'Statistieken';
diff --git a/interface/web/sites/lib/lang/nl_backup_stats_list.lng b/interface/web/sites/lib/lang/nl_backup_stats_list.lng
index 65792aa591..306beb1d92 100644
--- a/interface/web/sites/lib/lang/nl_backup_stats_list.lng
+++ b/interface/web/sites/lib/lang/nl_backup_stats_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Backup Stats';
+$wb['list_head_txt'] = 'Backup statistieken';
 $wb['database_name_txt'] = '';
-$wb['active_txt'] = 'Active';
-$wb['domain_txt'] = 'Domain';
-$wb['backup_count_txt'] = 'Backup count';
+$wb['active_txt'] = 'Actief';
+$wb['domain_txt'] = 'Domein';
+$wb['backup_count_txt'] = 'Backup aantal';
 $wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
-$wb['backup_size_txt'] = 'Backupsize';
+$wb['backup_size_txt'] = 'Backup grootte';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_database.lng b/interface/web/sites/lib/lang/nl_database.lng
index ada5ab9df7..9cbf52692c 100644
--- a/interface/web/sites/lib/lang/nl_database.lng
+++ b/interface/web/sites/lib/lang/nl_database.lng
@@ -6,9 +6,9 @@ $wb['database_user_txt'] = 'Database gebruikersnaam';
 $wb['database_password_txt'] = 'Database wachtwoord';
 $wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['database_charset_txt'] = 'Database karkakterset';
-$wb['remote_access_txt'] = 'Remote toegang';
-$wb['remote_ips_txt'] = 'Remote toegang IPs (IP adressen gescheiden door een komma, niet ingevuld betekend toegang voor <i>elk IP-adres</i>)';
-$wb['database_remote_error_ips'] = 'Ten minste één van de ingevulde IP-adressen is ongeldig.';
+$wb['remote_access_txt'] = 'Externe toegang';
+$wb['remote_ips_txt'] = 'Externe toegang IPs (IP adressen gescheiden door een komma, niet ingevuld betekent toegang voor <i>elk IP-adres</i>)';
+$wb['database_remote_error_ips'] = 'Ten minste één van de ingevulde IP-adressen is ongeldig.';
 $wb['client_txt'] = 'Klant';
 $wb['active_txt'] = 'Actief';
 $wb['database_name_error_empty'] = 'Databasenaam is niet ingvuld.';
@@ -33,14 +33,14 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
 $wb['globalsearch_resultslimit_of_txt'] = 'of';
 $wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
-$wb['database_ro_user_txt'] = 'Read-only database user';
-$wb['optional_txt'] = 'optional';
-$wb['select_dbuser_txt'] = 'Select database user';
-$wb['no_dbuser_txt'] = 'None';
+$wb['globalsearch_noresults_text_txt'] = 'Geen resultaten.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultaten';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Zoeken';
+$wb['globalsearch_suggestions_text_txt'] = 'Suggesties';
+$wb['database_ro_user_txt'] = 'Read-only database gebruiker';
+$wb['optional_txt'] = 'optioneel';
+$wb['select_dbuser_txt'] = 'Selecteer database gebruiker';
+$wb['no_dbuser_txt'] = 'Geen';
 $wb['database_client_differs_txt'] = 'The client of the parent web and the database do not match.';
 $wb['database_user_missing_txt'] = 'Please select a database user for this database.';
 $wb['limit_database_quota_txt'] = 'Database quota';
diff --git a/interface/web/sites/lib/lang/nl_database_admin_list.lng b/interface/web/sites/lib/lang/nl_database_admin_list.lng
index d9d3a32b21..1bb89e3cbf 100644
--- a/interface/web/sites/lib/lang/nl_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/nl_database_admin_list.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['list_head_txt'] = 'Database';
 $wb['active_txt'] = 'Actief';
-$wb['remote_access_txt'] = 'Remote toegang';
+$wb['remote_access_txt'] = 'Externe toegang';
 $wb['server_id_txt'] = 'Server';
 $wb['database_user_txt'] = 'Database gebruiker';
 $wb['database_name_txt'] = 'Database naam';
diff --git a/interface/web/sites/lib/lang/nl_database_list.lng b/interface/web/sites/lib/lang/nl_database_list.lng
index 684443a9ec..c8a0a24e54 100644
--- a/interface/web/sites/lib/lang/nl_database_list.lng
+++ b/interface/web/sites/lib/lang/nl_database_list.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['list_head_txt'] = 'Database';
 $wb['active_txt'] = 'Actief';
-$wb['remote_access_txt'] = 'Remote toegang';
+$wb['remote_access_txt'] = 'Externe toegang';
 $wb['server_id_txt'] = 'Server';
 $wb['database_user_txt'] = 'Database gebruiker';
 $wb['database_name_txt'] = 'Database naam';
diff --git a/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng b/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng
index 4f92576007..e22d52d27b 100644
--- a/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['database_txt'] = 'Database';
 $wb['server_name_txt'] = 'Server';
-$wb['client_txt'] = 'Client';
-$wb['used_txt'] = 'Used space';
+$wb['client_txt'] = 'Klant';
+$wb['used_txt'] = 'Gebruikte ruimte';
 $wb['quota_txt'] = 'Quota';
-$wb['percentage_txt'] = 'Used in %';
+$wb['percentage_txt'] = 'Gebruikt in %';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_folder.lng b/interface/web/sites/lib/lang/nl_web_folder.lng
index 2f06a70726..0f59ca63aa 100644
--- a/interface/web/sites/lib/lang/nl_web_folder.lng
+++ b/interface/web/sites/lib/lang/nl_web_folder.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Website';
-$wb['path_txt'] = 'Path';
-$wb['active_txt'] = 'Active';
-$wb['path_error_regex'] = 'Invalid folder path.';
-$wb['error_folder_already_protected_txt'] = 'There is already a record for this folder.';
+$wb['path_txt'] = 'Pad';
+$wb['active_txt'] = 'Actief';
+$wb['path_error_regex'] = 'Folder pad is niet correct.';
+$wb['error_folder_already_protected_txt'] = 'Deze folder bestaat al.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_folder_list.lng b/interface/web/sites/lib/lang/nl_web_folder_list.lng
index 89f8b65ac3..f1700c0e59 100644
--- a/interface/web/sites/lib/lang/nl_web_folder_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_folder_list.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['list_head_txt'] = 'Folder';
-$wb['active_txt'] = 'Active';
+$wb['active_txt'] = 'Actief';
 $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['path_txt'] = 'Path';
-$wb['add_new_record_txt'] = 'Add new Folder';
+$wb['add_new_record_txt'] = 'Toevoegen nieuwe folder';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_folder_user.lng b/interface/web/sites/lib/lang/nl_web_folder_user.lng
index 1dbc90534e..8a043d7802 100644
--- a/interface/web/sites/lib/lang/nl_web_folder_user.lng
+++ b/interface/web/sites/lib/lang/nl_web_folder_user.lng
@@ -1,14 +1,14 @@
 <?php
 $wb['web_folder_id_txt'] = 'Folder';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['active_txt'] = 'Active';
-$wb['folder_error_empty'] = 'No web folder selecetd.';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['no_folder_perm'] = 'You have no permission for this folder.';
-$wb['error_user_exists_already_txt'] = 'There is already a record for this user.';
+$wb['username_txt'] = 'Gebruikersnaam';
+$wb['password_txt'] = 'Wachtwoord';
+$wb['active_txt'] = 'Actief';
+$wb['folder_error_empty'] = 'Geen webfolder geselecteerd.';
+$wb['password_strength_txt'] = 'Wachtwoord sterkte';
+$wb['generate_password_txt'] = 'Genereer wachtwoord';
+$wb['repeat_password_txt'] = 'Herhaal wachtwoord';
+$wb['password_mismatch_txt'] = 'De wachtwoorden zijn niet gelijk.';
+$wb['password_match_txt'] = 'De wachtwoorden zijn gelijk.';
+$wb['no_folder_perm'] = 'Je hebt geen toegang tot deze folder.';
+$wb['error_user_exists_already_txt'] = 'Deze gebruiker bestaat al.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_folder_user_list.lng b/interface/web/sites/lib/lang/nl_web_folder_user_list.lng
index 67612f5111..1b50abeaed 100644
--- a/interface/web/sites/lib/lang/nl_web_folder_user_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_folder_user_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Folder User';
-$wb['active_txt'] = 'Active';
+$wb['list_head_txt'] = 'Folder gebruiker';
+$wb['active_txt'] = 'Actief';
 $wb['web_folder_id_txt'] = 'Folder';
-$wb['username_txt'] = 'Username';
-$wb['add_new_record_txt'] = 'Add new Folder User';
+$wb['username_txt'] = 'Gebruikersnaam';
+$wb['add_new_record_txt'] = 'Toevoegen nieuwe folder gebruiker';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng b/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng
index a0568db64b..5dae5a33ec 100644
--- a/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng
@@ -5,5 +5,5 @@ $wb['this_month_txt'] = 'Deze maand';
 $wb['last_month_txt'] = 'Vorige maand';
 $wb['this_year_txt'] = 'Dit jaar';
 $wb['last_year_txt'] = 'Vorig jaar';
-$wb['sum_txt'] = 'Sum';
+$wb['sum_txt'] = 'Som';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_subdomain.lng b/interface/web/sites/lib/lang/nl_web_subdomain.lng
index 18b4571275..2f4412afba 100644
--- a/interface/web/sites/lib/lang/nl_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/nl_web_subdomain.lng
@@ -4,7 +4,7 @@ $wb['ssl_locality_txt'] = 'Plaatsnaam';
 $wb['ssl_organisation_txt'] = 'Organisatie';
 $wb['ssl_organisation_unit_txt'] = 'Organisatie afdeling';
 $wb['ssl_country_txt'] = 'Land';
-$wb['ssl_request_txt'] = 'SSL Request';
+$wb['ssl_request_txt'] = 'SSL aanvraag';
 $wb['ssl_cert_txt'] = 'SSL Certificaat';
 $wb['ssl_bundle_txt'] = 'SSL Bundel';
 $wb['ssl_action_txt'] = 'SSL Actie';
@@ -33,18 +33,18 @@ $wb['limit_web_aliasdomain_txt'] = 'Het max. aantal aliasdomeinen voor uw accoun
 $wb['limit_web_subdomain_txt'] = 'Het max. aantal web subdomeinen voor uw account is bereikt.';
 $wb['apache_directives_txt'] = 'Apache directives';
 $wb['domain_error_empty'] = 'Domein is niet ingvuld.';
-$wb['domain_error_unique'] = 'Er is al eenwebsite of sub / aliasdomein met deze domeinnaam.';
+$wb['domain_error_unique'] = 'Er is al een website of sub / aliasdomein met deze domeinnaam.';
 $wb['domain_error_regex'] = 'Domainnaam ongeldig.';
 $wb['host_txt'] = 'Host';
 $wb['redirect_error_regex'] = 'Ongeldig redirect pad. Geldige redirects zijn bijvoorbeeld: /test/ or http://www.domain.tld/test/';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
+$wb['no_redirect_txt'] = 'Geen redirect';
+$wb['no_flag_txt'] = 'Geen flag';
+$wb['domain_error_wildcard'] = 'Wildcard subdomeinen zijn niet toegestaan.';
 $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
 $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
 $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
-$wb['http_port_error_regex'] = 'HTTP Port invalid.';
-$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['http_port_error_regex'] = 'HTTP Port niet correct.';
+$wb['https_port_error_regex'] = 'HTTPS Port niet correct.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
index 617d844253..426a131667 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
@@ -70,10 +70,10 @@ $wb['none_txt'] = 'None';
 $wb['disabled_txt'] = 'Disabled';
 $wb['no_redirect_txt'] = 'No redirect';
 $wb['no_flag_txt'] = 'No flag';
-$wb['save_certificate_txt'] = 'Save certificate';
+$wb['save_certificate_txt'] = 'Certificaat opslaan';
 $wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['delete_certificate_txt'] = 'Certificaat verwijderen';
+$wb['ipv6_address_txt'] = 'IPv6-Adres';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO Redirect';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
@@ -90,11 +90,11 @@ $wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive
 $wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
 $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
 $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
+$wb['hd_quota_error_regex'] = 'Harddisk quota is niet correct.';
+$wb['traffic_quota_error_regex'] = 'Traffic quota is niet correct.';
 $wb['ssl_key_txt'] = 'SSL Key';
 $wb['perl_txt'] = 'Perl';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
+$wb['fastcgi_php_version_txt'] = 'PHP Versie';
 $wb['pm_txt'] = 'PHP-FPM Process Manager';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng
index 398f91a940..bfa25cd689 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng
@@ -6,6 +6,6 @@ $wb['active_txt'] = 'Actief';
 $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Domein';
 $wb['add_new_record_txt'] = 'Toevoegen nieuwe website';
-$wb['add_new_subdomain_txt'] = 'Add new subdomain';
-$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['add_new_subdomain_txt'] = 'Toevoegen nieuw subdomain';
+$wb['add_new_aliasdomain_txt'] = 'Toevoegen nieuw aliasdomain';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng
index 5ee23b30d7..f619301782 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng
@@ -6,6 +6,6 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Domein';
 $wb['add_new_record_txt'] = 'Toevoegen nieuwe website';
 $wb['parent_domain_id_txt'] = 'Website';
-$wb['add_new_subdomain_txt'] = 'Add new subdomain';
-$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['add_new_subdomain_txt'] = 'Toevoegen nieuw subdomain';
+$wb['add_new_aliasdomain_txt'] = 'Toevoegen nieuw aliasdomain';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/nl_web_vhost_subdomain_list.lng
index 1c16bcda28..e1d947400a 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_subdomain_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Subdomains';
-$wb['active_txt'] = 'Active';
+$wb['list_head_txt'] = 'Subdomeinen';
+$wb['active_txt'] = 'Actief';
 $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Website';
-$wb['domain_txt'] = 'Subdomain';
-$wb['add_new_record_txt'] = 'Add new subdomain';
+$wb['domain_txt'] = 'Subdomein';
+$wb['add_new_record_txt'] = 'Toevoegen nieuw subdomain';
 ?>
-- 
GitLab


From 173afc3e8272495e72fbcd27bed55d227483aaf7 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 12:48:50 +0200
Subject: [PATCH 080/313] Dashboard / DNS and Login dutch language ajdustments.

---
 .../lib/lang/nl_dashlet_customer.lng          |  4 ++--
 .../lib/lang/nl_dashlet_databasequota.lng     |  6 +++---
 .../nl_dashlet_invoice_client_settings.lng    |  2 +-
 .../lib/lang/nl_dashlet_invoices.lng          | 20 +++++++++----------
 .../dashboard/lib/lang/nl_dashlet_limits.lng  |  4 ++--
 .../lib/lang/nl_dashlet_mailquota.lng         |  8 ++++----
 .../dashboard/lib/lang/nl_dashlet_modules.lng |  2 +-
 .../lib/lang/nl_dashlet_products.lng          | 14 ++++++-------
 .../dashboard/lib/lang/nl_dashlet_quota.lng   | 10 +++++-----
 .../dashboard/lib/lang/nl_dashlet_shop.lng    |  6 +++---
 interface/web/dns/lib/lang/nl.lng             |  2 +-
 interface/web/login/lib/lang/nl.lng           | 12 +++++------
 interface/web/login/lib/lang/nl_login_as.lng  | 10 +++++-----
 13 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_customer.lng b/interface/web/dashboard/lib/lang/nl_dashlet_customer.lng
index 4fe6cb0ef7..fa87fa66f9 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_customer.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_customer.lng
@@ -1,4 +1,4 @@
 <?php
-$wb['customerdata_txt'] = 'My Data';
-$wb['edit_txt'] = 'Edit';
+$wb['customerdata_txt'] = 'Mijn gegevens';
+$wb['edit_txt'] = 'Bewerken';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/nl_dashlet_databasequota.lng
index bd2402dbf6..1ba30aa693 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_databasequota.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_databasequota.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['databasequota_txt'] = 'Database Quota';
-$wb['database_txt'] = 'Database Name';
-$wb['used_txt'] = 'Used Space';
+$wb['database_txt'] = 'Database naam';
+$wb['used_txt'] = 'Gebruikte ruimte';
 $wb['quota_txt'] = 'Quota';
-$wb['no_database_accounts_txt'] = 'No databases found.';
+$wb['no_database_accounts_txt'] = 'Geen databases gevonden.';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/nl_dashlet_invoice_client_settings.lng
index 8cae3dfb4f..0cef7b9d6c 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_invoice_client_settings.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_invoice_client_settings.lng
@@ -1,4 +1,4 @@
 <?php
 $wb['invoice_client_settings_txt'] = 'Invoice Client Settings';
-$wb['edit_txt'] = 'Edit';
+$wb['edit_txt'] = 'Bewerken';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/nl_dashlet_invoices.lng
index a680daa8f6..e15e174b91 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_invoices.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_invoices.lng
@@ -1,18 +1,18 @@
 <?php
-$wb['invoices_txt'] = 'Invoices';
-$wb['invoice_no_txt'] = 'Invoice No.';
-$wb['amount_txt'] = 'Amount';
-$wb['date_txt'] = 'Date';
+$wb['invoices_txt'] = 'Facturen';
+$wb['invoice_no_txt'] = 'Factuur nr.';
+$wb['amount_txt'] = 'Aantal';
+$wb['date_txt'] = 'Datum';
 $wb['invoice_status_txt'] = 'Status';
-$wb['no_invoices_txt'] = 'No Invoices available.';
-$wb['paid_txt'] = 'Paid';
-$wb['unpaid_txt'] = 'Unpaid';
-$wb['paynow_txt'] = 'pay now';
+$wb['no_invoices_txt'] = 'Geen facturen beschikbaar.';
+$wb['paid_txt'] = 'Betaald';
+$wb['unpaid_txt'] = 'Niet betaald';
+$wb['paynow_txt'] = 'betaal nu';
 $wb['proforma_txt'] = 'Proforma';
 $wb['refunded_txt'] = 'Refunded';
 $wb['not_refunded_txt'] = 'Not refunded';
-$wb['invoice_type_invoice_txt'] = 'Invoice';
+$wb['invoice_type_invoice_txt'] = 'Factuur';
 $wb['invoice_type_proforma_txt'] = 'Proforma';
 $wb['invoice_type_refund_txt'] = 'Refund';
-$wb['invoice_type_reminder_txt'] = 'Reminder';
+$wb['invoice_type_reminder_txt'] = 'Herinnering';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng b/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng
index 9cbb1a79ed..0ce3f0e794 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng
@@ -26,6 +26,6 @@ $wb['limit_shell_user_txt'] = 'Aantal Shell users';
 $wb['limit_webdav_user_txt'] = 'Aantal Webdav users';
 $wb['limit_client_txt'] = 'Aantal klanten';
 $wb['limit_database_txt'] = 'Aantal databases';
-$wb['limit_mailmailinglist_txt'] = 'Number of mailing lists';
-$wb['limit_domain_txt'] = 'Number of Domains';
+$wb['limit_mailmailinglist_txt'] = 'Aantal mailing lijsten';
+$wb['limit_domain_txt'] = 'Aantal domeinen';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng
index 1ab1e66658..28af96bdab 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['mailquota_txt'] = 'Mailbox Quota';
-$wb['email_txt'] = 'Email Address';
-$wb['name_txt'] = 'Name';
-$wb['used_txt'] = 'Used Space';
+$wb['email_txt'] = 'Email adres';
+$wb['name_txt'] = 'Naam';
+$wb['used_txt'] = 'Gebruikte ruimte';
 $wb['quota_txt'] = 'Quota';
-$wb['no_email_accounts_txt'] = 'No email accounts found.';
+$wb['no_email_accounts_txt'] = 'Geen e-mail accounts gevonden.';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_modules.lng b/interface/web/dashboard/lib/lang/nl_dashlet_modules.lng
index 4788b7d6e6..5662f8705e 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_modules.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_modules.lng
@@ -1,4 +1,4 @@
 <?php
 $wb['available_modules_txt'] = 'Beschikbare modules';
-$wb['go_to_txt'] = 'Go to';
+$wb['go_to_txt'] = 'Ga naar';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_products.lng b/interface/web/dashboard/lib/lang/nl_dashlet_products.lng
index a69b61d2fb..147d88298a 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_products.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_products.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['products_txt'] = 'My Products';
-$wb['name_txt'] = 'Name';
-$wb['price_txt'] = 'Price';
-$wb['next_payment_date_txt'] = 'Next Invoice';
-$wb['no_products_txt'] = 'No products found.';
-$wb['edit_txt'] = 'Edit';
-$wb['cancellation_date_txt'] = 'Cancelled by';
+$wb['products_txt'] = 'Mijn producten';
+$wb['name_txt'] = 'Naam';
+$wb['price_txt'] = 'Prijs';
+$wb['next_payment_date_txt'] = 'Volgende factuur';
+$wb['no_products_txt'] = 'Geen producten gevonden.';
+$wb['edit_txt'] = 'Bewerken';
+$wb['cancellation_date_txt'] = 'Geannuleerd door';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng b/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng
index de7b5a8936..581f48ac47 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['quota_txt'] = 'Website Harddisk Quota';
-$wb['domain_txt'] = 'Domain / Website';
-$wb['used_txt'] = 'Used space';
-$wb['hard_txt'] = 'Hard limit';
-$wb['soft_txt'] = 'Soft limit';
-$wb['no_sites_txt'] = 'No web sites found.';
+$wb['domain_txt'] = 'Domeinn / Website';
+$wb['used_txt'] = 'Gebruikte ruimte';
+$wb['hard_txt'] = 'Harde limiet';
+$wb['soft_txt'] = 'Zachte limiet';
+$wb['no_sites_txt'] = 'Geen websites gevonden.';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_shop.lng b/interface/web/dashboard/lib/lang/nl_dashlet_shop.lng
index 1e0b5361d7..182b1795ac 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_shop.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_shop.lng
@@ -1,8 +1,8 @@
 <?php
 $wb['shop_txt'] = 'Order';
-$wb['name_txt'] = 'Name';
-$wb['price_txt'] = 'Price';
+$wb['name_txt'] = 'Naam';
+$wb['price_txt'] = 'Prijs';
 $wb['setup_fee_txt'] = 'Setup Fee';
-$wb['no_products_txt'] = 'No products found.';
+$wb['no_products_txt'] = 'Geen producten gevonden.';
 $wb['order_txt'] = 'Order';
 ?>
diff --git a/interface/web/dns/lib/lang/nl.lng b/interface/web/dns/lib/lang/nl.lng
index d01b6b31b9..69ddf89f6f 100644
--- a/interface/web/dns/lib/lang/nl.lng
+++ b/interface/web/dns/lib/lang/nl.lng
@@ -18,5 +18,5 @@ $wb['DNS Wizard'] = 'DNS Wizard';
 $wb['Add DNS Zone'] = 'Add DNS Zone';
 $wb['Templates'] = 'Templates';
 $wb['Secondary Zones'] = 'Secondary Zones';
-$wb['Import Zone File'] = 'Import Zone File';
+$wb['Import Zone File'] = 'Zone bestanden importeren';
 ?>
diff --git a/interface/web/login/lib/lang/nl.lng b/interface/web/login/lib/lang/nl.lng
index 97062c416e..ca641e3b02 100644
--- a/interface/web/login/lib/lang/nl.lng
+++ b/interface/web/login/lib/lang/nl.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['error_user_password_empty'] = 'Gebruikersnaam of wachtwoord is niet ingvuld.';
+$wb['error_user_password_empty'] = 'Gebruikersnaam of wachtwoord is niet ingevuld.';
 $wb['error_user_password_incorrect'] = 'Gebruikersnaam of wachtwoord onjuist.';
 $wb['error_user_blocked'] = 'Gebruiker is geblokkeerd.';
 $wb['error_user_too_many_logins'] = 'Teveel onjuiste login pogingen, Probeer het nogmaals na 15 minutes';
@@ -13,12 +13,12 @@ $wb['user_regex_error'] = 'Gebruikersnaam bevat karakters die niet zijn toegesta
 $wb['pw_error_length'] = 'De lengte van het wachtwoord is > 256 karakters.';
 $wb['username_txt'] = 'Gebruikersnaam';
 $wb['password_txt'] = 'Wachtwoord';
-$wb['login_button_txt'] = 'Login';
-$wb['pw_lost_txt'] = 'Password lost';
+$wb['login_button_txt'] = 'Inloggen';
+$wb['pw_lost_txt'] = 'Wachtwoord vergeten';
 $wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.';
-$wb['login_txt'] = 'Login';
-$wb['pw_reset_txt'] = 'Password reset';
-$wb['pw_button_txt'] = 'Resend password';
+$wb['login_txt'] = 'Inloggen';
+$wb['pw_reset_txt'] = 'Wachtwoord herstellen';
+$wb['pw_button_txt'] = 'Wachtwoord versturen';
 $wb['email_txt'] = 'Email';
 $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
 $wb['back_txt'] = 'Back';
diff --git a/interface/web/login/lib/lang/nl_login_as.lng b/interface/web/login/lib/lang/nl_login_as.lng
index c660ff1a4b..b02e1a481b 100644
--- a/interface/web/login/lib/lang/nl_login_as.lng
+++ b/interface/web/login/lib/lang/nl_login_as.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['login_1_txt'] = 'Do you want to login as user';
-$wb['login_2_txt'] = 'If you do so, you can \\"go back\\" by clicking at logout.';
-$wb['btn_yes_txt'] = 'Yes, login as Client';
-$wb['btn_back_txt'] = 'No, back to list';
-$wb['udp_port_help_txt'] = 'Separated by comma';
+$wb['login_1_txt'] = 'Wil je inloggen als gebruiker';
+$wb['login_2_txt'] = 'Wanneer je doorgaat kun je terugkeren door op afmelden te klikken.';
+$wb['btn_yes_txt'] = 'Ja, log me in als deze klant';
+$wb['btn_back_txt'] = 'Nee, terug naar het overzicht';
+$wb['udp_port_help_txt'] = 'Gescheiden door komma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
-- 
GitLab


From 73c2f4f9253638a4f21e323e48242217276e3e50 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 8 Jul 2016 16:43:18 +0200
Subject: [PATCH 081/313] - prevent issue when using smtp binding in postfix

---
 install/tpl/amavisd_user_config.master | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/install/tpl/amavisd_user_config.master b/install/tpl/amavisd_user_config.master
index 621e02956a..8663f07498 100644
--- a/install/tpl/amavisd_user_config.master
+++ b/install/tpl/amavisd_user_config.master
@@ -77,9 +77,9 @@ $log_level = 0;                # (defaults to 0)
 
 $inet_socket_port = [10024,10026];
 
-# *:* = send to IP/HOST:incoming Port + 1
-$forward_method = 'smtp:*:*';
-$notify_method = 'smtp:*:*';
+# :* = send to incoming Port + 1
+$forward_method = 'smtp:127.0.0.1:*';
+$notify_method = 'smtp:127.0.0.1:*';
 $interface_policy{'10026'} = 'ORIGINATING';
 $policy_bank{'ORIGINATING'} = {
   originating => 1,
-- 
GitLab


From 7e24fd5e41f2b3ec8ecad32e2bedd789360a1de2 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 21:04:49 +0200
Subject: [PATCH 082/313] More dutch language adjustment for dashboard / dns /
 clients / sites

---
 interface/web/client/lib/lang/nl.lng          | 24 ++++-----
 .../web/client/lib/lang/nl_client_del.lng     |  2 +-
 .../web/client/lib/lang/nl_client_message.lng | 28 +++++-----
 .../web/client/lib/lang/nl_clients_list.lng   |  4 +-
 interface/web/client/lib/lang/nl_domain.lng   |  4 +-
 .../web/client/lib/lang/nl_domain_list.lng    |  2 +-
 interface/web/client/lib/lang/nl_reseller.lng |  6 +--
 .../web/client/lib/lang/nl_resellers_list.lng |  4 +-
 .../dashboard/lib/lang/nl_dashlet_quota.lng   |  4 +-
 .../dns/lib/lang/nl_dns_soa_admin_list.lng    | 10 ++--
 .../web/dns/lib/lang/nl_dns_soa_list.lng      |  4 +-
 interface/web/dns/lib/lang/nl_dns_wizard.lng  | 52 +++++++++----------
 .../lib/lang/nl_web_sites_stats_list.lng      |  2 +-
 .../sites/lib/lang/nl_web_vhost_domain.lng    | 36 ++++++-------
 14 files changed, 91 insertions(+), 91 deletions(-)

diff --git a/interface/web/client/lib/lang/nl.lng b/interface/web/client/lib/lang/nl.lng
index 4c4b4d19b3..34aa5adec3 100644
--- a/interface/web/client/lib/lang/nl.lng
+++ b/interface/web/client/lib/lang/nl.lng
@@ -5,20 +5,20 @@ $wb['Limits'] = 'Limieten';
 $wb['Add Client'] = 'Toevoegen klant';
 $wb['Edit Client'] = 'Wijzigen klant';
 $wb['Clients'] = 'klanten';
-$wb['Templates'] = 'Templates';
-$wb['Limit-Templates'] = 'Limit-Templates';
-$wb['Add Reseller'] = 'Toevoegen Reseller';
-$wb['Edit Reseller'] = 'Wijzigen Reseller';
+$wb['Templates'] = 'Sjablonen';
+$wb['Limit-Templates'] = 'Limiet sjablonen';
+$wb['Add Reseller'] = 'Toevoegen reseller';
+$wb['Edit Reseller'] = 'Wijzigen reseller';
 $wb['Resellers'] = 'Resellers';
 $wb['error_has_clients'] = 'Deze reseller heeft klanten. Verwijder eerst de klanten van de reseller';
-$wb['add_additional_template_txt'] = 'Add additional template';
-$wb['delete_additional_template_txt'] = 'Delete additional template';
-$wb['Messaging'] = 'Messaging';
-$wb['Send email'] = 'Send Email';
-$wb['Edit Client Circle'] = 'Edit Client Circle';
-$wb['Domains'] = 'Domains';
-$wb['domain_txt'] = 'Domain';
-$wb['client_txt'] = 'Client';
+$wb['add_additional_template_txt'] = 'Additioneel sjabloon toevoegen';
+$wb['delete_additional_template_txt'] = 'Verwijder additioneel sjabloon';
+$wb['Messaging'] = 'Berichten';
+$wb['Send email'] = 'Verstuur e-mail';
+$wb['Edit Client Circle'] = 'Klanten collectie bewerken';
+$wb['Domains'] = 'Domeinen';
+$wb['domain_txt'] = 'Domein';
+$wb['client_txt'] = 'Klant';
 $wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain';
 $wb['error_domain_in webuse'] = 'This domain cannot be deleted, because it is in use as web-domain';
 $wb['error_client_can_not_add_domain'] = 'You cannot add a new domain';
diff --git a/interface/web/client/lib/lang/nl_client_del.lng b/interface/web/client/lib/lang/nl_client_del.lng
index 6a6b3b6ce3..294fb5011b 100644
--- a/interface/web/client/lib/lang/nl_client_del.lng
+++ b/interface/web/client/lib/lang/nl_client_del.lng
@@ -3,5 +3,5 @@ $wb['confirm_action_txt'] = 'Bevestig actie';
 $wb['delete_explanation'] = 'Deze actie verwijderd het volgende aantal aan records die geassocieerd zijn met deze klant';
 $wb['btn_save_txt'] = 'Verwijder de klant';
 $wb['btn_cancel_txt'] = 'Annuleren zonder de klant te verwijderen';
-$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
+$wb['confirm_client_delete_txt'] = 'Weet je zeker dat je deze klant wil verwijderen ?';
 ?>
diff --git a/interface/web/client/lib/lang/nl_client_message.lng b/interface/web/client/lib/lang/nl_client_message.lng
index 6b2a872f10..aaa93be1b8 100644
--- a/interface/web/client/lib/lang/nl_client_message.lng
+++ b/interface/web/client/lib/lang/nl_client_message.lng
@@ -1,20 +1,20 @@
 <?php
-$wb['btn_send_txt'] = 'Send email';
-$wb['btn_cancel_txt'] = 'Cancel';
+$wb['btn_send_txt'] = 'Stuur e-mail';
+$wb['btn_cancel_txt'] = 'Annuleren';
 $wb['sender_txt'] = 'Sender email address';
-$wb['subject_txt'] = 'Subject';
-$wb['message_txt'] = 'Message';
-$wb['form_legend_client_txt'] = 'Send email message to all clients.';
-$wb['form_legend_admin_txt'] = 'Send email message to all clients and resellers.';
+$wb['subject_txt'] = 'Onderwerp';
+$wb['message_txt'] = 'Bericht';
+$wb['form_legend_client_txt'] = 'Stuur e-mail naar alle klanten.';
+$wb['form_legend_admin_txt'] = 'Stuur e-mail naar alle klanten en resellers.';
 $wb['sender_invalid_error'] = 'Sender email invalid.';
-$wb['subject_invalid_error'] = 'Subject is empty.';
-$wb['message_invalid_error'] = 'Message is empty.';
-$wb['email_sent_to_txt'] = 'Email sent to:';
+$wb['subject_invalid_error'] = 'Onderwerp is leeg.';
+$wb['message_invalid_error'] = 'Bericht is leeg.';
+$wb['email_sent_to_txt'] = 'E-mail verstuurd aan:';
 $wb['page_head_txt'] = 'Send customer information';
-$wb['recipient_txt'] = 'Recipient';
-$wb['all_clients_resellers_txt'] = 'All clients and resellers';
-$wb['all_clients_txt'] = 'All clients';
+$wb['recipient_txt'] = 'Ontvanger';
+$wb['all_clients_resellers_txt'] = 'Alle klanten en resellers';
+$wb['all_clients_txt'] = 'Alle klanten';
 $wb['variables_txt'] = 'Variables:';
-$wb['gender_m_txt'] = 'Mr.';
-$wb['gender_f_txt'] = 'Ms.';
+$wb['gender_m_txt'] = 'Dhr.';
+$wb['gender_f_txt'] = 'Mevr.';
 ?>
diff --git a/interface/web/client/lib/lang/nl_clients_list.lng b/interface/web/client/lib/lang/nl_clients_list.lng
index 25d537db8e..4b962f1241 100644
--- a/interface/web/client/lib/lang/nl_clients_list.lng
+++ b/interface/web/client/lib/lang/nl_clients_list.lng
@@ -6,6 +6,6 @@ $wb['contact_name_txt'] = 'Contactpersoon';
 $wb['city_txt'] = 'Plaatsnaam';
 $wb['country_txt'] = 'Land';
 $wb['add_new_record_txt'] = 'Toevoegen nieuwe klant';
-$wb['username_txt'] = 'Username';
-$wb['customer_no_txt'] = 'Customer No.';
+$wb['username_txt'] = 'Gebruikersnaam';
+$wb['customer_no_txt'] = 'Klantnummer';
 ?>
diff --git a/interface/web/client/lib/lang/nl_domain.lng b/interface/web/client/lib/lang/nl_domain.lng
index fbdce7dc7f..c1da1b741d 100644
--- a/interface/web/client/lib/lang/nl_domain.lng
+++ b/interface/web/client/lib/lang/nl_domain.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['domain_error_empty'] = 'De domain-naam is niet ingvuld';
+$wb['domain_error_empty'] = 'De domein naam is niet ingevuld';
 $wb['domain_error_unique'] = 'Het domein bestaat reeds';
-$wb['domain_error_regex'] = 'Deze domeinnaam is niet toegestaan';
+$wb['domain_error_regex'] = 'Deze domein naam is niet toegestaan';
 $wb['Domain'] = 'Domein';
 ?>
diff --git a/interface/web/client/lib/lang/nl_domain_list.lng b/interface/web/client/lib/lang/nl_domain_list.lng
index 7fec9446a0..130345f388 100644
--- a/interface/web/client/lib/lang/nl_domain_list.lng
+++ b/interface/web/client/lib/lang/nl_domain_list.lng
@@ -2,5 +2,5 @@
 $wb['list_head_txt'] = 'Domeinen';
 $wb['add_new_record_txt'] = 'Toevoegen nieuw domein';
 $wb['domain_txt'] = 'Domein';
-$wb['user_txt'] = 'Client';
+$wb['user_txt'] = 'Klant';
 ?>
diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng
index 28934428dc..63d76bfb15 100644
--- a/interface/web/client/lib/lang/nl_reseller.lng
+++ b/interface/web/client/lib/lang/nl_reseller.lng
@@ -91,11 +91,11 @@ $wb['ssh_chroot_txt'] = 'SSH-Chroot Opties';
 $wb['web_php_options_txt'] = 'PHP Opties';
 $wb['limit_client_error'] = 'Het max. aantal klanten is bereikt.';
 $wb['limit_client_error_positive_or_unlimited'] = 'Het aantal klanten moet > 0';
-$wb['limit_web_quota_txt'] = 'Web Quota';
+$wb['limit_web_quota_txt'] = 'Web quota';
 $wb['limit_traffic_quota_txt'] = 'Traffic Quota';
 $wb['limit_trafficquota_error_notint'] = 'Traffic Quota moet een numerieke waarde zijn.';
-$wb['customer_no_txt'] = 'Klant nr.';
-$wb['vat_id_txt'] = 'BTW ID';
+$wb['customer_no_txt'] = 'Klantnummer';
+$wb['vat_id_txt'] = 'BTW nummer';
 $wb['required_fields_txt'] = '* Verplichte velden';
 $wb['limit_webdav_user_txt'] = 'Max. number of Webdav users';
 $wb['limit_webdav_user_error_notint'] = 'The webdav user limit must be a number.';
diff --git a/interface/web/client/lib/lang/nl_resellers_list.lng b/interface/web/client/lib/lang/nl_resellers_list.lng
index 6360eecbe6..cae7563144 100644
--- a/interface/web/client/lib/lang/nl_resellers_list.lng
+++ b/interface/web/client/lib/lang/nl_resellers_list.lng
@@ -6,6 +6,6 @@ $wb['contact_name_txt'] = 'Contactnaam';
 $wb['city_txt'] = 'Plaatsnaam';
 $wb['country_txt'] = 'Land';
 $wb['add_new_record_txt'] = 'Toevoegen nieuwe reseller';
-$wb['customer_no_txt'] = 'Customer No.';
-$wb['username_txt'] = 'Username';
+$wb['customer_no_txt'] = 'Klantnummer';
+$wb['username_txt'] = 'Gebruikersnaam';
 ?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng b/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng
index 581f48ac47..c2bab859a8 100644
--- a/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_quota.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['quota_txt'] = 'Website Harddisk Quota';
-$wb['domain_txt'] = 'Domeinn / Website';
+$wb['quota_txt'] = 'Website harddisk Quota';
+$wb['domain_txt'] = 'Domein / Website';
 $wb['used_txt'] = 'Gebruikte ruimte';
 $wb['hard_txt'] = 'Harde limiet';
 $wb['soft_txt'] = 'Zachte limiet';
diff --git a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng
index 183d1a8349..2ac184dd91 100644
--- a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng
+++ b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng
@@ -1,11 +1,11 @@
 <?php
 $wb['list_head_txt'] = 'DNS-Zones';
-$wb['active_txt'] = 'Active';
+$wb['active_txt'] = 'Actief';
 $wb['server_id_txt'] = 'Server';
 $wb['origin_txt'] = 'Zone';
 $wb['ns_txt'] = 'NS';
-$wb['mbox_txt'] = 'Email';
-$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard';
-$wb['add_new_record_txt'] = 'Add new DNS Zone manually';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['mbox_txt'] = 'E-mail';
+$wb['add_new_record_wizard_txt'] = 'DNS Zone via wizard toevoegen';
+$wb['add_new_record_txt'] = 'DNS Zone manueel toevoegen';
+$wb['sys_groupid_txt'] = 'Klant';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_soa_list.lng b/interface/web/dns/lib/lang/nl_dns_soa_list.lng
index 547c740432..b86e5a3fdc 100644
--- a/interface/web/dns/lib/lang/nl_dns_soa_list.lng
+++ b/interface/web/dns/lib/lang/nl_dns_soa_list.lng
@@ -5,7 +5,7 @@ $wb['server_id_txt'] = 'Server';
 $wb['origin_txt'] = 'Zone';
 $wb['ns_txt'] = 'NS';
 $wb['mbox_txt'] = 'E-mail';
-$wb['add_new_record_wizard_txt'] = 'Toevoegen nieuw DNS Zone met wizard';
+$wb['add_new_record_wizard_txt'] = 'Toevoegen nieuwe DNS Zone met wizard';
 $wb['add_new_record_txt'] = 'Toevoegen nieuwe DNS Zone (handmatig)';
-$wb['import_zone_file_txt'] = 'Import Zone File';
+$wb['import_zone_file_txt'] = 'Importeer zone bestand';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_wizard.lng b/interface/web/dns/lib/lang/nl_dns_wizard.lng
index fa4cdf9cea..3fbe6c71ba 100644
--- a/interface/web/dns/lib/lang/nl_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/nl_dns_wizard.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['template_id_txt'] = 'Template';
+$wb['template_id_txt'] = 'Sjabloon';
 $wb['server_id_txt'] = 'Server';
 $wb['client_txt'] = 'Klant';
 $wb['btn_save_txt'] = 'Aanmaken DNS Record';
@@ -10,35 +10,35 @@ $wb['ns1_txt'] = 'NS 1';
 $wb['ns2_txt'] = 'NS 2';
 $wb['ip_txt'] = 'IP-adres';
 $wb['ipv6_txt'] = 'IPv6-adres';
-$wb['error_origin_empty'] = 'Oorspong is niet ingvuld.';
-$wb['error_ns_empty'] = 'NS is niet ingvuld.';
-$wb['error_mbox_empty'] = 'Mbox is niet ingvuld.';
-$wb['error_refresh_empty'] = 'Ververs is niet ingvuld.';
-$wb['error_retry_empty'] = 'Opnieuw proberen is niet ingvuld.';
-$wb['error_expire_empty'] = 'Verlopen is niet ingvuld.';
-$wb['error_minimum_empty'] = 'Minimum is niet ingvuld.';
-$wb['error_ttl_empty'] = 'TTL is niet ingvuld.';
-$wb['error_domain_empty'] = 'Domein is niet ingvuld';
-$wb['error_ip_empty'] = 'IP is niet ingvuld.';
-$wb['error_ipv6_empty'] = 'IPv6 is niet ingvuld.';
-$wb['error_ns1_empty'] = 'NS1 is niet ingvuld.';
-$wb['error_ns2_empty'] = 'NS2 is niet ingvuld.';
-$wb['error_email_empty'] = 'E-mail is niet ingvuld.';
+$wb['error_origin_empty'] = 'Oorspong is niet ingevuld.';
+$wb['error_ns_empty'] = 'NS is niet ingevuld.';
+$wb['error_mbox_empty'] = 'Mbox is niet ingevuld.';
+$wb['error_refresh_empty'] = 'Ververs is niet ingevuld.';
+$wb['error_retry_empty'] = 'Opnieuw proberen is niet ingevuld.';
+$wb['error_expire_empty'] = 'Verlopen is niet ingevuld.';
+$wb['error_minimum_empty'] = 'Minimum is niet ingevuld.';
+$wb['error_ttl_empty'] = 'TTL is niet ingevuld.';
+$wb['error_domain_empty'] = 'Domein is niet ingevuld';
+$wb['error_ip_empty'] = 'IP is niet ingevuld.';
+$wb['error_ipv6_empty'] = 'IPv6 is niet ingevuld.';
+$wb['error_ns1_empty'] = 'NS1 is niet ingevuld.';
+$wb['error_ns2_empty'] = 'NS2 is niet ingevuld.';
+$wb['error_email_empty'] = 'E-mail is niet ingevuld.';
 $wb['error_domain_regex'] = 'Domein bevat ongeldige karakters.';
 $wb['error_ns1_regex'] = 'NS1 bevat ongeldige karakters.';
 $wb['error_ns2_regex'] = 'NS2 bevat ongeldige karakters.';
 $wb['error_email_regex'] = 'E-mail bevat geen geldig e-mailadres.';
 $wb['dns_zone_txt'] = 'DNS Zone';
-$wb['globalsearch_resultslimit_of_txt'] = 'of';
-$wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
+$wb['globalsearch_resultslimit_of_txt'] = 'van';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultaten';
+$wb['globalsearch_noresults_text_txt'] = 'Geen resultaten.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultaten';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Zoeken';
+$wb['globalsearch_suggestions_text_txt'] = 'Suggesties';
 $wb['list_head_txt'] = 'DNS Zone Wizard';
-$wb['list_desc_txt'] = 'Create a DNS Zone via a wizard';
-$wb['dkim_txt'] = 'DKIM enabled';
-$wb['error_no_server_id'] = 'No server provided.';
-$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['list_desc_txt'] = 'DNS Zone via de wizard toevoegen';
+$wb['dkim_txt'] = 'DKIM ingeschakeld';
+$wb['error_no_server_id'] = 'Geen server opgegeven.';
+$wb['error_not_allowed_server_id'] = 'De geselecteerde server mag niet voor dit account gebruikt worden.';
+$wb['dnssec_txt'] = 'Zone signeren (DNSSEC)';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng b/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng
index 5dae5a33ec..c25d743da6 100644
--- a/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Web traffic';
+$wb['list_head_txt'] = 'Web verkeer';
 $wb['domain_txt'] = 'Domein';
 $wb['this_month_txt'] = 'Deze maand';
 $wb['last_month_txt'] = 'Vorige maand';
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
index 426a131667..23ca63306e 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
@@ -113,38 +113,38 @@ $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snipp
 $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
 $wb['no_server_error'] = 'No server selected.';
-$wb['no_backup_txt'] = 'No backup';
-$wb['daily_backup_txt'] = 'Daily';
-$wb['weekly_backup_txt'] = 'Weekly';
-$wb['monthly_backup_txt'] = 'Monthly';
+$wb['no_backup_txt'] = 'Geen backup';
+$wb['daily_backup_txt'] = 'Dagelijks';
+$wb['weekly_backup_txt'] = 'Wekelijks';
+$wb['monthly_backup_txt'] = 'Maandelijks';
 $wb['rewrite_rules_txt'] = 'Rewrite Rules';
 $wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
 $wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
-$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
+$wb['configuration_error_txt'] = 'CONFIGURATIE FOUT';
 $wb['web_folder_txt'] = 'Web folder';
 $wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.';
 $wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
 $wb['host_txt'] = 'Hostname';
 $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
 $wb['variables_txt'] = 'Variables';
-$wb['added_by_txt'] = 'Added by';
-$wb['added_date_txt'] = 'Added date';
-$wb['backup_excludes_txt'] = 'Excluded Directories';
+$wb['added_by_txt'] = 'Toegevoegd door';
+$wb['added_date_txt'] = 'Datum toegevoegd';
+$wb['backup_excludes_txt'] = 'Uitgesloten directories';
 $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
 $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
 $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.';
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['enable_spdy_txt'] = 'Enable SPDY';
+$wb['btn_save_txt'] = 'Opslaan';
+$wb['btn_cancel_txt'] = 'Annuleren';
+$wb['enable_spdy_txt'] = 'SPDY inschakelen';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
-$wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['directive_snippets_id_txt'] = 'Web server config';
-$wb['http_port_txt'] = 'HTTP Port';
-$wb['https_port_txt'] = 'HTTPS Port';
-$wb['http_port_error_regex'] = 'HTTP Port invalid.';
-$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['rewrite_to_https_txt'] = 'Herschrijf HTTP naar HTTPS';
+$wb['password_strength_txt'] = 'Wachtwoord sterkte';
+$wb['directive_snippets_id_txt'] = 'Web server configuratie';
+$wb['http_port_txt'] = 'HTTP Poort';
+$wb['https_port_txt'] = 'HTTPS Poort';
+$wb['http_port_error_regex'] = 'HTTP Poort niet correct.';
+$wb['https_port_error_regex'] = 'HTTPS Poort niet correct.';
 ?>
-- 
GitLab


From 46d2d1a9ff857227bcb21b5bd6136aa40f53286e Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 8 Jul 2016 22:15:22 +0200
Subject: [PATCH 083/313] Dutch language adjustments for Interface and Mail

---
 interface/lib/lang/nl.lng                    | 154 +++++++++----------
 interface/web/mail/lib/lang/nl_mail_user.lng |  34 ++--
 2 files changed, 94 insertions(+), 94 deletions(-)

diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng
index 86ab8b7e78..a71f9f2bdc 100644
--- a/interface/lib/lang/nl.lng
+++ b/interface/lib/lang/nl.lng
@@ -10,9 +10,9 @@ $wb['number_format_dec_point'] = ',';
 $wb['number_format_thousands_sep'] = '';
 $wb['error_301'] = 'Module niet toegestaan voor de huidige gebruiker.';
 $wb['error_302'] = 'Ongeldige module.';
-$wb['error_1001'] = 'De gebruikersnaam en wachtwoord kunnen niet leeg zijn!';
-$wb['error_1002'] = 'De gebruikersnaam en/of wachtwoord zijn onjuist!';
-$wb['error_1003'] = 'De gebruikersnaam wordt gedeactiveerd!';
+$wb['error_1001'] = 'Gebruikersnaam en wachtwoord kunnen niet leeg zijn!';
+$wb['error_1002'] = 'Gebruikersnaam en/of wachtwoord zijn onjuist!';
+$wb['error_1003'] = 'Gebruikersnaam wordt gedeactiveerd!';
 $wb['delete_confirmation'] = 'Wilt u dit record echt verwijderen?';
 $wb['error_no_view_permission'] = 'U heeft geen toestemming om dit record te bekijken of dit record bestaat niet!';
 $wb['error_no_delete_permission'] = 'U heeft geen toestemming om dit record te verwijderen!';
@@ -40,106 +40,106 @@ $wb['top_menu_domain'] = 'Domeinen';
 $wb['top_menu_dashboard'] = 'Home';
 $wb['latest_news_txt'] = 'Laatste nieuws';
 $wb['top_menu_vm'] = 'VServer';
-$wb['daynamesmin_su'] = 'Su';
-$wb['daynamesmin_mo'] = 'Mo';
-$wb['daynamesmin_tu'] = 'Tu';
-$wb['daynamesmin_we'] = 'We';
-$wb['daynamesmin_th'] = 'Th';
-$wb['daynamesmin_fr'] = 'Fr';
-$wb['daynamesmin_sa'] = 'Sa';
-$wb['daynames_sunday'] = 'Sunday';
-$wb['daynames_monday'] = 'Monday';
-$wb['daynames_tuesday'] = 'Tuesday';
-$wb['daynames_wednesday'] = 'Wednesday';
-$wb['daynames_thursday'] = 'Thursday';
-$wb['daynames_friday'] = 'Friday';
-$wb['daynames_saturday'] = 'Saturday';
+$wb['daynamesmin_su'] = 'Zo';
+$wb['daynamesmin_mo'] = 'Ma';
+$wb['daynamesmin_tu'] = 'Di';
+$wb['daynamesmin_we'] = 'Wo';
+$wb['daynamesmin_th'] = 'Do';
+$wb['daynamesmin_fr'] = 'Vr';
+$wb['daynamesmin_sa'] = 'Za';
+$wb['daynames_sunday'] = 'Zondag';
+$wb['daynames_monday'] = 'Maandag';
+$wb['daynames_tuesday'] = 'Dinsdag';
+$wb['daynames_wednesday'] = 'Woensdag';
+$wb['daynames_thursday'] = 'Donderdag';
+$wb['daynames_friday'] = 'Vrijdag';
+$wb['daynames_saturday'] = 'Zaterdag';
 $wb['monthnamesshort_jan'] = 'Jan';
 $wb['monthnamesshort_feb'] = 'Feb';
 $wb['monthnamesshort_mar'] = 'Mar';
 $wb['monthnamesshort_apr'] = 'Apr';
-$wb['monthnamesshort_may'] = 'May';
+$wb['monthnamesshort_may'] = 'Mei';
 $wb['monthnamesshort_jun'] = 'Jun';
 $wb['monthnamesshort_jul'] = 'Jul';
 $wb['monthnamesshort_aug'] = 'Aug';
 $wb['monthnamesshort_sep'] = 'Sep';
-$wb['monthnamesshort_oct'] = 'Oct';
+$wb['monthnamesshort_oct'] = 'Okt';
 $wb['monthnamesshort_nov'] = 'Nov';
 $wb['monthnamesshort_dec'] = 'Dec';
-$wb['datepicker_nextText'] = 'Next';
-$wb['datepicker_prevText'] = 'Prev';
-$wb['logout_txt'] = 'Logout';
-$wb['conf_format_dateshort_human_readable'] = 'yyyy-mm-dd';
-$wb['submit_confirmation'] = 'Do you really want to perform this action?';
+$wb['datepicker_nextText'] = 'Volgende';
+$wb['datepicker_prevText'] = 'Vorige';
+$wb['logout_txt'] = 'Uitloggen';
+$wb['conf_format_dateshort_human_readable'] = 'dd-mm-yyyy';
+$wb['submit_confirmation'] = 'Weet je zeker dat je deze actie wilt uitvoeren ?';
 $wb['top_menu_mailuser'] = 'Mailuser';
-$wb['globalsearch_resultslimit_of_txt'] = 'of';
-$wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
+$wb['globalsearch_resultslimit_of_txt'] = 'van';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultaten';
+$wb['globalsearch_noresults_text_txt'] = 'Geen resultaten.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultaten';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Zoeken';
+$wb['globalsearch_suggestions_text_txt'] = 'Suggesties';
 $wb['global_tabchange_warning_txt'] = 'Changed data in this tab will be changed if you press OK. On cancel they will be discarded.';
 $wb['global_tabchange_discard_txt'] = 'You have unsaved changes in this tab. Changes will be discarded if you continue.';
-$wb['datalog_changes_txt'] = 'The following changes are not yet populated to all servers:';
-$wb['datalog_changes_end_txt'] = 'Storing updates can take up to one minute. Please be patient.';
-$wb['datalog_status_i_web_database'] = 'Create new database';
-$wb['datalog_status_u_web_database'] = 'Update database';
-$wb['datalog_status_d_web_database'] = 'Delete database';
-$wb['datalog_status_i_web_database_user'] = 'Create database user for database';
-$wb['datalog_status_u_web_database_user'] = 'Update database user';
-$wb['datalog_status_d_web_database_user'] = 'Delete database user';
-$wb['datalog_status_i_web_domain'] = 'Create new website';
-$wb['datalog_status_u_web_domain'] = 'Update website settings';
-$wb['datalog_status_d_web_domain'] = 'Delete website';
-$wb['datalog_status_i_ftp_user'] = 'Create FTP user';
-$wb['datalog_status_u_ftp_user'] = 'Update FTP user';
-$wb['datalog_status_d_ftp_user'] = 'Delete FTP user';
-$wb['datalog_status_i_mail_domain'] = 'Create email domain';
-$wb['datalog_status_u_mail_domain'] = 'Update email domain';
-$wb['datalog_status_d_mail_domain'] = 'Delete email domain';
-$wb['datalog_status_i_mail_user'] = 'Create email user';
-$wb['datalog_status_u_mail_user'] = 'Update email user';
-$wb['datalog_status_d_mail_user'] = 'Delete email user';
-$wb['datalog_status_i_mail_forwarding'] = 'Create email address';
-$wb['datalog_status_u_mail_forwarding'] = 'Update email address';
-$wb['datalog_status_d_mail_forwarding'] = 'Delete email address';
-$wb['datalog_status_i_dns_rr'] = 'Create DNS record';
-$wb['datalog_status_u_dns_rr'] = 'Update DNS record';
-$wb['datalog_status_d_dns_rr'] = 'Delete DNS record';
-$wb['datalog_status_i_dns_soa'] = 'Create DNS zone';
-$wb['datalog_status_u_dns_soa'] = 'Update DNS zone';
-$wb['datalog_status_d_dns_soa'] = 'Delete DNS zone';
-$wb['datalog_status_i_cron'] = 'Create cron job';
-$wb['datalog_status_u_cron'] = 'Update cron job';
-$wb['datalog_status_d_cron'] = 'Delete cron job';
+$wb['datalog_changes_txt'] = 'De volgende wijzigingen zijn nog niet op alle servers doorgevoerd:';
+$wb['datalog_changes_end_txt'] = 'Het doorvoeren van updates kan tot één minuut duren. Even geduld a.u.b.';
+$wb['datalog_status_i_web_database'] = 'Aanmaken nieuwe database';
+$wb['datalog_status_u_web_database'] = 'Database bijwerken';
+$wb['datalog_status_d_web_database'] = 'Database verwijderen';
+$wb['datalog_status_i_web_database_user'] = 'Aanmaken database gebruiker voor database';
+$wb['datalog_status_u_web_database_user'] = 'Database gebruiker bijwerken';
+$wb['datalog_status_d_web_database_user'] = 'Database gebruiker verwijderen';
+$wb['datalog_status_i_web_domain'] = 'Aanmaken nieuwe website';
+$wb['datalog_status_u_web_domain'] = 'Bijwerken website instellingen';
+$wb['datalog_status_d_web_domain'] = 'Verwijderen website';
+$wb['datalog_status_i_ftp_user'] = 'Aanmaken FTP gebruiker';
+$wb['datalog_status_u_ftp_user'] = 'Bijwerken FTP gebruiker';
+$wb['datalog_status_d_ftp_user'] = 'Verwijderen FTP gebruiker';
+$wb['datalog_status_i_mail_domain'] = 'Aanmaken e-mail domein';
+$wb['datalog_status_u_mail_domain'] = 'Bijwerken e-mail domein';
+$wb['datalog_status_d_mail_domain'] = 'Verwijderen e-mail domein';
+$wb['datalog_status_i_mail_user'] = 'Aanmaken e-mail gebruiker';
+$wb['datalog_status_u_mail_user'] = 'Bijwerken e-mail gebruiker';
+$wb['datalog_status_d_mail_user'] = 'Verwijderen e-mail gebruiker';
+$wb['datalog_status_i_mail_forwarding'] = 'Aanmaken e-mail adres';
+$wb['datalog_status_u_mail_forwarding'] = 'Bijwerken e-mail adres';
+$wb['datalog_status_d_mail_forwarding'] = 'Verwijderen e-mail adres';
+$wb['datalog_status_i_dns_rr'] = 'Aanmaken DNS record';
+$wb['datalog_status_u_dns_rr'] = 'Bijwerken DNS record';
+$wb['datalog_status_d_dns_rr'] = 'Verwijderen DNS record';
+$wb['datalog_status_i_dns_soa'] = 'Aanmaken DNS zone';
+$wb['datalog_status_u_dns_soa'] = 'Bijwerken DNS zone';
+$wb['datalog_status_d_dns_soa'] = 'Verwijderen DNS zone';
+$wb['datalog_status_i_cron'] = 'Aanmaken cron job';
+$wb['datalog_status_u_cron'] = 'Bijwerken cron job';
+$wb['datalog_status_d_cron'] = 'Verwijderen cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
 $wb['datalog_status_d_mail_get'] = 'Delete mail fetcher account';
 $wb['datalog_status_i_mail_mailinglist'] = 'Create mailing list';
 $wb['datalog_status_u_mail_mailinglist'] = 'Update mailing list';
 $wb['datalog_status_d_mail_mailinglist'] = 'Delete mailing list';
-$wb['datalog_status_i_shell_user'] = 'Create shell user';
-$wb['datalog_status_u_shell_user'] = 'Update shell user';
-$wb['datalog_status_d_shell_user'] = 'Delete shell user';
-$wb['datalog_status_i_web_folder'] = 'Create folder protection';
-$wb['datalog_status_u_web_folder'] = 'Update folder protection';
-$wb['datalog_status_d_web_folder'] = 'Delete folder protection';
+$wb['datalog_status_i_shell_user'] = 'Aanmaken shell gebruiker (ssh)';
+$wb['datalog_status_u_shell_user'] = 'Bijwerken shell gebruiker (ssh)';
+$wb['datalog_status_d_shell_user'] = 'Verwijderen shell gebruiker (ssh)';
+$wb['datalog_status_i_web_folder'] = 'Aanmaken folder protectie';
+$wb['datalog_status_u_web_folder'] = 'Bijwerken folder protectie';
+$wb['datalog_status_d_web_folder'] = 'Verwijderen folder protectie';
 $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user';
 $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user';
 $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user';
-$wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings';
-$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
-$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
-$wb['login_as_txt'] = 'Log in as';
+$wb['datalog_status_i_spamfilter_users'] = 'Aanmaken spam filter instellngen';
+$wb['datalog_status_u_spamfilter_users'] = 'Bijwerken spam filter instellngen';
+$wb['datalog_status_d_spamfilter_users'] = 'Verwijderen spam filter instellngen';
+$wb['login_as_txt'] = 'Inloggen als';
 $wb['no_domain_perm'] = 'You have no permission for this domain.';
 $wb['no_destination_perm'] = 'You have no permission for this destination.';
 $wb['client_you_are_locked'] = 'You have no permission to change any settings.';
-$wb['gender_m_txt'] = 'Mr.';
-$wb['gender_f_txt'] = 'Ms.';
+$wb['gender_m_txt'] = 'Dhr.';
+$wb['gender_f_txt'] = 'Mevr.';
 $wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'This client has records in the billing module, therefore he cannot be deleted.';
-$wb['yes_txt'] = 'Yes';
-$wb['no_txt'] = 'No';
-$wb['None'] = 'None';
+$wb['yes_txt'] = 'Ja';
+$wb['no_txt'] = 'Nee';
+$wb['None'] = 'Geen';
 $wb['strength_1'] = 'Weak';
 $wb['strength_2'] = 'Fair';
 $wb['strength_3'] = 'Good';
diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng
index 4c0eed548a..f577efd4d3 100644
--- a/interface/web/mail/lib/lang/nl_mail_user.lng
+++ b/interface/web/mail/lib/lang/nl_mail_user.lng
@@ -4,23 +4,23 @@ $wb['email_txt'] = 'E-mail';
 $wb['cryptpwd_txt'] = 'Wachtwoord';
 $wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['active_txt'] = 'Actief';
-$wb['email_error_isemail'] = 'Email adress is ongeldig.';
+$wb['email_error_isemail'] = 'E-mail adres is ongeldig.';
 $wb['email_error_unique'] = 'Duplicaat e-mail adres.';
 $wb['autoresponder_text_txt'] = 'Tekst';
 $wb['autoresponder_txt'] = 'Actief';
 $wb['autoresponder_start_date_txt'] = 'Start op';
 $wb['autoresponder_start_date_ispast'] = 'Start datum mag niet in het verleden liggen.';
-$wb['autoresponder_end_date_txt'] = 'Eindigd op';
+$wb['autoresponder_end_date_txt'] = 'Eindigt op';
 $wb['autoresponder_end_date_isgreater'] = 'Einddatum moet later zijn dan de startdatum.';
 $wb['no_domain_perm'] = 'U heeft geen toestemming voor dit domein.';
-$wb['error_no_pwd'] = 'Wachtwoord is niet ingvuld.';
+$wb['error_no_pwd'] = 'Wachtwoord is niet ingevuld.';
 $wb['quota_error_isint'] = 'Mailbox grootte moet een numerieke waarde zijn.';
 $wb['quota_txt'] = 'Quota';
 $wb['server_id_txt'] = 'Server_id';
 $wb['password_txt'] = 'Wachtwoord';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Ontvangen inschakelen';
-$wb['greylisting_txt'] = 'Enable greylisting';
+$wb['greylisting_txt'] = 'Greylisting inschakelen';
 $wb['access_txt'] = 'Toegang inschakelen';
 $wb['policy_txt'] = 'Spamfilter';
 $wb['no_policy'] = '- niet ingeschakeld -';
@@ -30,24 +30,24 @@ $wb['disableimap_txt'] = 'Uitschakelen IMAP';
 $wb['disablepop3_txt'] = 'Uitschakelen POP3';
 $wb['duplicate_alias_or_forward_txt'] = 'Er is al een alias of forward met dir e-mailadres.';
 $wb['quota_error_value'] = 'Ongeldige quota waarde. Toegestane waarden zijn: 0 = ongelimiteerd of nummerieke waarde > 1';
-$wb['move_junk_txt'] = 'Verplaats Spam e-mails naar junk directory';
+$wb['move_junk_txt'] = 'Verplaats SPAM e-mails naar junk folder';
 $wb['name_txt'] = 'Echte naam';
 $wb['name_optional_txt'] = '(Optioneel)';
 $wb['autoresponder_active'] = 'Inschakelen autoresponder';
 $wb['cc_txt'] = 'Stuur kopie naar';
-$wb['cc_error_isemail'] = 'Het  Stuur kopie naar veld bevat geen geldig e-mailadres';
+$wb['cc_error_isemail'] = 'Het "Stuur kopie naar" veld bevat geen geldig e-mail adres';
 $wb['domain_txt'] = 'Domain';
 $wb['now_txt'] = 'Now';
 $wb['login_error_unique'] = 'Login is already taken.';
 $wb['login_error_regex'] = 'Valid characters are A-Z, a-z, 0-9, ., _ and -.';
 $wb['login_txt'] = 'Login (optional)';
 $wb['error_login_email_txt'] = 'This login is not allowed. Please enter a different login or use the mail address as login.';
-$wb['autoresponder_subject_txt'] = 'Email Subject';
-$wb['autoresponder_subject'] = 'Out of office reply';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['autoresponder_subject_txt'] = 'E-mail onderwerp';
+$wb['autoresponder_subject'] = 'Out of office antwoord';
+$wb['generate_password_txt'] = 'Genereer wachtwoord';
+$wb['repeat_password_txt'] = 'Herhaal wachtwoord';
+$wb['password_mismatch_txt'] = 'De wachtwoorden zijn niet gelijk.';
+$wb['password_match_txt'] = 'De wachtwoord zijn gelijk.';
 $wb['backup_interval_txt'] = 'Backup interval';
 $wb['backup_copies_txt'] = 'Number of backup copies';
 $wb['no_backup_txt'] = 'No backup';
@@ -55,10 +55,10 @@ $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
 $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.';
-$wb['cc_note_txt'] = '(Separate multiple email addresses with commas)';
-$wb['disablesmtp_txt'] = 'Disable SMTP (sending)';
+$wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
+$wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)';
 $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.';
-$wb['sender_cc_txt'] = 'Send outgoing copy to';
-$wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
-$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan';
+$wb['sender_cc_error_isemail'] = 'Het "Stuur uitgaande kopie aan" veld bevat geen geldig e-mail adres';
+$wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
 ?>
-- 
GitLab


From 11fd5d0820c566ee206abb17a0bcaef6c21a49f2 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Sun, 10 Jul 2016 09:03:19 +0200
Subject: [PATCH 084/313] More dutch language adjustments

---
 interface/web/sites/lib/lang/nl_web_domain.lng |  4 ++--
 .../web/sites/lib/lang/nl_web_vhost_domain.lng | 18 +++++++++---------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng
index 6aaa1aae5f..60a06c266a 100644
--- a/interface/web/sites/lib/lang/nl_web_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_domain.lng
@@ -21,7 +21,7 @@ $wb['active_txt'] = 'Actief';
 $wb['document_root_txt'] = 'Documentroot';
 $wb['system_user_txt'] = 'Linux gebruiker';
 $wb['system_group_txt'] = 'Linux Groep';
-$wb['ip_address_txt'] = 'IP-Adres';
+$wb['ip_address_txt'] = 'IPv4 adres';
 $wb['vhost_type_txt'] = 'VHost type';
 $wb['hd_quota_txt'] = 'Harddisk quota';
 $wb['traffic_quota_txt'] = 'Traffic quota';
@@ -72,7 +72,7 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['ipv6_address_txt'] = 'IPv6-Adres';
+$wb['ipv6_address_txt'] = 'IPv6 adres';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO Redirect';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
index 23ca63306e..6940d62c9e 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
@@ -21,7 +21,7 @@ $wb['active_txt'] = 'Actief';
 $wb['document_root_txt'] = 'Document Root';
 $wb['system_user_txt'] = 'Linux gebruiker';
 $wb['system_group_txt'] = 'Linux Groep';
-$wb['ip_address_txt'] = 'IP-Adres';
+$wb['ip_address_txt'] = 'IPv4 adres';
 $wb['vhost_type_txt'] = 'VHost type';
 $wb['hd_quota_txt'] = 'Harddisk quota';
 $wb['traffic_quota_txt'] = 'Traffic quota';
@@ -49,7 +49,7 @@ $wb['error_ssl_organisation_empty'] = 'SSL Organisatie is niet ingvuld.';
 $wb['error_ssl_organisation_unit_empty'] = 'SSL Organisatie afdeling is niet ingvuld.';
 $wb['error_ssl_country_empty'] = 'SSL land is niet ingvuld.';
 $wb['client_group_id_txt'] = 'Klant';
-$wb['stats_password_txt'] = 'Webstatististieken wachtwoord';
+$wb['stats_password_txt'] = 'Webstatistieken wachtwoord';
 $wb['allow_override_txt'] = 'Apache AllowOverride';
 $wb['limit_web_quota_free_txt'] = 'Max. beschikbare harddisk quota';
 $wb['ssl_state_error_regex'] = 'Ongeldige SSL Provincie/staat. Geldige karakters zijn: a-z, 0-9 and .,-_';
@@ -62,8 +62,8 @@ $wb['redirect_error_regex'] = 'Ongeldig redirect pad. Heldige redirects zijn bij
 $wb['php_open_basedir_txt'] = 'PHP open_basedir';
 $wb['traffic_quota_exceeded_txt'] = 'Traffic quota overschreden';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatististieken gebruikersnaam';
-$wb['stats_type_txt'] = 'Webstatististieken programma';
+$wb['stats_user_txt'] = 'Webstatistieken gebruikersnaam';
+$wb['stats_type_txt'] = 'Webstatistieken programma';
 $wb['custom_php_ini_txt'] = 'Custom php.ini instellingen';
 $wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
 $wb['none_txt'] = 'None';
@@ -73,7 +73,7 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['save_certificate_txt'] = 'Certificaat opslaan';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Certificaat verwijderen';
-$wb['ipv6_address_txt'] = 'IPv6-Adres';
+$wb['ipv6_address_txt'] = 'IPv6 adres';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO Redirect';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
@@ -101,10 +101,10 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
 $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
 $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
 $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['generate_password_txt'] = 'Genereer wachtwoord';
+$wb['repeat_password_txt'] = 'Herhaal wachtwoord';
+$wb['password_mismatch_txt'] = 'De wachtwoorden zijn ongelijk.';
+$wb['password_match_txt'] = 'De wachtwoorden zijn gelijk.';
 $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
 $wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
 $wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-- 
GitLab


From 58b8f2bf6dbed7a63150f35e6e3b9fe835ce98ac Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 10 Jul 2016 11:02:07 +0200
Subject: [PATCH 085/313] - replace *:* by 127.0.0.1:* in amavis config

---
 install/dist/tpl/gentoo/amavisd-ispconfig.conf.master | 6 +++---
 install/tpl/fedora_amavisd_conf.master                | 4 ++--
 install/tpl/opensuse_amavisd_conf.master              | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master
index c05ce9835b..88a32b4636 100644
--- a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master
+++ b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master
@@ -95,9 +95,9 @@ $log_level = 0;                # (defaults to 0)
 
 $inet_socket_port = [10024,10026];
 
-# *:* = send to IP/HOST:incoming Port + 1
-$forward_method = 'smtp:*:*';
-$notify_method = 'smtp:*:*';
+# :* = send to incoming Port + 1
+$forward_method = 'smtp:127.0.0.1:*';
+$notify_method = 'smtp:127.0.0.1:*';
 
 $interface_policy{'10026'} = 'ORIGINATING';
 $policy_bank{'ORIGINATING'} = {
diff --git a/install/tpl/fedora_amavisd_conf.master b/install/tpl/fedora_amavisd_conf.master
index 6e454e7cac..f32530cfab 100644
--- a/install/tpl/fedora_amavisd_conf.master
+++ b/install/tpl/fedora_amavisd_conf.master
@@ -146,8 +146,8 @@ $defang_by_ccat{+CC_BADH.",6"} = 1;  # header field syntax error
 
 $myhostname = '{hostname}';
 
-$notify_method  = 'smtp:*:*';
-$forward_method = 'smtp:*:*';  # set to undef with milter!
+$notify_method  = 'smtp:127.0.0.1:*';
+$forward_method = 'smtp:127.0.0.1:*';  # set to undef with milter!
 
 # $os_fingerprint_method = 'p0f:127.0.0.1:2345';  # to query p0f-analyzer.pl
 
diff --git a/install/tpl/opensuse_amavisd_conf.master b/install/tpl/opensuse_amavisd_conf.master
index a756bb5b25..582dd11631 100644
--- a/install/tpl/opensuse_amavisd_conf.master
+++ b/install/tpl/opensuse_amavisd_conf.master
@@ -145,8 +145,8 @@ $defang_by_ccat{+CC_BADH.",6"} = 1;  # header field syntax error
 
 $myhostname = 'linux-jfp8.site';
 
-$notify_method  = 'smtp:*:*';
-$forward_method = 'smtp:*:*';  # set to undef with milter!
+$notify_method  = 'smtp:127.0.0.1:*';
+$forward_method = 'smtp:127.0.0.1:*';  # set to undef with milter!
 
 # $final_virus_destiny      = D_DISCARD;
 # $final_banned_destiny     = D_BOUNCE;
-- 
GitLab


From 1fad40cafb70734c94cf8e5558d739c8956f0b70 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Sun, 10 Jul 2016 17:00:47 +0200
Subject: [PATCH 086/313] disallow underscore in maildomain-names

---
 interface/lib/classes/tform_base.inc.php      | 20 +++++++++++++++++++
 interface/web/mail/form/mail_domain.tform.php |  3 +--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 0c9cda5f51..1c5c6e08af 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -992,6 +992,26 @@ class tform_base {
 					}
 				}
 				break;
+			case 'ISDOMAIN':
+				$error = false;
+				if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
+				if($validator['allowempty'] == 'y' && $field_value == '') {
+					//* Do nothing
+				} else {
+					if(function_exists('filter_var')) {
+						if(filter_var('check@'.$field_value, FILTER_VALIDATE_EMAIL) === false) {
+							$errmsg = $validator['errmsg'];
+							if(isset($this->wordbook[$errmsg])) {
+								$this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
+							} else {
+								$this->errorMessage .= $errmsg."<br />\r\n";
+							}
+						}
+
+					} else $this->errorMessage .= "function filter_var missing <br />\r\n";
+				}
+				unset($error);
+				break;
 			case 'ISEMAIL':
 				$error = false;
 				if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
diff --git a/interface/web/mail/form/mail_domain.tform.php b/interface/web/mail/form/mail_domain.tform.php
index 5a63d8423b..06fb0906c3 100644
--- a/interface/web/mail/form/mail_domain.tform.php
+++ b/interface/web/mail/form/mail_domain.tform.php
@@ -88,8 +88,7 @@ $form["tabs"]['domain'] = array (
 					'errmsg'=> 'domain_error_empty'),
 				1 => array ( 'type' => 'UNIQUE',
 					'errmsg'=> 'domain_error_unique'),
-				2 => array ( 'type' => 'REGEX',
-					'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/',
+				2 => array ( 'type' => 'ISDOMAIN',
 					'errmsg'=> 'domain_error_regex'),
 			),
 			'default' => '',
-- 
GitLab


From fb024aaf713356d3790933d5dad84b48ec76d23e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristia=CC=81n=20Feldsam?= <feldsam@gmail.com>
Date: Thu, 7 Jul 2016 14:53:34 +0200
Subject: [PATCH 087/313] Fixed deleting spamfilter users when deleting mail
 domain
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Kristián Feldsam <feldsam@gmail.com>

# Conflicts:
#	interface/web/mail/mail_domain_del.php
---
 interface/web/mail/mail_domain_del.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/mail/mail_domain_del.php b/interface/web/mail/mail_domain_del.php
index 6941cd6082..bce89695dc 100644
--- a/interface/web/mail/mail_domain_del.php
+++ b/interface/web/mail/mail_domain_del.php
@@ -78,7 +78,7 @@ class page_action extends tform_actions {
 		}
 
 		// Delete all spamfilters that belong to this domain
-		$records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email = ?", '%@' . $domain);
+		$records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email like ?", '%@' . $domain);
 		foreach($records as $rec) {
 			$app->db->datalogDelete('spamfilter_users', 'id', $rec['id']);
 		}
-- 
GitLab


From 575df5615ccb501f51cdd6e2986766a16960f674 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Tue, 12 Jul 2016 10:26:02 +0200
Subject: [PATCH 088/313] Fixed loading indicator (missing css/img), fixed
 #4018

---
 .../themes/default/assets/images/ajax-loader.gif | Bin 0 -> 3208 bytes
 .../default/assets/stylesheets/ispconfig.css     |  13 +++++++++++++
 .../default/assets/stylesheets/ispconfig.min.css |   2 +-
 3 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 interface/web/themes/default/assets/images/ajax-loader.gif

diff --git a/interface/web/themes/default/assets/images/ajax-loader.gif b/interface/web/themes/default/assets/images/ajax-loader.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7c4804ebcaec27b830873a1ff4d157f1bde00ef1
GIT binary patch
literal 3208
zcmc(idr%X10>_u^BadA@-3>MnI0F(9Y9Xjlo+<<g5Riv}pePcff{G{)fglhbA>j=n
zybK@-B!*~3#0O}#JPT@Zu%e<pIiRf~zU$btz0P^y)edw2-b`=*+}YWk&*%63erJ~F
z>+R?i!va{q8vuC!{(XFW{KUjWS6A2A*x10pKyh(#Q&ZE-%*@M|FUQBnv$C=h5)y!q
zm)XCJxrw`Dl6MPPsd34%teAZ<X$KNwgf?*p_ap#jzd!(O?oqS%=q9hw&0O~&uQfIt
z&|vP?>iIX!e-wZoFB$fYi_y%EJQnaJ7LDGRVM_?fT@iYAHCeM}^RzX`-q!Y7y!w!t
zsH*oHjuB~zi^U*^YtUdr^0hYm&4;_nedE#u11QgIty8G|rKnquR=P#f=AFGS&Ycy~
z$*E~Pw@8S#mk#Bn`Unb4k09=Dat<{-sv%0|LM6dqtES<&i$<^X(G{sro@(qgt>auc
zpUkfGNh&N(jCA$Mw#gv|3oq7CugV2q5nGJ~LxEm<ouRsHUgUP09=8YXe-8|9NGf;)
z%ti_NV{M$Cxh3s=o87dl<jwABQ+(VSFTY!`2l(7`PQwQs1`F9|=h-7$XGcy%dfU?*
zy(`AlAxOU>RKVa}@{?Tdd3MTQ-zc0iezj5(8K1_SDO2=gh7c<XqtiFm8R6pDUc+N7
z3UmgtWBj%<B(FnG_~5j426n;czB?L@7_mtr=m;IkUa^lOrIpbSl<@XuaI(Nc*Bn=B
z{x<bCX>4VhM#XD`Xz6Y0wiE5rmJ2o8nmDzWm|ybFRWfzjpaM|?J`{WHs%oHazo-w7
zGp@ZxNiS=@bv^c|=uWJh_b`7td{Et<^8|R_{WL0;c)YE>>?JVNDl2-svij4?<}FR1
zUv!)_8a5;Sj!#;M|6&f`%5Dz-u^rD|xLvZUS`{*MRuQ_UM6u65KcoM)D~s4RYCjo3
zzdA|dj2c-<jA$(Xu4S#hq=HxRk`XW6&`$a}2tI^s!f0p?v||sQP08KS0T2IRN<vaF
z7lI@bkuo{?5lkwra5D$ooobp6?RO<Nu&KubTUrXMsFhk#t3E^i#VP&KHht@b7B#!u
z<k)5U74P=A61zSHM^-47YHxfQc}__j>vtSTEBZ=aLKPjqwy_W|yyyDxBrpve8|t0-
zeg<g2%6#Vd`f;Rdd&w+*O+#^fBRvr%4KlPie_3ND?_IR?V*<d13g*+_#!%0W>^1TV
zThds=y3-sYjZuVpEV<vhn3%eHXuaiy>ek(qw-&N`a~VjFlCJQw;~E?k50ugKu4Uc3
z1Na%OUiP=u?lILAy>Vk$>W*~=zU-if6O_d%Xz;SNYe^ZL93;*zRKkPzrkbQ@vOyW!
zGNhrAz?xMkOf8d?xT*A*_C(`JtVMHTZPNu_4ZB-$=+YIAmR3)6`h_G&?1|w5j_-gr
zK7GFo>Q5UXD50|G%;8n#faKne>FIQSV_DL9{8_`3^>NWUcG;a52Y+?Dk550iet3M{
z?vc*|`da@;KeUkj!|_||W=AZoyfnh?)fEIo+aDA{b*Ctt&A#}jC{dnU)gVZ%TEun`
zoAX*%2`#pnOXctUI{w<@9s5NE0><FXU?`|`=OMO9UxBTMcTm)>utn30HiV8QleX9%
zLdd+8fyth5OteW7lx}*!(=wp0o<JKK4^xYhchxm&P?fq~iwc_6YmRkzf>jj(Aci@c
zR-QNR?ncXnDjA!E^k7J~dL28-3hlXEnUV+Pd99^)VJ$#pnAoToNPbZB=uzd@o<$aq
z{Ne(hyG}+<x)hC{A;fh;*D6*ZDK|OdC)dN4pDy)S{KxUb3l+SXAApdyxdAZuW3w7-
zD(EV$SMXMS#cBLo{H4E8Ui6R8B2Q~+Z)0<7_Rj>Xj*9bf`>7QCDz+~2oi9Dl!0==<
z3EH$sumzQtic>13_Db4|-o)IWsi)ZK0_G>{cd$tbwuwhf4>(!+%c}^ark3ooyg=$y
zdmK?VR5c^@k`{&D2^6zSO<)uSi{qR+JCR0Q$Kq1R-6+|-z{3>8JRqd|yk`<oPA6j+
zLI-c|h=BHFS_Dz=VHy4t8-jrA7^+YPt^?3}qdi`?-#|agmElh<7+sI9FEtPXB)`!W
zR=DIZhr*Zk^;mpd0%W0wrwcqt=AytdRE6|y-Bf5DWNmPA%H@tlP=>W)Q*O`mD6i3q
zpUf!Pc42{Q9(q#iqZ1u`e-_YGtv`+p_|zVAq<Yl4P|uz+x1{JBwtn{@`HEa%BId8)
zTJmLu1XxlEr)F-Dl`6nWIlme#j}ti*H9Lc8xqJvg;B0rUPDehzGSexWd>SDqi=s?n
zGzz+)(|g)8T+%=k?IvJdM{tgC6?PY(-atF}TkyLWejP=M0z4)O<OV47J@*8M9>@aR
zUgP8&t;{6i-E`L#N6#38JXqyN-?`DB2mQW;<c0h%{|tVfh%pB&D|gHk70OE$Sw%{A
zL_VJcf=;G+&T3r_C$p7Jg>@i2PYxj-l#bQ|j9nOL3?c~GUo8mEK`?9xy#-JQkqQ}n
z6EnJn;_%>5A$qe9cu0^3JNe+v348|c8kGHjJ$wA^lfg8To5-qRWzgiY#Sw<sYRd4F
zySYbg%|A{dWub#t|0f3$X9_vr-FB|~AUBi2gix)vASH@G+A*Y)NdjXt1sW|1d-fSa
zAlScsxf`t25o8qAA#)iR26Mu#Zlgwb5uEm*2)R8vO~AuWT=4ey_*2hE{28<Yc#A*(
zlCPDhQ%b29@gZvy4yR)CU%~6ie{3Rkp@cuB2y;PzQLLh}P-IW5ti`GnrR8-+$GH+`
zDmX6!Md1%35WRk01i2F>Uu1gCd1%uk4gh7)cpIIv+zrxex)4MI-UGIzt+X0LjP8Bw
z>m(zOodTvdCUD^~GBF#vfj{x}lW{`$9rGpqr|s{0Jw8|U0J+T$6vpUD&yPi*E##m1
zpF%*vz7`vP7=k4n%GzbHzEcr<r;Er_#`M(gV};=`n!)wmZxS!yuaNHISITj*BQ-xG
zMqce$e^6P?sH?BiNOQw0oMpB!f*f`Z$YIjR?d{wYaTai~i(F{z72CQ0bUWDrpn_L`
zc?;3)9eE(=5aenbM!640`gqHyoHpPAeQeqk@5VPzxKsPz07rDp`>)sAZ2#4P-uB8&
zYPI+iQn>761JH%=|J8sn>_00=?Pn<bdiK5Bv?ht~P)_SmV!~qICE{U2E7XX##DCo9
z%oY_7bD)y0f5MMoXz{#f%^h+Z2et5wj+sS5L{+i(`{?A96mp`i11rKF$@6uIE-*<(
z;lLGM)Qmu-Qsxv+M$|10O-?Pkb&X97NY&QRp{#WYui@I#Kv3N6z+h4?_t#}vU%@T=
z;UeRJgymiMrOUAR;LRby@`ygr8PD4OX}I-Byy1_K5kGn|@Kz!pc-^^aqYW^tye0ev
h$hvuWRQtnnBF6;xRFggK7NZpVxdyn*{|9`y{tX`$wTl1%

literal 0
HcmV?d00001

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index fedee6f0f2..ca60876620 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -694,4 +694,17 @@ span.flag-zw {background-position:0 -5435px}
 .input-group-field:last-child {
     border-top-left-radius:0;
     border-bottom-left-radius:0;
+}
+
+#ajaxloader {
+    position: absolute;
+    width: 325px;
+    height: 150px;
+    background: #ffffff url('../images/ajax-loader.gif') no-repeat center center;
+    border: solid 2px #e1e1e1;
+    border-radius: 10px;
+    /*background: rgba(255, 255, 255, 0.85);*/
+    padding: 20px;
+    text-align:center;
+    z-index: 100;
 }
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 4477ceae49..5f41897f0e 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:normal}.control-label:after{content:":"}.formbutton-default{padding:6px 30px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform>div{position:relative;display:table}#searchform>div>div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:bold}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar>div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:bold;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:bold;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:bold}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:bold;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs>li>a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:0;font-weight:bold;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:normal}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:bold;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:bold;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:normal}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:bold}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url("../images/flags_sprite.png");background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#logo{background-image:url("../images/logo@2x.png");background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:normal}.control-label:after{content:":"}.formbutton-default{padding:6px 30px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform>div{position:relative;display:table}#searchform>div>div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:bold}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar>div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:bold;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:bold;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:bold}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:bold;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs>li>a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:0;font-weight:bold;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:normal}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:bold;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:bold;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:normal}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:bold}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url("../images/flags_sprite.png");background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#logo{background-image:url("../images/logo@2x.png");background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url('../images/ajax-loader.gif') no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}
\ No newline at end of file
-- 
GitLab


From c10911a251bcb9ea4e38853cd0c3b71b1eec9994 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 12 Jul 2016 15:35:50 +0200
Subject: [PATCH 089/313] Typo in remote api event (fixes: 4022)

---
 interface/lib/classes/remote.d/sites.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php
index 22c1657d49..2147e550a0 100644
--- a/interface/lib/classes/remote.d/sites.inc.php
+++ b/interface/lib/classes/remote.d/sites.inc.php
@@ -434,7 +434,7 @@ class remoting_sites extends remoting {
 		if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
 		if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
 
-		$domain_id = $this->insertQuery('../sites/form/web_vhost_domain.tform.php', $client_id, $params, 'sites:web_domain:on_after_insert');
+		$domain_id = $this->insertQuery('../sites/form/web_vhost_domain.tform.php', $client_id, $params, 'sites:web_vhost_domain:on_after_insert');
 		if ($readonly === true)
 			$app->db->query("UPDATE web_domain SET `sys_userid` = '1' WHERE domain_id = ?", $domain_id);
 		return $domain_id;
-- 
GitLab


From 229a3f0989ef0371e1aa89ff06828dd2cd36e812 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 19 Jul 2016 00:24:07 +0200
Subject: [PATCH 090/313] Prevent password managers to overwrite passwords in
 reseller / client and mailbox edit screen (fixes #4030)

---
 interface/web/client/lib/lang/en_client.lng              | 1 +
 interface/web/client/lib/lang/en_reseller.lng            | 1 +
 interface/web/client/lib/lang/nl_client.lng              | 1 +
 interface/web/client/lib/lang/nl_reseller.lng            | 1 +
 interface/web/client/templates/client_edit_address.htm   | 4 ++--
 interface/web/client/templates/reseller_edit_address.htm | 4 ++--
 interface/web/mail/lib/lang/en_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/fr_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/hr_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/hu_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/id_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/it_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/ja_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/nl_mail_user.lng             | 5 +++--
 interface/web/mail/lib/lang/pl_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/pt_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/ro_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/ru_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/se_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/sk_mail_user.lng             | 1 +
 interface/web/mail/lib/lang/tr_mail_user.lng             | 1 +
 interface/web/mail/templates/mail_user_mailbox_edit.htm  | 5 +++--
 22 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index 05cf0f4729..94a57cf500 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -19,6 +19,7 @@ $wb["contact_firstname_txt"] = 'Contact firstname';
 $wb["contact_name_txt"] = 'Contact name';
 $wb["username_txt"] = 'Username';
 $wb["password_txt"] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb["password_strength_txt"] = 'Password strength';
 $wb["language_txt"] = 'Language';
 $wb["usertheme_txt"] = 'Theme';
diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng
index b40219f2b2..a9d8ad0337 100644
--- a/interface/web/client/lib/lang/en_reseller.lng
+++ b/interface/web/client/lib/lang/en_reseller.lng
@@ -19,6 +19,7 @@ $wb["contact_firstname_txt"] = 'Contact firstname';
 $wb["contact_name_txt"] = 'Contact name';
 $wb["username_txt"] = 'Username';
 $wb["password_txt"] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb["password_strength_txt"] = 'Password strength';
 $wb["language_txt"] = 'Language';
 $wb["usertheme_txt"] = 'Theme';
diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng
index 72065264ec..b1bec1916f 100644
--- a/interface/web/client/lib/lang/nl_client.lng
+++ b/interface/web/client/lib/lang/nl_client.lng
@@ -18,6 +18,7 @@ $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['contact_name_txt'] = 'Contactpersoon';
 $wb['username_txt'] = 'Gebruikersnaam';
 $wb['password_txt'] = 'Wachtwoord';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 $wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['language_txt'] = 'Taal';
 $wb['usertheme_txt'] = 'Thema';
diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng
index 63d76bfb15..c53d3eca25 100644
--- a/interface/web/client/lib/lang/nl_reseller.lng
+++ b/interface/web/client/lib/lang/nl_reseller.lng
@@ -17,6 +17,7 @@ $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['contact_name_txt'] = 'Contactpersoon';
 $wb['username_txt'] = 'Gebruikersnaam';
 $wb['password_txt'] = 'Wachtwoord';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 $wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['language_txt'] = 'Taal';
 $wb['usertheme_txt'] = 'Thema';
diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm
index e119e594e4..b033c63dc2 100644
--- a/interface/web/client/templates/client_edit_address.htm
+++ b/interface/web/client/templates/client_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/client/templates/reseller_edit_address.htm b/interface/web/client/templates/reseller_edit_address.htm
index 7b3adf4cc9..e5b0a5540b 100644
--- a/interface/web/client/templates/reseller_edit_address.htm
+++ b/interface/web/client/templates/reseller_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/mail/lib/lang/en_mail_user.lng b/interface/web/mail/lib/lang/en_mail_user.lng
index ba4fdd42a0..7768662229 100644
--- a/interface/web/mail/lib/lang/en_mail_user.lng
+++ b/interface/web/mail/lib/lang/en_mail_user.lng
@@ -21,6 +21,7 @@ $wb["quota_error_isint"] = 'Mailbox size must be a number.';
 $wb["quota_txt"] = 'Quota (0 for unlimited)';
 $wb["server_id_txt"] = 'Aerver_id';
 $wb["password_txt"] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb["maildir_txt"] = 'Maildir';
 $wb["postfix_txt"] = 'Enable receiving';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/fr_mail_user.lng b/interface/web/mail/lib/lang/fr_mail_user.lng
index 775b425cf5..001282ccd9 100644
--- a/interface/web/mail/lib/lang/fr_mail_user.lng
+++ b/interface/web/mail/lib/lang/fr_mail_user.lng
@@ -61,4 +61,5 @@ $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/hr_mail_user.lng b/interface/web/mail/lib/lang/hr_mail_user.lng
index b8d541faa4..50ebef717b 100644
--- a/interface/web/mail/lib/lang/hr_mail_user.lng
+++ b/interface/web/mail/lib/lang/hr_mail_user.lng
@@ -17,6 +17,7 @@ $wb['quota_error_isint'] = 'Mailbox size must be a number.';
 $wb['quota_txt'] = 'Kvota';
 $wb['server_id_txt'] = 'Aerver_id';
 $wb['password_txt'] = 'Å ifra';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Enable Receiving';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/hu_mail_user.lng b/interface/web/mail/lib/lang/hu_mail_user.lng
index 97b07798d1..a11f7d2066 100644
--- a/interface/web/mail/lib/lang/hu_mail_user.lng
+++ b/interface/web/mail/lib/lang/hu_mail_user.lng
@@ -13,6 +13,7 @@ $wb['quota_error_isint'] = 'Mailbox méret mező csak szákot tartalmazhat';
 $wb['quota_txt'] = 'Korlát MB-ban kifejezve';
 $wb['server_id_txt'] = 'szerver_azonosító';
 $wb['password_txt'] = 'Jelszó';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'levelezőláda';
 $wb['postfix_txt'] = 'Bejövő engedélyezés';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/id_mail_user.lng b/interface/web/mail/lib/lang/id_mail_user.lng
index 22b3b8140d..9ae9474ec8 100644
--- a/interface/web/mail/lib/lang/id_mail_user.lng
+++ b/interface/web/mail/lib/lang/id_mail_user.lng
@@ -18,6 +18,7 @@ $wb['quota_error_isint'] = 'Ukuran Mailbox harus berupa angka.';
 $wb['quota_txt'] = 'Kuota';
 $wb['server_id_txt'] = 'id_server';
 $wb['password_txt'] = 'Kata Sandi';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Dapat Menerima';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/it_mail_user.lng b/interface/web/mail/lib/lang/it_mail_user.lng
index 76f3018123..e548a6b4f0 100644
--- a/interface/web/mail/lib/lang/it_mail_user.lng
+++ b/interface/web/mail/lib/lang/it_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Il valore per la dimensione della casella di posta d
 $wb['quota_txt'] = 'quota in MB';
 $wb['server_id_txt'] = 'server_id';
 $wb['password_txt'] = 'password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'maildir';
 $wb['postfix_txt'] = 'Abilita ricezione';
 $wb['access_txt'] = 'Abilita indirizzo';
diff --git a/interface/web/mail/lib/lang/ja_mail_user.lng b/interface/web/mail/lib/lang/ja_mail_user.lng
index 7e044b9a94..6b3d2ea3ab 100644
--- a/interface/web/mail/lib/lang/ja_mail_user.lng
+++ b/interface/web/mail/lib/lang/ja_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'メールボックスの最大数は数字で指定
 $wb['quota_txt'] = 'メールボックスの容量';
 $wb['server_id_txt'] = 'Aerver_id';
 $wb['password_txt'] = 'パスワード';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'メールディレクトリ';
 $wb['postfix_txt'] = 'メールを受信する';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng
index f577efd4d3..acc2da94e1 100644
--- a/interface/web/mail/lib/lang/nl_mail_user.lng
+++ b/interface/web/mail/lib/lang/nl_mail_user.lng
@@ -18,6 +18,7 @@ $wb['quota_error_isint'] = 'Mailbox grootte moet een numerieke waarde zijn.';
 $wb['quota_txt'] = 'Quota';
 $wb['server_id_txt'] = 'Server_id';
 $wb['password_txt'] = 'Wachtwoord';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Ontvangen inschakelen';
 $wb['greylisting_txt'] = 'Greylisting inschakelen';
@@ -35,7 +36,7 @@ $wb['name_txt'] = 'Echte naam';
 $wb['name_optional_txt'] = '(Optioneel)';
 $wb['autoresponder_active'] = 'Inschakelen autoresponder';
 $wb['cc_txt'] = 'Stuur kopie naar';
-$wb['cc_error_isemail'] = 'Het "Stuur kopie naar" veld bevat geen geldig e-mail adres';
+$wb['cc_error_isemail'] = 'Het \"Stuur kopie naar\" veld bevat geen geldig e-mail adres';
 $wb['domain_txt'] = 'Domain';
 $wb['now_txt'] = 'Now';
 $wb['login_error_unique'] = 'Login is already taken.';
@@ -59,6 +60,6 @@ $wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
 $wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)';
 $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.';
 $wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan';
-$wb['sender_cc_error_isemail'] = 'Het "Stuur uitgaande kopie aan" veld bevat geen geldig e-mail adres';
+$wb['sender_cc_error_isemail'] = 'Het \"Stuur uitgaande kopie aan\" veld bevat geen geldig e-mail adres';
 $wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
 ?>
diff --git a/interface/web/mail/lib/lang/pl_mail_user.lng b/interface/web/mail/lib/lang/pl_mail_user.lng
index 58e5aba9d6..69974866dc 100644
--- a/interface/web/mail/lib/lang/pl_mail_user.lng
+++ b/interface/web/mail/lib/lang/pl_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Wielkość skrzynki pocztowej musi być liczbą.';
 $wb['quota_txt'] = 'Limit';
 $wb['server_id_txt'] = 'Serwer_id';
 $wb['password_txt'] = 'Hasło';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Zezwól na odbiór poczty';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/pt_mail_user.lng b/interface/web/mail/lib/lang/pt_mail_user.lng
index 4e7934af9c..f638554dc9 100644
--- a/interface/web/mail/lib/lang/pt_mail_user.lng
+++ b/interface/web/mail/lib/lang/pt_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'O tamanho da caixa de correio deve ser um número.';
 $wb['quota_txt'] = 'Cota';
 $wb['server_id_txt'] = 'Aerver_id';
 $wb['password_txt'] = 'Senha';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Permitir Recepção';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/ro_mail_user.lng b/interface/web/mail/lib/lang/ro_mail_user.lng
index 46938cd80e..af61d06b35 100644
--- a/interface/web/mail/lib/lang/ro_mail_user.lng
+++ b/interface/web/mail/lib/lang/ro_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Marimea Mailbox  trebuie s afie un numar';
 $wb['quota_txt'] = 'Quota';
 $wb['server_id_txt'] = 'Server_id';
 $wb['password_txt'] = 'Password';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Maildir';
 $wb['postfix_txt'] = 'Enable Receiving';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/ru_mail_user.lng b/interface/web/mail/lib/lang/ru_mail_user.lng
index 5ed8b07f5d..9214dc8ba7 100644
--- a/interface/web/mail/lib/lang/ru_mail_user.lng
+++ b/interface/web/mail/lib/lang/ru_mail_user.lng
@@ -13,6 +13,7 @@ $wb['quota_error_isint'] = 'Размер должен быть цифрой.';
 $wb['quota_txt'] = 'квота in MB';
 $wb['server_id_txt'] = 'server_id';
 $wb['password_txt'] = 'пароль';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'maildir';
 $wb['postfix_txt'] = 'Разрешить получение';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/se_mail_user.lng b/interface/web/mail/lib/lang/se_mail_user.lng
index 7dcdca3e68..9ded10e955 100644
--- a/interface/web/mail/lib/lang/se_mail_user.lng
+++ b/interface/web/mail/lib/lang/se_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Epostkontots kvot måste vara en siffra.';
 $wb['quota_txt'] = 'kvot i MB';
 $wb['server_id_txt'] = 'server-id';
 $wb['password_txt'] = 'lösenord';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'maildir';
 $wb['postfix_txt'] = 'Aktivera mottagning';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/sk_mail_user.lng b/interface/web/mail/lib/lang/sk_mail_user.lng
index 115cab9aa9..b8d6114d82 100644
--- a/interface/web/mail/lib/lang/sk_mail_user.lng
+++ b/interface/web/mail/lib/lang/sk_mail_user.lng
@@ -14,6 +14,7 @@ $wb['quota_error_isint'] = 'Veľkosť schránky, musí byť číslo.';
 $wb['quota_txt'] = 'Kvóta';
 $wb['server_id_txt'] = 'Server_id';
 $wb['password_txt'] = 'Heslo';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Mailová záložka';
 $wb['postfix_txt'] = 'Povoliť príjem';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/lib/lang/tr_mail_user.lng b/interface/web/mail/lib/lang/tr_mail_user.lng
index ebdcce2a92..71241ec9f7 100644
--- a/interface/web/mail/lib/lang/tr_mail_user.lng
+++ b/interface/web/mail/lib/lang/tr_mail_user.lng
@@ -15,6 +15,7 @@ $wb['quota_error_isint'] = 'Posta kutusunun boyutu bir sayı olmalıdır.';
 $wb['quota_txt'] = 'Kota (sınırsız için 0 yazın)';
 $wb['server_id_txt'] = 'Sunucu kodu';
 $wb['password_txt'] = 'Parola';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Posta Klasörü';
 $wb['postfix_txt'] = 'Alım Etkin';
 $wb['greylisting_txt'] = 'Enable greylisting';
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm
index 4cb4b51c84..754c6b7ee1 100644
--- a/interface/web/mail/templates/mail_user_mailbox_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -29,7 +29,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -45,7 +45,8 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9">
+	                <input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
-- 
GitLab


From 2d5f5359f2d3327543d2a0324c7c9c8ccb2fd2ae Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 19 Jul 2016 00:35:28 +0200
Subject: [PATCH 091/313] Prevent password managers autofill password for
 mailuser interface

---
 interface/web/mailuser/lib/lang/en_mail_user_password.lng    | 1 +
 interface/web/mailuser/lib/lang/nl_mail_user_password.lng    | 1 +
 interface/web/mailuser/templates/mail_user_password_edit.htm | 4 ++--
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/interface/web/mailuser/lib/lang/en_mail_user_password.lng b/interface/web/mailuser/lib/lang/en_mail_user_password.lng
index 43c114a81c..1fae586e68 100644
--- a/interface/web/mailuser/lib/lang/en_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/en_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
\ No newline at end of file
diff --git a/interface/web/mailuser/lib/lang/nl_mail_user_password.lng b/interface/web/mailuser/lib/lang/nl_mail_user_password.lng
index cdf9674e70..254608275e 100644
--- a/interface/web/mailuser/lib/lang/nl_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/nl_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Klik om in te stellen';
 ?>
diff --git a/interface/web/mailuser/templates/mail_user_password_edit.htm b/interface/web/mailuser/templates/mail_user_password_edit.htm
index 1afd11052c..b35a5c447d 100644
--- a/interface/web/mailuser/templates/mail_user_password_edit.htm
+++ b/interface/web/mailuser/templates/mail_user_password_edit.htm
@@ -15,7 +15,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -31,7 +31,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
-- 
GitLab


From 804c520e04353036e6454382b4142945741d2ecd Mon Sep 17 00:00:00 2001
From: Michiel Piscaer <michiel@piscaer.com>
Date: Tue, 19 Jul 2016 16:15:29 +0200
Subject: [PATCH 092/313] After enabling "Rewrite HTTP to HTTPS" and "Lets
 Encrypt SSL" the RewriteCond and RewriteRule got on the same line, becourse
 of an failing newline

---
 server/conf/vhost.conf.master | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index bb2d71d7d5..442d630b4e 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -430,7 +430,8 @@
 <tmpl_else>
 <tmpl_if name='rewrite_to_https' op='==' value='y'>
         RewriteCond %{HTTPS} off
-        <tmpl_if name='apache_version' op='<' value='2.4' format='version'>RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/</tmpl_if>
+        <tmpl_if name='apache_version' op='<' value='2.4' format='version'>RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
+</tmpl_if>
         RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 </tmpl_if>
 </tmpl_if>
-- 
GitLab


From aad102f73868ea83357856c3afe57617f411c83a Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 19 Jul 2016 20:29:38 +0200
Subject: [PATCH 093/313] Fixed #4033 Special characters in email mailbox
 password

---
 interface/lib/classes/auth.inc.php          |  5 ++++-
 interface/lib/classes/tform_base.inc.php    | 11 +++++++++++
 interface/web/mail/form/mail_user.tform.php |  2 +-
 interface/web/mail/mail_user_edit.php       |  1 -
 4 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index 4c97757226..9c52f5097c 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -213,7 +213,10 @@ class auth {
 		return str_shuffle($password);
 	}
 
-	public function crypt_password($cleartext_password) {
+	public function crypt_password($cleartext_password, $charset = 'UTF-8') {
+		if($charset != 'UTF-8') {
+			$cleartext_password = mb_convert_encoding($cleartext_password, $charset, 'UTF-8');
+		}
 		$salt="$1$";
 		$base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
 		for ($n=0;$n<8;$n++) {
diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 1c5c6e08af..f5e1793294 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -901,6 +901,9 @@ class tform_base {
 				case 'IDNTOUTF8':
 					$returnval = $app->functions->idn_decode($returnval);
 					break;
+				case 'TOLATIN1':
+					$returnval = mb_convert_encoding($returnval, 'ISO-8859-1', 'UTF-8');
+					break;
 				case 'TRIM':
 					$returnval = trim($returnval);
 					break;
@@ -1263,6 +1266,10 @@ class tform_base {
 							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPT') {
 								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]));
 								$sql_insert_val .= "'".$app->db->quote($record[$key])."', ";
+							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPTMAIL') {
+								// The password for the mail system needs to be converted to latin1 before it is hashed.
+								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]),'ISO-8859-1');
+								$sql_insert_val .= "'".$app->db->quote($record[$key])."', ";
 							} elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') {
 								$tmp = $app->db->queryOneRecord("SELECT PASSWORD(?) as `crypted`", stripslashes($record[$key]));
 								$record[$key] = $tmp['crypted'];
@@ -1291,6 +1298,10 @@ class tform_base {
 							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPT') {
 								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]));
 								$sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
+							} elseif(isset($field['encryption']) && $field['encryption'] == 'CRYPTMAIL') {
+								// The password for the mail system needs to be converted to latin1 before it is hashed.
+								$record[$key] = $app->auth->crypt_password(stripslashes($record[$key]),'ISO-8859-1');
+								$sql_update .= "`$key` = '".$app->db->quote($record[$key])."', ";
 							} elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') {
 								$tmp = $app->db->queryOneRecord("SELECT PASSWORD(?) as `crypted`", stripslashes($record[$key]));
 								$record[$key] = $tmp['crypted'];
diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php
index 9b4ff8fefd..8a19e66750 100644
--- a/interface/web/mail/form/mail_user.tform.php
+++ b/interface/web/mail/form/mail_user.tform.php
@@ -128,7 +128,7 @@ $form["tabs"]['mailuser'] = array(
 					'errmsg' => 'weak_password_txt'
 				)
 			),
-			'encryption'=> 'CRYPT',
+			'encryption'=> 'CRYPTMAIL',
 			'default' => '',
 			'value'  => '',
 			'width'  => '30',
diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php
index aedcd2249b..a79d8f8ff9 100644
--- a/interface/web/mail/mail_user_edit.php
+++ b/interface/web/mail/mail_user_edit.php
@@ -143,7 +143,6 @@ class page_action extends tform_actions {
 			if($domain["domain"] != $app->functions->idn_encode($_POST["email_domain"])) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
 		}
 
-
 		//* if its an insert, check that the password is not empty
 		if($this->id == 0 && $_POST["password"] == '') {
 			$app->tform->errorMessage .= $app->tform->lng("error_no_pwd")."<br>";
-- 
GitLab


From 4f1183ea13f1d35e97487ca19a969c5e2e82a6a2 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 20 Jul 2016 08:16:17 +0200
Subject: [PATCH 094/313] set user and group for /var/lib/amavis

---
 install/lib/installer_base.lib.php | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index c437ea32bf..9666ee883f 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1366,21 +1366,25 @@ class installer_base {
 
 		// Add the clamav user to the amavis group
 		exec('adduser clamav amavis');
-
-		// Create the director for DKIM-Keys
-		if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750, true);
-		// get shell-user for amavis
-		$amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd');
-		if(!empty($amavis_user)) {
-			$amavis_user=rtrim($amavis_user, ":");
-			exec('chown '.$amavis_user.' /var/lib/amavis/dkim');
-		}
 		// get shell-group for amavis
 		$amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group');
 		if(!empty($amavis_group)) {
 			$amavis_group=rtrim($amavis_group, ":");
-			exec('chgrp '.$amavis_group.' /var/lib/amavis/dkim');
 		}
+		// get shell-user for amavis
+		$amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd');
+		if(!empty($amavis_user)) {
+			$amavis_user=rtrim($amavis_user, ":");
+		}
+
+		// Create the director for DKIM-Keys
+		if(!is_dir('/var/lib/amavis')) mkdir('/var/lib/amavis', 0750, true);
+		if(!empty($amavis_user)) exec('chown '.$amavis_user.' /var/lib/amavis');
+		if(!empty($amavis_group)) exec('chgrp '.$amavis_group.' /var/lib/amavis');
+		if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750);
+		if(!empty($amavis_user)) exec('chown -R '.$amavis_user.' /var/lib/amavis/dkim');
+		if(!empty($amavis_group)) exec('chgrp -R '.$amavis_group.' /var/lib/amavis/dkim');
+
 	}
 
 	public function configure_spamassassin() {
-- 
GitLab


From bae4a6e395b3f59f50e501604bb54cc3c457227c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 20 Jul 2016 15:25:38 +0200
Subject: [PATCH 095/313] Disable the HTTP_PROXY header in the ispconfig and
 apps vhost files for apache and nginx. ISPConfig itself does not read nor
 interpret this header, but there might be other server components like PHP
 that might interact with it so I'll disable it just to be sure.

---
 install/tpl/apache_apps.vhost.master      | 4 ++++
 install/tpl/apache_ispconfig.vhost.master | 1 +
 install/tpl/nginx_apps.vhost.master       | 1 +
 install/tpl/nginx_ispconfig.vhost.master  | 1 +
 server/conf/apache_apps.vhost.master      | 4 ++++
 server/conf/nginx_apps.vhost.master       | 1 +
 6 files changed, 12 insertions(+)

diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master
index e56b1d6827..4930e253f9 100644
--- a/install/tpl/apache_apps.vhost.master
+++ b/install/tpl/apache_apps.vhost.master
@@ -15,6 +15,10 @@
     SetHandler None
   </FilesMatch>
   
+  <IfModule mod_headers.c>
+	RequestHeader unset Proxy early
+  </IfModule>
+  
   <IfModule mod_php5.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
     AddType application/x-httpd-php .php
diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master
index 6b71378c84..8aa41fafb1 100644
--- a/install/tpl/apache_ispconfig.vhost.master
+++ b/install/tpl/apache_ispconfig.vhost.master
@@ -82,6 +82,7 @@ NameVirtualHost *:<tmpl_var name="vhost_port">
 
   <IfModule mod_headers.c>
     Header always add Strict-Transport-Security "max-age=15768000"
+	RequestHeader unset Proxy early
   </IfModule>
 
   <tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'>
diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master
index d2dc07ba10..e1bb6d1849 100644
--- a/install/tpl/nginx_apps.vhost.master
+++ b/install/tpl/nginx_apps.vhost.master
@@ -40,6 +40,7 @@ server {
 
                fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
                fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
+			   fastcgi_param   HTTP_PROXY              "";
 
                fastcgi_param   REMOTE_ADDR             $remote_addr;
                fastcgi_param   REMOTE_PORT             $remote_port;
diff --git a/install/tpl/nginx_ispconfig.vhost.master b/install/tpl/nginx_ispconfig.vhost.master
index 849877020d..c426e9d0fa 100644
--- a/install/tpl/nginx_ispconfig.vhost.master
+++ b/install/tpl/nginx_ispconfig.vhost.master
@@ -36,6 +36,7 @@ server {
                fastcgi_busy_buffers_size 256k;
                fastcgi_temp_file_write_size 256k;
                fastcgi_read_timeout 1200;
+			   fastcgi_param HTTP_PROXY "";
         }
 
         location ~ /\. {
diff --git a/server/conf/apache_apps.vhost.master b/server/conf/apache_apps.vhost.master
index 7d6d66590a..47d35304f6 100644
--- a/server/conf/apache_apps.vhost.master
+++ b/server/conf/apache_apps.vhost.master
@@ -14,6 +14,10 @@
   <FilesMatch "\.ph(p3?|tml)$">
     SetHandler None
   </FilesMatch>
+  
+  <IfModule mod_headers.c>
+	RequestHeader unset Proxy early
+  </IfModule>
 
   {tmpl_if name="enable_spdy" op="==" value="y"}
   <IfModule spdy_module>
diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master
index 1101d19305..ed5e3a49ae 100644
--- a/server/conf/nginx_apps.vhost.master
+++ b/server/conf/nginx_apps.vhost.master
@@ -32,6 +32,7 @@ server {
 
                fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
                fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
+			   fastcgi_param   HTTP_PROXY              "";
 
                fastcgi_param   REMOTE_ADDR             $remote_addr;
                fastcgi_param   REMOTE_PORT             $remote_port;
-- 
GitLab


From 814ec0188d4b44df409e3cff29303e0948aec8fc Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 20 Jul 2016 17:46:02 +0200
Subject: [PATCH 096/313] #4020 Added user agent string to wget cronjobs.

---
 server/plugins-available/cron_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php
index c7109a562e..1a13a57fcd 100644
--- a/server/plugins-available/cron_plugin.inc.php
+++ b/server/plugins-available/cron_plugin.inc.php
@@ -237,7 +237,7 @@ class cron_plugin {
 				
 				$command .= "\t{$this->parent_domain['system_user']}"; //* running as user
 				if($job['type'] == 'url') {
-					$command .= "\t{$cron_config['wget']} -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target;
+					$command .= "\t{$cron_config['wget']} --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target;
 				} else {
 					$web_root = '';
 					if($job['type'] == 'chrooted') {
-- 
GitLab


From 1189fe23803870ab26fdb376e45fc728a45127d4 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 20 Jul 2016 17:55:29 +0200
Subject: [PATCH 097/313] Fixed #4015 Default welcome email translation (de)

---
 .../lib/lang/de_client_message_template.lng    | 18 +++++++++---------
 .../lang/de_client_message_template_list.lng   |  6 +++---
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/interface/web/client/lib/lang/de_client_message_template.lng b/interface/web/client/lib/lang/de_client_message_template.lng
index 65e5fbfba3..3c6ba86f36 100644
--- a/interface/web/client/lib/lang/de_client_message_template.lng
+++ b/interface/web/client/lib/lang/de_client_message_template.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['template_type_txt'] = 'Email type';
-$wb['template_name_txt'] = 'Template name';
-$wb['subject_txt'] = 'Subject';
-$wb['message_txt'] = 'Message';
-$wb['Email template'] = 'Email template';
-$wb['Settings'] = 'Setting';
-$wb['variables_txt'] = 'Variables';
-$wb['variables_description_txt'] = '(The username and password variables are only available in welcome emails.)';
-$wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.';
+$wb['template_type_txt'] = 'Email-Typ';
+$wb['template_name_txt'] = 'Name der Vorlage';
+$wb['subject_txt'] = 'Betreff';
+$wb['message_txt'] = 'Nachricht';
+$wb['Email template'] = 'Email-Vorlage';
+$wb['Settings'] = 'Einstellung';
+$wb['variables_txt'] = 'Variable';
+$wb['variables_description_txt'] = '(Die Benutzername und Passwort Variable können nur in Willkommensnachrichten verwendet werden.)';
+$wb['duplicate_welcome_error'] = 'Es kann nur eine Standard Willkommensnachrichten Vorlage geben. Bitte bearbeiten Sie die bestehende Vorlage anstatt eine neue hinzuzufügen.';
 ?>
diff --git a/interface/web/client/lib/lang/de_client_message_template_list.lng b/interface/web/client/lib/lang/de_client_message_template_list.lng
index d9c307ed52..2eaadab3b6 100644
--- a/interface/web/client/lib/lang/de_client_message_template_list.lng
+++ b/interface/web/client/lib/lang/de_client_message_template_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Email templates';
-$wb['template_type_txt'] = 'Message for';
-$wb['template_name_txt'] = 'Template name';
+$wb['list_head_txt'] = 'Email Vorlagen';
+$wb['template_type_txt'] = 'Vorlage für';
+$wb['template_name_txt'] = 'Name der Vorlage';
 ?>
-- 
GitLab


From 8a1f4cf9991515f0ce7b7bcd3dc1c55274ab0370 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 20 Jul 2016 18:22:06 +0200
Subject: [PATCH 098/313] Do not add www as subdomain to a letsencrypt ssl cert
 when the domain of the webiste is already www.example.com (and not
 example.com) even if auto subdomain is set to www.

---
 server/plugins-available/apache2_plugin.inc.php | 5 +++--
 server/plugins-available/nginx_plugin.inc.php   | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index f4b6ab7bca..56791d3d2f 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1189,7 +1189,7 @@ class apache2_plugin {
 			$sub_prefixes = array();
 
 			//* be sure to have good domain
-			if($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*") {
+			if(substr($domain,0,4) != 'www.' && ($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*")) {
 				$temp_domains[] = "www." . $domain;
 			}
 
@@ -1207,7 +1207,7 @@ class apache2_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && ($aliasdomain['subdomain'] != "none")) {
+					if(isset($aliasdomain['subdomain']) && substr($aliasdomain['domain'],0,4) != 'www.' && ($aliasdomain['subdomain'] == "www" OR $aliasdomain['subdomain'] == "*")) {
 						$temp_domains[] = "www." . $aliasdomain['domain'];
 					}
 				}
@@ -1234,6 +1234,7 @@ class apache2_plugin {
 			//if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
 				// we must not skip if cert exists, otherwise changed domains (alias or sub) won't make it to the cert
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
+				$app->log("Let's Encrypt SSL Cert domains: $lddomain", LOGLEVEL_DEBUG);
 				
 				$success = false;
 				$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt'));
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 9933aae618..c343f425d3 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1263,7 +1263,7 @@ class nginx_plugin {
 			$sub_prefixes = array();
 
  			//* be sure to have good domain
- 			if($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*") {
+ 			if(substr($domain,0,4) != 'www.' && ($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*")) {
 				$temp_domains[] = "www." . $domain;
 			}
 
@@ -1281,7 +1281,7 @@ class nginx_plugin {
 			if(is_array($aliasdomains)) {
 				foreach($aliasdomains as $aliasdomain) {
 					$temp_domains[] = $aliasdomain['domain'];
-					if(isset($aliasdomain['subdomain']) && ($aliasdomain['subdomain'] != "none")) {
+					if(isset($aliasdomain['subdomain']) && substr($aliasdomain['domain'],0,4) != 'www.' && ($aliasdomain['subdomain'] == "www" OR $aliasdomain['subdomain'] == "*")) {
 						$temp_domains[] = "www." . $aliasdomain['domain'];
 					}
 					
@@ -1313,6 +1313,7 @@ class nginx_plugin {
 			//if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
 				// we must not skip if cert exists, otherwise changed domains (alias or sub) won't make it to the cert
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
+				$app->log("Let's Encrypt SSL Cert domains: $lddomain", LOGLEVEL_DEBUG);
 				
 				$success = false;
 				$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt'));
-- 
GitLab


From 6c9798e50379cb35d75a941073070662a603c3ea Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 20 Jul 2016 18:45:21 +0200
Subject: [PATCH 099/313] Fixed: Issue #4007 Language in mail user interface is
 not the language of the client.

---
 interface/web/login/index.php | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index 2ecf4ac93d..349f233760 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -159,6 +159,9 @@ if(count($_POST) > 0) {
 						$saved_password = stripslashes($mailuser['password']);
 						//* Check if mailuser password is correct
 						if(crypt(stripslashes($password), $saved_password) == $saved_password) {
+							//* Get the sys_user language of the client of the mailuser
+							$sys_user_lang = $app->db->queryOneRecord("SELECT language FROM sys_user WHERE default_group = ?", $mailuser['sys_groupid'] );
+							
 							//* we build a fake user here which has access to the mailuser module only and userid 0
 							$user = array();
 							$user['userid'] = 0;
@@ -168,7 +171,11 @@ if(count($_POST) > 0) {
 							$user['typ'] = 'user';
 							$user['email'] = $mailuser['email'];
 							$user['username'] = $username;
-							$user['language'] = $conf['language'];
+							if(is_array($sys_user_lang) && $sys_user_lang['language'] != '') {
+								$user['language'] = $sys_user_lang['language'];
+							} else {
+								$user['language'] = $conf['language'];
+							}
 							$user['theme'] = $conf['theme'];
 							$user['app_theme'] = $conf['theme'];
 							$user['mailuser_id'] = $mailuser['mailuser_id'];
-- 
GitLab


From 1ecb9918ccf080707fd43e49d1e03f91dcaadb52 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Wed, 20 Jul 2016 22:56:03 +0200
Subject: [PATCH 100/313] Removed inline javascript

---
 interface/web/client/templates/reseller_edit_address.htm   | 4 ++--
 interface/web/mail/templates/mail_user_mailbox_edit.htm    | 4 ++--
 .../web/mailuser/templates/mail_user_password_edit.htm     | 4 ++--
 .../web/themes/default/assets/javascripts/ispconfig.js     | 7 ++++++-
 .../web/themes/default/assets/javascripts/ispconfig.min.js | 2 +-
 5 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/interface/web/client/templates/reseller_edit_address.htm b/interface/web/client/templates/reseller_edit_address.htm
index e5b0a5540b..26021539b5 100644
--- a/interface/web/client/templates/reseller_edit_address.htm
+++ b/interface/web/client/templates/reseller_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm
index 754c6b7ee1..0e692199da 100644
--- a/interface/web/mail/templates/mail_user_mailbox_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -29,7 +29,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -46,7 +46,7 @@
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
                 <div class="col-sm-9">
-	                <input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+	                <input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/mailuser/templates/mail_user_password_edit.htm b/interface/web/mailuser/templates/mail_user_password_edit.htm
index b35a5c447d..7ad0a9ed5f 100644
--- a/interface/web/mailuser/templates/mail_user_password_edit.htm
+++ b/interface/web/mailuser/templates/mail_user_password_edit.htm
@@ -15,7 +15,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -31,7 +31,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index d791b19cba..dbe96d90bd 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -550,7 +550,12 @@ var ISPConfig = {
 	}
 };
 
-
+function removeReadOnly(password) {
+	password.removeAttribute('readonly');
+	password.removeAttribute('data-original-title');
+	password.removeAttribute('data-toggle');
+	password.removeAttribute('data-placement');
+}
 $(document).on("change", function(event) {
 	var elName = event.target.localName;
 	if ($("#pageForm .table #Filter").length > 0 && elName == 'select') {
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.min.js b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
index a54f3cb89a..bfadfb328e 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.min.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
@@ -1 +1 @@
-var ISPConfig={pageFormChanged:false,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:false,tabChangeDiscard:false,requestsRunning:0,indicatorCompleted:false,registeredHooks:new Array(),new_tpl_add_id:0,options:{useLoadIndicator:false,useComboBox:false},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(a){},registerHook:function(a,c){if(!ISPConfig.registeredHooks[a]){ISPConfig.registeredHooks[a]=new Array()}var b=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][b]=c},callHook:function(a,c){if(!ISPConfig.registeredHooks[a]){return}for(var b=0;b<ISPConfig.registeredHooks[a].length;b++){var d=ISPConfig.registeredHooks[a][b];d(a,c)}},resetFormChanged:function(){ISPConfig.pageFormChanged=false},showLoadIndicator:function(){document.body.style.cursor="wait";if(ISPConfig.options.useLoadIndicator==true){ISPConfig.requestsRunning+=1;if(ISPConfig.requestsRunning<2){var a=$("#ajaxloader");if(a.length<1){a=$('<div id="ajaxloader" style="display: none;"></div>');a.appendTo("body")}var b=$("#content");if(b.length<1){return}ISPConfig.indicatorCompleted=false;var d=b.offset().left+150;var c=b.offset().top+150;a.css({left:d,top:c}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=true;if(ISPConfig.requestsRunning<1){$(this).fadeOut("fast",function(){$(this).hide()})}})}}},hideLoadIndicator:function(){document.body.style.cursor="";ISPConfig.requestsRunning-=1;if(ISPConfig.requestsRunning<1){ISPConfig.requestsRunning=0;if(ISPConfig.indicatorCompleted==true){$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()})}}},onAfterSideNavLoaded:function(){if(ISPConfig.options.useComboBox==true){$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:true,allowClear:true})}},onAfterContentLoad:function(a,b){if(!b){b=""}else{b="&"+b}if(ISPConfig.options.useComboBox==true){$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:true,allowClear:true,formatResult:function(c){if(c.id&&$(c.element).parent().hasClass("flags")){return'<span class="flags flag-'+c.id.toLowerCase()+'">'+c.text+"</span>"}else{return c.text}},formatSelection:function(c){if(c.id&&$(c.element).parent().hasClass("flags")){return'<span class="flags flag-'+c.id.toLowerCase()+'">'+c.text+"</span>"}else{return c.text}}}).on("change",function(c){if($("#pageForm .table #Filter").length>0){$("#pageForm .table #Filter").trigger("click")}})}$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:true,todayBtn:"linked",bootcssVer:3,fontAwesome:true,autoclose:true,minView:"month"});$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:true,todayBtn:"linked",bootcssVer:3,fontAwesome:true,autoclose:true});ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(d,e,c){var b=arguments[3];if(!c){c=false}if(!c||window.confirm(c)){var a=$.ajax({type:"POST",url:e,data:$("#"+d).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(g,i,f){if(b){alert(b)}if(f.responseText.indexOf("HEADER_REDIRECT:")>-1){var h=f.responseText.split(":");ISPConfig.loadContent(h[1])}else{if(f.responseText.indexOf("LOGIN_REDIRECT:")>-1){document.location.href="/index.php"}else{$("#pageContent").html(f.responseText);ISPConfig.onAfterContentLoad(e,$("#"+d).serialize());ISPConfig.pageFormChanged=false}}ISPConfig.hideLoadIndicator()},error:function(f,i,h){ISPConfig.hideLoadIndicator();var g=f.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(c,d){var b=function(n){var h,j=n.contentWindow.document.body.innerHTML;try{h=JSON.parse(j)}catch(k){h=j}var o=$("<div></div>").html(h);var f="";var l=o.find("#OKMsg").html();if(l){f='<div id="OKMsg">'+l+"</div>"}var i=o.find("#errorMsg").html();if(i){f=f+'<div id="errorMsg">'+i+"</div>"}var m=o.find('input[name="_csrf_key"]').val();var g=o.find('input[name="_csrf_id"]').val();f=f+'<input type="hidden" name="_csrf_id" value="'+g+'" /><input type="hidden" name="_csrf_key" value="'+m+'" />';return f};var a="ajaxUploader-iframe-"+Math.round(new Date().getTime()/1000);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+a+'" id="'+a+'"/>');$("#"+a).load(function(){var e=b(this);$("#errorMsg").remove();$("#OKMsg").remove();$('input[name="_csrf_key"]').remove();$('input[name="_csrf_id"]').remove();$('input[name="id"]').before(e);$(this).remove()});$('input[type="file"]').closest("form").attr({target:a,action:d}).submit()},capp:function(b,c){var a=$.ajax({type:"GET",url:"capp.php",data:"mod="+b+((c!=undefined)?"&redirect="+c:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(e,h,d){if(d.responseText!=""){if(d.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=d.responseText.split(":");ISPConfig.loadContent(g[1])}else{if(d.responseText.indexOf("URL_REDIRECT:")>-1){var f=d.responseText.substr(d.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=f}else{}}}ISPConfig.loadMenus();ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful."+b)}})},loadContent:function(b){var c=arguments[1];var a=$.ajax({type:"GET",url:b,data:(c?c:null),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(e,h,d){if(d.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=d.responseText.split(":");ISPConfig.loadContent(g[1])}else{if(d.responseText.indexOf("URL_REDIRECT:")>-1){var f=d.responseText.substr(d.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=f}else{$("#pageContent").html(d.responseText);ISPConfig.onAfterContentLoad(b,(c?c:null));ISPConfig.pageFormChanged=false}}ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 113")}})},loadContentRefresh:function(b){if($("#refreshinterval").val()>0){var a=$.ajax({type:"GET",url:b,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,e,c){ISPConfig.hideLoadIndicator();$("#pageContent").html(c.responseText);ISPConfig.onAfterContentLoad(b,"refresh="+document.getElementById("refreshinterval").value);ISPConfig.pageFormChanged=false},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful."+b)}});setTimeout("ISPConfig.loadContentRefresh('"+b+"&refresh="+document.getElementById("refreshinterval").value+"')",document.getElementById("refreshinterval").value*1000*60)}},loadInitContent:function(){var b=$("#pageContent").attr("data-startpage");if(!b){b="dashboard/dashboard.php"}var a=$.ajax({type:"GET",url:b,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,f,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var e=c.responseText.split(":");ISPConfig.loadContent(e[1])}else{$("#pageContent").html(c.responseText);ISPConfig.onAfterContentLoad("dashboard/dashboard.php","");ISPConfig.pageFormChanged=false}ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus();ISPConfig.keepalive();setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(c){}},1000)},loadMenus:function(){var b=$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,e,c){ISPConfig.hideLoadIndicator();$("#sidebar").html(c.responseText);ISPConfig.onAfterSideNavLoaded();ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 115")}});var a=$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(d,e,c){ISPConfig.hideLoadIndicator();$("#topnav-container").html(c.responseText);ISPConfig.loadPushyMenu()},error:function(c){ISPConfig.hideLoadIndicator();ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(c,e,d){if(ISPConfig.requestsRunning>0){return false}document.pageForm.next_tab.value=c;var b=$("form#pageForm").find('[name="id"]');var f=null;if(b.length>0){f=b.val()}if(ISPConfig.tabChangeDiscard=="y"&&!d){if((b.length<1||f)&&(ISPConfig.pageFormChanged==false||window.confirm(ISPConfig.tabChangeDiscardTxt))){var a=c;if(f){ISPConfig.loadContent(e,{next_tab:a,id:f})}else{ISPConfig.loadContent(e,{next_tab:a})}}else{return false}}else{if(f&&ISPConfig.tabChangeWarning=="y"&&ISPConfig.pageFormChanged==true){if(window.confirm(ISPConfig.tabChangeWarningTxt)){ISPConfig.submitForm("pageForm",e)}else{var a=c;if(f){ISPConfig.loadContent(e,{next_tab:a,id:f})}else{ISPConfig.loadContent(e,{next_tab:a})}}}else{ISPConfig.submitForm("pageForm",e)}}},confirm_action:function(b,a){if(window.confirm(a)){ISPConfig.loadContent(b)}},loadContentInto:function(b,c){var a=$.ajax({type:"GET",url:c,dataType:"html",beforeSend:function(){},success:function(e,f,d){$("#"+b).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(b,c,d){var a=$.ajax({type:"GET",url:c,dataType:"html",beforeSend:function(){},success:function(h,l,g){var j=g.responseText;var k=j.split("#");el=document.getElementById(b);el.innerHTML="";for(var f=0;f<k.length;++f){var e=document.createElement("option");e.appendChild(document.createTextNode(k[f]));e.value=k[f];el.appendChild(e)}if(typeof(d)!="undefined"){d(b,c)}},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){var a=$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(c,d,b){setTimeout(function(){ISPConfig.keepalive()},1000000)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},addAdditionalTemplate:function(){var e=$("#template_additional").val();var a=$("#tpl_add_select").val().split("|",2);var d=a[0];var f=a[1];if(d>0){var c=e.split("/");ISPConfig.new_tpl_add_id+=1;var b=$('<a href="#"></a>').attr("class","button icons16 icoDelete").click(function(g){g.preventDefault();ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});c[c.length]="n"+ISPConfig.new_tpl_add_id+":"+d;$("<li>"+f+"</li>").attr("rel","n"+new_tpl_add_id).append(b).appendTo("#template_additional_list ul");$("#template_additional").val(c.join("/"));alert("additional template "+f+" added to customer")}else{alert("no additional template selcted")}},delAdditionalTemplate:function(d){var a=$("#template_additional").val();if(d){var l=$("#template_additional_list ul").find('li[rel="'+d+'"]').eq(0);var k=l.text();l.remove();var j=a.split("/");var b=new Array();for(var e=0;e<j.length;e++){var f=j[e].split(":",2);if(f.length==2&&f[0]==d){continue}b[b.length]=j[e]}$("#template_additional").val(b.join("/"));alert("additional template "+k+" deleted from customer")}else{if(a!=""){var c=document.getElementById("tpl_add_select").value.split("|",2);var h=c[0];var k=c[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var i=$(this).text();if(i==k){$(this).remove();return false}return this});var b=a;var g=new RegExp("(^|/)"+h+"(/|$)");b=b.replace(g,"");b=b.replace("//","/");$("#template_additional").val(b);alert("additional template "+k+" deleted from customer")}else{alert("no additional template selcted")}}}};$(document).on("change",function(a){var b=a.target.localName;if($("#pageForm .table #Filter").length>0&&b=="select"){a.preventDefault();$("#pageForm .table #Filter").trigger("click")}if(b=="select"||b=="input"||b=="textarea"){if($(a.target).hasClass("no-page-form-change")==false){ISPConfig.pageFormChanged=true}}});$(document).on("click","a[data-load-content],button[data-load-content]",function(b){b.preventDefault();$("html, body").animate({scrollTop:0},1000);var a=$(this).attr("data-load-content");if(!a){return this}ISPConfig.loadContent(a)});$(document).on("click","a[data-capp],button[data-capp]",function(b){b.preventDefault();$("html, body").animate({scrollTop:0},1000);var a=$(this).attr("data-capp");if(!a){return this}ISPConfig.capp(a)});$(document).on("click","a[data-submit-form],button[data-submit-form]",function(d){d.preventDefault();$("html, body").animate({scrollTop:0},1000);var b=$(this);var a=b.attr("data-form-action");var c=b.attr("data-submit-form");if(b.attr("data-form-upload")=="true"){ISPConfig.submitUploadForm(c,a)}else{ISPConfig.submitForm(c,a)}});$(document).bind("keypress",function(a){if(a.which=="13"&&$("#pageForm .table #Filter").length>0&&$(a.target).hasClass("ui-autocomplete-input")==false){a.preventDefault();$("#pageForm .table #Filter").trigger("click")}if(a.which=="13"&&$(".tab-content button.formbutton-success").length>0&&a.target.localName!="textarea"&&$(a.target).is(":input")){a.preventDefault();$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click")}});$(document).on("click","th[data-column]",function(h){var i=$(this);var d=i.attr("data-column");if(!d){return this}if($("#pageForm .table #Filter").length>0&&i.attr("data-sortable")!="false"){var c=$("#Filter");var a=c.attr("data-form-action");var f=c.attr("data-submit-form");var b=i.attr("data-ordered");var g="?";if(a.indexOf("?")>=0){g="&"}a=a+g+"orderby="+d;ISPConfig.submitForm(f,a);$(document).ajaxComplete(function(){var e=$('#pageForm .table th[data-column="'+d+'"]');e.parent().children("th[data-column]").removeAttr("data-ordered");if(b&&b=="asc"){e.attr("data-ordered","desc")}else{e.attr("data-ordered","asc")}})}});$(document).on("click",".addPlaceholder",function(){var a=$(this).text();var b=$(this).siblings(":input");b.insertAtCaret(a)});$(document).on("click",".addPlaceholderContent",function(){var b=$(this).find(".addPlaceholderContent").text();var a=$(this).siblings(":input");a.insertAtCaret(b)});$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked")){var c=$(this).parent().attr("data-check-fields");var b=c.split(/,/);for(var a=0;a<b.length;a++){var d=b[a];$('input[type="checkbox"][name="'+d+'"]').prop("checked",true)}}});$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if($(this).is(":checked")==false){var c=$(this).parent().attr("data-uncheck-fields");var b=c.split(/,/);for(var a=0;a<b.length;a++){var d=b[a];$('input[type="checkbox"][name="'+d+'"]').prop("checked",false)}}});$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(d){if(document.selection){this.focus();sel=document.selection.createRange();sel.text=a;this.focus()}else{if(this.selectionStart||this.selectionStart=="0"){var c=this.selectionStart;var b=this.selectionEnd;var e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(b,this.value.length);this.focus();this.selectionStart=c+a.length;this.selectionEnd=c+a.length;this.scrollTop=e}else{this.value+=a;this.focus()}}})}});$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"});ISPConfig.loadInitContent();$("#searchform").submit(function(a){a.preventDefault()});$("#pageForm").submit(function(a){if($("#pageForm .table #Filter").length>0){a.preventDefault()}});$.fn.setCursorPosition=function(c){var b=$(this).get(0);if(b.setSelectionRange){b.setSelectionRange(c,c)}else{if(b.createTextRange){var a=b.createTextRange();a.collapse(true);if(c<0){c=$(this).val().length+c}a.moveEnd("character",c);a.moveStart("character",c);a.select()}}};$.fn.getCursorPosition=function(){var c=0;var b=$(this).get(0);if(typeof b.selectionStart==="number"){c=b.selectionDirection=="backward"?b.selectionStart:b.selectionEnd}else{if(document.selection){this.focus();var a=document.selection.createRange();a.moveStart("character",-b.value.length);c=a.text.length}}return c}});
\ No newline at end of file
+function removeReadOnly(a){a.removeAttribute("readonly"),a.removeAttribute("data-original-title"),a.removeAttribute("data-toggle"),a.removeAttribute("data-placement")}var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"></a>').attr("class","button icons16 icoDelete").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
-- 
GitLab


From bc607656687bac941a79425de50d94b0b6d34132 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Wed, 20 Jul 2016 23:02:14 +0200
Subject: [PATCH 101/313] Client edit remove inline javascript

---
 interface/web/client/templates/client_edit_address.htm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm
index b033c63dc2..87cb5e162b 100644
--- a/interface/web/client/templates/client_edit_address.htm
+++ b/interface/web/client/templates/client_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="this.removeAttribute('readonly');" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
-- 
GitLab


From bdf95505e2d148c5122ab7630649e629a2ef1fec Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 21 Jul 2016 00:42:18 +0200
Subject: [PATCH 102/313] Removed all inline javascript focus code, general
 function to protect all password fields including tooltip

---
 .../web/client/templates/client_edit_address.htm  |  4 ++--
 .../client/templates/reseller_edit_address.htm    |  4 ++--
 .../web/mail/templates/mail_user_mailbox_edit.htm |  4 ++--
 .../templates/mail_user_password_edit.htm         |  4 ++--
 .../default/assets/javascripts/ispconfig.js       | 15 +++++++++------
 .../default/assets/javascripts/ispconfig.min.js   |  2 +-
 6 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm
index 87cb5e162b..0327f2e395 100644
--- a/interface/web/client/templates/client_edit_address.htm
+++ b/interface/web/client/templates/client_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/client/templates/reseller_edit_address.htm b/interface/web/client/templates/reseller_edit_address.htm
index 26021539b5..69b6552938 100644
--- a/interface/web/client/templates/reseller_edit_address.htm
+++ b/interface/web/client/templates/reseller_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm
index 0e692199da..bcab744de3 100644
--- a/interface/web/mail/templates/mail_user_mailbox_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -29,7 +29,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -46,7 +46,7 @@
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
                 <div class="col-sm-9">
-	                <input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+	                <input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/mailuser/templates/mail_user_password_edit.htm b/interface/web/mailuser/templates/mail_user_password_edit.htm
index 7ad0a9ed5f..b487a1e9b2 100644
--- a/interface/web/mailuser/templates/mail_user_password_edit.htm
+++ b/interface/web/mailuser/templates/mail_user_password_edit.htm
@@ -15,7 +15,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -31,7 +31,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" readonly onfocus="removeReadOnly(this);" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index dbe96d90bd..cfd15c89af 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -136,6 +136,15 @@ var ISPConfig = {
 		});
 		$('[data-toggle="tooltip"]').tooltip({
 		});
+		// grab all password fields and set the readonly prop to prevent password managers to fill in new password
+		$('input[type="password"]').each(function() {
+			$(this).prop('readonly', true)
+			.tooltip({title: "Click to set", placement: "left"});
+		});
+		$('input[type="password"]').on('click focus', function() { 
+			$(this).prop('readonly', false);
+			$(this).tooltip('destroy');
+		});
 		
 		ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data });
 	},
@@ -550,12 +559,6 @@ var ISPConfig = {
 	}
 };
 
-function removeReadOnly(password) {
-	password.removeAttribute('readonly');
-	password.removeAttribute('data-original-title');
-	password.removeAttribute('data-toggle');
-	password.removeAttribute('data-placement');
-}
 $(document).on("change", function(event) {
 	var elName = event.target.localName;
 	if ($("#pageForm .table #Filter").length > 0 && elName == 'select') {
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.min.js b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
index bfadfb328e..0dd4a563be 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.min.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
@@ -1 +1 @@
-function removeReadOnly(a){a.removeAttribute("readonly"),a.removeAttribute("data-original-title"),a.removeAttribute("data-toggle"),a.removeAttribute("data-placement")}var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"></a>').attr("class","button icons16 icoDelete").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
+var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"></a>').attr("class","button icons16 icoDelete").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
-- 
GitLab


From 8685ef0fd9e941a63c1882a6766fb90fb6cc9643 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 21 Jul 2016 00:44:54 +0200
Subject: [PATCH 103/313] client edit forgotten removal of tooltip

---
 interface/web/client/templates/client_edit_address.htm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm
index 0327f2e395..57cb2da867 100644
--- a/interface/web/client/templates/client_edit_address.htm
+++ b/interface/web/client/templates/client_edit_address.htm
@@ -31,7 +31,7 @@
                 <label for="password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
                 <div class="col-sm-9">
 				<div class="input-group">
-					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+					<input type="password" name="password" id="password" value="{tmpl_var name='password'}" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
 					<span class="input-group-btn">
 						<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
 					</span>
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label>
-                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" data-toggle="tooltip" data-placement="left" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
+                <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" title="{tmpl_var name='password_click_to_set_txt'}" class="form-control" autocomplete="off" onkeyup="checkPassMatch('password','repeat_password');" /></div></div>
             <div class="form-group">
 				<div class="col-sm-offset-3 col-sm-9">
 					<div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div>
-- 
GitLab


From 0ca07a47237b3d32ea693600c861d4be4e078cd1 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 21 Jul 2016 11:59:52 +0200
Subject: [PATCH 104/313] Backup delete button css mismatch (fixes:
 #3969,#3885,#3986)

---
 interface/web/sites/templates/web_backup_list.htm             | 2 +-
 interface/web/themes/default/assets/stylesheets/ispconfig.css | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm
index c040b38ea6..eabf2ea782 100644
--- a/interface/web/sites/templates/web_backup_list.htm
+++ b/interface/web/sites/templates/web_backup_list.htm
@@ -32,7 +32,7 @@
                                     <tmpl_if name="download_available">
 										<button class="btn btn-default formbutton-default" type="button" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=download&backup_id={tmpl_var name='backup_id'}">{tmpl_var name="download_backup_txt"}</button>
 									</tmpl_if>
-									<button class="button iconstxt icoDelete" type="button" onclick="confirm_action('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
+									<button class="btn btn-default formbutton-default" type="button" onclick="confirm_action('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
                                 </div>
                             </td>
                         </tr>
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index ca60876620..aa383ab6e7 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -31,7 +31,7 @@ body {
     content: ":"; }
 
 .formbutton-default {
-  padding: 6px 30px;
+  padding: 6px 10px;
   border-bottom-style: solid;
   border-bottom-width: 2px;
   font-size: 12px;
-- 
GitLab


From e743900632fd6614b67870990434b19d475663cf Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 22 Jul 2016 13:57:11 +0200
Subject: [PATCH 105/313] Implemented #4045 Add support for OpenVZ simfs in
 website quota code

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 server/plugins-available/nginx_plugin.inc.php   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 56791d3d2f..1f3f0bea4e 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -888,7 +888,7 @@ class apache2_plugin {
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-		  if ( in_array($file_system , array('ext2','ext3','ext4'), true) ) {
+		  if ( in_array($file_system , array('ext2','ext3','ext4','simfs','reiserfs'), true) ) {
             exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
             exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
           } elseif ($file_system == 'xfs') {
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index c343f425d3..7f73d08be0 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -747,7 +747,7 @@ class nginx_plugin {
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-          if ( in_array($file_system , array('ext2','ext3','ext4'), true) ) {
+          if ( in_array($file_system , array('ext2','ext3','ext4','simfs','reiserfs'), true) ) {
             exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
             exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
           } elseif ($file_system == 'xfs') {
-- 
GitLab


From 16ebfdab2520d4ddda358d961813afb106a6a5e8 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 22 Jul 2016 15:55:44 +0200
Subject: [PATCH 106/313] Fixed #4043 3.1 Remote API - client_add: sys_user
 insert fails if client parameter 'usertheme' is empty

---
 interface/lib/classes/remoting_lib.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index e697810ce5..8547ff3690 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -284,7 +284,7 @@ class remoting_lib extends tform_base {
 				$startmodule=$_modules[0];
 			}
 		}
-		$usertheme = $params["usertheme"];
+		$usertheme = (isset($params["usertheme"]) && $params["usertheme"] != '')?$params["usertheme"]:'default';
 		$type = 'user';
 		$active = 1;
 		$insert_id = $app->functions->intval($insert_id);
-- 
GitLab


From aae7dceb7968fb8fe18b6065ee30ac86f3bcaee3 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 23 Jul 2016 15:21:19 +0200
Subject: [PATCH 107/313] Make session ID regeneration configurable in
 security_settings.ini

---
 interface/web/login/index.php  | 11 +++++++++--
 security/security_settings.ini |  1 +
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index 349f233760..75a013b811 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -216,8 +216,15 @@ if(count($_POST) > 0) {
 						$user = $app->db->toLower($user);
 						
 						if ($loginAs) $oldSession = $_SESSION['s'];
-						// Session regenerate causes login problems on some systems, have to find a better way. see Issue #3827
-						//if (!$loginAs) session_regenerate_id(true);
+						
+						// Session regenerate causes login problems on some systems, see Issue #3827
+						// Set session_regenerate_id to no in security settings, it you encounter
+						// this problem.
+						$app->uses('getconf');
+						$security_config = $app->getconf->get_security_config('permissions');
+						if(isset($security_config['session_regenerate_id']) && $security_config['session_regenerate_id'] == 'yes') {
+							if (!$loginAs) session_regenerate_id(true);
+						}
 						$_SESSION = array();
 						if ($loginAs) $_SESSION['s_old'] = $oldSession; // keep the way back!
 						$_SESSION['s']['user'] = $user;
diff --git a/security/security_settings.ini b/security/security_settings.ini
index d3b8d9c743..5cc381e3cd 100644
--- a/security/security_settings.ini
+++ b/security/security_settings.ini
@@ -16,6 +16,7 @@ admin_allow_software_packages=superadmin
 admin_allow_software_repo=superadmin
 remote_api_allowed=yes
 password_reset_allowed=yes
+session_regenerate_id=yes
 
 [ids]
 ids_enabled=no
-- 
GitLab


From e69472c2c36ee0d9cb61bc23e3f1f536ce64d16f Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 23 Jul 2016 16:14:07 +0200
Subject: [PATCH 108/313] Fixed database usage display issue #3970

---
 interface/web/sites/database_quota_stats.php | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php
index a87a33dc5f..0ddea5d27e 100644
--- a/interface/web/sites/database_quota_stats.php
+++ b/interface/web/sites/database_quota_stats.php
@@ -29,7 +29,15 @@ if(is_array($tmp_rec)) {
 		foreach($tmp_array as $database_name => $data) {
 			$db_name = $data['database_name'];
 
-			$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.groupid = web_database.sys_groupid AND sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
+			//$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.groupid = web_database.sys_groupid AND sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
+			$temp = $app->db->queryOneRecord("SELECT sys_groupid, database_quota FROM web_database WHERE web_database.database_name = ?", $db_name);
+			if($tmp['sys_groupid'] > 0) {
+				$client = $app->db->queryOneRecord("SELECT client.username FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.groupid = ?", $tmp['sys_groupid']);
+				$temp['username'] = $client['username'];
+			} else {
+				$temp['username'] = 'admin';
+			}
+			
 			if(is_array($temp) && !empty($temp)) {
 				$monitor_data[$server_id.'.'.$db_name]['database_name'] = $data['database_name'];
 				$monitor_data[$server_id.'.'.$db_name]['client'] = isset($temp['username']) ? $temp['username'] : '';
-- 
GitLab


From b67678c2db875b10047c3060e7ab959e06d6b099 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 23 Jul 2016 16:26:28 +0200
Subject: [PATCH 109/313] Fixed #4042 Existing domains dont get imported into
 domain module during activation

---
 interface/web/admin/system_config_edit.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php
index 155a894ff2..46abebaac3 100644
--- a/interface/web/admin/system_config_edit.php
+++ b/interface/web/admin/system_config_edit.php
@@ -183,7 +183,7 @@ class page_action extends tform_actions {
 		 * (only the first time!)
 		 */
 		if (($section == 'domains') &&
-			($_SESSION['use_domain_module_old_value'] == '') &&
+			($_SESSION['use_domain_module_old_value'] == '' || $_SESSION['use_domain_module_old_value'] == 'n') &&
 			($server_config_array['domains']['use_domain_module'] == 'y')){
 			$sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " .
 				"SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " .
-- 
GitLab


From 4562888bf0a77e265882fb804bb6f0ae5c48714e Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 23 Jul 2016 16:41:18 +0200
Subject: [PATCH 110/313] Fixed Issue #4016 cannot set DNS servers in Client
 Template.

---
 .../web/client/form/client_template.tform.php   | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index 0fccee9601..349f870168 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -635,6 +635,23 @@ $form["tabs"]['limits'] = array (
 			'value'  => array(''),
 			'name'  => 'default_dnsserver'
 		),*/
+		'dns_servers' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'MULTIPLE',
+			'separator' => ',',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'validators'    => array (  0 => array ( 'type' => 'CUSTOM',
+					'class' => 'validate_client',
+					'function' => 'check_used_servers',
+					'errmsg'=> 'dns_servers_used'),
+			),
+			'value'  => '',
+			'name'  => 'dns_servers'
+		),
 		'limit_dns_zone' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
-- 
GitLab


From 5501be8a358c44707752aa6d857af09599b4bfa9 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 23 Jul 2016 18:15:07 +0200
Subject: [PATCH 111/313] Fixed #3980 Subdomain (vhost) - Domain added to host
 each save

---
 interface/web/sites/web_vhost_domain_edit.php | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 6f843571a3..10dde97a49 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -802,11 +802,16 @@ class page_action extends tform_actions {
 				$domain_select .= "<option value=''></option>\r\n";
 			}
 			$app->tpl->setVar("domain_option", $domain_select);
-		} else {
+			
+			// remove the parent domain part of the domain name before we show it in the text field.
+			if($this->dataRecord["type"] == 'vhostsubdomain') $this->dataRecord["domain"] = str_replace('.'.$selected_domain, '', $this->dataRecord["domain"]);
 
+		
+		} else {
 			// remove the parent domain part of the domain name before we show it in the text field.
 			if($this->dataRecord["type"] == 'vhostsubdomain') $this->dataRecord["domain"] = str_replace('.'.$parent_domain["domain"], '', $this->dataRecord["domain"]);
 		}
+		
 		if($this->_vhostdomain_type != 'domain') $app->tpl->setVar("domain", $this->dataRecord["domain"]);
 
 		// check for configuration errors in sys_datalog
-- 
GitLab


From b9a3ef486ebcde18a5ade37865ff8f397185d24f Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sun, 24 Jul 2016 11:30:59 +0200
Subject: [PATCH 112/313] Fixed #3979 Mailbox users unable to save
 autoresponders

---
 .../web/mailuser/templates/mail_user_autoresponder_edit.htm   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm b/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm
index c5fc584c09..98b28cebf8 100644
--- a/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm
+++ b/interface/web/mailuser/templates/mail_user_autoresponder_edit.htm
@@ -28,6 +28,6 @@
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button"
-                    value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+                    value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mailuser/mail_user_autoresponder_edit.php">{tmpl_var name='btn_save_txt'}</button>
+            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mailuser/index.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
\ No newline at end of file
-- 
GitLab


From be5dd7a894e4e8989b2cd82e8890b4b47929ad51 Mon Sep 17 00:00:00 2001
From: Jesse Norell <jesse@kci.net>
Date: Mon, 25 Jul 2016 22:43:45 +0200
Subject: [PATCH 113/313] Update en_dns_soa.lng

---
 interface/web/dns/lib/lang/en_dns_soa.lng | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng
index 9018a6f38f..5a2d19e91d 100644
--- a/interface/web/dns/lib/lang/en_dns_soa.lng
+++ b/interface/web/dns/lib/lang/en_dns_soa.lng
@@ -39,5 +39,5 @@ $wb['expire_range_error'] = 'Min. Expire time is 60 seconds.';
 $wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the administrative zone.';
 ?>
-- 
GitLab


From fe240cd0f03207f892bd58efc2f46dee4455db2a Mon Sep 17 00:00:00 2001
From: Jesse Norell <jesse@kci.net>
Date: Mon, 25 Jul 2016 22:55:43 +0200
Subject: [PATCH 114/313] Update en_dns_soa.lng

---
 interface/web/dns/lib/lang/en_dns_soa.lng | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng
index 5a2d19e91d..9dae178002 100644
--- a/interface/web/dns/lib/lang/en_dns_soa.lng
+++ b/interface/web/dns/lib/lang/en_dns_soa.lng
@@ -39,5 +39,5 @@ $wb['expire_range_error'] = 'Min. Expire time is 60 seconds.';
 $wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the administrative zone.';
+$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.';
 ?>
-- 
GitLab


From 562dd4194d65041203c9a6d12a1e33b56d4fada5 Mon Sep 17 00:00:00 2001
From: Martin <martin@enavn.com>
Date: Tue, 26 Jul 2016 09:41:25 +0200
Subject: [PATCH 115/313] Don't append umask=0022 if it already exists

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index c437ea32bf..9bc3b99338 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1693,7 +1693,7 @@ Email Address []:
 		if(is_file('/etc/suphp/suphp.conf')) {
 			replaceLine('/etc/suphp/suphp.conf', 'php="php:/usr/bin', 'x-httpd-suphp="php:/usr/bin/php-cgi"', 0);
 			//replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0);
-			replaceLine('/etc/suphp/suphp.conf', 'umask=0077', 'umask=0022', 0);
+			replaceLine('/etc/suphp/suphp.conf', 'umask=00', 'umask=0022', 0);
 		}
 
 		if(is_file('/etc/apache2/sites-enabled/000-default')) {
-- 
GitLab


From 7b748e25685fa7b7cafb5602deba5e780605c1f1 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 26 Jul 2016 12:32:43 +0200
Subject: [PATCH 116/313] Fixed #2738 Installing package from APS to root of
 subdomain fails when/if. Thanks to @Gardan for the patch.

---
 interface/lib/classes/aps_guicontroller.inc.php | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php
index f31cf81ce4..008fc95472 100644
--- a/interface/lib/classes/aps_guicontroller.inc.php
+++ b/interface/lib/classes/aps_guicontroller.inc.php
@@ -574,9 +574,13 @@ class ApsGUIController extends ApsBase
 			// Find out document_root and make sure no apps are installed twice to one location
 			if(in_array($postinput['main_domain'], $domains))
 			{
-				$docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain
+				$docroot = $app->db->queryOneRecord("SELECT document_root, web_folder FROM web_domain
                     WHERE domain = ?", $this->getMainDomain($postinput['main_domain']));
-				$new_path = $docroot['document_root'];
+				if(trim($docroot['web_folder']) == '') {
+					$new_path = $docroot['document_root'];
+				} else {
+					$new_path = $docroot['document_root'] . '/' . $docroot['web_folder'];
+				}
 				if(substr($new_path, -1) != '/') $new_path .= '/';
 				$new_path .= $main_location;
 
-- 
GitLab


From 9ff59b08c9b6eb6249dff1aa484ee20b917d36c3 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 26 Jul 2016 12:56:16 +0200
Subject: [PATCH 117/313] Fixed #4054 can't save 'Domainmodule Limit'

---
 .../web/client/form/client_template.tform.php      | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index 349f870168..a3718fab52 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -862,6 +862,20 @@ $form["tabs"]['limits'] = array (
 			'rows'  => '',
 			'cols'  => ''
 		),
+		'limit_domainmodule' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'validators' => array (  0 => array ( 'type' => 'ISINT',
+					'errmsg'=> 'limit_domainmodule_error_notint'),
+			),
+			'default' => '0',
+			'value'  => '',
+			'separator' => '',
+			'width'  => '10',
+			'maxlength' => '10',
+			'rows'  => '',
+			'cols'  => ''
+		),
 		//#################################
 		// END Datatable fields
 		//#################################
-- 
GitLab


From f025ee2e25d70e62bf635f95011a884ec97b2f8f Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 26 Jul 2016 14:22:23 +0200
Subject: [PATCH 118/313] Fixed #4052 open_basedir contains client0 where it
 should contain client1 when value is taken from System default

---
 interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
index aeb5623996..b6f0777511 100644
--- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
+++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
@@ -80,8 +80,8 @@ class sites_web_vhost_domain_plugin {
 				$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $app->functions->intval(@$page_form->dataRecord["client_group_id"]));
 				$client_id = $app->functions->intval($client["client_id"]);
 			} else {
-				$client_group_id = $page_form->dataRecord["client_group_id"];
-				$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $app->functions->intval($page_form->dataRecord["client_group_id"]));
+				$tmp = $app->db->queryOneRecord('SELECT sys_groupid FROM web_domain WHERE domain_id = ?',$page_form->id);
+				$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $app->functions->intval($tmp['sys_groupid']));
 				$client_id = $app->functions->intval($client["client_id"]);
 			}
 
-- 
GitLab


From 3f04c7ee76d5d1b9bd1c38cf6ddf1da08a011af3 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 26 Jul 2016 14:34:49 +0200
Subject: [PATCH 119/313] Add SSL cipher suite to nginx vhost. fixes issue
 #3983

---
 server/conf/nginx_vhost.conf.master | 1 +
 1 file changed, 1 insertion(+)

diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index f057088ac6..e2fd17bf06 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -7,6 +7,7 @@ server {
 <tmpl_if name='ssl_enabled'>
         listen <tmpl_var name='ip_address'>:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};
 		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+		ssl_ciphers EECDH+AESGCM:EDH+AESGCM:EECDH:EDH:!MD5:!RC4:!LOW:!MEDIUM:!CAMELLIA:!ECDSA:!DES:!DSS:!3DES:!NULL;
 <tmpl_if name='ipv6_enabled'>
         listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};
 </tmpl_if>
-- 
GitLab


From c1d9f4c940bf2a5160b7a23106461f0ae2231bf6 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 26 Jul 2016 17:36:10 +0200
Subject: [PATCH 120/313] Fixed #3962 ISPC 3.1 b1 Empty Mail traffic

---
 .../lib/classes/cron.d/100-mailbox_stats.inc.php | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/server/lib/classes/cron.d/100-mailbox_stats.inc.php b/server/lib/classes/cron.d/100-mailbox_stats.inc.php
index 9778b2fc57..e347330c4c 100644
--- a/server/lib/classes/cron.d/100-mailbox_stats.inc.php
+++ b/server/lib/classes/cron.d/100-mailbox_stats.inc.php
@@ -126,11 +126,10 @@ class cronjob_mailbox_stats extends cronjob {
 				return array('line' => $line, 'timestamp' => $timestamp, 'size' => $matches[6], 'from' => $matches[2], 'to' => $to, 'message-id' => $matches[5]);
 			}
 
-			function add_mailbox_traffic(&$traffic_array, $address, $traffic) {
-				global $mail_boxes, $mail_rewrites;
-
+			function add_mailbox_traffic(&$traffic_array, $address, $traffic,$mail_boxes, $mail_rewrites) {
+				//global $mail_boxes, $mail_rewrites;
+				//echo '##'.print_r($mail_boxes).'##';
 				$address = strtolower($address);
-
 				if(in_array($address, $mail_boxes) == true) {
 					if(!isset($traffic_array[$address])) $traffic_array[$address] = 0;
 					$traffic_array[$address] += $traffic;
@@ -193,12 +192,11 @@ class cronjob_mailbox_stats extends cronjob {
 							continue;
 						}
 					}
-
-					$this->add_mailbox_traffic($cur_line['from'], $cur_line['size']);
+					$this->add_mailbox_traffic($cur_line['from'], $cur_line['size'],$mail_boxes, $mail_rewrites);
 					//echo "1\n";
 					//print_r($this->mailbox_traffic);
 					foreach($cur_line['to'] as $to) {
-						$this->add_mailbox_traffic($to, $cur_line['size']);
+						$this->add_mailbox_traffic($to, $cur_line['size'],$mail_boxes, $mail_rewrites);
 						//echo "2\n";
 						//print_r($this->mailbox_traffic);
 					}
@@ -227,9 +225,9 @@ class cronjob_mailbox_stats extends cronjob {
 						}
 					}
 
-					add_mailbox_traffic($mailbox_traffic, $cur_line['from'], $cur_line['size']);
+					add_mailbox_traffic($mailbox_traffic, $cur_line['from'], $cur_line['size'],$mail_boxes, $mail_rewrites);
 					foreach($cur_line['to'] as $to) {
-						add_mailbox_traffic($mailbox_traffic, $to, $cur_line['size']);
+						add_mailbox_traffic($mailbox_traffic, $to, $cur_line['size'],$mail_boxes, $mail_rewrites);
 					}
 				}
 				fclose($fp);
-- 
GitLab


From cbf83d3fc91f4a1fc3a88bc9b624bf55fa336f0e Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 26 Jul 2016 17:36:42 +0200
Subject: [PATCH 121/313] Added debug script for ISPConfig cronjob debugging.

---
 server/cron_debug.php | 72 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 server/cron_debug.php

diff --git a/server/cron_debug.php b/server/cron_debug.php
new file mode 100644
index 0000000000..615a56d743
--- /dev/null
+++ b/server/cron_debug.php
@@ -0,0 +1,72 @@
+<?php
+
+/*
+Copyright (c) 2007-2016, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"]));
+require SCRIPT_PATH."/lib/config.inc.php";
+require SCRIPT_PATH."/lib/app.inc.php";
+
+set_time_limit(0);
+ini_set('error_reporting', E_ALL & ~E_NOTICE);
+
+// make sure server_id is always an int
+$conf['server_id'] = intval($conf['server_id']);
+
+// Load required base-classes
+$app->uses('ini_parser,file,services,getconf,system,cron,functions');
+$app->load('libdatetime,cronjob');
+
+// Path settings
+$path = SCRIPT_PATH . '/lib/classes/cron.d';
+
+//** Get commandline options
+$cmd_opt = getopt('', array('cronjob::'));
+
+if(isset($cmd_opt['cronjob']) && is_file($path.'/'.$cmd_opt['cronjob'])) {
+	// Cronjob that shell be run
+	$cronjob_file = $cmd_opt['cronjob'];
+} else {
+	die('Usage example: php cron_debug.php --cronjob=100-mailbox_stats.inc.php');
+}
+
+// Load and run the cronjob
+$name = substr($cronjob_file, 0, strpos($cronjob_file, '.'));
+if(preg_match('/^\d+\-(.*)$/', $name, $match)) $name = $match[1]; // strip numerical prefix from file name
+include $path . '/' . $cronjob_file;
+$class_name = 'cronjob_' . $name;
+$cronjob = new $class_name();
+
+$cronjob->onPrepare();
+$cronjob->onBeforeRun();
+$cronjob->onRunJob();
+$cronjob->onAfterRun();
+
+die("finished.\n");
+
+?>
-- 
GitLab


From d30cf16ee014d9e8f0f386d79ee376cea01c5264 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 27 Jul 2016 12:50:44 +0200
Subject: [PATCH 122/313] Fixed #3926 ISPC 3.1 b1 frontend bug -web directives

---
 interface/web/sites/templates/web_vhost_domain_redirect.htm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/interface/web/sites/templates/web_vhost_domain_redirect.htm b/interface/web/sites/templates/web_vhost_domain_redirect.htm
index 06cc8a136e..1cd3ce87c5 100644
--- a/interface/web/sites/templates/web_vhost_domain_redirect.htm
+++ b/interface/web/sites/templates/web_vhost_domain_redirect.htm
@@ -31,7 +31,8 @@
             </div>
 			<div class="form-group nginx">
                 <label for="rewrite_rules" class="col-sm-3 control-label">{tmpl_var name='rewrite_rules_txt'}</label>
-                <div class="col-sm-9"><textarea class="form-control" name="rewrite_rules" id="rewrite_rules" rows='10' cols='50'>{tmpl_var name='rewrite_rules'}</textarea></div>&nbsp;<b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b><br><br>&nbsp;break<br>&nbsp;if<br>&nbsp;return<br>&nbsp;rewrite<br>&nbsp;set<br><br>&nbsp;<a href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a>
+                <div class="col-sm-9"><textarea class="form-control" name="rewrite_rules" id="rewrite_rules" rows='10' cols='50'>{tmpl_var name='rewrite_rules'}</textarea>
+				<b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b>&nbsp;break&nbsp;if&nbsp;return&nbsp;rewrite&nbsp;set<br />&nbsp;<a href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a></div>
             </div>
 			<div class="form-group">
 				<label class="col-sm-3 control-label">{tmpl_var name='rewrite_to_https_txt'}</label>
-- 
GitLab


From 74739bf25c89ca034ae36d6caf864d5567014fb4 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 27 Jul 2016 15:06:14 +0200
Subject: [PATCH 123/313] Fixed #3911 Billing client list edit / cancel

---
 interface/lib/app.inc.php                              | 1 +
 interface/web/client/templates/client_edit_address.htm | 2 +-
 interface/web/client/templates/client_edit_limits.htm  | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php
index f9ef167fa1..edbba27c7c 100755
--- a/interface/lib/app.inc.php
+++ b/interface/lib/app.inc.php
@@ -305,6 +305,7 @@ class app {
 		//print_r($_SESSION);
 		if(isset($_SESSION['s']['module']['name'])) {
 			$this->tpl->setVar('app_module', $_SESSION['s']['module']['name']);
+			$this->tpl->setVar('session_module', $_SESSION['s']['module']['name']);
 		}
 		if(isset($_SESSION['s']['user']) && $_SESSION['s']['user']['typ'] == 'admin') {
 			$this->tpl->setVar('is_admin', 1);
diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm
index 57cb2da867..86393c8e9d 100644
--- a/interface/web/client/templates/client_edit_address.htm
+++ b/interface/web/client/templates/client_edit_address.htm
@@ -158,5 +158,5 @@
 
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="client/client_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="{tmpl_var name='session_module'}/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index 139694697c..7a29df907d 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -450,7 +450,7 @@
 
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="client/client_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="{tmpl_var name='session_module'}/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
         </div></div>
     </div>
 
-- 
GitLab


From b4a7d4ca90a04c99ad2d87c939114459fe537028 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 27 Jul 2016 17:15:12 +0200
Subject: [PATCH 124/313] Avoid postconf -M errors on old postfix versions.

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 45a968e734..de46f56979 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -812,7 +812,7 @@ class installer_base {
 	public function get_postfix_service($service, $type) {
 		global $conf;
 
-		exec("postconf -M", $out, $ret);
+		exec("postconf -M 2> /dev/null", $out, $ret);
 
 		if ($ret === 0) { //* with postfix >= 2.9 we can detect configured services with postconf
 			unset($out);
-- 
GitLab


From 0e11113b955e0d5f3a01f4cfe76f6129dfc41d9c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 27 Jul 2016 18:23:21 +0200
Subject: [PATCH 125/313] Added missing variable in postfix service detection
 code.

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index de46f56979..3b2dadf9d2 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -822,7 +822,7 @@ class installer_base {
 			}
 			$postfix_service = @($out[0]=='')?false:true;
         } else { //* fallback - Postfix < 2.9
-			rf($conf['postfix']['config_dir'].'/master.cf');
+			$content = rf($conf['postfix']['config_dir'].'/master.cf');
 			$regex = '/[^#]'.$service.'.*.'.$type.'.*/';
 			$postfix_service = @(!preg_match($regex, $content))?true:false;
 		}
-- 
GitLab


From 3e21f8df4ea2616899d69efc1b2950ce2435ab90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aron=20Bergstr=C3=B6m?= <aron@itcm.se>
Date: Thu, 28 Jul 2016 09:48:46 +0200
Subject: [PATCH 126/313] Updated the onclick event for the delete backup
 button, old JS function used.

---
 interface/web/sites/templates/web_backup_list.htm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm
index eabf2ea782..e208864560 100644
--- a/interface/web/sites/templates/web_backup_list.htm
+++ b/interface/web/sites/templates/web_backup_list.htm
@@ -32,7 +32,7 @@
                                     <tmpl_if name="download_available">
 										<button class="btn btn-default formbutton-default" type="button" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=download&backup_id={tmpl_var name='backup_id'}">{tmpl_var name="download_backup_txt"}</button>
 									</tmpl_if>
-									<button class="btn btn-default formbutton-default" type="button" onclick="confirm_action('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
+									<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
                                 </div>
                             </td>
                         </tr>
-- 
GitLab


From 1e5bed5f58f8d999553c7d56cae51643fce4bb7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aron=20Bergstr=C3=B6m?= <aron@itcm.se>
Date: Thu, 28 Jul 2016 10:31:45 +0200
Subject: [PATCH 127/313] Updated the path so that the view is refreshed
 properly when performing the delete backup action

---
 interface/web/sites/templates/web_backup_list.htm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm
index e208864560..d741b348a8 100644
--- a/interface/web/sites/templates/web_backup_list.htm
+++ b/interface/web/sites/templates/web_backup_list.htm
@@ -32,7 +32,7 @@
                                     <tmpl_if name="download_available">
 										<button class="btn btn-default formbutton-default" type="button" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=download&backup_id={tmpl_var name='backup_id'}">{tmpl_var name="download_backup_txt"}</button>
 									</tmpl_if>
-									<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
+									<button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=delete&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='delete_confirm_txt'}');"><span>{tmpl_var name="delete_backup_txt"}</span></button>
                                 </div>
                             </td>
                         </tr>
-- 
GitLab


From 33ec98b90ee12ebf4bda8d7817fb2e55f0db2112 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 28 Jul 2016 10:48:29 +0200
Subject: [PATCH 128/313] Fixed master.cf service detection for old postfix
 versions.

---
 install/lib/installer_base.lib.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 3b2dadf9d2..fb587770bd 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -823,8 +823,8 @@ class installer_base {
 			$postfix_service = @($out[0]=='')?false:true;
         } else { //* fallback - Postfix < 2.9
 			$content = rf($conf['postfix']['config_dir'].'/master.cf');
-			$regex = '/[^#]'.$service.'.*.'.$type.'.*/';
-			$postfix_service = @(!preg_match($regex, $content))?true:false;
+			$regex = "/^((?!#)".$service.".*".$type.".*)$/m"; 
+			$postfix_service = @(preg_match($regex, $content))?true:false;
 		}
 
 		return $postfix_service;
-- 
GitLab


From c4aba1aeacb3720a3526f03a822e141cb6103234 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 28 Jul 2016 11:51:31 +0200
Subject: [PATCH 129/313] Fixed: #4059 can't edit existing subdomain

---
 interface/lib/classes/tools_sites.inc.php    | 2 +-
 interface/web/sites/web_childdomain_edit.php | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php
index b2881f57cc..94c6d78787 100644
--- a/interface/lib/classes/tools_sites.inc.php
+++ b/interface/lib/classes/tools_sites.inc.php
@@ -157,7 +157,7 @@ class tools_sites {
 				$field = "domain";
 				$select = $field;
 			}
-			$sql .= " domain NOT IN (SELECT $select FROM ?? WHERE $field != ?) AND";
+			$sql .= " domain NOT IN (SELECT $select FROM ?? WHERE $field = ?) AND";
 		}
 		if ($_SESSION["s"]["user"]["typ"] == 'admin') {
 			$sql .= " 1";
diff --git a/interface/web/sites/web_childdomain_edit.php b/interface/web/sites/web_childdomain_edit.php
index 33c2422f45..2377ad288a 100644
--- a/interface/web/sites/web_childdomain_edit.php
+++ b/interface/web/sites/web_childdomain_edit.php
@@ -131,8 +131,10 @@ class page_action extends tform_actions {
 			}
 			$app->tpl->setVar("domain_option", $domain_select);
 			if($this->_childdomain_type == 'subdomain') {
-				$this->dataRecord['domain'] = substr($this->dataRecord["domain"], 0, strlen($this->dataRecord['domain']) - strlen($selected_domain) - 1);
+				//$this->dataRecord['domain'] = substr($this->dataRecord["domain"], 0, strlen($this->dataRecord['domain']) - strlen($selected_domain) - 1);
+				$this->dataRecord["domain"] = str_replace('.'.$selected_domain, '', $this->dataRecord["domain"]);
 			}
+			
 		} else {
 			if($this->_childdomain_type == 'subdomain') {
 				// Get the record of the parent domain
-- 
GitLab


From 163fa8ca5ede5b05e385f39af173c3b5623d5609 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aron=20Bergstr=C3=B6m?= <aron@itcm.se>
Date: Thu, 28 Jul 2016 12:04:48 +0200
Subject: [PATCH 130/313] Wrong table used to remove deleted backup record for
 website. File gets removed but not database record.

---
 server/plugins-available/backup_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php
index 7ae4660abb..9c7a835e2f 100644
--- a/server/plugins-available/backup_plugin.inc.php
+++ b/server/plugins-available/backup_plugin.inc.php
@@ -167,7 +167,7 @@ class backup_plugin {
 					if(file_exists($backup_dir.'/'.$backup['filename']) && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) {
 						unlink($backup_dir.'/'.$backup['filename']);
 						
-						$sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
+						$sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
 						$app->db->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']);
 						if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql);
 						$app->log('unlink '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG);
-- 
GitLab


From cfc847557cbb1c69d244407f012176136abd02db Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 28 Jul 2016 16:29:04 +0200
Subject: [PATCH 131/313] Fixed #4055 can't add/delete Addon Template

---
 interface/web/client/client_edit.php                         | 4 ++--
 interface/web/client/reseller_edit.php                       | 4 ++--
 interface/web/themes/default/assets/javascripts/ispconfig.js | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index c3cc7f170d..ac7f4c6fce 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -149,7 +149,7 @@ class page_action extends tform_actions {
 				if (trim($item['client_template_id']) != ''){
 					if ($text != '') $text .= '';
 					$text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']];
-					$text .= '<a href="#" class="button icons16 icoDelete"></a>';
+					$text .= '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a>';
 					$tmp = new stdClass();
 					$tmp->id = $item['assigned_template_id'];
 					$tmp->data = '';
@@ -173,7 +173,7 @@ class page_action extends tform_actions {
 			foreach($tplAdd as $item){
 				if (trim($item) != ''){
 					if ($text != '') $text .= '';
-					$text .= '<li>' . $tpl[$item]. '<a href="#" class="button icons16 icoDelete"></a></li>';
+					$text .= '<li>' . $tpl[$item]. '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a></li>';
 				}
 			}
 		}
diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php
index fff4202064..8ab091ef4d 100644
--- a/interface/web/client/reseller_edit.php
+++ b/interface/web/client/reseller_edit.php
@@ -143,7 +143,7 @@ class page_action extends tform_actions {
 				if (trim($item['client_template_id']) != ''){
 					if ($text != '') $text .= '';
 					$text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']];
-					$text .= '<a href="#" class="button icons16 icoDelete"></a>';
+					$text .= '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a>';
 					$tmp = new stdClass();
 					$tmp->id = $item['assigned_template_id'];
 					$tmp->data = '';
@@ -167,7 +167,7 @@ class page_action extends tform_actions {
 			foreach($tplAdd as $item){
 				if (trim($item) != ''){
 					if ($text != '') $text .= '';
-					$text .= '<li>' . $tpl[$item]. '<a href="#" class="button icons16 icoDelete"></a></li>';
+					$text .= '<li>' . $tpl[$item]. '&nbsp;<a href="#" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></a></li>';
 				}
 			}
 		}
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index cfd15c89af..e4722ba8c5 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -502,12 +502,12 @@ var ISPConfig = {
 		if(addTplId > 0) {
 			var newVal = tpl_add.split('/');
 			ISPConfig.new_tpl_add_id += 1;
-			var delbtn = $('<a href="#"></a>').attr('class', 'button icons16 icoDelete').click(function(e) {
+			var delbtn = $('&nbsp;<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
 				e.preventDefault();
 				ISPConfig.delAdditionalTemplate($(this).parent().attr('rel'));
 			});
 			newVal[newVal.length] = 'n' + ISPConfig.new_tpl_add_id + ':' + addTplId;
-			$('<li>' + addTplText + '</li>').attr('rel', 'n' + new_tpl_add_id).append(delbtn).appendTo('#template_additional_list ul');
+			$('<li>' + addTplText + '</li>').attr('rel', 'n' + ISPConfig.new_tpl_add_id).append(delbtn).appendTo('#template_additional_list ul');
 			$('#template_additional').val(newVal.join('/'));
 			alert('additional template ' + addTplText + ' added to customer');
 		} else {
-- 
GitLab


From 0418dd9d71d2884db9aae97dded9980dcb9b42a3 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 28 Jul 2016 18:07:23 +0200
Subject: [PATCH 132/313] Fixed #4064 Fix display of "Let\'s Encrypt available"

---
 interface/lib/classes/tform_base.inc.php | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index f5e1793294..15b3fc59a2 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -1488,8 +1488,10 @@ class tform_base {
 		$app->tpl->setVar('form_hint', $form_hint);
 
 		// Set Wordbook for this form
-
-		$app->tpl->setVar($this->wordbook);
+		foreach($this->wordbook as $key => $val) {
+			if(strstr($val,'\'')) $val = stripslashes($val);
+			$app->tpl->setVar($key,$val);
+		}
 	}
 
 	function getDataRecord($primary_id) {
-- 
GitLab


From 9944f9c751a78eb9cbbcedbb4349528ce18a2772 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 29 Jul 2016 07:55:22 +0200
Subject: [PATCH 133/313] fix different servers for reseller (#4056)

---
 .gitignore                                   | 1 -
 interface/web/client/form/reseller.tform.php | 6 +++---
 2 files changed, 3 insertions(+), 4 deletions(-)
 delete mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index e43b0f9889..0000000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.DS_Store
diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index 1c60597985..4783370b88 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -584,7 +584,7 @@ $form["tabs"]['limits'] = array (
 			'value'  => ''
 		),
 		'mail_servers' => array (
-			'datatype' => 'INTEGER',
+			'datatype' => 'VARCHAR',
 			'formtype' => 'MULTIPLE',
 			'separator' => ',',
 			'default' => '1',
@@ -1125,7 +1125,7 @@ $form["tabs"]['limits'] = array (
 			'value'  => ''
 		),
 		'dns_servers' => array (
-			'datatype' => 'INTEGER',
+			'datatype' => 'VARCHAR',
 			'formtype' => 'MULTIPLE',
 			'separator' => ',',
 			'default' => '1',
@@ -1223,7 +1223,7 @@ $form["tabs"]['limits'] = array (
 			'value'  => ''
 		),
 		'db_servers' => array (
-			'datatype' => 'INTEGER',
+			'datatype' => 'VARCHAR',
 			'formtype' => 'MULTIPLE',
 			'separator' => ',',
 			'default' => '1',
-- 
GitLab


From c7e1d1b26df176e4cdcde6f7c25d5873d0a14712 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 29 Jul 2016 09:11:27 +0200
Subject: [PATCH 134/313] fixed link in the list for website-quota

---
 .../web/sites/templates/user_quota_stats_list.htm  | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/interface/web/sites/templates/user_quota_stats_list.htm b/interface/web/sites/templates/user_quota_stats_list.htm
index ee0fb6173c..0ae9a37aea 100644
--- a/interface/web/sites/templates/user_quota_stats_list.htm
+++ b/interface/web/sites/templates/user_quota_stats_list.htm
@@ -31,12 +31,12 @@
                 <tbody>
                     <tmpl_loop name="records">
                         <tr>
-                            <td><a href="#" data-load-content="sites/web_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td>
-                            <td><a href="#" data-load-content="sites/web_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="system_user"}</a></td>
-                            <td><a href="#" data-load-content="sites/web_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="used"}</a></td>
-                            <td><a href="#" data-load-content="sites/web_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="soft"}</a></td>
-                            <td><a href="#" data-load-content="sites/web_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="hard"}</a></td>
-                            <td><a href="#" data-load-content="sites/web_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="files"}</a></td>
+                            <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="domain"}</a></td>
+                            <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="system_user"}</a></td>
+                            <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="used"}</a></td>
+                            <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="soft"}</a></td>
+                            <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="hard"}</a></td>
+                            <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="files"}</a></td>
                             <td class="text-right"></td>
                         </tr>
                     </tmpl_loop>
@@ -54,4 +54,4 @@
             </table>
 </div>
         
-    </div>
\ No newline at end of file
+    </div>
-- 
GitLab


From 5785b0a8697ccb10803b92d94da3c826be894dbb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aron=20Bergstr=C3=B6m?= <aron@itcm.se>
Date: Fri, 29 Jul 2016 11:43:22 +0200
Subject: [PATCH 135/313] Fix mb_soft and mb_hard values when using xfs
 filesystem for website quota

---
 server/plugins-available/apache2_plugin.inc.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 1f3f0bea4e..fde079e088 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -878,6 +878,7 @@ class apache2_plugin {
 			if($data['new']['hd_quota'] > 0) {
 				$blocks_soft = $data['new']['hd_quota'] * 1024;
 				$blocks_hard = $blocks_soft + 1024;
+				$mb_soft = $data['new']['hd_quota'];
                 $mb_hard = $mb_soft + 1;
 			} else {
 				$mb_soft = $mb_hard = $blocks_soft = $blocks_hard = 0;
-- 
GitLab


From f7e9ef7662febc60ed3ff7091439f455a28a8a39 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 29 Jul 2016 12:51:51 +0200
Subject: [PATCH 136/313] Fix 2: #4059 can't edit existing subdomain

---
 interface/lib/classes/tools_sites.inc.php    | 2 +-
 interface/web/sites/web_childdomain_edit.php | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php
index 94c6d78787..b2881f57cc 100644
--- a/interface/lib/classes/tools_sites.inc.php
+++ b/interface/lib/classes/tools_sites.inc.php
@@ -157,7 +157,7 @@ class tools_sites {
 				$field = "domain";
 				$select = $field;
 			}
-			$sql .= " domain NOT IN (SELECT $select FROM ?? WHERE $field = ?) AND";
+			$sql .= " domain NOT IN (SELECT $select FROM ?? WHERE $field != ?) AND";
 		}
 		if ($_SESSION["s"]["user"]["typ"] == 'admin') {
 			$sql .= " 1";
diff --git a/interface/web/sites/web_childdomain_edit.php b/interface/web/sites/web_childdomain_edit.php
index 2377ad288a..465356402b 100644
--- a/interface/web/sites/web_childdomain_edit.php
+++ b/interface/web/sites/web_childdomain_edit.php
@@ -105,7 +105,7 @@ class page_action extends tform_actions {
 			/*
 			 * The domain-module is in use.
 			*/
-			$domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain", $this->dataRecord["domain"]);
+			$domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain");
 			$domain_select = '';
 			$selected_domain = '';
 			if(is_array($domains) && sizeof($domains) > 0) {
-- 
GitLab


From 6f582efec2a1991c3d69a67b95693a11d38b047f Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Mon, 1 Aug 2016 11:33:32 +0200
Subject: [PATCH 137/313] CSS changes (messed up with local changes)

---
 .../default/assets/stylesheets/ispconfig.css  | 43 +++++++++++--------
 .../assets/stylesheets/ispconfig.min.css      |  2 +-
 2 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index aa383ab6e7..1608441221 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -217,23 +217,32 @@ body {
 
 .table {
   table-layout: fixed;
-  margin-bottom: 1px; }
-  .table caption {
-    padding: 5px 10px;
-    text-align: left;
-    font-weight: bold;
-    font-size: 18px;
-    border-bottom-style: solid;
-    border-bottom-width: 1px; }
-  .table tbody tr {
-    border-top-style: solid;
-    border-top-width: 1px;
-    transition: background ease 500ms; }
-    .table tbody tr:last-child {
-      border-radius: 4px; }
-    .table tbody tr td {
-      text-overflow: ellipsis;
-      overflow-x: hidden; }
+  margin-bottom: 1px;
+  }
+.table caption {
+	padding: 5px 10px;
+	text-align: left;
+	font-weight: bold;
+	font-size: 18px;
+	border-bottom-style: solid;
+	border-bottom-width: 1px;
+	}
+.table tbody tr {
+	border-top-style: solid;
+	border-top-width: 1px;
+	transition: background ease 500ms;
+	}
+.table tbody tr:last-child {
+	border-radius: 4px;
+	}
+.table tbody tr td {
+	text-overflow: ellipsis;
+	overflow-x: hidden;
+	}
+
+.table-auto {
+	table-layout: auto;
+}
 
 .tfooter {
   margin-top: -1px;
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 5f41897f0e..308f7ad79e 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:normal}.control-label:after{content:":"}.formbutton-default{padding:6px 30px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform>div{position:relative;display:table}#searchform>div>div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:bold}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar>div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:bold;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:bold;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:bold}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:bold;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs>li>a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:0;font-weight:bold;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:normal}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:bold;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:bold;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:normal}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:bold}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url("../images/flags_sprite.png");background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#logo{background-image:url("../images/logo@2x.png");background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url('../images/ajax-loader.gif') no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}
\ No newline at end of file
-- 
GitLab


From de2e014a7cf6b0724c82dd33049a1179382d4171 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Mon, 1 Aug 2016 11:42:46 +0200
Subject: [PATCH 138/313] gitignore changes

---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000..e43b0f9889
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
-- 
GitLab


From 39bb155357ab4344fe390151f393a3d548c486f0 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Mon, 1 Aug 2016 11:44:37 +0200
Subject: [PATCH 139/313] Changes to backup list (website) for better
 responsive

---
 interface/web/sites/templates/web_backup_list.htm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm
index d741b348a8..31028a703c 100644
--- a/interface/web/sites/templates/web_backup_list.htm
+++ b/interface/web/sites/templates/web_backup_list.htm
@@ -9,7 +9,7 @@
 
         <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p>
             <div class="table-wrapper marginTop15">
-<table class="table">
+<table class="table table-auto table-striped" style="padding: 5px;">
                 <thead class="dark form-group-sm">
                     <tr>
                         <th data-column="date"><tmpl_var name="date_txt"></th>
@@ -26,7 +26,7 @@
                             <td>{tmpl_var name="backup_type"}</td>
                             <td>{tmpl_var name="filename"}</td>
                             <td>{tmpl_var name="filesize"}</td>
-                            <td class="text-right">
+                            <td class="text-center">
                                 <div class="buttons">
                                     <button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=restore&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='restore_confirm_txt'}');">{tmpl_var name="restore_backup_txt"}</button>
                                     <tmpl_if name="download_available">
-- 
GitLab


From 4ffaf875d9a1e8c5e1ae757a6c79cdf312afd40c Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Mon, 1 Aug 2016 17:24:58 +0200
Subject: [PATCH 140/313] Quirky behaviour when generating passwords (fixes
 #4065)

---
 interface/web/js/scrigo.js.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php
index 4277b9d80f..7c6bf31cbf 100644
--- a/interface/web/js/scrigo.js.php
+++ b/interface/web/js/scrigo.js.php
@@ -198,11 +198,13 @@ if(isset($server_config_array['misc']['min_password_length'])) {
 
 function generatePassword(passwordFieldID, repeatPasswordFieldID){
 	var oldPWField = jQuery('#'+passwordFieldID);
+	oldPWField.removeAttr('readonly');
 	var newPWField = oldPWField.clone();
 	newPWField.attr('type', 'text').attr('id', 'tmp'+passwordFieldID).insertBefore(oldPWField);
 	oldPWField.remove();
 	var pword = password(<?php echo $min_password_length; ?>, false, 1);
 	jQuery('#'+repeatPasswordFieldID).val(pword);
+	jQuery('#'+repeatPasswordFieldID).removeAttr('readonly');
 	newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup').select();
 	newPWField.unbind('keyup').on('keyup', function(e) {
 		if($(this).val() != pword) {
-- 
GitLab


From 52956cf0efa70db3ffb5880c94ac6471b59fd90a Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Mon, 1 Aug 2016 17:36:35 +0200
Subject: [PATCH 141/313] Change cursor pointer behaviour (confusing) with
 readonly password fields

---
 interface/web/themes/default/assets/stylesheets/ispconfig.css  | 3 +++
 .../web/themes/default/assets/stylesheets/ispconfig.min.css    | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index 1608441221..1b484b52d7 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -716,4 +716,7 @@ span.flag-zw {background-position:0 -5435px}
     padding: 20px;
     text-align:center;
     z-index: 100;
+}
+input[type="password"].form-control[readonly] {
+	cursor: text;
 }
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 308f7ad79e..fbb3cd0719 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}
\ No newline at end of file
-- 
GitLab


From aaca203059c5ff1f225af571dae8560e2330115d Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 2 Aug 2016 19:11:20 +0200
Subject: [PATCH 142/313] Changed apache mod_proxy_fcgi configuration in
 vhost.conf.master from ProxyPassMatch to SetHandler so we can wrap the config
 directive it into <Directory ...> to avoid side affects with globally
 installed applications like phpmyadmin and roundcube.

---
 server/conf/vhost.conf.master | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 442d630b4e..ed591c9e45 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -358,10 +358,20 @@
 		</IfModule>
 		<IfModule mod_proxy_fcgi.c>
 <tmpl_if name='use_tcp'>
-			ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ fcgi://127.0.0.1:<tmpl_var name='fpm_port'><tmpl_var name='web_document_root'>/$1
+			#ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ fcgi://127.0.0.1:<tmpl_var name='fpm_port'><tmpl_var name='web_document_root'>/$1
+			<Directory {tmpl_var name='web_document_root'}>
+				<FilesMatch "\.php[345]?$">
+						SetHandler "proxy:fcgi://127.0.0.1:<tmpl_var name='fpm_port'>"
+				</FilesMatch>
+			</Directory>
 </tmpl_if>
 <tmpl_if name='use_socket'>
-			ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix://<tmpl_var name='fpm_socket'>|fcgi://localhost/<tmpl_var name='web_document_root'>/$1
+			#ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix://<tmpl_var name='fpm_socket'>|fcgi://localhost/<tmpl_var name='web_document_root'>/$1
+			<Directory {tmpl_var name='web_document_root'}>
+				<FilesMatch "\.php[345]?$">
+						SetHandler "proxy:unix:<tmpl_var name='fpm_socket'>|fcgi://localhost"
+				</FilesMatch>
+			</Directory>
 </tmpl_if>
 			</IfModule>
 </tmpl_if>
-- 
GitLab


From eed1b499806de0e918bdadd18d7a29be6f700115 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 2 Aug 2016 19:37:01 +0200
Subject: [PATCH 143/313] Improved ispconfig.vhost for apache so that the
 sethandler directive does not affect other software which is accessed trough
 aliases.

---
 install/tpl/apache_ispconfig.vhost.master | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master
index 8aa41fafb1..8eccbcba38 100644
--- a/install/tpl/apache_ispconfig.vhost.master
+++ b/install/tpl/apache_ispconfig.vhost.master
@@ -9,9 +9,16 @@ NameVirtualHost *:<tmpl_var name="vhost_port">
 <VirtualHost _default_:<tmpl_var name="vhost_port">>
   ServerAdmin webmaster@localhost
 
-  <FilesMatch "\.ph(p3?|tml)$">
-    SetHandler None
-  </FilesMatch>
+  <Directory /var/www/ispconfig/>
+    <FilesMatch "\.ph(p3?|tml)$">
+      SetHandler None
+    </FilesMatch>
+  </Directory>
+  <Directory /usr/local/ispconfig/interface/web/>
+    <FilesMatch "\.ph(p3?|tml)$">
+      SetHandler None
+    </FilesMatch>
+  </Directory>
 
   <IfModule mod_fcgid.c>
     DocumentRoot /var/www/ispconfig/
-- 
GitLab


From 002688cddd021186b7f9fdef6ced65bc8298d598 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 3 Aug 2016 09:25:59 +0200
Subject: [PATCH 144/313] hide mirror-server in reseller-limit

---
 interface/web/client/form/reseller.tform.php | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index 1c60597985..abfb0e7534 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -589,7 +589,7 @@ $form["tabs"]['limits'] = array (
 			'separator' => ',',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
@@ -912,7 +912,7 @@ $form["tabs"]['limits'] = array (
 			'separator' => ',',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
@@ -1130,7 +1130,7 @@ $form["tabs"]['limits'] = array (
 			'separator' => ',',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
@@ -1228,7 +1228,7 @@ $form["tabs"]['limits'] = array (
 			'separator' => ',',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE db_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE db_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
-- 
GitLab


From e5bd8916a87c7109de2b8240da621da1d1b79cbd Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 3 Aug 2016 09:39:14 +0200
Subject: [PATCH 145/313] update last commit

---
 interface/web/client/form/reseller.tform.php | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index ff1268dd5e..919853c020 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -577,7 +577,7 @@ $form["tabs"]['limits'] = array (
 			'formtype' => 'SELECT',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
@@ -900,7 +900,7 @@ $form["tabs"]['limits'] = array (
 			'formtype' => 'SELECT',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
@@ -1118,7 +1118,7 @@ $form["tabs"]['limits'] = array (
 			'formtype' => 'SELECT',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
@@ -1160,7 +1160,7 @@ $form["tabs"]['limits'] = array (
 			'formtype' => 'SELECT',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
@@ -1216,7 +1216,7 @@ $form["tabs"]['limits'] = array (
 			'formtype' => 'SELECT',
 			'default' => '1',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE db_server = 1 AND {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE db_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
-- 
GitLab


From 621c4363d0c2ec8def6aa4ec772894773fa95e8f Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 3 Aug 2016 09:45:30 +0200
Subject: [PATCH 146/313] add db-quota to reseller-limits (#4056)

---
 interface/web/client/form/reseller.tform.php | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index 919853c020..903c8d8c0c 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -1267,6 +1267,20 @@ $form["tabs"]['limits'] = array (
 			'rows'  => '',
 			'cols'  => ''
 		),
+		'limit_database_quota' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'validators' => array (  0 => array ( 'type' => 'ISINT',
+				'errmsg'=> 'limit_database_quota_error_notint'),
+			),
+			'default' => '-1',
+			'value'  => '',
+			'separator' => '',
+			'width'  => '10',
+			'maxlength' => '10',
+			'rows'  => '',
+			'cols'  => ''
+		),
 		'limit_cron' => array (
 			'datatype'  => 'INTEGER',
 			'formtype'  => 'TEXT',
-- 
GitLab


From c33ec082963938149eb0f929128541579540b2fd Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 3 Aug 2016 11:05:05 +0200
Subject: [PATCH 147/313] fixed #4062 - Several column don't sort at all
 (stable 3.1)

---
 interface/web/mail/list/mail_user_stats.list.php     |  2 ++
 .../web/mail/templates/mail_user_stats_list.htm      |  8 ++++----
 .../web/sites/list/database_quota_stats.list.php     |  2 +-
 interface/web/sites/list/ftp_sites_stats.list.php    |  4 +++-
 interface/web/sites/list/user_quota_stats.list.php   |  2 +-
 interface/web/sites/list/web_sites_stats.list.php    |  2 ++
 .../sites/templates/database_quota_stats_list.htm    | 12 ++++++------
 .../web/sites/templates/ftp_sites_stats_list.htm     | 10 +++++-----
 .../web/sites/templates/user_quota_stats_list.htm    |  8 ++++----
 .../web/sites/templates/web_sites_stats_list.htm     |  8 ++++----
 10 files changed, 32 insertions(+), 26 deletions(-)

diff --git a/interface/web/mail/list/mail_user_stats.list.php b/interface/web/mail/list/mail_user_stats.list.php
index 4bc0d2bbfd..cfbafe11b6 100644
--- a/interface/web/mail/list/mail_user_stats.list.php
+++ b/interface/web/mail/list/mail_user_stats.list.php
@@ -42,6 +42,8 @@ $liste["paging_tpl"]  = "templates/paging.tpl.htm";
 // Enable auth
 $liste["auth"]    = "yes";
 
+// mark columns for php sorting (no real mySQL columns)
+$liste["phpsort"] = array('this_month', 'last_month', 'this_year', 'last_year');
 
 /*****************************************************
 * Suchfelder
diff --git a/interface/web/mail/templates/mail_user_stats_list.htm b/interface/web/mail/templates/mail_user_stats_list.htm
index baca4dcc29..0718cc8aed 100644
--- a/interface/web/mail/templates/mail_user_stats_list.htm
+++ b/interface/web/mail/templates/mail_user_stats_list.htm
@@ -18,10 +18,10 @@
                     </tr>
                     <tr>
                         <td><input class="form-control" type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td>
-                        <td></td>
-                        <td></td>
-                        <td></td>
-                        <td></td>
+                        <td class="this_month"></td>
+                        <td class="last_month"></td>
+                        <td class="this_year"></td>
+                        <td class="last_year"></td>
                         <td class="text-right">
                             <button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="mail/mail_user_stats.php"><span class="icon icon-filter"></span></button>
                         </td>
diff --git a/interface/web/sites/list/database_quota_stats.list.php b/interface/web/sites/list/database_quota_stats.list.php
index 00e4a19bc8..6cee92f3cb 100644
--- a/interface/web/sites/list/database_quota_stats.list.php
+++ b/interface/web/sites/list/database_quota_stats.list.php
@@ -28,7 +28,7 @@ $liste["paging_tpl"]  = "templates/paging.tpl.htm";
 $liste["auth"]    = "yes";
 
 // mark columns for php sorting (no real mySQL columns)
-$liste["phpsort"] = array('used_sort', 'files');
+$liste["phpsort"] = array('server_name', 'client', 'used', 'quota', 'percentage');
 
 
 /*****************************************************
diff --git a/interface/web/sites/list/ftp_sites_stats.list.php b/interface/web/sites/list/ftp_sites_stats.list.php
index 361e3d36ab..ec00ec55c3 100644
--- a/interface/web/sites/list/ftp_sites_stats.list.php
+++ b/interface/web/sites/list/ftp_sites_stats.list.php
@@ -40,6 +40,8 @@ $liste["paging_tpl"]  = "templates/paging.tpl.htm";
 // Enable auth
 $liste["auth"]    = "yes";
 
+// mark columns for php sorting (no real mySQL columns)
+$liste["phpsort"] = array('this_month', 'last_month', 'this_year', 'last_year');
 
 /*****************************************************
 * Suchfelder
@@ -57,4 +59,4 @@ $liste["item"][] = array( 'field'  => "domain",
 	'width'  => "",
 	'value'  => "");
 
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/sites/list/user_quota_stats.list.php b/interface/web/sites/list/user_quota_stats.list.php
index 3dc904e8a7..52f54cf953 100644
--- a/interface/web/sites/list/user_quota_stats.list.php
+++ b/interface/web/sites/list/user_quota_stats.list.php
@@ -43,7 +43,7 @@ $liste["paging_tpl"]  = "templates/paging.tpl.htm";
 $liste["auth"]    = "yes";
 
 // mark columns for php sorting (no real mySQL columns)
-$liste["phpsort"] = array('used_sort', 'files');
+$liste["phpsort"] = array('used', 'soft', 'hard', 'files');
 
 
 /*****************************************************
diff --git a/interface/web/sites/list/web_sites_stats.list.php b/interface/web/sites/list/web_sites_stats.list.php
index 25afcc4eb5..af7ce9effb 100644
--- a/interface/web/sites/list/web_sites_stats.list.php
+++ b/interface/web/sites/list/web_sites_stats.list.php
@@ -42,6 +42,8 @@ $liste["paging_tpl"]  = "templates/paging.tpl.htm";
 // Enable auth
 $liste["auth"]    = "yes";
 
+// mark columns for php sorting (no real mySQL columns)
+$liste["phpsort"] = array('this_month', 'last_month', 'this_year', 'last_year');
 
 /*****************************************************
 * Suchfelder
diff --git a/interface/web/sites/templates/database_quota_stats_list.htm b/interface/web/sites/templates/database_quota_stats_list.htm
index 51ed9c63b8..81a76762be 100644
--- a/interface/web/sites/templates/database_quota_stats_list.htm
+++ b/interface/web/sites/templates/database_quota_stats_list.htm
@@ -13,16 +13,16 @@
 					<th data-column="client"><tmpl_var name="client_txt"></th>
 					<th data-column="used"><tmpl_var name="used_txt"></th>
 					<th data-column="quota"><tmpl_var name="quota_txt"></th>
-					<th><tmpl_var name="percentage_txt">
+					<th data-column="percentage"><tmpl_var name="percentage_txt">
 					<th class="small-col text-right">{tmpl_var name='search_limit'}</th>
 				</tr>
 				<tr>
 					<td><input class="form-control" type="text" name="search_database_name" value="{tmpl_var name='search_database_name'}" /></td>
-					<td>&nbsp;</td>
-					<td>&nbsp;</td>
-					<td>&nbsp;</td>
-					<td>&nbsp;</td>
-					<td>&nbsp;</td>
+					<td class="server_name">&nbsp;</td>
+					<td class="client">&nbsp;</td>
+					<td class="used">&nbsp;</td>
+					<td class="quota">&nbsp;</td>
+					<td class="percentage">&nbsp;</td>
 					<td class="text-right">
 						<button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="sites/database_quota_stats.php"><span class="icon icon-filter"></span></button>
 					</td>
diff --git a/interface/web/sites/templates/ftp_sites_stats_list.htm b/interface/web/sites/templates/ftp_sites_stats_list.htm
index fb4aae1ed6..678864cb91 100644
--- a/interface/web/sites/templates/ftp_sites_stats_list.htm
+++ b/interface/web/sites/templates/ftp_sites_stats_list.htm
@@ -17,10 +17,10 @@
 			</tr>
 			<tr>
 				<td><input class="form-control" type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td>
-				<td><tmpl_var name="in_out_txt"></td>
-				<td><tmpl_var name="in_out_txt"></td>
-				<td><tmpl_var name="in_out_txt"></td>
-				<td><tmpl_var name="in_out_txt"></td>
+				<td class="this_month"><tmpl_var name="in_out_txt"></td>
+				<td class="last_month"><tmpl_var name="in_out_txt"></td>
+				<td class="this_year"><tmpl_var name="in_out_txt"></td>
+				<td class="last_year"><tmpl_var name="in_out_txt"></td>
 				<td class="text-right">
 					<button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="sites/ftp_sites_stats.php"><span class="icon icon-filter"></span></button>
 				</td>
@@ -57,4 +57,4 @@
 			</tr>
 		</tfoot>
 	</table>
-</div>
\ No newline at end of file
+</div>
diff --git a/interface/web/sites/templates/user_quota_stats_list.htm b/interface/web/sites/templates/user_quota_stats_list.htm
index 0ae9a37aea..704edafd87 100644
--- a/interface/web/sites/templates/user_quota_stats_list.htm
+++ b/interface/web/sites/templates/user_quota_stats_list.htm
@@ -19,10 +19,10 @@
                 <tr>
                     <td><input class="form-control" type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td>
                     <td><input class="form-control" type="text" name="search_system_user" value="{tmpl_var name='search_system_user'}" /></td>
-                    <td>&nbsp;</td>
-                    <td>&nbsp;</td>
-                    <td>&nbsp;</td>
-                    <td>&nbsp;</td>
+                    <td class="used">&nbsp;</td>
+                    <td class="soft">&nbsp;</td>
+                    <td class="hard">&nbsp;</td>
+                    <td class="files">&nbsp;</td>
                     <td class="text-right">
                         <button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="sites/user_quota_stats.php"><span class="icon icon-filter"></span></button>
                     </td>
diff --git a/interface/web/sites/templates/web_sites_stats_list.htm b/interface/web/sites/templates/web_sites_stats_list.htm
index 3aa17753de..b85fb8002e 100644
--- a/interface/web/sites/templates/web_sites_stats_list.htm
+++ b/interface/web/sites/templates/web_sites_stats_list.htm
@@ -18,10 +18,10 @@
                     </tr>
                     <tr>
                         <td><input class="form-control" type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td>
-                        <td></td>
-                        <td></td>
-                        <td></td>
-                        <td></td>
+                        <td class="this_month"></td>
+                        <td class="last_month"></td>
+                        <td class="this_year"></td>
+                        <td class="last_year"></td>
                         <td class="text-right">
                             <button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="sites/web_sites_stats.php"><span class="icon icon-filter"></span></button>
                         </td>
-- 
GitLab


From 7d571f0d904024b5ffc14046dbc210706193dcea Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 3 Aug 2016 12:45:20 +0200
Subject: [PATCH 148/313] Improved permission settings for the /var/run/hhvm
 directory. Run Tools > Resync to force an update of existing HHVM starter
 scripts to apply this fix if you currently use HHVM.

---
 server/conf/hhvm_starter.master | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/server/conf/hhvm_starter.master b/server/conf/hhvm_starter.master
index b7d63aeece..7ba9428a82 100644
--- a/server/conf/hhvm_starter.master
+++ b/server/conf/hhvm_starter.master
@@ -17,9 +17,9 @@ NAME=hhvm
 do_start()
 {
 	if [ ! -d /var/run/hhvm ]; then
-		mkdir -p -m0777 /var/run/hhvm
+		mkdir -p -m1777 /var/run/hhvm
 	else
-		chmod 777 /var/run/hhvm
+		chmod 1777 /var/run/hhvm
 	fi
 	
 	if [[ -e "/var/run/hhvm/hhvm_{SYSTEM_USER}.pid" ]] ; then
@@ -35,7 +35,7 @@ do_start()
 		ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock ;
 	fi
 	
-	umask 022
+	umask 027
 	sudo -u {SYSTEM_USER} touch /var/run/hhvm/hhvm_{SYSTEM_USER}.pid
 	
 	BASEINIFILE=""
-- 
GitLab


From d17ae005be8cbb19435e8da634193ca893b70cb2 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 4 Aug 2016 09:52:54 +0200
Subject: [PATCH 149/313] Hide DNSSEC from SOA if DNS-Mirrors are available
 (prevents broken DNSSEC-Implementaion on Multiserver-Setups)

---
 interface/web/dns/dns_soa_edit.php           | 26 ++++++++++++++++++++
 interface/web/dns/templates/dns_soa_edit.htm |  6 +++--
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php
index d6a20df749..172a04140f 100644
--- a/interface/web/dns/dns_soa_edit.php
+++ b/interface/web/dns/dns_soa_edit.php
@@ -85,6 +85,18 @@ class page_action extends tform_actions {
 		$app->uses('ini_parser,getconf');
 		$settings = $app->getconf->get_global_config('domains');
 
+		//* TODO: store dnssec-keys in the database - see below for non-admin-users
+		//* hide dnssec if we found dns-mirror-servers
+		if($this->id > 0) {
+			$sql = "SELECT count(*) AS count FROM server WHERE mirror_server_id = ?";
+			$rec=$app->db->queryOneRecord($sql, $this->dataRecord['server_id']);
+		} else {
+			$sql = "SELECT count(*) AS count FROM server WHERE mirror_server_id > 0 and dns_server = 1";
+			$rec=$app->db->queryOneRecord($sql);
+		}
+		$show_dnssec=@($rec['count'] > 0)?0:1;
+		$app->tpl->setVar('show_dnssec', $show_dnssec);
+
 		/*
 		 * Now we have to check, if we should use the domain-module to select the domain
 		 * or not
@@ -135,6 +147,20 @@ class page_action extends tform_actions {
 		$client_group_id = $_SESSION["s"]["user"]["default_group"];
 		$client_dns = $app->db->queryOneRecord("SELECT dns_servers FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
 
+		//* TODO: store dnssec-keys in the database
+		//* hide dnssec if we found dns-mirror-servers
+		$temp_rec=explode(",", $client_dns['dns_servers']);
+		$sql = "SELECT count(*) AS count FROM server WHERE mirror_server_id = ?";
+		foreach($temp_rec as $temp) {
+			$rec=$app->db->queryOneRecord($sql, $temp);
+			if ($rec['count'] > 0) {
+				break;
+			}
+		}
+		$show_dnssec=@($rec['count'] > 0)?0:1;
+		$app->tpl->setVar('show_dnssec', $show_dnssec);
+
+
 		$client_dns['dns_servers_ids'] = explode(',', $client_dns['dns_servers']);
 
 		$only_one_server = count($client_dns['dns_servers_ids']) === 1;
diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm
index f35a7e7a3a..157e2a03aa 100644
--- a/interface/web/dns/templates/dns_soa_edit.htm
+++ b/interface/web/dns/templates/dns_soa_edit.htm
@@ -125,6 +125,7 @@
                 </div>
             </div>
         
+<tmpl_if name="show_dnssec">
 		    <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='dnssec_wanted_txt'}</label>
                 <div class="col-sm-9">
@@ -135,7 +136,8 @@
                 <label for="update_acl" class="col-sm-3 control-label">{tmpl_var name='dnssec_info_txt'}</label>
                 <div class="col-sm-9"><textarea readonly="true" rows="5" id="dnssec_info" name="dnssec_info" class="form-control">{tmpl_var name='dnssec_info'}</textarea></div>
 			</div>
-            
+</tmpl_if>            
+
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
         <input name="serial" type="hidden" value="{tmpl_var name='serial'}">
             
@@ -170,4 +172,4 @@
         searchFieldWatermark: '',
         resultBoxPosition: ''
     });
-</script>
\ No newline at end of file
+</script>
-- 
GitLab


From ca68fea2d93dc723056da50a32096f2036e0d2a4 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 4 Aug 2016 15:11:40 +0200
Subject: [PATCH 150/313] Implemented #4071 prevent hhvm perf-{pid}.map files

---
 server/conf/hhvm_starter.master | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/conf/hhvm_starter.master b/server/conf/hhvm_starter.master
index 7ba9428a82..e530a405a3 100644
--- a/server/conf/hhvm_starter.master
+++ b/server/conf/hhvm_starter.master
@@ -59,7 +59,7 @@ do_start()
 		CUSTOMINIFILE="--config /etc/hhvm/{SYSTEM_USER}.ini" ;
 	fi
 	
-	/usr/bin/hhvm --mode daemon -vServer.Type=fastcgi --user {SYSTEM_USER} -vServer.FileSocket=/var/run/hhvm/hhvm.{SYSTEM_USER}.sock -vLog.Level=Warning -vLog.UseLogFile=false -vRepo.Central.Path=/var/run/hhvm/hhvm.{SYSTEM_USER}.hhbc -vServer.FixPathInfo=true $BASEINIFILE $INIFILE $CUSTOMINIFILE -vPidFile=/var/run/hhvm/hhvm_{SYSTEM_USER}.pid & echo $! > /var/run/hhvm/hhvm_{SYSTEM_USER}.pid
+	/usr/bin/hhvm --mode daemon -vServer.Type=fastcgi -vEval.PerfPidMap=false --user {SYSTEM_USER} -vServer.FileSocket=/var/run/hhvm/hhvm.{SYSTEM_USER}.sock -vLog.Level=Warning -vLog.UseLogFile=false -vRepo.Central.Path=/var/run/hhvm/hhvm.{SYSTEM_USER}.hhbc -vServer.FixPathInfo=true $BASEINIFILE $INIFILE $CUSTOMINIFILE -vPidFile=/var/run/hhvm/hhvm_{SYSTEM_USER}.pid & echo $! > /var/run/hhvm/hhvm_{SYSTEM_USER}.pid
 }
 
 do_stop()
-- 
GitLab


From f7fc296e3ba30b53414dbde11c57cec935d25a1e Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 4 Aug 2016 15:20:15 +0200
Subject: [PATCH 151/313] Fixed #4057 Remote API: some API calls are not
 working because the form definition files are missing

---
 interface/lib/classes/remote.d/sites.inc.php | 32 ++++++++++----------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php
index 2147e550a0..7c7279c398 100644
--- a/interface/lib/classes/remote.d/sites.inc.php
+++ b/interface/lib/classes/remote.d/sites.inc.php
@@ -481,7 +481,7 @@ class remoting_sites extends remoting {
 			return false;
 		}
 		$app->uses('remoting_lib');
-		$app->remoting_lib->loadFormDef('../sites/form/web_vhost_aliasdomain.tform.php');
+		$app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php');
 		return $app->remoting_lib->getDataRecord($primary_id);
 	}
 
@@ -505,7 +505,7 @@ class remoting_sites extends remoting {
 		if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
 		if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
 
-		$domain_id = $this->insertQuery('../sites/form/web_vhost_aliasdomain.tform.php', $client_id, $params, 'sites:web_vhost_aliasdomain:on_after_insert');
+		$domain_id = $this->insertQuery('../sites/form/web_vhost_domain.tform.php', $client_id, $params, 'sites:web_vhost_aliasdomain:on_after_insert');
 		return $domain_id;
 	}
 
@@ -523,7 +523,7 @@ class remoting_sites extends remoting {
 		if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
 		if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
 
-		$affected_rows = $this->updateQuery('../sites/form/web_vhost_aliasdomain.tform.php', $client_id, $primary_id, $params, 'sites:web_vhost_aliasdomain:on_after_insert');
+		$affected_rows = $this->updateQuery('../sites/form/web_vhost_domain.tform.php', $client_id, $primary_id, $params, 'sites:web_vhost_aliasdomain:on_after_insert');
 		return $affected_rows;
 	}
 
@@ -534,7 +534,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		$affected_rows = $this->deleteQuery('../sites/form/web_vhost_aliasdomain.tform.php', $primary_id);
+		$affected_rows = $this->deleteQuery('../sites/form/web_vhost_domain.tform.php', $primary_id);
 		return $affected_rows;
 	}
 
@@ -550,7 +550,7 @@ class remoting_sites extends remoting {
 			return false;
 		}
 		$app->uses('remoting_lib');
-		$app->remoting_lib->loadFormDef('../sites/form/web_vhost_subdomain.tform.php');
+		$app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php');
 		return $app->remoting_lib->getDataRecord($primary_id);
 	}
 
@@ -574,7 +574,7 @@ class remoting_sites extends remoting {
 		if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
 		if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
 
-		$domain_id = $this->insertQuery('../sites/form/web_vhost_subdomain.tform.php', $client_id, $params, 'sites:web_vhost_subdomain:on_after_insert');
+		$domain_id = $this->insertQuery('../sites/form/web_vhost_domain.tform.php', $client_id, $params, 'sites:web_vhost_subdomain:on_after_insert');
 		return $domain_id;
 	}
 
@@ -592,7 +592,7 @@ class remoting_sites extends remoting {
 		if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1;
 		if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1;
 
-		$affected_rows = $this->updateQuery('../sites/form/web_vhost_subdomain.tform.php', $client_id, $primary_id, $params, 'sites:web_vhost_subdomain:on_after_insert');
+		$affected_rows = $this->updateQuery('../sites/form/web_vhost_domain.tform.php', $client_id, $primary_id, $params, 'sites:web_vhost_subdomain:on_after_insert');
 		return $affected_rows;
 	}
 
@@ -603,7 +603,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		$affected_rows = $this->deleteQuery('../sites/form/web_vhost_subdomain.tform.php', $primary_id);
+		$affected_rows = $this->deleteQuery('../sites/form/web_vhost_domain.tform.php', $primary_id);
 		return $affected_rows;
 	}
 
@@ -619,7 +619,7 @@ class remoting_sites extends remoting {
 			return false;
 		}
 		$app->uses('remoting_lib');
-		$app->remoting_lib->loadFormDef('../sites/form/web_aliasdomain.tform.php');
+		$app->remoting_lib->loadFormDef('../sites/form/web_childdomain.tform.php');
 		return $app->remoting_lib->getDataRecord($primary_id);
 	}
 
@@ -630,7 +630,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		return $this->insertQuery('../sites/form/web_aliasdomain.tform.php', $client_id, $params);
+		return $this->insertQuery('../sites/form/web_childdomain.tform.php', $client_id, $params);
 	}
 
 	//* Update a record
@@ -640,7 +640,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		$affected_rows = $this->updateQuery('../sites/form/web_aliasdomain.tform.php', $client_id, $primary_id, $params);
+		$affected_rows = $this->updateQuery('../sites/form/web_childdomain.tform.php', $client_id, $primary_id, $params);
 		return $affected_rows;
 	}
 
@@ -651,7 +651,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		$affected_rows = $this->deleteQuery('../sites/form/web_aliasdomain.tform.php', $primary_id);
+		$affected_rows = $this->deleteQuery('../sites/form/web_childdomain.tform.php', $primary_id);
 		return $affected_rows;
 	}
 
@@ -667,7 +667,7 @@ class remoting_sites extends remoting {
 			return false;
 		}
 		$app->uses('remoting_lib');
-		$app->remoting_lib->loadFormDef('../sites/form/web_subdomain.tform.php');
+		$app->remoting_lib->loadFormDef('../sites/form/web_childdomain.tform.php');
 		return $app->remoting_lib->getDataRecord($primary_id);
 	}
 
@@ -678,7 +678,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		return $this->insertQuery('../sites/form/web_subdomain.tform.php', $client_id, $params);
+		return $this->insertQuery('../sites/form/web_childdomain.tform.php', $client_id, $params);
 	}
 
 	//* Update a record
@@ -688,7 +688,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		$affected_rows = $this->updateQuery('../sites/form/web_subdomain.tform.php', $client_id, $primary_id, $params);
+		$affected_rows = $this->updateQuery('../sites/form/web_childdomain.tform.php', $client_id, $primary_id, $params);
 		return $affected_rows;
 	}
 
@@ -699,7 +699,7 @@ class remoting_sites extends remoting {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
-		$affected_rows = $this->deleteQuery('../sites/form/web_subdomain.tform.php', $primary_id);
+		$affected_rows = $this->deleteQuery('../sites/form/web_childdomain.tform.php', $primary_id);
 		return $affected_rows;
 	}
 
-- 
GitLab


From cd6f16c1d651f8718b3573f8c9e29f3f049eb2d9 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 4 Aug 2016 17:47:43 +0200
Subject: [PATCH 152/313] Fixed #4056 certain Limits don't save

---
 .../lib/classes/client_templates.inc.php      | 22 ++++++++--
 .../web/client/form/client_template.tform.php | 41 ++++++++++++++++---
 .../templates/client_template_edit_limits.htm | 25 +++++++++++
 .../default/assets/javascripts/ispconfig.js   |  2 +-
 4 files changed, 81 insertions(+), 9 deletions(-)

diff --git a/interface/lib/classes/client_templates.inc.php b/interface/lib/classes/client_templates.inc.php
index d88628b875..ccf25f4d19 100644
--- a/interface/lib/classes/client_templates.inc.php
+++ b/interface/lib/classes/client_templates.inc.php
@@ -19,7 +19,6 @@ class client_templates {
 		global $app, $conf;
 
 		if(!is_array($templates)) return false;
-
 		$new_tpl = array();
 		$used_assigned = array();
 		$needed_types = array();
@@ -155,7 +154,6 @@ class client_templates {
 					/* we can remove this condition, but it is easier to debug with it (don't add ids and other non-limit values) */
 					if (strpos($k, 'limit') !== false or strpos($k, 'default') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec'){
 						$app->log('Template processing key ' . $k . ' for client ' . $clientId, LOGLEVEL_DEBUG);
-
 						/* process the numerical limits */
 						if (is_numeric($v)){
 							/* switch for special cases */
@@ -195,6 +193,24 @@ class client_templates {
 									$limits[$k] = array();
 								}
 
+								$limits_values = $limits[$k];
+								if (is_string($limits[$k])){
+									$limits_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"], $limits[$k]);
+								}
+								$additional_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"], $v);
+								$app->log('Template processing key ' . $k . ' type CHECKBOXARRAY, lim / add: ' . implode(',', $limits_values) . ' / ' . implode(',', $additional_values) . ' for client ' . $clientId, LOGLEVEL_DEBUG);
+								/* unification of limits_values (master template) and additional_values (additional template) */
+								$limits_unified = array();
+								foreach($form["tabs"]["limits"]["fields"][$k]["value"] as $key => $val){
+									if (in_array($key, $limits_values) || in_array($key, $additional_values)) $limits_unified[] = $key;
+								}
+								$limits[$k] = implode($form["tabs"]["limits"]["fields"][$k]["separator"], $limits_unified);
+								break;
+							case 'MULTIPLE':
+								if (!isset($limits[$k])){
+									$limits[$k] = array();
+								}
+
 								$limits_values = $limits[$k];
 								if (is_string($limits[$k])){
 									$limits_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"], $limits[$k]);
@@ -245,7 +261,7 @@ class client_templates {
 			if (strpos($k, 'default') !== false and $v == 0) {
 				continue; // template doesn't define default server, client's default musn't be changed
 			}
-			if ((strpos($k, 'limit') !== false or strpos($k, 'default') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec') && !is_array($v)){
+			if ((strpos($k, 'limit') !== false or strpos($k, 'default') !== false or strpos($k, '_servers') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec') && !is_array($v)){
 				if ($update != '') $update .= ', ';
 				$update .= '?? = ?';
 				$update_values[] = $k;
diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index a3718fab52..13e8cfbcce 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -126,6 +126,18 @@ $form["tabs"]['limits'] = array (
 			'value'  => array(''),
 			'name'  => 'default_mailserver'
 		),*/
+		'mail_servers' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'MULTIPLE',
+			'separator' => ',',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'mail_servers'
+		),
 		'limit_maildomain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -432,6 +444,18 @@ $form["tabs"]['limits'] = array (
 			'value'  => array(''),
 			'name'  => 'default_webserver'
 		),*/
+		'web_servers' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'MULTIPLE',
+			'separator' => ',',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'web_servers'
+		),
 		'limit_web_domain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -644,11 +668,6 @@ $form["tabs"]['limits'] = array (
 				'class'=> 'custom_datasource',
 				'function'=> 'client_servers'
 			),
-			'validators'    => array (  0 => array ( 'type' => 'CUSTOM',
-					'class' => 'validate_client',
-					'function' => 'check_used_servers',
-					'errmsg'=> 'dns_servers_used'),
-			),
 			'value'  => '',
 			'name'  => 'dns_servers'
 		),
@@ -733,6 +752,18 @@ $form["tabs"]['limits'] = array (
 			'value'  => array(''),
 			'name'  => 'default_dbserver'
 		),*/
+		'db_servers' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'MULTIPLE',
+			'separator' => ',',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'db_servers'
+		),
 		'limit_database' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm
index 6a09bb641e..91dced20f2 100644
--- a/interface/web/client/templates/client_template_edit_limits.htm
+++ b/interface/web/client/templates/client_template_edit_limits.htm
@@ -18,6 +18,12 @@
     <div id="collapseWeb" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingWeb">
       <div class="panel-body">
                 <div class="form-group">
+                    <label for="web_servers" class="col-sm-3 control-label">{tmpl_var name='web_servers_txt'}</label>
+                    <div class="col-sm-9"><select data-placeholder="{tmpl_var name='web_servers_placeholder'}" multiple name="web_servers[]" id="web_servers" class="form-control">
+                        {tmpl_var name='web_servers'}
+                    </select></div>
+                </div>
+				<div class="form-group">
                     <label for="limit_web_domain" class="col-sm-3 control-label">{tmpl_var name='limit_web_domain_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" class="form-control" /></div></div>
                 <div class="form-group">
@@ -141,6 +147,13 @@
     <div id="collapseMail" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingMail">
       <div class="panel-body">
                 <div class="form-group">
+                    <label for="mail_servers" class="col-sm-3 control-label">{tmpl_var name='mail_servers_txt'}</label>
+                    <div class="col-sm-9">
+						<select data-placeholder="{tmpl_var name='mail_servers_placeholder'}" multiple name="mail_servers[]" id="mail_servers" class="form-control">
+                        {tmpl_var name='mail_servers'}
+                    </select></div>
+                </div>
+				<div class="form-group">
                     <label for="limit_maildomain" class="col-sm-3 control-label">{tmpl_var name='limit_maildomain_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" class="form-control" /></div></div>
                 <div class="form-group">
@@ -197,6 +210,12 @@
     <div id="collapseXMPP" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingXMPP">
       <div class="panel-body">
                 <div class="form-group">
+                    <label for="xmpp_servers" class="col-sm-3 control-label">{tmpl_var name='xmpp_servers_txt'}</label>
+                    <div class="col-sm-9"><select data-placeholder="{tmpl_var name='xmpp_servers_placeholder'}" multiple name="xmpp_servers[]" id="xmpp_servers" class="form-control">
+                        {tmpl_var name='xmpp_servers'}
+                    </select></div>
+                </div>
+				<div class="form-group">
                     <label for="limit_xmpp_domain" class="col-sm-3 control-label">{tmpl_var name='limit_xmpp_domain_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="limit_xmpp_domain" id="limit_xmpp_domain" value="{tmpl_var name='limit_xmpp_domain'}" class="form-control" /></div></div>
                 <div class="form-group">
@@ -264,6 +283,12 @@
     <div id="collapseDB" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingDB">
       <div class="panel-body">
                 <div class="form-group">
+                    <label for="db_servers" class="col-sm-3 control-label">{tmpl_var name='db_servers_txt'}</label>
+                    <div class="col-sm-9"><select data-placeholder="{tmpl_var name='db_servers_placeholder'}" multiple name="db_servers[]" id="db_servers" class="form-control">
+                        {tmpl_var name='db_servers'}
+                    </select></div>
+                </div>
+				<div class="form-group">
                     <label for="limit_database" class="col-sm-3 control-label">{tmpl_var name='limit_database_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" class="form-control" /></div></div>
                 <div class="form-group">
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index e4722ba8c5..c20685fe06 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -502,7 +502,7 @@ var ISPConfig = {
 		if(addTplId > 0) {
 			var newVal = tpl_add.split('/');
 			ISPConfig.new_tpl_add_id += 1;
-			var delbtn = $('&nbsp;<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
+			var delbtn = $('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
 				e.preventDefault();
 				ISPConfig.delAdditionalTemplate($(this).parent().attr('rel'));
 			});
-- 
GitLab


From 0bb6bfa2e69bf60ce9b84461908defa9de814b50 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 5 Aug 2016 09:25:52 +0200
Subject: [PATCH 153/313] Added missing language file strings.

---
 interface/web/client/lib/lang/de_client_template.lng | 5 +++++
 interface/web/client/lib/lang/en_client_template.lng | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/interface/web/client/lib/lang/de_client_template.lng b/interface/web/client/lib/lang/de_client_template.lng
index ef8663b10c..e0a64ed99c 100644
--- a/interface/web/client/lib/lang/de_client_template.lng
+++ b/interface/web/client/lib/lang/de_client_template.lng
@@ -117,4 +117,9 @@ $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_directive_snippets_txt'] = 'Webserver-Konfigurationsauswahl sichtbar';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb["web_servers_txt"] = 'Web-Server';
+$wb["dns_servers_txt"] = 'DNS-Servers';
+$wb["xmpp_servers_txt"] = 'XMPP-Server';
+$wb["db_servers_txt"] = 'Datenbank-Server';
+$wb["mail_servers_txt"] = 'Mail-Server';
 ?>
diff --git a/interface/web/client/lib/lang/en_client_template.lng b/interface/web/client/lib/lang/en_client_template.lng
index afab7c366e..5d2b892a1d 100644
--- a/interface/web/client/lib/lang/en_client_template.lng
+++ b/interface/web/client/lib/lang/en_client_template.lng
@@ -119,4 +119,9 @@ $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb["dns_servers_txt"] = 'DNS servers';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb["web_servers_txt"] = 'Webservers';
+$wb["dns_servers_txt"] = 'DNS servers';
+$wb["xmpp_servers_txt"] = 'XMPP Servers';
+$wb["db_servers_txt"] = 'Database servers';
+$wb["mail_servers_txt"] = 'Mailservers';
 ?>
-- 
GitLab


From bf3dfb426ecc937d7f87421e936426be2e65fdf1 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 5 Aug 2016 09:27:27 +0200
Subject: [PATCH 154/313] Moved sql queries from upd_dev_collection.sql to
 upd_0083.sql

---
 install/sql/incremental/upd_0083.sql           | 15 +++++++++++++++
 install/sql/incremental/upd_dev_collection.sql | 15 ---------------
 2 files changed, 15 insertions(+), 15 deletions(-)
 create mode 100644 install/sql/incremental/upd_0083.sql

diff --git a/install/sql/incremental/upd_0083.sql b/install/sql/incremental/upd_0083.sql
new file mode 100644
index 0000000000..f0a3df83f3
--- /dev/null
+++ b/install/sql/incremental/upd_0083.sql
@@ -0,0 +1,15 @@
+ALTER TABLE `client` CHANGE `web_servers` `web_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `mail_servers` `mail_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `xmpp_servers` `xmpp_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `db_servers` `db_servers` TEXT NULL DEFAULT NULL;
+ALTER TABLE `client` CHANGE `dns_servers` `dns_servers` TEXT NULL DEFAULT NULL;
+UPDATE client SET web_servers = default_webserver WHERE (web_servers = '' OR web_servers IS NULL);
+UPDATE client SET mail_servers = default_mailserver WHERE (mail_servers = '' OR mail_servers IS NULL);
+UPDATE client SET xmpp_servers = default_xmppserver WHERE (xmpp_servers = '' OR xmpp_servers IS NULL);
+UPDATE client SET db_servers = default_dbserver WHERE (db_servers = '' OR db_servers IS NULL);
+UPDATE client SET dns_servers = default_dnsserver WHERE (dns_servers = '' OR dns_servers IS NULL);
+ALTER TABLE `client_template` ADD `default_slave_dnsserver` INT NOT NULL DEFAULT '0' AFTER `limit_dns_slave_zone`;
+ALTER TABLE `client_template` ADD `mail_servers` TEXT NULL DEFAULT NULL AFTER `template_type`;
+ALTER TABLE `client_template` ADD `web_servers` TEXT NULL DEFAULT NULL AFTER `limit_xmpp_httparchive`;
+ALTER TABLE `client_template` ADD `dns_servers` TEXT NULL DEFAULT NULL AFTER `limit_aps`;
+ALTER TABLE `client_template` ADD `db_servers` TEXT NULL DEFAULT NULL AFTER `limit_dns_record`;
\ No newline at end of file
diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index f0a3df83f3..e69de29bb2 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -1,15 +0,0 @@
-ALTER TABLE `client` CHANGE `web_servers` `web_servers` TEXT NULL DEFAULT NULL;
-ALTER TABLE `client` CHANGE `mail_servers` `mail_servers` TEXT NULL DEFAULT NULL;
-ALTER TABLE `client` CHANGE `xmpp_servers` `xmpp_servers` TEXT NULL DEFAULT NULL;
-ALTER TABLE `client` CHANGE `db_servers` `db_servers` TEXT NULL DEFAULT NULL;
-ALTER TABLE `client` CHANGE `dns_servers` `dns_servers` TEXT NULL DEFAULT NULL;
-UPDATE client SET web_servers = default_webserver WHERE (web_servers = '' OR web_servers IS NULL);
-UPDATE client SET mail_servers = default_mailserver WHERE (mail_servers = '' OR mail_servers IS NULL);
-UPDATE client SET xmpp_servers = default_xmppserver WHERE (xmpp_servers = '' OR xmpp_servers IS NULL);
-UPDATE client SET db_servers = default_dbserver WHERE (db_servers = '' OR db_servers IS NULL);
-UPDATE client SET dns_servers = default_dnsserver WHERE (dns_servers = '' OR dns_servers IS NULL);
-ALTER TABLE `client_template` ADD `default_slave_dnsserver` INT NOT NULL DEFAULT '0' AFTER `limit_dns_slave_zone`;
-ALTER TABLE `client_template` ADD `mail_servers` TEXT NULL DEFAULT NULL AFTER `template_type`;
-ALTER TABLE `client_template` ADD `web_servers` TEXT NULL DEFAULT NULL AFTER `limit_xmpp_httparchive`;
-ALTER TABLE `client_template` ADD `dns_servers` TEXT NULL DEFAULT NULL AFTER `limit_aps`;
-ALTER TABLE `client_template` ADD `db_servers` TEXT NULL DEFAULT NULL AFTER `limit_dns_record`;
\ No newline at end of file
-- 
GitLab


From 9a9242b437515423ed51c8e56be5bc38660dc17a Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 5 Aug 2016 09:35:23 +0200
Subject: [PATCH 155/313] Merged missing strings into the language files.

---
 .../web/admin/lib/lang/ar_server_config.lng   |   1 +
 .../web/admin/lib/lang/bg_server_config.lng   |   1 +
 .../web/admin/lib/lang/br_server_config.lng   |   1 +
 interface/web/admin/lib/lang/ca.lng           |  40 +-
 .../admin/lib/lang/ca_directive_snippets.lng  |  16 +-
 .../lib/lang/ca_directive_snippets_list.lng   |  12 +-
 interface/web/admin/lib/lang/ca_firewall.lng  |  21 +-
 .../web/admin/lib/lang/ca_firewall_list.lng   |  14 +-
 interface/web/admin/lib/lang/ca_groups.lng    |   8 +-
 .../web/admin/lib/lang/ca_groups_list.lng     |  12 +-
 interface/web/admin/lib/lang/ca_iptables.lng  |  24 +-
 .../web/admin/lib/lang/ca_iptables_list.lng   |  46 +--
 .../web/admin/lib/lang/ca_language_add.lng    |  10 +-
 .../admin/lib/lang/ca_language_complete.lng   |   8 +-
 .../web/admin/lib/lang/ca_language_export.lng |   6 +-
 .../web/admin/lib/lang/ca_language_import.lng |  10 +-
 .../web/admin/lib/lang/ca_language_list.lng   |  10 +-
 .../web/admin/lib/lang/ca_package_install.lng |  12 +-
 .../web/admin/lib/lang/ca_remote_action.lng   |  12 +-
 .../admin/lib/lang/ca_remote_user_list.lng    |   9 +-
 interface/web/admin/lib/lang/ca_server.lng    |  29 +-
 .../web/admin/lib/lang/ca_server_config.lng   | 374 +++++++++---------
 .../admin/lib/lang/ca_server_config_list.lng  |   6 +-
 interface/web/admin/lib/lang/ca_server_ip.lng |  20 +-
 .../web/admin/lib/lang/ca_server_ip_list.lng  |  18 +-
 .../web/admin/lib/lang/ca_server_ip_map.lng   |  20 +-
 .../admin/lib/lang/ca_server_ip_map_list.lng  |  10 +-
 .../web/admin/lib/lang/ca_server_list.lng     |  25 +-
 .../admin/lib/lang/ca_software_package.lng    |   8 +-
 .../lib/lang/ca_software_package_install.lng  |  10 +-
 .../web/admin/lib/lang/ca_software_repo.lng   |  12 +-
 .../admin/lib/lang/ca_software_repo_list.lng  |  10 +-
 .../web/admin/lib/lang/ca_system_config.lng   |  75 ++--
 interface/web/admin/lib/lang/ca_users.lng     |  54 +--
 .../web/admin/lib/lang/ca_users_list.lng      |  16 +-
 .../web/admin/lib/lang/cz_server_config.lng   |   1 +
 .../web/admin/lib/lang/el_server_config.lng   |   1 +
 .../web/admin/lib/lang/es_server_config.lng   |   1 +
 .../web/admin/lib/lang/fi_server_config.lng   |   1 +
 .../web/admin/lib/lang/fr_server_config.lng   |   1 +
 .../web/admin/lib/lang/hr_server_config.lng   |   1 +
 .../web/admin/lib/lang/hu_server_config.lng   |   1 +
 .../web/admin/lib/lang/id_server_config.lng   |   1 +
 .../web/admin/lib/lang/it_server_config.lng   |   1 +
 .../web/admin/lib/lang/ja_server_config.lng   |   1 +
 .../web/admin/lib/lang/nl_server_config.lng   |   1 +
 .../web/admin/lib/lang/pl_server_config.lng   |   1 +
 .../web/admin/lib/lang/pt_server_config.lng   |   1 +
 .../web/admin/lib/lang/ro_server_config.lng   |   1 +
 .../web/admin/lib/lang/ru_server_config.lng   |   1 +
 .../web/admin/lib/lang/se_server_config.lng   |   1 +
 .../web/admin/lib/lang/sk_server_config.lng   |   1 +
 .../web/admin/lib/lang/tr_server_config.lng   |   1 +
 interface/web/client/lib/lang/ar_client.lng   |   1 +
 .../client/lib/lang/ar_client_template.lng    |   3 +
 interface/web/client/lib/lang/ar_reseller.lng |   1 +
 interface/web/client/lib/lang/bg_client.lng   |   1 +
 .../client/lib/lang/bg_client_template.lng    |   3 +
 interface/web/client/lib/lang/bg_reseller.lng |   1 +
 interface/web/client/lib/lang/br_client.lng   |   1 +
 .../client/lib/lang/br_client_template.lng    |   3 +
 interface/web/client/lib/lang/br_reseller.lng |   1 +
 interface/web/client/lib/lang/ca_client.lng   |   1 +
 .../client/lib/lang/ca_client_template.lng    |   3 +
 interface/web/client/lib/lang/ca_reseller.lng |   1 +
 interface/web/client/lib/lang/cz_client.lng   |   1 +
 .../client/lib/lang/cz_client_template.lng    |   3 +
 interface/web/client/lib/lang/cz_reseller.lng |   1 +
 interface/web/client/lib/lang/de_client.lng   |   1 +
 .../client/lib/lang/de_client_template.lng    |  12 +-
 interface/web/client/lib/lang/de_reseller.lng |   1 +
 interface/web/client/lib/lang/el_client.lng   |   1 +
 .../client/lib/lang/el_client_template.lng    |   3 +
 interface/web/client/lib/lang/el_reseller.lng |   1 +
 interface/web/client/lib/lang/es_client.lng   |   1 +
 .../client/lib/lang/es_client_template.lng    |   3 +
 interface/web/client/lib/lang/es_reseller.lng |   1 +
 interface/web/client/lib/lang/fi_client.lng   |   1 +
 .../client/lib/lang/fi_client_template.lng    |   3 +
 interface/web/client/lib/lang/fi_reseller.lng |   1 +
 interface/web/client/lib/lang/fr_client.lng   |   1 +
 .../client/lib/lang/fr_client_template.lng    |   3 +
 interface/web/client/lib/lang/fr_reseller.lng |   1 +
 interface/web/client/lib/lang/hr_client.lng   |   1 +
 .../client/lib/lang/hr_client_template.lng    |   3 +
 interface/web/client/lib/lang/hr_reseller.lng |   1 +
 interface/web/client/lib/lang/hu_client.lng   |   1 +
 .../client/lib/lang/hu_client_template.lng    |   3 +
 interface/web/client/lib/lang/hu_reseller.lng |   1 +
 interface/web/client/lib/lang/id_client.lng   |   1 +
 .../client/lib/lang/id_client_template.lng    |   3 +
 interface/web/client/lib/lang/id_reseller.lng |   1 +
 interface/web/client/lib/lang/it_client.lng   |   1 +
 .../client/lib/lang/it_client_template.lng    |   3 +
 interface/web/client/lib/lang/it_reseller.lng |   1 +
 interface/web/client/lib/lang/ja_client.lng   |   1 +
 .../client/lib/lang/ja_client_template.lng    |   3 +
 interface/web/client/lib/lang/ja_reseller.lng |   1 +
 .../client/lib/lang/nl_client_template.lng    |   3 +
 interface/web/client/lib/lang/pl_client.lng   |   1 +
 .../client/lib/lang/pl_client_template.lng    |   3 +
 interface/web/client/lib/lang/pl_reseller.lng |   1 +
 interface/web/client/lib/lang/pt_client.lng   |   1 +
 .../client/lib/lang/pt_client_template.lng    |   3 +
 interface/web/client/lib/lang/pt_reseller.lng |   1 +
 interface/web/client/lib/lang/ro_client.lng   |   1 +
 .../client/lib/lang/ro_client_template.lng    |   3 +
 interface/web/client/lib/lang/ro_reseller.lng |   1 +
 interface/web/client/lib/lang/ru_client.lng   |   1 +
 .../client/lib/lang/ru_client_template.lng    |   3 +
 interface/web/client/lib/lang/ru_reseller.lng |   1 +
 interface/web/client/lib/lang/se_client.lng   |   1 +
 .../client/lib/lang/se_client_template.lng    |   3 +
 interface/web/client/lib/lang/se_reseller.lng |   1 +
 interface/web/client/lib/lang/sk_client.lng   |   1 +
 .../client/lib/lang/sk_client_template.lng    |   3 +
 interface/web/client/lib/lang/sk_reseller.lng |   1 +
 interface/web/client/lib/lang/tr_client.lng   |   1 +
 .../client/lib/lang/tr_client_template.lng    |   3 +
 interface/web/client/lib/lang/tr_reseller.lng |   1 +
 interface/web/dns/lib/lang/ar_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/bg_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/br_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/ca_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/cz_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/el_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/es_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/fi_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/fr_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/hr_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/hu_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/id_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/it_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/ja_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/nl_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/pl_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/pt_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/ro_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/ru_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/se_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/sk_dns_wizard.lng  |   1 +
 interface/web/dns/lib/lang/tr_dns_wizard.lng  |   1 +
 interface/web/mail/lib/lang/ar_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/bg_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/br_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/ca_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/cz_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/de_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/el_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/es.lng            |   2 +-
 .../mail/lib/lang/es_mail_domain_catchall.lng |   4 +-
 .../lib/lang/es_mail_domain_catchall_list.lng |   4 +-
 interface/web/mail/lib/lang/es_mail_get.lng   |   2 +-
 interface/web/mail/lib/lang/es_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/fi_mail_user.lng  |   1 +
 interface/web/mail/lib/lang/nl_mail_user.lng  |   4 +-
 .../lib/lang/ar_mail_user_password.lng        |   1 +
 .../lib/lang/bg_mail_user_password.lng        |   1 +
 .../lib/lang/br_mail_user_password.lng        |   1 +
 .../lib/lang/ca_mail_user_password.lng        |   1 +
 .../lib/lang/cz_mail_user_password.lng        |   1 +
 .../lib/lang/de_mail_user_password.lng        |   1 +
 .../lib/lang/el_mail_user_password.lng        |   1 +
 .../lib/lang/es_mail_user_password.lng        |   1 +
 .../lib/lang/fi_mail_user_password.lng        |   1 +
 .../lib/lang/fr_mail_user_password.lng        |   1 +
 .../lib/lang/hr_mail_user_password.lng        |   1 +
 .../lib/lang/hu_mail_user_password.lng        |   1 +
 .../lib/lang/id_mail_user_password.lng        |   1 +
 .../lib/lang/it_mail_user_password.lng        |   1 +
 .../lib/lang/ja_mail_user_password.lng        |   1 +
 .../lib/lang/pl_mail_user_password.lng        |   1 +
 .../lib/lang/pt_mail_user_password.lng        |   1 +
 .../lib/lang/ro_mail_user_password.lng        |   1 +
 .../lib/lang/ru_mail_user_password.lng        |   1 +
 .../lib/lang/se_mail_user_password.lng        |   1 +
 .../lib/lang/sk_mail_user_password.lng        |   1 +
 .../lib/lang/tr_mail_user_password.lng        |   1 +
 interface/web/monitor/lib/lang/es.lng         |   2 +-
 179 files changed, 655 insertions(+), 516 deletions(-)

diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index 5660f37479..188e064e90 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 7f2901ab4d..fa927dd768 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index 7f8ecf922c..d682d2ecf2 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/ca.lng b/interface/web/admin/lib/lang/ca.lng
index 0d075c1165..d136825687 100644
--- a/interface/web/admin/lib/lang/ca.lng
+++ b/interface/web/admin/lib/lang/ca.lng
@@ -1,63 +1,51 @@
 <?php
-//Errors
-$wb[1001] = "Username or password is empty.";
-$wb[1002] = "Username or password is wrong.";
-
+$wb['1001'] = 'Username or password is empty.';
+$wb['1002'] = 'Username or password is wrong.';
 $wb['Groups'] = 'Groups';
 $wb['groups_description'] = 'Form to edit systemuser groups.';
-
 $wb['Servers'] = 'Servers';
 $wb['Config'] = 'Config';
-
 $wb['Add user'] = 'Add user';
 $wb['Edit user'] = 'Edit user';
 $wb['Add group'] = 'Add group';
 $wb['Edit group'] = 'Edit group';
 $wb['Edit server'] = 'Edit server';
-
 $wb['Sync. Now'] = 'Sync. Now';
 $wb['DB Sync.'] = 'DB Sync.';
-
-// subnav
 $wb['User Management'] = 'User Management';
 $wb['CP Users'] = 'CP Users';
 $wb['Remote Users'] = 'Remote Users';
-
 $wb['System'] = 'System';
 $wb['Server Services'] = 'Server Services';
-    $wb['Services'] = 'Services';
+$wb['Services'] = 'Services';
 $wb['Server Config'] = 'Server Config';
-    $wb['Server'] = 'Server';
-    $wb['Mail'] = 'Mail';
-    $wb['Getmail'] = 'Getmail';
-    $wb['Web'] = 'Web';
-    $wb['FastCGI'] = 'FastCGI';
-    $wb['Jailkit'] = 'Jailkit';
-    $wb['Rescue'] = 'Rescue';
+$wb['Server'] = 'Server';
+$wb['Mail'] = 'Mail';
+$wb['Getmail'] = 'Getmail';
+$wb['Web'] = 'Web';
+$wb['FastCGI'] = 'FastCGI';
+$wb['Jailkit'] = 'Jailkit';
+$wb['Rescue'] = 'Rescue';
 $wb['Server IP addresses'] = 'Server IP addresses';
 $wb['Additional PHP Versions'] = 'Additional PHP Versions';
 $wb['Directive Snippets'] = 'Directive Snippets';
 $wb['Firewall'] = 'Firewall';
-
 $wb['Interface'] = 'Interface';
 $wb['Interface Config'] = 'Main Config';
-    $wb['Sites'] = 'Sites';
-    $wb['DNS'] = 'DNS';
-    $wb['Domains'] = 'Domains';
-    $wb['Misc'] = 'Misc';
-
+$wb['Sites'] = 'Sites';
+$wb['DNS'] = 'DNS';
+$wb['Domains'] = 'Domains';
+$wb['Misc'] = 'Misc';
 $wb['Software'] = 'Apps & Addons';
 $wb['Repositories'] = 'Repositories';
 $wb['Packages'] = 'Packages';
 $wb['Updates'] = 'Updates';
-
 $wb['Language Editor'] = 'Language Editor';
 $wb['Languages'] = 'Languages';
 $wb['New Language'] = 'New Language';
 $wb['Merge'] = 'Merge';
 $wb['Export'] = 'Export';
 $wb['Import'] = 'Import';
-
 $wb['Remote Actions'] = 'Remote Actions';
 $wb['Do OS-Update'] = 'Do OS-Update';
 $wb['Do ISPConfig-Update'] = 'Do ISPConfig-Update';
diff --git a/interface/web/admin/lib/lang/ca_directive_snippets.lng b/interface/web/admin/lib/lang/ca_directive_snippets.lng
index e8733cd948..21387b31e5 100644
--- a/interface/web/admin/lib/lang/ca_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/ca_directive_snippets.lng
@@ -1,11 +1,11 @@
 <?php
-$wb["Directive Snippets"] = 'Directive Snippets';
-$wb["name_txt"] = 'Name of Snippet';
-$wb["type_txt"] = 'Type';
-$wb["snippet_txt"] = 'Snippet';
-$wb["active_txt"] = 'Active';
-$wb["directive_snippets_name_empty"] = 'Please specify a name for the snippet.';
-$wb["directive_snippets_name_error_unique"] = 'There is already a directive snippet with this name.';
+$wb['Directive Snippets'] = 'Directive Snippets';
+$wb['name_txt'] = 'Name of Snippet';
+$wb['type_txt'] = 'Type';
+$wb['snippet_txt'] = 'Snippet';
+$wb['active_txt'] = 'Active';
+$wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
+$wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_directive_snippets_list.lng b/interface/web/admin/lib/lang/ca_directive_snippets_list.lng
index 7a4db54ea4..8e189f9f79 100644
--- a/interface/web/admin/lib/lang/ca_directive_snippets_list.lng
+++ b/interface/web/admin/lib/lang/ca_directive_snippets_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb["list_head_txt"] = 'Directive Snippets';
-$wb["active_txt"] = 'Active';
-$wb["name_txt"] = 'Name of Snippet';
-$wb["type_txt"] = 'Type';
-$wb["add_new_record_txt"] = 'Add Directive Snippet';
+$wb['list_head_txt'] = 'Directive Snippets';
+$wb['active_txt'] = 'Active';
+$wb['name_txt'] = 'Name of Snippet';
+$wb['type_txt'] = 'Type';
+$wb['add_new_record_txt'] = 'Add Directive Snippet';
 $wb['customer_viewable_txt'] = 'Customer viewable';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_firewall.lng b/interface/web/admin/lib/lang/ca_firewall.lng
index 025108bebe..0e08215f7a 100644
--- a/interface/web/admin/lib/lang/ca_firewall.lng
+++ b/interface/web/admin/lib/lang/ca_firewall.lng
@@ -1,12 +1,11 @@
 <?php
-$wb["server_id_txt"] = 'Server';
-$wb["tcp_port_txt"] = 'Open TCP ports';
-$wb["udp_port_txt"] = 'Open UDP ports';
-$wb["tcp_port_help_txt"] = 'Separated by comma';
-$wb["udp_port_help_txt"] = 'Separated by comma';
-$wb["active_txt"] = 'Active';
-$wb["firewall_error_unique"] = 'There is already a firewall record for this server.';
-$wb["active_txt"] = 'Active';
-$wb["tcp_ports_error_regex"] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".';
-$wb["udp_ports_error_regex"] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".';
-?>
\ No newline at end of file
+$wb['server_id_txt'] = 'Server';
+$wb['tcp_port_txt'] = 'Open TCP ports';
+$wb['udp_port_txt'] = 'Open UDP ports';
+$wb['tcp_port_help_txt'] = 'Separated by comma';
+$wb['udp_port_help_txt'] = 'Separated by comma';
+$wb['active_txt'] = 'Active';
+$wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".';
+$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".';
+?>
diff --git a/interface/web/admin/lib/lang/ca_firewall_list.lng b/interface/web/admin/lib/lang/ca_firewall_list.lng
index d16e1c7dfc..24a34be1c1 100644
--- a/interface/web/admin/lib/lang/ca_firewall_list.lng
+++ b/interface/web/admin/lib/lang/ca_firewall_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb["list_head_txt"] = 'Firewall';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["tcp_port_txt"] = 'Open TCP ports';
-$wb["udp_port_txt"] = 'Open UDP ports';
-$wb["add_new_record_txt"] = 'Add Firewall record';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'Firewall';
+$wb['active_txt'] = 'Active';
+$wb['server_id_txt'] = 'Server';
+$wb['tcp_port_txt'] = 'Open TCP ports';
+$wb['udp_port_txt'] = 'Open UDP ports';
+$wb['add_new_record_txt'] = 'Add Firewall record';
+?>
diff --git a/interface/web/admin/lib/lang/ca_groups.lng b/interface/web/admin/lib/lang/ca_groups.lng
index a504f9913e..61c3dc538d 100644
--- a/interface/web/admin/lib/lang/ca_groups.lng
+++ b/interface/web/admin/lib/lang/ca_groups.lng
@@ -1,5 +1,5 @@
 <?php
-$wb["description_txt"] = 'Description';
-$wb["name_txt"] = 'Group';
-$wb["name_err"] = 'Group must be min 1, max 30 Chars.';
-?>
\ No newline at end of file
+$wb['description_txt'] = 'Description';
+$wb['name_txt'] = 'Group';
+$wb['name_err'] = 'Group must be min 1, max 30 Chars.';
+?>
diff --git a/interface/web/admin/lib/lang/ca_groups_list.lng b/interface/web/admin/lib/lang/ca_groups_list.lng
index ba1831836a..f1d8e2c1a3 100644
--- a/interface/web/admin/lib/lang/ca_groups_list.lng
+++ b/interface/web/admin/lib/lang/ca_groups_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb["list_head_txt"] = 'Systemuser groups';
-$wb["description_txt"] = 'Description';
-$wb["name_txt"] = 'Group';
-$wb["add_new_record_txt"] = 'Add new Group';
-$wb["warning_txt"] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'Systemuser groups';
+$wb['description_txt'] = 'Description';
+$wb['name_txt'] = 'Group';
+$wb['add_new_record_txt'] = 'Add new Group';
+$wb['warning_txt'] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
+?>
diff --git a/interface/web/admin/lib/lang/ca_iptables.lng b/interface/web/admin/lib/lang/ca_iptables.lng
index c675592f96..40760b9498 100644
--- a/interface/web/admin/lib/lang/ca_iptables.lng
+++ b/interface/web/admin/lib/lang/ca_iptables.lng
@@ -1,15 +1,13 @@
 <?php
-
-$wb["server_id_txt"] = 'Server';
-$wb["multiport_txt"] = 'Multi Port';
-$wb["singleport_txt"] = 'Single Port';
-$wb["protocol_txt"] = 'Protocol';
-$wb["table_txt"] = 'Table';
-$wb["target_txt"] = 'Target';
-$wb["state_txt"] = 'State';
-$wb["destination_ip_txt"] = 'Destination Address';
-$wb["source_ip_txt"] = 'Source Address';
-$wb["active_txt"] = 'Active';
-$wb["iptables_error_unique"] = 'There is already a firewall record for this server.';
-
+$wb['server_id_txt'] = 'Server';
+$wb['multiport_txt'] = 'Multi Port';
+$wb['singleport_txt'] = 'Single Port';
+$wb['protocol_txt'] = 'Protocol';
+$wb['table_txt'] = 'Table';
+$wb['target_txt'] = 'Target';
+$wb['state_txt'] = 'State';
+$wb['destination_ip_txt'] = 'Destination Address';
+$wb['source_ip_txt'] = 'Source Address';
+$wb['active_txt'] = 'Active';
+$wb['iptables_error_unique'] = 'There is already a firewall record for this server.';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_iptables_list.lng b/interface/web/admin/lib/lang/ca_iptables_list.lng
index 229374adf4..15c8baddcb 100644
--- a/interface/web/admin/lib/lang/ca_iptables_list.lng
+++ b/interface/web/admin/lib/lang/ca_iptables_list.lng
@@ -1,35 +1,15 @@
 <?php
-/*
-templates/iptables_list.htm:<h2><tmpl_var name="list_head_txt"></h2>
-templates/iptables_list.htm:          <span>{tmpl_var name="add_new_rule_txt"}</span>
-templates/iptables_list.htm:    <fieldset><legend><tmpl_var name="list_head_txt"></legend>
-templates/iptables_list.htm:            <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th>
-templates/iptables_list.htm:            <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th>
-templates/iptables_list.htm:            <!-- th class="tbl_col_source_ip" scope="col"><tmpl_var name="source_ip_txt"></th>
-templates/iptables_list.htm:            <th class="tbl_col_destination_ip" scope="col"><tmpl_var name="destination_ip_txt"></th -->
-templates/iptables_list.htm:            <th class="tbl_col_port" scope="col"><tmpl_var name="singleport_txt"></th>
-templates/iptables_list.htm:            <th class="tbl_col_port" scope="col"><tmpl_var name="multiport_txt"></th>
-templates/iptables_list.htm:            <th class="tbl_col_protocol" scope="col"><tmpl_var name="protocol_txt"></th>
-templates/iptables_list.htm:                    <th class="tbl_col_table" scope="col"><tmpl_var name="table_txt"></th>
-templates/iptables_list.htm:                <th class="tbl_col_target" scope="col"><tmpl_var name="target_txt"></th>
-templates/iptables_list.htm:                <th class="tbl_col_state" scope="col"><tmpl_var name="state_txt"></th>
-templates/iptables_list.htm:                            <button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','admin/iptables_list.php');">
-templates/iptables_list.htm:                            <span>{tmpl_var name="filter_txt"}filter_txt</span></button></div>
-templates/iptables_list.htm:                                    <span>{tmpl_var name='delete_txt'}</span></a>
-*/
-
-$wb["list_head_txt"] = 'IPTables';
-$wb["add_new_rule_txt"] = 'Add IPTables Rule';
-$wb["server_id_txt"] = 'Server';
-$wb["multiport_txt"] = 'Multi Port';
-$wb["singleport_txt"] = 'Single Port';
-$wb["protocol_txt"] = 'Protocol';
-$wb["table_txt"] = 'Table';
-$wb["target_txt"] = 'Target';
-$wb["state_txt"] = 'State';
-$wb["destination_ip_txt"] = 'Destination Address';
-$wb["source_ip_txt"] = 'Source Address';
-$wb["active_txt"] = 'Active';
-$wb["iptables_error_unique"] = 'There is already a firewall record for this server.';
-
+$wb['list_head_txt'] = 'IPTables';
+$wb['add_new_rule_txt'] = 'Add IPTables Rule';
+$wb['server_id_txt'] = 'Server';
+$wb['multiport_txt'] = 'Multi Port';
+$wb['singleport_txt'] = 'Single Port';
+$wb['protocol_txt'] = 'Protocol';
+$wb['table_txt'] = 'Table';
+$wb['target_txt'] = 'Target';
+$wb['state_txt'] = 'State';
+$wb['destination_ip_txt'] = 'Destination Address';
+$wb['source_ip_txt'] = 'Source Address';
+$wb['active_txt'] = 'Active';
+$wb['iptables_error_unique'] = 'There is already a firewall record for this server.';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_language_add.lng b/interface/web/admin/lib/lang/ca_language_add.lng
index 2b5e5a40f8..dc6b2d1b72 100644
--- a/interface/web/admin/lib/lang/ca_language_add.lng
+++ b/interface/web/admin/lib/lang/ca_language_add.lng
@@ -1,8 +1,8 @@
 <?php
-$wb["list_head_txt"] = 'Add new language';
-$wb["language_select_txt"] = 'Select language basis';
-$wb["language_new_txt"] = 'New language';
-$wb["language_new_hint_txt"] = '2 characters ISO 639-1 language-code (See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
+$wb['list_head_txt'] = 'Add new language';
+$wb['language_select_txt'] = 'Select language basis';
+$wb['language_new_txt'] = 'New language';
+$wb['language_new_hint_txt'] = '2 characters ISO 639-1 language-code (See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
 $wb['btn_save_txt'] = 'Create new language file set';
 $wb['btn_cancel_txt'] = 'Back';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_language_complete.lng b/interface/web/admin/lib/lang/ca_language_complete.lng
index 15438775fc..db7c05bb2d 100644
--- a/interface/web/admin/lib/lang/ca_language_complete.lng
+++ b/interface/web/admin/lib/lang/ca_language_complete.lng
@@ -1,7 +1,7 @@
 <?php
-$wb["list_head_txt"] = 'Merge language';
-$wb["list_desc_txt"] = 'Merge the selected language file with the english master language file. <br />This adds missing strings from the english master language files to the selected language.';
-$wb["language_select_txt"] = 'Select language';
+$wb['list_head_txt'] = 'Merge language';
+$wb['list_desc_txt'] = 'Merge the selected language file with the english master language file. <br />This adds missing strings from the english master language files to the selected language.';
+$wb['language_select_txt'] = 'Select language';
 $wb['btn_save_txt'] = 'Merge files now';
 $wb['btn_cancel_txt'] = 'Back';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_language_export.lng b/interface/web/admin/lib/lang/ca_language_export.lng
index 791fc894d3..f45d47b17c 100644
--- a/interface/web/admin/lib/lang/ca_language_export.lng
+++ b/interface/web/admin/lib/lang/ca_language_export.lng
@@ -1,6 +1,6 @@
 <?php
-$wb["list_head_txt"] = 'Export language files';
-$wb["language_select_txt"] = 'Select language';
+$wb['list_head_txt'] = 'Export language files';
+$wb['language_select_txt'] = 'Select language';
 $wb['btn_save_txt'] = 'Export the selected language file set';
 $wb['btn_cancel_txt'] = 'Back';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_language_import.lng b/interface/web/admin/lib/lang/ca_language_import.lng
index 0314af1d77..ceaaeba031 100644
--- a/interface/web/admin/lib/lang/ca_language_import.lng
+++ b/interface/web/admin/lib/lang/ca_language_import.lng
@@ -1,9 +1,9 @@
 <?php
-$wb["list_head_txt"] = 'Import language file';
-$wb["list_desc_txt"] = 'WARNING: Do not import language files from untrustworthy sources.';
-$wb["language_import_txt"] = 'Select language file';
+$wb['list_head_txt'] = 'Import language file';
+$wb['list_desc_txt'] = 'WARNING: Do not import language files from untrustworthy sources.';
+$wb['language_import_txt'] = 'Select language file';
 $wb['btn_save_txt'] = 'Import the selected language file';
-$wb["language_overwrite_txt"] = 'Overwrite file, if exists.';
+$wb['language_overwrite_txt'] = 'Overwrite file, if exists.';
 $wb['btn_cancel_txt'] = 'Back';
 $wb['ignore_version_txt'] = 'Skip ISPConfig version check';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_language_list.lng b/interface/web/admin/lib/lang/ca_language_list.lng
index e70f09f8ea..1c784edf6d 100644
--- a/interface/web/admin/lib/lang/ca_language_list.lng
+++ b/interface/web/admin/lib/lang/ca_language_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb["list_head_txt"] = 'Language file editor';
-$wb["language_select_txt"] = 'Select language';
-$wb["module_txt"] = 'Module';
-$wb["lang_file_txt"] = 'Language file';
-$wb["lang_file_date_txt"] = 'Last modify';
+$wb['list_head_txt'] = 'Language file editor';
+$wb['language_select_txt'] = 'Select language';
+$wb['module_txt'] = 'Module';
+$wb['lang_file_txt'] = 'Language file';
+$wb['lang_file_date_txt'] = 'Last modify';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_package_install.lng b/interface/web/admin/lib/lang/ca_package_install.lng
index 7968b000fd..574dd11629 100644
--- a/interface/web/admin/lib/lang/ca_package_install.lng
+++ b/interface/web/admin/lib/lang/ca_package_install.lng
@@ -1,7 +1,7 @@
 <?php
-$wb["repo_name_txt"] = 'Repository';
-$wb["repo_url_txt"] = 'URL';
-$wb["repo_username_txt"] = 'User (optional)';
-$wb["repo_password_txt"] = 'Password (optional)';
-$wb["active_txt"] = 'Active';
-?>
\ No newline at end of file
+$wb['repo_name_txt'] = 'Repository';
+$wb['repo_url_txt'] = 'URL';
+$wb['repo_username_txt'] = 'User (optional)';
+$wb['repo_password_txt'] = 'Password (optional)';
+$wb['active_txt'] = 'Active';
+?>
diff --git a/interface/web/admin/lib/lang/ca_remote_action.lng b/interface/web/admin/lib/lang/ca_remote_action.lng
index 18c0186360..a3fff837b8 100644
--- a/interface/web/admin/lib/lang/ca_remote_action.lng
+++ b/interface/web/admin/lib/lang/ca_remote_action.lng
@@ -2,11 +2,11 @@
 $wb['select_server_txt'] = 'Select Server';
 $wb['btn_do_txt'] = 'Execute action';
 $wb['do_osupdate_caption'] = 'Do OS-Update at remote server';
-$wb['do_osupdate_desc'] = "This Action does a 'aptitude -y upgrade' at your selected server.<br><br><strong>USE THIS AT YOUR OWN RISK!</strong>";
+$wb['do_osupdate_desc'] = 'This Action does a \'aptitude -y upgrade\' at your selected server.<br><br><strong>USE THIS AT YOUR OWN RISK!</strong>';
 $wb['do_ispcupdate_caption'] = 'Do ISPConfig 3 - Update at remote server';
-$wb['do_ispcupdate_desc'] = "This action does a ISPConfig3 update at your selected server.<br><br><strong>USE THIS AT YOUR OWN RISK!</strong>";
-$wb['action_scheduled'] = "The action is scheduled for execution";
-$wb['select_all_server'] = "All servers";
-$wb['ispconfig_update_title'] = "ISPConfig update instructions";
-$wb['ispconfig_update_text'] = "Login as root user on the shell of your server and execute the command<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />to start the ISPConfig update.<br /><br /><a href='http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/' target='_blank'>Click here for detailed update instructions</a>";
+$wb['do_ispcupdate_desc'] = 'This action does a ISPConfig3 update at your selected server.<br><br><strong>USE THIS AT YOUR OWN RISK!</strong>';
+$wb['action_scheduled'] = 'The action is scheduled for execution';
+$wb['select_all_server'] = 'All servers';
+$wb['ispconfig_update_title'] = 'ISPConfig update instructions';
+$wb['ispconfig_update_text'] = 'Login as root user on the shell of your server and execute the command<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />to start the ISPConfig update.<br /><br /><a href=\'http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\' target=\'_blank\'>Click here for detailed update instructions</a>';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_remote_user_list.lng b/interface/web/admin/lib/lang/ca_remote_user_list.lng
index 6ff56e6fd6..d4e6215dbd 100644
--- a/interface/web/admin/lib/lang/ca_remote_user_list.lng
+++ b/interface/web/admin/lib/lang/ca_remote_user_list.lng
@@ -1,8 +1,7 @@
 <?php
-$wb['list_head_txt'] = "Remote Users";
-$wb['list_desc_txt'] = "";
-$wb['add_new_record_txt'] = "Add new user";
+$wb['list_head_txt'] = 'Remote Users';
+$wb['list_desc_txt'] = '';
+$wb['add_new_record_txt'] = 'Add new user';
 $wb['parent_remote_userid_txt'] = 'User ID';
-$wb['username_txt'] = "Username";
+$wb['username_txt'] = 'Username';
 ?>
-
diff --git a/interface/web/admin/lib/lang/ca_server.lng b/interface/web/admin/lib/lang/ca_server.lng
index 1f36bc718e..35cbfd891c 100644
--- a/interface/web/admin/lib/lang/ca_server.lng
+++ b/interface/web/admin/lib/lang/ca_server.lng
@@ -1,17 +1,16 @@
 <?php
-$wb["config_txt"] = 'config';
-$wb["server_name_txt"] = 'Servername';
-$wb["mail_server_txt"] = 'Mailserver';
-$wb["web_server_txt"] = 'Webserver';
-$wb["dns_server_txt"] = 'DNS-Server';
-$wb["file_server_txt"] = 'Fileserver';
-$wb["db_server_txt"] = 'DB-Server';
-$wb["vserver_server_txt"] = 'VServer-Server';
-$wb["proxy_server_txt"] = 'Proxy-Server';
-$wb["firewall_server_txt"] = 'Firewall-Server';
-$wb["active_txt"] = 'Active';
-$wb["mirror_server_id_txt"] = 'Is mirror of Server';
-$wb["- None -"] = '- None -';
-// New for XMPP
+$wb['config_txt'] = 'config';
+$wb['server_name_txt'] = 'Servername';
+$wb['mail_server_txt'] = 'Mailserver';
+$wb['web_server_txt'] = 'Webserver';
+$wb['dns_server_txt'] = 'DNS-Server';
+$wb['file_server_txt'] = 'Fileserver';
+$wb['db_server_txt'] = 'DB-Server';
+$wb['vserver_server_txt'] = 'VServer-Server';
+$wb['proxy_server_txt'] = 'Proxy-Server';
+$wb['firewall_server_txt'] = 'Firewall-Server';
+$wb['active_txt'] = 'Active';
+$wb['mirror_server_id_txt'] = 'Is mirror of Server';
+$wb['- None -'] = '- None -';
 $wb['xmpp_server_txt'] = 'XMPP Server';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 19b08f11e2..3a23af008d 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -1,189 +1,189 @@
 <?php
-$wb["ufw_enable_txt"] = 'Enable';
-$wb["ufw_manage_builtins_txt"] = 'Manage Builtin Rules';
-$wb["ufw_ipv6_txt"] = 'Enable IPv6';
-$wb["ufw_default_input_policy_txt"] = 'Default Input Policy';
-$wb["ufw_default_output_policy_txt"] = 'Default Output Policy';
-$wb["ufw_default_forward_policy_txt"] = 'Default Forward Policy';
-$wb["ufw_default_application_policy_txt"] = 'Default Application Policy';
-$wb["ufw_log_level_txt"] = 'Log Level';
-$wb["jailkit_chroot_home_txt"] = 'Jailkit chroot home';
-$wb["jailkit_chroot_app_sections_txt"] = 'Jailkit chroot app sections';
-$wb["jailkit_chroot_app_programs_txt"] = 'Jailkit chrooted applications';
-$wb["jailkit_chroot_cron_programs_txt"] = 'Jailkit cron chrooted applications';
-$wb["website_path_txt"] = 'Website path';
-$wb["website_symlinks_txt"] = 'Website symlinks';
+$wb['ufw_enable_txt'] = 'Enable';
+$wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules';
+$wb['ufw_ipv6_txt'] = 'Enable IPv6';
+$wb['ufw_default_input_policy_txt'] = 'Default Input Policy';
+$wb['ufw_default_output_policy_txt'] = 'Default Output Policy';
+$wb['ufw_default_forward_policy_txt'] = 'Default Forward Policy';
+$wb['ufw_default_application_policy_txt'] = 'Default Application Policy';
+$wb['ufw_log_level_txt'] = 'Log Level';
+$wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home';
+$wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sections';
+$wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applications';
+$wb['jailkit_chroot_cron_programs_txt'] = 'Jailkit cron chrooted applications';
+$wb['website_path_txt'] = 'Website path';
+$wb['website_symlinks_txt'] = 'Website symlinks';
 $wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
-$wb["website_basedir_txt"] = 'Website basedir';
-$wb["website_autoalias_txt"] = 'Website auto alias';
-$wb["website_autoalias_note_txt"] = 'Placeholders:';
-$wb["vhost_conf_dir_txt"] = 'Vhost config dir';
-$wb["vhost_conf_enabled_dir_txt"] = 'Vhost config enabled dir';
-$wb["getmail_config_dir_txt"] = 'Getmail config dir';
-$wb["fastcgi_starter_path_txt"] = 'FastCGI starter path';
-$wb["fastcgi_starter_script_txt"] = 'FastCGI starter script';
-$wb["fastcgi_alias_txt"] = 'FastCGI Alias';
-$wb["fastcgi_phpini_path_txt"] = 'FastCGI php.ini Path';
-$wb["fastcgi_children_txt"] = 'FastCGI Children';
-$wb["fastcgi_max_requests_txt"] = 'FastCGI max. Requests';
-$wb["fastcgi_bin_txt"] = 'FastCGI Bin';
-$wb["module_txt"] = 'Module';
-$wb["maildir_path_txt"] = 'Maildir Path';
+$wb['website_basedir_txt'] = 'Website basedir';
+$wb['website_autoalias_txt'] = 'Website auto alias';
+$wb['website_autoalias_note_txt'] = 'Placeholders:';
+$wb['vhost_conf_dir_txt'] = 'Vhost config dir';
+$wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['getmail_config_dir_txt'] = 'Getmail config dir';
+$wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
+$wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
+$wb['fastcgi_alias_txt'] = 'FastCGI Alias';
+$wb['fastcgi_phpini_path_txt'] = 'FastCGI php.ini Path';
+$wb['fastcgi_children_txt'] = 'FastCGI Children';
+$wb['fastcgi_max_requests_txt'] = 'FastCGI max. Requests';
+$wb['fastcgi_bin_txt'] = 'FastCGI Bin';
+$wb['module_txt'] = 'Module';
+$wb['maildir_path_txt'] = 'Maildir Path';
 $wb['maildir_format_txt'] = 'Maildir Format';
-$wb["homedir_path_txt"] = 'Homedir Path';
-$wb["dkim_path_txt"] = 'DKIM Path';
-$wb["mailuser_uid_txt"] = 'Mailuser UID';
-$wb["mailuser_gid_txt"] = 'Mailuser GID';
-$wb["mailuser_name_txt"] = 'Mailuser Name';
-$wb["mailuser_group_txt"] = 'Mailuser Group';
+$wb['homedir_path_txt'] = 'Homedir Path';
+$wb['dkim_path_txt'] = 'DKIM Path';
+$wb['mailuser_uid_txt'] = 'Mailuser UID';
+$wb['mailuser_gid_txt'] = 'Mailuser GID';
+$wb['mailuser_name_txt'] = 'Mailuser Name';
+$wb['mailuser_group_txt'] = 'Mailuser Group';
 $wb['mailbox_virtual_uidgid_maps_txt'] = 'Use Websites Linux uid for mailbox';
 $wb['mailbox_virtual_uidgid_maps_info_txt'] = 'only in single web and mail-server-setup';
 $wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped in multi-server-setup.';
 $wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.';
 $wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.';
-$wb["relayhost_txt"] = 'Relayhost';
-$wb["relayhost_user_txt"] = 'Relayhost User';
-$wb["relayhost_password_txt"] = 'Relayhost Password';
+$wb['relayhost_txt'] = 'Relayhost';
+$wb['relayhost_user_txt'] = 'Relayhost User';
+$wb['relayhost_password_txt'] = 'Relayhost Password';
 $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch';
-$wb["mailbox_size_limit_txt"] = 'Mailbox Size Limit';
-$wb["message_size_limit_txt"] = 'Message Size Limit';
-$wb["ip_address_txt"] = 'IP Address';
-$wb["netmask_txt"] = 'Netmask';
-$wb["gateway_txt"] = 'Gateway';
-$wb["hostname_txt"] = 'Hostname';
-$wb["nameservers_txt"] = 'Nameservers';
-$wb["auto_network_configuration_txt"] = 'Network Configuration';
-$wb["ip_address_error_wrong"] = 'Invalid IP address format.';
-$wb["netmask_error_wrong"] = 'Invalid Netmask format.';
-$wb["gateway_error_wrong"] = 'Invalid Gateway format.';
-$wb["hostname_error_empty"] = 'Hostname is empty.';
-$wb["hostname_error_regex"] = 'Invalid Hostname.';
-$wb["nameservers_error_empty"] = 'Nameserver is empty.';
-$wb["config_dir_txt"] = 'Config directory';
-$wb["init_script_txt"] = 'Cron init script name';
-$wb["crontab_dir_txt"] = 'Path for individual crontabs';
-$wb["wget_txt"] = 'Path to wget program';
-$wb["web_user_txt"] = 'Apache user';
-$wb["web_group_txt"] = 'Apache group';
-$wb["security_level_txt"] = 'Security level';
-$wb["loglevel_txt"] = 'Loglevel';
-$wb["apps_vhost_port_txt"] = 'Apps-vhost port';
-$wb["apps_vhost_ip_txt"] = 'Apps-vhost IP';
-$wb["apps_vhost_servername_txt"] = 'Apps-vhost Domain';
-$wb["bind_user_txt"] = 'BIND User';
-$wb["bind_group_txt"] = 'BIND Group';
-$wb["bind_zonefiles_dir_txt"] = 'BIND zonefiles directory';
-$wb["named_conf_path_txt"] = 'BIND named.conf path';
-$wb["bind_user_error_empty"] = 'BIND user is empty.';
-$wb["bind_group_error_empty"] = 'BIND group is empty.';
-$wb["bind_zonefiles_dir_error_empty"] = 'BIND zonefiles directory is empty.';
-$wb["named_conf_path_error_empty"] = 'BIND named.conf path is empty.';
-$wb["named_conf_local_path_error_empty"] = 'BIND named.conf.local path is empty.';
-$wb["mail_filter_syntax_txt"] = 'Mailfilter Syntax';
-$wb["pop3_imap_daemon_txt"] = 'POP3/IMAP Daemon';
-$wb["php_open_basedir_txt"] = 'PHP open_basedir';
-$wb["php_open_basedir_error_empty"] = 'PHP open_basedir is empty.';
-$wb["htaccess_allow_override_txt"] = '.htaccess AllowOverride';
-$wb["htaccess_allow_override_error_empty"] = '.htaccess AllowOverride is empty.';
-$wb["awstats_conf_dir_txt"] = 'awstats conf folder';
-$wb["awstats_data_dir_txt"] = 'awstats data folder';
-$wb["awstats_pl_txt"] = 'awstats.pl script';
-$wb["awstats_buildstaticpages_pl_txt"] = 'awstats_buildstaticpages.pl script';
-$wb["backup_dir_txt"] = 'Backup directory';
-$wb["named_conf_local_path_txt"] = 'BIND named.conf.local path';
-$wb["php_ini_path_cgi_txt"] = 'CGI php.ini path';
-$wb["php_ini_path_apache_txt"] = 'Apache php.ini path';
-$wb["check_apache_config_txt"] = 'Test apache configuration on restart';
-$wb["network_config_warning_txt"] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.';
-$wb["CA_path_txt"] = 'CA Path';
-$wb["CA_pass_txt"] = 'CA passphrase';
-$wb["fastcgi_config_syntax_txt"] = 'FastCGI config syntax';
-$wb["backup_mode_txt"] = 'Backup mode';
-$wb["backup_mode_userzip"] = 'Backup web files owned by web user as zip';
-$wb["backup_mode_rootgz"] = 'Backup all files in web directory as root user';
-$wb["server_type_txt"] = 'Server Type';
-$wb["nginx_vhost_conf_dir_txt"] = 'Nginx Vhost config dir';
-$wb["nginx_vhost_conf_enabled_dir_txt"] = 'Nginx Vhost config enabled dir';
-$wb["nginx_user_txt"] = 'Nginx user';
-$wb["nginx_group_txt"] = 'Nginx group';
-$wb["nginx_cgi_socket_txt"] = 'Nginx CGI Socket';
-$wb["backup_dir_error_empty"] = 'Backup directory is empty.';
-$wb["maildir_path_error_empty"] = 'Maildir Path is empty.';
-$wb["homedir_path_error_empty"] = 'Homedir Path is empty.';
-$wb["mailuser_uid_error_empty"] = 'Mailuser UID is empty.';
-$wb["mailuser_gid_error_empty"] = 'Mailuser GID is empty.';
-$wb["mailuser_name_error_empty"] = 'Mailuser Name is empty.';
-$wb["mailuser_group_error_empty"] = 'Mailuser Group is empty.';
-$wb["getmail_config_dir_error_empty"] = 'Getmail config dir is empty.';
-$wb["website_basedir_error_empty"] = 'Website basedir is empty.';
-$wb["website_path_error_empty"] = 'Website path is empty.';
-$wb["website_symlinks_error_empty"] = 'Website symlinks is empty.';
-$wb["vhost_conf_dir_error_empty"] = 'Vhost config dir is empty.';
-$wb["vhost_conf_enabled_dir_error_empty"] = 'Vhost config enabled dir is empty.';
-$wb["nginx_vhost_conf_dir_error_empty"] = 'Nginx Vhost config dir is empty.';
-$wb["nginx_vhost_conf_enabled_dir_error_empty"] = 'Nginx Vhost config enabled dir is empty.';
-$wb["apache_user_error_empty"] = 'Apache user is empty.';
-$wb["apache_group_error_empty"] = 'Apache group is empty.';
-$wb["nginx_user_error_empty"] = 'Nginx user is empty.';
-$wb["nginx_group_error_empty"] = 'Nginx group is empty.';
-$wb["php_ini_path_apache_error_empty"] = 'Apache php.ini path is empty.';
-$wb["php_ini_path_cgi_error_empty"] = 'CGI php.ini path is empty.';
-$wb["nginx_cgi_socket_empty"] = 'Nginx CGI Socket is empty.';
-$wb["apps_vhost_port_error_empty"] = 'Apps-vhost port is empty.';
-$wb["apps_vhost_ip_error_empty"] = 'Apps-vhost IP is empty.';
-$wb["fastcgi_starter_path_error_empty"] = 'FastCGI starter path is empty.';
-$wb["fastcgi_starter_script_error_empty"] = 'FastCGI starter script is empty.';
-$wb["fastcgi_alias_error_empty"] = 'FastCGI Alias is empty.';
-$wb["fastcgi_phpini_path_error_empty"] = 'FastCGI php.ini Path is empty.';
-$wb["fastcgi_children_error_empty"] = 'FastCGI Children is empty.';
-$wb["fastcgi_max_requests_error_empty"] = 'FastCGI max. Requests is empty.';
-$wb["fastcgi_bin_error_empty"] = 'FastCGI Bin is empty.';
-$wb["jailkit_chroot_home_error_empty"] = 'Jailkit chroot home is empty.';
-$wb["jailkit_chroot_app_sections_error_empty"] = 'Jailkit chroot app sections is empty.';
-$wb["jailkit_chroot_app_programs_error_empty"] = 'Jailkit chrooted applications is empty.';
-$wb["jailkit_chroot_cron_programs_error_empty"] = 'Jailkit cron chrooted applications is empty.';
-$wb["vlogger_config_dir_error_empty"] = 'Config directory is empty.';
-$wb["cron_init_script_error_empty"] = 'Cron init script name is empty.';
-$wb["crontab_dir_error_empty"] = 'Path for individual crontabs is empty.';
-$wb["cron_wget_error_empty"] = 'Path to wget program is empty.';
-$wb["php_fpm_init_script_txt"] = 'PHP-FPM init script';
-$wb["php_fpm_init_script_error_empty"] = 'PHP-FPM init script is empty.';
-$wb["php_fpm_ini_path_txt"] = 'PHP-FPM php.ini path';
-$wb["php_fpm_ini_path_error_empty"] = 'PHP-FPM php.ini path is empty.';
-$wb["php_fpm_pool_dir_txt"] = 'PHP-FPM pool directory';
-$wb["php_fpm_pool_dir_error_empty"] = 'PHP-FPM pool directory is empty.';
-$wb["php_fpm_start_port_txt"] = 'PHP-FPM start port';
-$wb["php_fpm_start_port_error_empty"] = 'PHP-FPM start port is empty.';
-$wb["php_fpm_socket_dir_txt"] = 'PHP-FPM socket directory';
-$wb["php_fpm_socket_dir_error_empty"] = 'PHP-FPM socket directory is empty.';
-$wb["try_rescue_txt"] = 'Enable service monitoring and restart on failure';
-$wb["do_not_try_rescue_httpd_txt"] = 'Disable HTTPD monitoring';
-$wb["do_not_try_rescue_mongodb_txt"] = 'Disable MongoDB monitoring';
-$wb["do_not_try_rescue_mysql_txt"] = 'Disable MySQL monitoring';
-$wb["do_not_try_rescue_mail_txt"] = 'Disable Email monitoring';
-$wb["rescue_description_txt"] = '<b>Information:</b> If you want to shut down mysql you have to select the "Disable MySQL monitor" checkbox and then wait 2-3 minutes.<br>If you do not wait 2-3 minutes, rescue will try to restart mysql!';
-$wb["enable_sni_txt"] = 'Enable SNI';
-$wb["set_folder_permissions_on_update_txt"] = 'Set folder permissions on update';
-$wb["add_web_users_to_sshusers_group_txt"] = 'Add web users to -sshusers- group';
-$wb["connect_userid_to_webid_txt"] = 'Connect Linux userid to webid';
-$wb["connect_userid_to_webid_start_txt"] = 'Start ID for userid/webid connect';
-$wb["realtime_blackhole_list_txt"] = 'Real-time Blackhole List';
-$wb["realtime_blackhole_list_note_txt"] = '(Separate RBL\'s with commas)';
-$wb["ssl_settings_txt"] = 'SSL Settings';
-$wb["permissions_txt"] = 'Permissions';
-$wb["php_settings_txt"] = 'PHP Settings';
-$wb["apps_vhost_settings_txt"] = 'Apps Vhost Settings';
-$wb["awstats_settings_txt"] = 'AWStats Settings';
-$wb["firewall_txt"] = 'Firewall';
-$wb["mailbox_quota_stats_txt"] = 'Mailbox quota statistics';
-$wb["enable_ip_wildcard_txt"] = 'Enable IP wildcard (*)';
-$wb["web_folder_protection_txt"] = 'Make web folders immutable (extended attributes)';
-$wb["overtraffic_notify_admin_txt"] = 'Send overtraffic notification to admin';
-$wb["overtraffic_notify_client_txt"] = 'Send overtraffic notification to client';
-$wb["rbl_error_regex"] = 'Please specify valid RBL hostnames.';
-$wb["overquota_notify_admin_txt"] = 'Send quota warnings to admin';
-$wb["overquota_notify_client_txt"] = 'Send quota warnings to client';
-$wb["overquota_notify_onok_txt"] = 'Send quota ok message to client';
+$wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit';
+$wb['message_size_limit_txt'] = 'Message Size Limit';
+$wb['ip_address_txt'] = 'IP Address';
+$wb['netmask_txt'] = 'Netmask';
+$wb['gateway_txt'] = 'Gateway';
+$wb['hostname_txt'] = 'Hostname';
+$wb['nameservers_txt'] = 'Nameservers';
+$wb['auto_network_configuration_txt'] = 'Network Configuration';
+$wb['ip_address_error_wrong'] = 'Invalid IP address format.';
+$wb['netmask_error_wrong'] = 'Invalid Netmask format.';
+$wb['gateway_error_wrong'] = 'Invalid Gateway format.';
+$wb['hostname_error_empty'] = 'Hostname is empty.';
+$wb['hostname_error_regex'] = 'Invalid Hostname.';
+$wb['nameservers_error_empty'] = 'Nameserver is empty.';
+$wb['config_dir_txt'] = 'Config directory';
+$wb['init_script_txt'] = 'Cron init script name';
+$wb['crontab_dir_txt'] = 'Path for individual crontabs';
+$wb['wget_txt'] = 'Path to wget program';
+$wb['web_user_txt'] = 'Apache user';
+$wb['web_group_txt'] = 'Apache group';
+$wb['security_level_txt'] = 'Security level';
+$wb['loglevel_txt'] = 'Loglevel';
+$wb['apps_vhost_port_txt'] = 'Apps-vhost port';
+$wb['apps_vhost_ip_txt'] = 'Apps-vhost IP';
+$wb['apps_vhost_servername_txt'] = 'Apps-vhost Domain';
+$wb['bind_user_txt'] = 'BIND User';
+$wb['bind_group_txt'] = 'BIND Group';
+$wb['bind_zonefiles_dir_txt'] = 'BIND zonefiles directory';
+$wb['named_conf_path_txt'] = 'BIND named.conf path';
+$wb['bind_user_error_empty'] = 'BIND user is empty.';
+$wb['bind_group_error_empty'] = 'BIND group is empty.';
+$wb['bind_zonefiles_dir_error_empty'] = 'BIND zonefiles directory is empty.';
+$wb['named_conf_path_error_empty'] = 'BIND named.conf path is empty.';
+$wb['named_conf_local_path_error_empty'] = 'BIND named.conf.local path is empty.';
+$wb['mail_filter_syntax_txt'] = 'Mailfilter Syntax';
+$wb['pop3_imap_daemon_txt'] = 'POP3/IMAP Daemon';
+$wb['php_open_basedir_txt'] = 'PHP open_basedir';
+$wb['php_open_basedir_error_empty'] = 'PHP open_basedir is empty.';
+$wb['htaccess_allow_override_txt'] = '.htaccess AllowOverride';
+$wb['htaccess_allow_override_error_empty'] = '.htaccess AllowOverride is empty.';
+$wb['awstats_conf_dir_txt'] = 'awstats conf folder';
+$wb['awstats_data_dir_txt'] = 'awstats data folder';
+$wb['awstats_pl_txt'] = 'awstats.pl script';
+$wb['awstats_buildstaticpages_pl_txt'] = 'awstats_buildstaticpages.pl script';
+$wb['backup_dir_txt'] = 'Backup directory';
+$wb['named_conf_local_path_txt'] = 'BIND named.conf.local path';
+$wb['php_ini_path_cgi_txt'] = 'CGI php.ini path';
+$wb['php_ini_path_apache_txt'] = 'Apache php.ini path';
+$wb['check_apache_config_txt'] = 'Test apache configuration on restart';
+$wb['network_config_warning_txt'] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.';
+$wb['CA_path_txt'] = 'CA Path';
+$wb['CA_pass_txt'] = 'CA passphrase';
+$wb['fastcgi_config_syntax_txt'] = 'FastCGI config syntax';
+$wb['backup_mode_txt'] = 'Backup mode';
+$wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip';
+$wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user';
+$wb['server_type_txt'] = 'Server Type';
+$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Vhost config dir';
+$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Nginx Vhost config enabled dir';
+$wb['nginx_user_txt'] = 'Nginx user';
+$wb['nginx_group_txt'] = 'Nginx group';
+$wb['nginx_cgi_socket_txt'] = 'Nginx CGI Socket';
+$wb['backup_dir_error_empty'] = 'Backup directory is empty.';
+$wb['maildir_path_error_empty'] = 'Maildir Path is empty.';
+$wb['homedir_path_error_empty'] = 'Homedir Path is empty.';
+$wb['mailuser_uid_error_empty'] = 'Mailuser UID is empty.';
+$wb['mailuser_gid_error_empty'] = 'Mailuser GID is empty.';
+$wb['mailuser_name_error_empty'] = 'Mailuser Name is empty.';
+$wb['mailuser_group_error_empty'] = 'Mailuser Group is empty.';
+$wb['getmail_config_dir_error_empty'] = 'Getmail config dir is empty.';
+$wb['website_basedir_error_empty'] = 'Website basedir is empty.';
+$wb['website_path_error_empty'] = 'Website path is empty.';
+$wb['website_symlinks_error_empty'] = 'Website symlinks is empty.';
+$wb['vhost_conf_dir_error_empty'] = 'Vhost config dir is empty.';
+$wb['vhost_conf_enabled_dir_error_empty'] = 'Vhost config enabled dir is empty.';
+$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx Vhost config dir is empty.';
+$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Nginx Vhost config enabled dir is empty.';
+$wb['apache_user_error_empty'] = 'Apache user is empty.';
+$wb['apache_group_error_empty'] = 'Apache group is empty.';
+$wb['nginx_user_error_empty'] = 'Nginx user is empty.';
+$wb['nginx_group_error_empty'] = 'Nginx group is empty.';
+$wb['php_ini_path_apache_error_empty'] = 'Apache php.ini path is empty.';
+$wb['php_ini_path_cgi_error_empty'] = 'CGI php.ini path is empty.';
+$wb['nginx_cgi_socket_empty'] = 'Nginx CGI Socket is empty.';
+$wb['apps_vhost_port_error_empty'] = 'Apps-vhost port is empty.';
+$wb['apps_vhost_ip_error_empty'] = 'Apps-vhost IP is empty.';
+$wb['fastcgi_starter_path_error_empty'] = 'FastCGI starter path is empty.';
+$wb['fastcgi_starter_script_error_empty'] = 'FastCGI starter script is empty.';
+$wb['fastcgi_alias_error_empty'] = 'FastCGI Alias is empty.';
+$wb['fastcgi_phpini_path_error_empty'] = 'FastCGI php.ini Path is empty.';
+$wb['fastcgi_children_error_empty'] = 'FastCGI Children is empty.';
+$wb['fastcgi_max_requests_error_empty'] = 'FastCGI max. Requests is empty.';
+$wb['fastcgi_bin_error_empty'] = 'FastCGI Bin is empty.';
+$wb['jailkit_chroot_home_error_empty'] = 'Jailkit chroot home is empty.';
+$wb['jailkit_chroot_app_sections_error_empty'] = 'Jailkit chroot app sections is empty.';
+$wb['jailkit_chroot_app_programs_error_empty'] = 'Jailkit chrooted applications is empty.';
+$wb['jailkit_chroot_cron_programs_error_empty'] = 'Jailkit cron chrooted applications is empty.';
+$wb['vlogger_config_dir_error_empty'] = 'Config directory is empty.';
+$wb['cron_init_script_error_empty'] = 'Cron init script name is empty.';
+$wb['crontab_dir_error_empty'] = 'Path for individual crontabs is empty.';
+$wb['cron_wget_error_empty'] = 'Path to wget program is empty.';
+$wb['php_fpm_init_script_txt'] = 'PHP-FPM init script';
+$wb['php_fpm_init_script_error_empty'] = 'PHP-FPM init script is empty.';
+$wb['php_fpm_ini_path_txt'] = 'PHP-FPM php.ini path';
+$wb['php_fpm_ini_path_error_empty'] = 'PHP-FPM php.ini path is empty.';
+$wb['php_fpm_pool_dir_txt'] = 'PHP-FPM pool directory';
+$wb['php_fpm_pool_dir_error_empty'] = 'PHP-FPM pool directory is empty.';
+$wb['php_fpm_start_port_txt'] = 'PHP-FPM start port';
+$wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
+$wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
+$wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
+$wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
+$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
+$wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
+$wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
+$wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
+$wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the \"Disable MySQL monitor\" checkbox and then wait 2-3 minutes.<br>If you do not wait 2-3 minutes, rescue will try to restart mysql!';
+$wb['enable_sni_txt'] = 'Enable SNI';
+$wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update';
+$wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group';
+$wb['connect_userid_to_webid_txt'] = 'Connect Linux userid to webid';
+$wb['connect_userid_to_webid_start_txt'] = 'Start ID for userid/webid connect';
+$wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List';
+$wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)';
+$wb['ssl_settings_txt'] = 'SSL Settings';
+$wb['permissions_txt'] = 'Permissions';
+$wb['php_settings_txt'] = 'PHP Settings';
+$wb['apps_vhost_settings_txt'] = 'Apps Vhost Settings';
+$wb['awstats_settings_txt'] = 'AWStats Settings';
+$wb['firewall_txt'] = 'Firewall';
+$wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
+$wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
+$wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
+$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
+$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
+$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
+$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
+$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
+$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
 $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
 $wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
 $wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
@@ -198,19 +198,18 @@ $wb['munin_user_txt'] = 'Munin User';
 $wb['munin_password_txt'] = 'Munin Password';
 $wb['munin_url_error_regex'] = 'Invalid Munin URL';
 $wb['munin_url_note_txt'] = 'Placeholder:';
-$wb["v6_prefix_txt"] = 'IPv6 Prefix';
-$wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
-$wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 ';
+$wb['v6_prefix_txt'] = 'IPv6 Prefix';
+$wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror';
+$wb['v6_prefix_length'] = 'Prefix too long according to defined IPv6 ';
 $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
 $wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
-$wb["overquota_db_notify_admin_txt"] = 'Send DB quota warnings to admin';
-$wb["overquota_db_notify_client_txt"] = 'Send DB quota warnings to client';
+$wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['monitor_system_updates_txt'] = 'Check for Linux updates';
-$wb['php_handler_txt'] = "Default PHP Handler";
+$wb['php_handler_txt'] = 'Default PHP Handler';
 $wb['disabled_txt'] = 'Disabled';
 $wb['dkim_strength_txt'] = 'DKIM strength';
-$wb['monitor_system_updates_txt'] = 'Check for Linux updates';
 $wb['invalid_apache_user_txt'] = 'Invalid apache user.';
 $wb['invalid_apache_group_txt'] = 'Invalid apache group.';
 $wb['backup_dir_error_regex'] = 'Invalid backup directory.';
@@ -267,8 +266,6 @@ $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
 $wb['enable_spdy_txt'] = 'Makes SPDY available';
 $wb['web_settings_txt'] = 'Web Server';
-
-// New for XMPP
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
 $wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time';
@@ -281,6 +278,7 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
-$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
-$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
+$wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
+$wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_server_config_list.lng b/interface/web/admin/lib/lang/ca_server_config_list.lng
index 4d8a3f6a59..636c2e050a 100644
--- a/interface/web/admin/lib/lang/ca_server_config_list.lng
+++ b/interface/web/admin/lib/lang/ca_server_config_list.lng
@@ -1,4 +1,4 @@
 <?php
-$wb["list_head_txt"] = 'Server Configuration';
-$wb["server_name_txt"] = 'Server';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'Server Configuration';
+$wb['server_name_txt'] = 'Server';
+?>
diff --git a/interface/web/admin/lib/lang/ca_server_ip.lng b/interface/web/admin/lib/lang/ca_server_ip.lng
index fd91fc30d6..f06b6be78a 100644
--- a/interface/web/admin/lib/lang/ca_server_ip.lng
+++ b/interface/web/admin/lib/lang/ca_server_ip.lng
@@ -1,11 +1,11 @@
 <?php
-$wb["server_id_txt"] = 'Server';
-$wb["client_id_txt"] = 'Client';
-$wb["ip_type_txt"] = 'Type';
-$wb["ip_address_txt"] = 'IP Address';
-$wb["virtualhost_txt"] = 'HTTP NameVirtualHost';
-$wb["virtualhost_port_txt"] = 'HTTP Ports';
-$wb["ip_error_wrong"] = 'The IP address is invalid';
-$wb["ip_error_unique"] = 'The IP address must be unique';
-$wb["error_port_syntax"] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443';
-?>
\ No newline at end of file
+$wb['server_id_txt'] = 'Server';
+$wb['client_id_txt'] = 'Client';
+$wb['ip_type_txt'] = 'Type';
+$wb['ip_address_txt'] = 'IP Address';
+$wb['virtualhost_txt'] = 'HTTP NameVirtualHost';
+$wb['virtualhost_port_txt'] = 'HTTP Ports';
+$wb['ip_error_wrong'] = 'The IP address is invalid';
+$wb['ip_error_unique'] = 'The IP address must be unique';
+$wb['error_port_syntax'] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443';
+?>
diff --git a/interface/web/admin/lib/lang/ca_server_ip_list.lng b/interface/web/admin/lib/lang/ca_server_ip_list.lng
index 489967b20e..aa01a6c90d 100644
--- a/interface/web/admin/lib/lang/ca_server_ip_list.lng
+++ b/interface/web/admin/lib/lang/ca_server_ip_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb["list_head_txt"] = 'IP Addresses';
-$wb["server_id_txt"] = 'Server';
-$wb["client_id_txt"] = 'Client';
-$wb["ip_address_txt"] = 'IP Address';
-$wb["add_new_record_txt"] = 'Add new IP Address';
-$wb["virtualhost_txt"] = 'HTTP Vhost';
-$wb["virtualhost_port_txt"] = 'HTTP Ports';
-$wb["ip_type_txt"] = 'Type';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'IP Addresses';
+$wb['server_id_txt'] = 'Server';
+$wb['client_id_txt'] = 'Client';
+$wb['ip_address_txt'] = 'IP Address';
+$wb['add_new_record_txt'] = 'Add new IP Address';
+$wb['virtualhost_txt'] = 'HTTP Vhost';
+$wb['virtualhost_port_txt'] = 'HTTP Ports';
+$wb['ip_type_txt'] = 'Type';
+?>
diff --git a/interface/web/admin/lib/lang/ca_server_ip_map.lng b/interface/web/admin/lib/lang/ca_server_ip_map.lng
index 94508abb79..68b196fb23 100644
--- a/interface/web/admin/lib/lang/ca_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/ca_server_ip_map.lng
@@ -1,12 +1,12 @@
 <?php
-$wb["server_id_txt"] = 'Rewrite on Server';
-$wb["source_txt"] = 'Source IP';
-$wb["destination_txt"] = 'Destination IP';
-$wb["active_txt"] = 'Active';
-$wb["ip_error_wrong"] = 'The Destination IP address is invalid';
-$wb["destination_ip_empty"] = 'The Destination IP is empty.';
-$wb["source_ip_empty"] = 'The Source IP is empty.';
-$wb["server_empty_error"] = 'The Server is empty.';
-$wb["duplicate_mapping_error"] = "Mapping already exists.";
-$wb["ip_mapping_error"] = "Source IP can not be an IP of the Rewrite-Server";
+$wb['server_id_txt'] = 'Rewrite on Server';
+$wb['source_txt'] = 'Source IP';
+$wb['destination_txt'] = 'Destination IP';
+$wb['active_txt'] = 'Active';
+$wb['ip_error_wrong'] = 'The Destination IP address is invalid';
+$wb['destination_ip_empty'] = 'The Destination IP is empty.';
+$wb['source_ip_empty'] = 'The Source IP is empty.';
+$wb['server_empty_error'] = 'The Server is empty.';
+$wb['duplicate_mapping_error'] = 'Mapping already exists.';
+$wb['ip_mapping_error'] = 'Source IP can not be an IP of the Rewrite-Server';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_server_ip_map_list.lng b/interface/web/admin/lib/lang/ca_server_ip_map_list.lng
index 60c6815fda..1fedc10b2e 100644
--- a/interface/web/admin/lib/lang/ca_server_ip_map_list.lng
+++ b/interface/web/admin/lib/lang/ca_server_ip_map_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb["list_head_txt"] = 'IP Mappings';
-$wb["server_id_txt"] = 'Server';
-$wb["source_ip_txt"] = 'Source IP';
-$wb["destination_ip_txt"] = 'Destination IP';
-$wb["active_txt"] = 'Active';
+$wb['list_head_txt'] = 'IP Mappings';
+$wb['server_id_txt'] = 'Server';
+$wb['source_ip_txt'] = 'Source IP';
+$wb['destination_ip_txt'] = 'Destination IP';
+$wb['active_txt'] = 'Active';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_server_list.lng b/interface/web/admin/lib/lang/ca_server_list.lng
index 89a81fa43b..0bf81c572a 100644
--- a/interface/web/admin/lib/lang/ca_server_list.lng
+++ b/interface/web/admin/lib/lang/ca_server_list.lng
@@ -1,15 +1,14 @@
 <?php
-$wb["list_head_txt"] = 'Server';
-$wb["server_name_txt"] = 'Name';
-$wb["mail_server_txt"] = 'Mail';
-$wb["web_server_txt"] = 'Web';
-$wb["dns_server_txt"] = 'DNS';
-$wb["file_server_txt"] = 'File';
-$wb["db_server_txt"] = 'DB';
-$wb["vserver_server_txt"] = 'VServer';
-$wb["proxy_server_txt"] = 'Proxy';
-$wb["firewall_server_txt"] = 'Firewall';
-$wb["add_new_record_txt"] = 'Add new Server';
-// New for XMPP
+$wb['list_head_txt'] = 'Server';
+$wb['server_name_txt'] = 'Name';
+$wb['mail_server_txt'] = 'Mail';
+$wb['web_server_txt'] = 'Web';
+$wb['dns_server_txt'] = 'DNS';
+$wb['file_server_txt'] = 'File';
+$wb['db_server_txt'] = 'DB';
+$wb['vserver_server_txt'] = 'VServer';
+$wb['proxy_server_txt'] = 'Proxy';
+$wb['firewall_server_txt'] = 'Firewall';
+$wb['add_new_record_txt'] = 'Add new Server';
 $wb['xmpp_server_txt'] = 'XMPP';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_software_package.lng b/interface/web/admin/lib/lang/ca_software_package.lng
index 62ef734079..faffe38217 100644
--- a/interface/web/admin/lib/lang/ca_software_package.lng
+++ b/interface/web/admin/lib/lang/ca_software_package.lng
@@ -1,6 +1,6 @@
 <?php
-$wb["package_title_txt"] = 'Package Title';
-$wb["package_key_txt"] = 'Package Key';
-$wb["Software Package"] = 'Software Package';
+$wb['package_title_txt'] = 'Package Title';
+$wb['package_key_txt'] = 'Package Key';
+$wb['Software Package'] = 'Software Package';
 $wb['Modify software package details'] = 'Modify software package details';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_software_package_install.lng b/interface/web/admin/lib/lang/ca_software_package_install.lng
index 7986035adf..5c8b756434 100644
--- a/interface/web/admin/lib/lang/ca_software_package_install.lng
+++ b/interface/web/admin/lib/lang/ca_software_package_install.lng
@@ -1,6 +1,6 @@
 <?php
-$wb["head_txt"] = 'Install software package';
-$wb["install_key_txt"] = 'Enter install key';
-$wb["btn_save_txt"] = 'Start Installation';
-$wb["btn_cancel_txt"] = 'Cancel';
-?>
\ No newline at end of file
+$wb['head_txt'] = 'Install software package';
+$wb['install_key_txt'] = 'Enter install key';
+$wb['btn_save_txt'] = 'Start Installation';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
diff --git a/interface/web/admin/lib/lang/ca_software_repo.lng b/interface/web/admin/lib/lang/ca_software_repo.lng
index 1b50bb7975..f2cbbb2c25 100644
--- a/interface/web/admin/lib/lang/ca_software_repo.lng
+++ b/interface/web/admin/lib/lang/ca_software_repo.lng
@@ -1,8 +1,8 @@
 <?php
-$wb["repo_name_txt"] = 'Repository';
-$wb["repo_url_txt"] = 'URL';
-$wb["repo_username_txt"] = 'User (optional)';
-$wb["repo_password_txt"] = 'Password (optional)';
-$wb["active_txt"] = 'Active';
+$wb['repo_name_txt'] = 'Repository';
+$wb['repo_url_txt'] = 'URL';
+$wb['repo_username_txt'] = 'User (optional)';
+$wb['repo_password_txt'] = 'Password (optional)';
+$wb['active_txt'] = 'Active';
 $wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/admin/lib/lang/ca_software_repo_list.lng b/interface/web/admin/lib/lang/ca_software_repo_list.lng
index f0a0b30920..b7a219ffa8 100644
--- a/interface/web/admin/lib/lang/ca_software_repo_list.lng
+++ b/interface/web/admin/lib/lang/ca_software_repo_list.lng
@@ -1,6 +1,6 @@
 <?php
-$wb["list_head_txt"] = 'Repository';
-$wb["active_txt"] = 'Active';
-$wb["repo_name_txt"] = 'Repository';
-$wb["repo_url_txt"] = 'URL';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'Repository';
+$wb['active_txt'] = 'Active';
+$wb['repo_name_txt'] = 'Repository';
+$wb['repo_url_txt'] = 'URL';
+?>
diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng
index 38f178f9f5..fa03990bc0 100644
--- a/interface/web/admin/lib/lang/ca_system_config.lng
+++ b/interface/web/admin/lib/lang/ca_system_config.lng
@@ -4,40 +4,40 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail
 $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)';
 $wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)';
 $wb['dashboard_atom_url_client_txt'] = 'Dashboard atom feed URL (client)';
-$wb["warning"] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.';
+$wb['warning'] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.';
 $wb['tab_change_discard_txt'] = 'Discard changes on tab change';
 $wb['tab_change_warning_txt'] = 'Tab change warning';
 $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.';
-$wb["dbname_prefix_txt"] = 'Database name prefix';
-$wb["dbuser_prefix_txt"] = 'Database user prefix';
-$wb["shelluser_prefix_txt"] = 'Shell user prefix';
-$wb["webdavuser_prefix_txt"] = 'Webdav user prefix';
-$wb["ftpuser_prefix_txt"] = 'FTP user prefix';
+$wb['dbname_prefix_txt'] = 'Database name prefix';
+$wb['dbuser_prefix_txt'] = 'Database user prefix';
+$wb['shelluser_prefix_txt'] = 'Shell user prefix';
+$wb['webdavuser_prefix_txt'] = 'Webdav user prefix';
+$wb['ftpuser_prefix_txt'] = 'FTP user prefix';
 $wb['vhost_subdomains_txt'] = 'Create subdomains as web site';
 $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!';
 $wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site';
 $wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!';
-$wb["dbname_prefix_error_regex"] = 'Char not allowed in database name prefix.';
-$wb["dbuser_prefix_error_regex"] = 'Char not allowed in database user prefix.';
-$wb["ftpuser_prefix_error_regex"] = 'Char not allowed in ftp user prefix.';
-$wb["shelluser_prefix_error_regex"] = 'Char not allowed in shell user prefix.';
-$wb["webdavuser_prefix_error_regex"] = 'Char not allowed in webdav user prefix.';
-$wb["dblist_phpmyadmin_link_txt"] = 'Link to phpmyadmin in DB list';
+$wb['dbname_prefix_error_regex'] = 'Char not allowed in database name prefix.';
+$wb['dbuser_prefix_error_regex'] = 'Char not allowed in database user prefix.';
+$wb['ftpuser_prefix_error_regex'] = 'Char not allowed in ftp user prefix.';
+$wb['shelluser_prefix_error_regex'] = 'Char not allowed in shell user prefix.';
+$wb['webdavuser_prefix_error_regex'] = 'Char not allowed in webdav user prefix.';
+$wb['dblist_phpmyadmin_link_txt'] = 'Link to phpmyadmin in DB list';
 $wb['enable_custom_login_txt'] = 'Allow custom login name';
-$wb["mailboxlist_webmail_link_txt"] = 'Link to webmail in Mailbox list';
-$wb['mailbox_show_autoresponder_tab_txt'] = 'Show Autoresponder tab in Mailbox detail';
-$wb['mailbox_show_mail_filter_tab_txt'] = 'Show Mail Filter tab in Mailbox detail';
-$wb['mailbox_show_custom_rules_tab_txt'] = 'Show Custom Rules tab in Mailbox detail';
-$wb["webmail_url_txt"] = 'Webmail URL';
-$wb["mailmailinglist_link_txt"] = 'Link to mailing list in Mailing list list';
-$wb["mailmailinglist_url_txt"] = 'Mailing list URL';
-$wb["phpmyadmin_url_txt"] = 'PHPMyAdmin URL';
-$wb["use_domain_module_txt"] = 'Use the domain limits in client module to add new domains';
-$wb["use_domain_module_hint"] = 'If you use the domain limits, your customers can only select one of the domains the admin creates for them. They cannot freely edit the domain-field. You have to re-login after changing this value, to make the changes visible.';
-$wb["new_domain_txt"] = 'HTML to create a new domain';
-$wb["webftp_url_txt"] = 'WebFTP URL';
+$wb['mailboxlist_webmail_link_txt'] = 'Link to webmail in Mailbox list';
+$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
+$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
+$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
+$wb['webmail_url_txt'] = 'Webmail URL';
+$wb['mailmailinglist_link_txt'] = 'Link to mailing list in Mailing list list';
+$wb['mailmailinglist_url_txt'] = 'Mailing list URL';
+$wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL';
+$wb['use_domain_module_txt'] = 'Use the domain limits in client module to add new domains';
+$wb['use_domain_module_hint'] = 'If you use the domain limits, your customers can only select one of the domains the admin creates for them. They cannot freely edit the domain-field. You have to re-login after changing this value, to make the changes visible.';
+$wb['new_domain_txt'] = 'HTML to create a new domain';
+$wb['webftp_url_txt'] = 'WebFTP URL';
 $wb['admin_mail_txt'] = 'Administrator\'s e-mail';
-$wb["monitor_key_txt"] = 'Monitor keyword';
+$wb['monitor_key_txt'] = 'Monitor keyword';
 $wb['admin_name_txt'] = 'Administrator\'s name';
 $wb['maintenance_mode_txt'] = 'Maintenance Mode';
 $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails';
@@ -52,9 +52,6 @@ $wb['use_loadindicator_txt'] = 'Use Load Indicator';
 $wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
 $wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
 $wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
-$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
-$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
-$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
 $wb['webmail_url_error_regex'] = 'Invalid webmail URL';
 $wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
 $wb['webmail_url_note_txt'] = 'Placeholder:';
@@ -70,18 +67,18 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain
 $wb['customer_no_start_txt'] = 'Customer No. start value';
 $wb['customer_no_counter_txt'] = 'Customer No. counter';
 $wb['session_timeout_txt'] = 'Session timeout (minutes)';
-$wb['session_allow_endless_txt'] = 'Enable "stay logged in"';
+$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"';
 $wb['No'] = 'No';
 $wb['min_password_length_txt'] = 'Minimum password length';
 $wb['min_password_strength_txt'] = 'Minimum password strength';
-$wb["default_mailserver_txt"] = 'Default Mailserver';
-$wb["default_webserver_txt"] = 'Default Webserver';
-$wb["default_dnsserver_txt"] = 'Default DNS Server';
-$wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server';
-$wb["default_dbserver_txt"] = 'Default Database Server';
-$wb["company_name_txt"] = "Company Name for the page title";
-$wb["reseller_can_use_options_txt"] = "Reseller can use the option-tab for websites";
-$wb["custom_login_text_txt"] = "Custom Text on Login-Page";
-$wb["custom_login_link_txt"] = "Custom Link on Login-Page";
-$wb["login_link_error_regex"] = "Invalid Link for Custom Login";
+$wb['default_mailserver_txt'] = 'Default Mailserver';
+$wb['default_webserver_txt'] = 'Default Webserver';
+$wb['default_dnsserver_txt'] = 'Default DNS Server';
+$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
+$wb['default_dbserver_txt'] = 'Default Database Server';
+$wb['company_name_txt'] = 'Company Name for the page title';
+$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites';
+$wb['custom_login_text_txt'] = 'Custom Text on Login-Page';
+$wb['custom_login_link_txt'] = 'Custom Link on Login-Page';
+$wb['login_link_error_regex'] = 'Invalid Link for Custom Login';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_users.lng b/interface/web/admin/lib/lang/ca_users.lng
index 9c57f1db8b..9ee5d5e03d 100644
--- a/interface/web/admin/lib/lang/ca_users.lng
+++ b/interface/web/admin/lib/lang/ca_users.lng
@@ -1,35 +1,35 @@
 <?php
-$wb["username_txt"] = 'Username';
-$wb["username_err"] = 'The username is too long or contains invalid characters.';
-$wb["username_empty"] = 'The username is empty.';
-$wb["username_unique"] = 'There is already a user with this username.';
-$wb["passwort_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["modules_txt"] = 'Module';
-$wb["startmodule_txt"] = 'Startmodule';
-$wb["app_theme_txt"] = 'Design';
-$wb["typ_txt"] = 'Type';
-$wb["active_txt"] = 'Active';
-$wb["language_txt"] = 'Language';
-$wb["name_txt"] = 'Name';
-$wb["vorname_txt"] = 'Forename';
-$wb["unternehmen_txt"] = 'Company';
-$wb["strasse_txt"] = 'Street';
-$wb["ort_txt"] = 'City';
-$wb["plz_txt"] = 'ZIP';
-$wb["land_txt"] = 'Country';
-$wb["email_txt"] = 'Email';
-$wb["url_txt"] = 'Url';
-$wb["telefon_txt"] = 'Telephone';
-$wb["fax_txt"] = 'Fax';
-$wb["groups_txt"] = 'Groups';
-$wb["default_group_txt"] = 'Default Group';
-$wb["startmodule_err"] = 'Start module is not within modules.';
+$wb['username_txt'] = 'Username';
+$wb['username_err'] = 'The username is too long or contains invalid characters.';
+$wb['username_empty'] = 'The username is empty.';
+$wb['username_unique'] = 'There is already a user with this username.';
+$wb['passwort_txt'] = 'Password';
+$wb['password_strength_txt'] = 'Password strength';
+$wb['modules_txt'] = 'Module';
+$wb['startmodule_txt'] = 'Startmodule';
+$wb['app_theme_txt'] = 'Design';
+$wb['typ_txt'] = 'Type';
+$wb['active_txt'] = 'Active';
+$wb['language_txt'] = 'Language';
+$wb['name_txt'] = 'Name';
+$wb['vorname_txt'] = 'Forename';
+$wb['unternehmen_txt'] = 'Company';
+$wb['strasse_txt'] = 'Street';
+$wb['ort_txt'] = 'City';
+$wb['plz_txt'] = 'ZIP';
+$wb['land_txt'] = 'Country';
+$wb['email_txt'] = 'Email';
+$wb['url_txt'] = 'Url';
+$wb['telefon_txt'] = 'Telephone';
+$wb['fax_txt'] = 'Fax';
+$wb['groups_txt'] = 'Groups';
+$wb['default_group_txt'] = 'Default Group';
+$wb['startmodule_err'] = 'Start module is not within modules.';
 $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
-$wb['username_error_collision'] = 'The username may not be web or web plus a number."';
+$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"';
 $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_users_list.lng b/interface/web/admin/lib/lang/ca_users_list.lng
index 9860ab4039..00128b5127 100644
--- a/interface/web/admin/lib/lang/ca_users_list.lng
+++ b/interface/web/admin/lib/lang/ca_users_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb["list_head_txt"] = 'Users';
-$wb["username_txt"] = 'Username';
-$wb["client_id_txt"] = 'User ID';
-$wb["active_txt"] = 'Active';
-$wb["groups_txt"] = 'Groups';
-$wb["add_new_record_txt"] = 'Add new user';
-$wb["warning_txt"] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'Users';
+$wb['username_txt'] = 'Username';
+$wb['client_id_txt'] = 'User ID';
+$wb['active_txt'] = 'Active';
+$wb['groups_txt'] = 'Groups';
+$wb['add_new_record_txt'] = 'Add new user';
+$wb['warning_txt'] = '<b>WARNING:</b> Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!';
+?>
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index 137966c264..ea785f9d6c 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -280,4 +280,5 @@ $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
 $wb['hostname_txt'] = 'Hostname';
 $wb['hostname_error_empty'] = 'Hostname is empty.';
 $wb['hostname_error_regex'] = 'Invalid Hostname.';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 815e31d5f4..286a61548b 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index 9f99e213e9..c6f75e49c2 100755
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_ports_txt'] = 'Puertos de componentes';
 $wb['xmpp_server_admins_txt'] = 'Administradores del Servidor (JIDs)';
 $wb['xmpp_server_txt'] = 'Servidor XMPP';
 $wb['xmpp_use_ipv6_txt'] = 'Usar IPv6';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index d48a493273..ea5a1d6227 100755
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 3c34e1d1dd..6d4142a04c 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
 $wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
 $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index 4c87f4ac97..a2a8447f89 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 7eff09746d..29839fd1e3 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index bc9d4fb83d..9212093b34 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index e2d4f41260..0905e87768 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
 $wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
 $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index d50a55bdca..c3216ae7b9 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 32ac87587e..bef3bebc96 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 2315178330..bfa04ad5b7 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 5e0e84615f..b5b48e743a 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index ccb7b87cb4..856f621fcb 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 57e1aac9ad..2fa308ff80 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index f5eeefd4e2..df02ad398c 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 0d90895b28..fd76cbed34 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 0459f158ef..f293bd2e4e 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -280,4 +280,5 @@ $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
 $wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
 $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
+$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/client/lib/lang/ar_client.lng b/interface/web/client/lib/lang/ar_client.lng
index 068cf99a3a..b3f195ba24 100644
--- a/interface/web/client/lib/lang/ar_client.lng
+++ b/interface/web/client/lib/lang/ar_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ar_client_template.lng b/interface/web/client/lib/lang/ar_client_template.lng
index 4c1bfda36d..21494f86fc 100644
--- a/interface/web/client/lib/lang/ar_client_template.lng
+++ b/interface/web/client/lib/lang/ar_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/ar_reseller.lng b/interface/web/client/lib/lang/ar_reseller.lng
index 341c1a14cc..574e3d7738 100644
--- a/interface/web/client/lib/lang/ar_reseller.lng
+++ b/interface/web/client/lib/lang/ar_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/bg_client.lng b/interface/web/client/lib/lang/bg_client.lng
index 940fc60d9b..60a2cf3c99 100644
--- a/interface/web/client/lib/lang/bg_client.lng
+++ b/interface/web/client/lib/lang/bg_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/bg_client_template.lng b/interface/web/client/lib/lang/bg_client_template.lng
index d788771aa7..b293ae67aa 100644
--- a/interface/web/client/lib/lang/bg_client_template.lng
+++ b/interface/web/client/lib/lang/bg_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/bg_reseller.lng b/interface/web/client/lib/lang/bg_reseller.lng
index e5d68a6e11..5121dd5a05 100644
--- a/interface/web/client/lib/lang/bg_reseller.lng
+++ b/interface/web/client/lib/lang/bg_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng
index c4a512ce8d..4c8de8942d 100644
--- a/interface/web/client/lib/lang/br_client.lng
+++ b/interface/web/client/lib/lang/br_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng
index ac5a9ef247..5c419383ee 100644
--- a/interface/web/client/lib/lang/br_client_template.lng
+++ b/interface/web/client/lib/lang/br_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng
index f41b0dea24..349e6dbc3e 100644
--- a/interface/web/client/lib/lang/br_reseller.lng
+++ b/interface/web/client/lib/lang/br_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ca_client.lng b/interface/web/client/lib/lang/ca_client.lng
index 0d156bee60..504180ea02 100644
--- a/interface/web/client/lib/lang/ca_client.lng
+++ b/interface/web/client/lib/lang/ca_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ca_client_template.lng b/interface/web/client/lib/lang/ca_client_template.lng
index 17e6391585..f74ddf8ffb 100644
--- a/interface/web/client/lib/lang/ca_client_template.lng
+++ b/interface/web/client/lib/lang/ca_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/ca_reseller.lng b/interface/web/client/lib/lang/ca_reseller.lng
index 00cf94a1e4..3242697ba0 100644
--- a/interface/web/client/lib/lang/ca_reseller.lng
+++ b/interface/web/client/lib/lang/ca_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng
index ffbf3de518..85995aeef0 100644
--- a/interface/web/client/lib/lang/cz_client.lng
+++ b/interface/web/client/lib/lang/cz_client.lng
@@ -198,4 +198,5 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/cz_client_template.lng b/interface/web/client/lib/lang/cz_client_template.lng
index 278ca02086..d275b87320 100644
--- a/interface/web/client/lib/lang/cz_client_template.lng
+++ b/interface/web/client/lib/lang/cz_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng
index e9983248e3..97d5d79790 100644
--- a/interface/web/client/lib/lang/cz_reseller.lng
+++ b/interface/web/client/lib/lang/cz_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_database_quota_txt'] = 'Databázové kvóty';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng
index d24447548e..80c8fbaff9 100644
--- a/interface/web/client/lib/lang/de_client.lng
+++ b/interface/web/client/lib/lang/de_client.lng
@@ -198,4 +198,5 @@ $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb['limit_directive_snippets_txt'] = 'Webserver-Konfigurationsauswahl sichtbar';
 $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/de_client_template.lng b/interface/web/client/lib/lang/de_client_template.lng
index e0a64ed99c..4be8f5b038 100644
--- a/interface/web/client/lib/lang/de_client_template.lng
+++ b/interface/web/client/lib/lang/de_client_template.lng
@@ -99,7 +99,7 @@ $wb['default_dbserver_txt'] = 'Default Database Server';
 $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['xmpp_limits_txt'] = 'XMPP Limits';
-$wb['xmpp_servers_txt'] = 'XMPP Servers';
+$wb['xmpp_servers_txt'] = 'XMPP-Server';
 $wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
 $wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
 $wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
@@ -114,12 +114,10 @@ $wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
 $wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
-$wb['dns_servers_txt'] = 'DNS servers';
+$wb['dns_servers_txt'] = 'DNS-Servers';
 $wb['limit_directive_snippets_txt'] = 'Webserver-Konfigurationsauswahl sichtbar';
 $wb['limit_database_user_txt'] = 'Max. Database users';
-$wb["web_servers_txt"] = 'Web-Server';
-$wb["dns_servers_txt"] = 'DNS-Servers';
-$wb["xmpp_servers_txt"] = 'XMPP-Server';
-$wb["db_servers_txt"] = 'Datenbank-Server';
-$wb["mail_servers_txt"] = 'Mail-Server';
+$wb['web_servers_txt'] = 'Web-Server';
+$wb['db_servers_txt'] = 'Datenbank-Server';
+$wb['mail_servers_txt'] = 'Mail-Server';
 ?>
diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng
index 057a675184..0320063eec 100644
--- a/interface/web/client/lib/lang/de_reseller.lng
+++ b/interface/web/client/lib/lang/de_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/el_client.lng b/interface/web/client/lib/lang/el_client.lng
index 4213b16460..c5f87b85d2 100644
--- a/interface/web/client/lib/lang/el_client.lng
+++ b/interface/web/client/lib/lang/el_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/el_client_template.lng b/interface/web/client/lib/lang/el_client_template.lng
index 778bda8db5..3348cc4ace 100644
--- a/interface/web/client/lib/lang/el_client_template.lng
+++ b/interface/web/client/lib/lang/el_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng
index c972a3f15c..06717dd99c 100644
--- a/interface/web/client/lib/lang/el_reseller.lng
+++ b/interface/web/client/lib/lang/el_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/es_client.lng b/interface/web/client/lib/lang/es_client.lng
index 66f4e3b306..ab28a905d6 100755
--- a/interface/web/client/lib/lang/es_client.lng
+++ b/interface/web/client/lib/lang/es_client.lng
@@ -198,4 +198,5 @@ $wb['xmpp_servers_used'] = 'El servidor que está intentando borrar de este clie
 $wb['zip_txt'] = 'Código postal';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/es_client_template.lng b/interface/web/client/lib/lang/es_client_template.lng
index d16a5223c7..3cf7614e82 100755
--- a/interface/web/client/lib/lang/es_client_template.lng
+++ b/interface/web/client/lib/lang/es_client_template.lng
@@ -117,4 +117,7 @@ $wb['xmpp_servers_used'] = 'El servidor que está intentando borrar de este clie
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/es_reseller.lng b/interface/web/client/lib/lang/es_reseller.lng
index 75ae9a6d75..44f69598b4 100755
--- a/interface/web/client/lib/lang/es_reseller.lng
+++ b/interface/web/client/lib/lang/es_reseller.lng
@@ -202,4 +202,5 @@ $wb['xmpp_servers_used'] = 'El servidor que está intentando borrar de este clie
 $wb['zip_txt'] = 'Código postal';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/fi_client.lng b/interface/web/client/lib/lang/fi_client.lng
index a256b45781..8fc475ec61 100755
--- a/interface/web/client/lib/lang/fi_client.lng
+++ b/interface/web/client/lib/lang/fi_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/fi_client_template.lng b/interface/web/client/lib/lang/fi_client_template.lng
index 69cd4c49b1..d9d4485e73 100755
--- a/interface/web/client/lib/lang/fi_client_template.lng
+++ b/interface/web/client/lib/lang/fi_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/fi_reseller.lng b/interface/web/client/lib/lang/fi_reseller.lng
index aeec70d3ff..24897fe7a2 100644
--- a/interface/web/client/lib/lang/fi_reseller.lng
+++ b/interface/web/client/lib/lang/fi_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng
index d9a213f428..767d66126e 100644
--- a/interface/web/client/lib/lang/fr_client.lng
+++ b/interface/web/client/lib/lang/fr_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/fr_client_template.lng b/interface/web/client/lib/lang/fr_client_template.lng
index 84b1e7716b..10fa99cf19 100644
--- a/interface/web/client/lib/lang/fr_client_template.lng
+++ b/interface/web/client/lib/lang/fr_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng
index 40a8697364..d665060bef 100644
--- a/interface/web/client/lib/lang/fr_reseller.lng
+++ b/interface/web/client/lib/lang/fr_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/hr_client.lng b/interface/web/client/lib/lang/hr_client.lng
index 869f422157..e5051bdd91 100644
--- a/interface/web/client/lib/lang/hr_client.lng
+++ b/interface/web/client/lib/lang/hr_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/hr_client_template.lng b/interface/web/client/lib/lang/hr_client_template.lng
index be766b55c0..86a4a2e4a3 100644
--- a/interface/web/client/lib/lang/hr_client_template.lng
+++ b/interface/web/client/lib/lang/hr_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/hr_reseller.lng b/interface/web/client/lib/lang/hr_reseller.lng
index a7ffe3413c..0e10bdf636 100644
--- a/interface/web/client/lib/lang/hr_reseller.lng
+++ b/interface/web/client/lib/lang/hr_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/hu_client.lng b/interface/web/client/lib/lang/hu_client.lng
index be01339a41..09eee87c3e 100644
--- a/interface/web/client/lib/lang/hu_client.lng
+++ b/interface/web/client/lib/lang/hu_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/hu_client_template.lng b/interface/web/client/lib/lang/hu_client_template.lng
index 416b2462d9..6ce2545faf 100644
--- a/interface/web/client/lib/lang/hu_client_template.lng
+++ b/interface/web/client/lib/lang/hu_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/hu_reseller.lng b/interface/web/client/lib/lang/hu_reseller.lng
index 8007202b4b..d74ce82172 100644
--- a/interface/web/client/lib/lang/hu_reseller.lng
+++ b/interface/web/client/lib/lang/hu_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/id_client.lng b/interface/web/client/lib/lang/id_client.lng
index e664a13c45..c71ff0a45d 100644
--- a/interface/web/client/lib/lang/id_client.lng
+++ b/interface/web/client/lib/lang/id_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/id_client_template.lng b/interface/web/client/lib/lang/id_client_template.lng
index 706626d0e2..709a69aba2 100644
--- a/interface/web/client/lib/lang/id_client_template.lng
+++ b/interface/web/client/lib/lang/id_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/id_reseller.lng b/interface/web/client/lib/lang/id_reseller.lng
index fd491e0460..cc1d1c25c0 100644
--- a/interface/web/client/lib/lang/id_reseller.lng
+++ b/interface/web/client/lib/lang/id_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng
index 966f6a2fe8..c0cb66dafc 100644
--- a/interface/web/client/lib/lang/it_client.lng
+++ b/interface/web/client/lib/lang/it_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/it_client_template.lng b/interface/web/client/lib/lang/it_client_template.lng
index 56074d3eef..9cf571a00c 100644
--- a/interface/web/client/lib/lang/it_client_template.lng
+++ b/interface/web/client/lib/lang/it_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/it_reseller.lng b/interface/web/client/lib/lang/it_reseller.lng
index 235b52e04b..83f5b5ad95 100644
--- a/interface/web/client/lib/lang/it_reseller.lng
+++ b/interface/web/client/lib/lang/it_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ja_client.lng b/interface/web/client/lib/lang/ja_client.lng
index 144f21574d..96a2169a2d 100644
--- a/interface/web/client/lib/lang/ja_client.lng
+++ b/interface/web/client/lib/lang/ja_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ja_client_template.lng b/interface/web/client/lib/lang/ja_client_template.lng
index 5bb58f11c3..45f7f201c8 100644
--- a/interface/web/client/lib/lang/ja_client_template.lng
+++ b/interface/web/client/lib/lang/ja_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/ja_reseller.lng b/interface/web/client/lib/lang/ja_reseller.lng
index 327c0de4bd..2ae9dc28c8 100644
--- a/interface/web/client/lib/lang/ja_reseller.lng
+++ b/interface/web/client/lib/lang/ja_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/nl_client_template.lng b/interface/web/client/lib/lang/nl_client_template.lng
index 4d310f6aa4..cd54b0cbce 100644
--- a/interface/web/client/lib/lang/nl_client_template.lng
+++ b/interface/web/client/lib/lang/nl_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/pl_client.lng b/interface/web/client/lib/lang/pl_client.lng
index d2076d77a4..d0b2081078 100644
--- a/interface/web/client/lib/lang/pl_client.lng
+++ b/interface/web/client/lib/lang/pl_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/pl_client_template.lng b/interface/web/client/lib/lang/pl_client_template.lng
index abafbe713e..82fa12ff21 100644
--- a/interface/web/client/lib/lang/pl_client_template.lng
+++ b/interface/web/client/lib/lang/pl_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/pl_reseller.lng b/interface/web/client/lib/lang/pl_reseller.lng
index 640725f892..c98467f099 100644
--- a/interface/web/client/lib/lang/pl_reseller.lng
+++ b/interface/web/client/lib/lang/pl_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/pt_client.lng b/interface/web/client/lib/lang/pt_client.lng
index 37e5079de5..750295d708 100644
--- a/interface/web/client/lib/lang/pt_client.lng
+++ b/interface/web/client/lib/lang/pt_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/pt_client_template.lng b/interface/web/client/lib/lang/pt_client_template.lng
index bc18b05b4a..bd3872db8f 100644
--- a/interface/web/client/lib/lang/pt_client_template.lng
+++ b/interface/web/client/lib/lang/pt_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/pt_reseller.lng b/interface/web/client/lib/lang/pt_reseller.lng
index 9bef8ef2ea..b19b691c52 100644
--- a/interface/web/client/lib/lang/pt_reseller.lng
+++ b/interface/web/client/lib/lang/pt_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ro_client.lng b/interface/web/client/lib/lang/ro_client.lng
index cf123eb5e2..65726d056e 100644
--- a/interface/web/client/lib/lang/ro_client.lng
+++ b/interface/web/client/lib/lang/ro_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ro_client_template.lng b/interface/web/client/lib/lang/ro_client_template.lng
index dfd0c4e881..7df433be98 100644
--- a/interface/web/client/lib/lang/ro_client_template.lng
+++ b/interface/web/client/lib/lang/ro_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/ro_reseller.lng b/interface/web/client/lib/lang/ro_reseller.lng
index 341c1a14cc..574e3d7738 100644
--- a/interface/web/client/lib/lang/ro_reseller.lng
+++ b/interface/web/client/lib/lang/ro_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng
index 1b653f44cc..1100710a14 100644
--- a/interface/web/client/lib/lang/ru_client.lng
+++ b/interface/web/client/lib/lang/ru_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/ru_client_template.lng b/interface/web/client/lib/lang/ru_client_template.lng
index 8d3226347b..15e5592c1b 100644
--- a/interface/web/client/lib/lang/ru_client_template.lng
+++ b/interface/web/client/lib/lang/ru_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng
index 21e20955c5..02dd3b4303 100644
--- a/interface/web/client/lib/lang/ru_reseller.lng
+++ b/interface/web/client/lib/lang/ru_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng
index 7c2d5e1742..3973fe21c7 100644
--- a/interface/web/client/lib/lang/se_client.lng
+++ b/interface/web/client/lib/lang/se_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/se_client_template.lng b/interface/web/client/lib/lang/se_client_template.lng
index 9fbce27f9b..d2928c1601 100644
--- a/interface/web/client/lib/lang/se_client_template.lng
+++ b/interface/web/client/lib/lang/se_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng
index 341c1a14cc..574e3d7738 100644
--- a/interface/web/client/lib/lang/se_reseller.lng
+++ b/interface/web/client/lib/lang/se_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/sk_client.lng b/interface/web/client/lib/lang/sk_client.lng
index 4fbd81568c..9b2e44a7d9 100644
--- a/interface/web/client/lib/lang/sk_client.lng
+++ b/interface/web/client/lib/lang/sk_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/sk_client_template.lng b/interface/web/client/lib/lang/sk_client_template.lng
index 84c3ce6eae..5b506294a2 100644
--- a/interface/web/client/lib/lang/sk_client_template.lng
+++ b/interface/web/client/lib/lang/sk_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/sk_reseller.lng b/interface/web/client/lib/lang/sk_reseller.lng
index a27e6dd2c9..879c652a7d 100644
--- a/interface/web/client/lib/lang/sk_reseller.lng
+++ b/interface/web/client/lib/lang/sk_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng
index b3e52a3382..4dbe1e9dc4 100644
--- a/interface/web/client/lib/lang/tr_client.lng
+++ b/interface/web/client/lib/lang/tr_client.lng
@@ -198,4 +198,5 @@ $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/tr_client_template.lng b/interface/web/client/lib/lang/tr_client_template.lng
index 835444bc9e..fd1dcd980e 100644
--- a/interface/web/client/lib/lang/tr_client_template.lng
+++ b/interface/web/client/lib/lang/tr_client_template.lng
@@ -117,4 +117,7 @@ $wb['dns_servers_txt'] = 'DNS servers';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
 ?>
diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng
index f9dcce590c..6eeac567a1 100644
--- a/interface/web/client/lib/lang/tr_reseller.lng
+++ b/interface/web/client/lib/lang/tr_reseller.lng
@@ -202,4 +202,5 @@ $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/dns/lib/lang/ar_dns_wizard.lng b/interface/web/dns/lib/lang/ar_dns_wizard.lng
index 6723df67d4..800477dbe9 100644
--- a/interface/web/dns/lib/lang/ar_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/ar_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/bg_dns_wizard.lng b/interface/web/dns/lib/lang/bg_dns_wizard.lng
index cffdd72586..2e883fb2c6 100644
--- a/interface/web/dns/lib/lang/bg_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/bg_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_wizard.lng b/interface/web/dns/lib/lang/br_dns_wizard.lng
index 93d9b9dd17..b405c8a298 100644
--- a/interface/web/dns/lib/lang/br_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/br_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/ca_dns_wizard.lng b/interface/web/dns/lib/lang/ca_dns_wizard.lng
index df6c834be1..a7e2aaa216 100644
--- a/interface/web/dns/lib/lang/ca_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/ca_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['error_ipv6_empty'] = 'IPv6 empty.';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/cz_dns_wizard.lng b/interface/web/dns/lib/lang/cz_dns_wizard.lng
index 5f31994b52..d9e80c3485 100644
--- a/interface/web/dns/lib/lang/cz_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/cz_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/el_dns_wizard.lng b/interface/web/dns/lib/lang/el_dns_wizard.lng
index 9462fd9b7f..025b7d5cb3 100644
--- a/interface/web/dns/lib/lang/el_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/el_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/es_dns_wizard.lng b/interface/web/dns/lib/lang/es_dns_wizard.lng
index ef6aaaadde..839bc7973a 100755
--- a/interface/web/dns/lib/lang/es_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/es_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['ns2_txt'] = 'NS 2';
 $wb['server_id_txt'] = 'Servidor';
 $wb['template_id_txt'] = 'Plantilla';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/fi_dns_wizard.lng b/interface/web/dns/lib/lang/fi_dns_wizard.lng
index 237ac6b27b..3b1898f3c7 100755
--- a/interface/web/dns/lib/lang/fi_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/fi_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/fr_dns_wizard.lng b/interface/web/dns/lib/lang/fr_dns_wizard.lng
index f60324cc7b..a504ee2434 100644
--- a/interface/web/dns/lib/lang/fr_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/fr_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['error_ipv6_empty'] = 'IPv6 empty.';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_wizard.lng b/interface/web/dns/lib/lang/hr_dns_wizard.lng
index 0a4fcdf239..3dac7ef660 100644
--- a/interface/web/dns/lib/lang/hr_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/hr_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['list_desc_txt'] = 'Kreiraj DNS zonu sa čarobnjakom';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/hu_dns_wizard.lng b/interface/web/dns/lib/lang/hu_dns_wizard.lng
index aa5b791235..a8628087a7 100644
--- a/interface/web/dns/lib/lang/hu_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/hu_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/id_dns_wizard.lng b/interface/web/dns/lib/lang/id_dns_wizard.lng
index 01f95130d3..219a3325fe 100644
--- a/interface/web/dns/lib/lang/id_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/id_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_wizard.lng b/interface/web/dns/lib/lang/it_dns_wizard.lng
index 3847de0e03..4174b0c5c4 100644
--- a/interface/web/dns/lib/lang/it_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/it_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['error_ipv6_empty'] = 'IPv6 empty.';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/ja_dns_wizard.lng b/interface/web/dns/lib/lang/ja_dns_wizard.lng
index 6b1d1931a1..97ce5f11c3 100644
--- a/interface/web/dns/lib/lang/ja_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/ja_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_wizard.lng b/interface/web/dns/lib/lang/nl_dns_wizard.lng
index 3fbe6c71ba..10eb73c7b5 100644
--- a/interface/web/dns/lib/lang/nl_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/nl_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM ingeschakeld';
 $wb['error_no_server_id'] = 'Geen server opgegeven.';
 $wb['error_not_allowed_server_id'] = 'De geselecteerde server mag niet voor dit account gebruikt worden.';
 $wb['dnssec_txt'] = 'Zone signeren (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/pl_dns_wizard.lng b/interface/web/dns/lib/lang/pl_dns_wizard.lng
index 02ac746b1b..b84f9fb1c5 100644
--- a/interface/web/dns/lib/lang/pl_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/pl_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/pt_dns_wizard.lng b/interface/web/dns/lib/lang/pt_dns_wizard.lng
index d3d645fff5..4840a55971 100644
--- a/interface/web/dns/lib/lang/pt_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/pt_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/ro_dns_wizard.lng b/interface/web/dns/lib/lang/ro_dns_wizard.lng
index 56ecfd5582..060675ba2e 100644
--- a/interface/web/dns/lib/lang/ro_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/ro_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/ru_dns_wizard.lng b/interface/web/dns/lib/lang/ru_dns_wizard.lng
index f72e001088..c64241c682 100644
--- a/interface/web/dns/lib/lang/ru_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/ru_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/se_dns_wizard.lng b/interface/web/dns/lib/lang/se_dns_wizard.lng
index 6723df67d4..800477dbe9 100644
--- a/interface/web/dns/lib/lang/se_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/se_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/sk_dns_wizard.lng b/interface/web/dns/lib/lang/sk_dns_wizard.lng
index 68248b95f4..2d48fb7693 100644
--- a/interface/web/dns/lib/lang/sk_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/sk_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['dkim_txt'] = 'DKIM enabled';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_wizard.lng b/interface/web/dns/lib/lang/tr_dns_wizard.lng
index 639ea71b55..a6e60e656b 100644
--- a/interface/web/dns/lib/lang/tr_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/tr_dns_wizard.lng
@@ -41,4 +41,5 @@ $wb['error_ipv6_empty'] = 'IPv6 empty.';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/mail/lib/lang/ar_mail_user.lng b/interface/web/mail/lib/lang/ar_mail_user.lng
index 688d558aec..47f95d08b8 100644
--- a/interface/web/mail/lib/lang/ar_mail_user.lng
+++ b/interface/web/mail/lib/lang/ar_mail_user.lng
@@ -61,4 +61,5 @@ $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autor
 $wb['sender_cc_txt'] = 'Send outgoing copy to';
 $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/bg_mail_user.lng b/interface/web/mail/lib/lang/bg_mail_user.lng
index ec19a636c9..15a3bc25cd 100644
--- a/interface/web/mail/lib/lang/bg_mail_user.lng
+++ b/interface/web/mail/lib/lang/bg_mail_user.lng
@@ -61,4 +61,5 @@ $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_user.lng b/interface/web/mail/lib/lang/br_mail_user.lng
index 1df2985036..648356bb2a 100644
--- a/interface/web/mail/lib/lang/br_mail_user.lng
+++ b/interface/web/mail/lib/lang/br_mail_user.lng
@@ -61,4 +61,5 @@ $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/ca_mail_user.lng b/interface/web/mail/lib/lang/ca_mail_user.lng
index c33a27a6ef..53c815532f 100644
--- a/interface/web/mail/lib/lang/ca_mail_user.lng
+++ b/interface/web/mail/lib/lang/ca_mail_user.lng
@@ -61,4 +61,5 @@ $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng
index 240e62e20a..e0e2e8cf0f 100644
--- a/interface/web/mail/lib/lang/cz_mail_user.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user.lng
@@ -61,4 +61,5 @@ $wb['daily_backup_txt'] = 'Denní';
 $wb['weekly_backup_txt'] = 'Týdenní';
 $wb['monthly_backup_txt'] = 'Měsíční';
 $wb['sender_cc_note_txt'] = '(Při posílání kopií na více e-mailových adres, oddělte čárkami.) ';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/de_mail_user.lng b/interface/web/mail/lib/lang/de_mail_user.lng
index 85ca3d18eb..88419bf5ab 100644
--- a/interface/web/mail/lib/lang/de_mail_user.lng
+++ b/interface/web/mail/lib/lang/de_mail_user.lng
@@ -61,4 +61,5 @@ $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autor
 $wb['sender_cc_txt'] = 'Send outgoing copy to';
 $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/el_mail_user.lng b/interface/web/mail/lib/lang/el_mail_user.lng
index 8f364c5045..6ab631b705 100644
--- a/interface/web/mail/lib/lang/el_mail_user.lng
+++ b/interface/web/mail/lib/lang/el_mail_user.lng
@@ -61,4 +61,5 @@ $wb['daily_backup_txt'] = 'Daily';
 $wb['weekly_backup_txt'] = 'Weekly';
 $wb['monthly_backup_txt'] = 'Monthly';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/es.lng b/interface/web/mail/lib/lang/es.lng
index 787007a7fc..797aeeeb60 100755
--- a/interface/web/mail/lib/lang/es.lng
+++ b/interface/web/mail/lib/lang/es.lng
@@ -8,7 +8,7 @@ $wb['Domain'] = 'Dominio';
 $wb['Email Accounts'] = 'Cuentas de correo';
 $wb['Email Alias'] = 'Alias de correo';
 $wb['Email Blacklist'] = 'Lista negra de correo';
-$wb['Email Catchall'] = 'Correo \"recoge-todo\"';
+$wb['Email Catchall'] = 'Correo \\"recoge-todo\\"';
 $wb['Email filter'] = 'Filtro de correo';
 $wb['Email Forward'] = 'Reenvío de correo';
 $wb['Email Mailbox'] = 'Buzón de correo';
diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng
index ed6c9b5db4..48ead68ac1 100755
--- a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng
+++ b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng
@@ -3,9 +3,9 @@ $wb['active_txt'] = 'Habilitado';
 $wb['destination_error_isemail'] = 'El destinatario no es una dirección de correo válida.';
 $wb['destination_txt'] = 'Correo de destino';
 $wb['domain_error_regex'] = 'El nombre de dominio es inválido o contiene caracteres no permitidos.';
-$wb['domain_error_unique'] = 'Este dominio ya tiene un correo \"recoge-todo\".';
+$wb['domain_error_unique'] = 'Este dominio ya tiene un correo \\"recoge-todo\\".';
 $wb['domain_txt'] = 'Dominio';
-$wb['limit_mailcatchall_txt'] = 'Ha alcanzado el número máx. de correo \"recoge-todo\" para correo permitidos para su cuenta.';
+$wb['limit_mailcatchall_txt'] = 'Ha alcanzado el número máx. de correo \\"recoge-todo\\" para correo permitidos para su cuenta.';
 $wb['no_domain_perm'] = 'No tiene permisos para usar este dominio.';
 $wb['source_txt'] = 'Origen';
 ?>
diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng
index fc3fde1956..8288430a18 100755
--- a/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng
+++ b/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['active_txt'] = 'Habilitado';
-$wb['add_new_record_txt'] = 'Añadir correo \"recoge-todo\"';
+$wb['add_new_record_txt'] = 'Añadir correo \\"recoge-todo\\"';
 $wb['destination_txt'] = 'Dirección de correo de destino';
 $wb['domain_txt'] = 'Dominio';
-$wb['list_head_txt'] = 'Correo \"recoge-todo\"';
+$wb['list_head_txt'] = 'Correo \\"recoge-todo\\"';
 $wb['server_id_txt'] = 'Servidor';
 $wb['source_txt'] = 'Origen';
 ?>
diff --git a/interface/web/mail/lib/lang/es_mail_get.lng b/interface/web/mail/lib/lang/es_mail_get.lng
index 47529e27c6..81de60b038 100755
--- a/interface/web/mail/lib/lang/es_mail_get.lng
+++ b/interface/web/mail/lib/lang/es_mail_get.lng
@@ -2,7 +2,7 @@
 $wb['active_txt'] = 'Habilitado';
 $wb['destination_error_isemail'] = 'No ha seleccionado un destinatario.';
 $wb['destination_txt'] = 'Destino';
-$wb['error_delete_read_all_combination'] = 'Combinación incorrecta de opciones. No puede usar \"Borrar correos después de recuperarlos\" = NO al mismo tiempo que \"Recuperar todos los correos\" = SI';
+$wb['error_delete_read_all_combination'] = 'Combinación incorrecta de opciones. No puede usar \\"Borrar correos después de recuperarlos\\" = NO al mismo tiempo que \\"Recuperar todos los correos\\" = SI';
 $wb['limit_fetchmail_txt'] = 'Ha alcanzado el número máx. de registros de recuperación de correo permitidos para su cuenta.';
 $wb['server_id_txt'] = 'Servidor';
 $wb['source_delete_note_txt'] = 'Por favor, verifique que funcione la recuperación de correos antes de activar esta opción.';
diff --git a/interface/web/mail/lib/lang/es_mail_user.lng b/interface/web/mail/lib/lang/es_mail_user.lng
index 8c9967afe1..fa8ac6defa 100755
--- a/interface/web/mail/lib/lang/es_mail_user.lng
+++ b/interface/web/mail/lib/lang/es_mail_user.lng
@@ -61,4 +61,5 @@ $wb['sender_cc_note_txt'] = '(Separe múltiples cuentas de correo con comas)';
 $wb['sender_cc_txt'] = 'Enviar copia a';
 $wb['server_id_txt'] = 'id_del_servidor';
 $wb['weekly_backup_txt'] = 'Semanalmente';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/fi_mail_user.lng b/interface/web/mail/lib/lang/fi_mail_user.lng
index ebda8f5c38..d12697c469 100755
--- a/interface/web/mail/lib/lang/fi_mail_user.lng
+++ b/interface/web/mail/lib/lang/fi_mail_user.lng
@@ -61,4 +61,5 @@ $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autor
 $wb['sender_cc_txt'] = 'Send outgoing copy to';
 $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng
index acc2da94e1..94dd018332 100644
--- a/interface/web/mail/lib/lang/nl_mail_user.lng
+++ b/interface/web/mail/lib/lang/nl_mail_user.lng
@@ -36,7 +36,7 @@ $wb['name_txt'] = 'Echte naam';
 $wb['name_optional_txt'] = '(Optioneel)';
 $wb['autoresponder_active'] = 'Inschakelen autoresponder';
 $wb['cc_txt'] = 'Stuur kopie naar';
-$wb['cc_error_isemail'] = 'Het \"Stuur kopie naar\" veld bevat geen geldig e-mail adres';
+$wb['cc_error_isemail'] = 'Het \\"Stuur kopie naar\\" veld bevat geen geldig e-mail adres';
 $wb['domain_txt'] = 'Domain';
 $wb['now_txt'] = 'Now';
 $wb['login_error_unique'] = 'Login is already taken.';
@@ -60,6 +60,6 @@ $wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
 $wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)';
 $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.';
 $wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan';
-$wb['sender_cc_error_isemail'] = 'Het \"Stuur uitgaande kopie aan\" veld bevat geen geldig e-mail adres';
+$wb['sender_cc_error_isemail'] = 'Het \\"Stuur uitgaande kopie aan\\" veld bevat geen geldig e-mail adres';
 $wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)';
 ?>
diff --git a/interface/web/mailuser/lib/lang/ar_mail_user_password.lng b/interface/web/mailuser/lib/lang/ar_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/ar_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/ar_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/bg_mail_user_password.lng b/interface/web/mailuser/lib/lang/bg_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/bg_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/bg_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_mail_user_password.lng b/interface/web/mailuser/lib/lang/br_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/br_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/br_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/ca_mail_user_password.lng b/interface/web/mailuser/lib/lang/ca_mail_user_password.lng
index d52786ce07..7ceab7b5da 100644
--- a/interface/web/mailuser/lib/lang/ca_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/ca_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Générer mot de passe';
 $wb['repeat_password_txt'] = 'Retaper le mot de passe';
 $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.';
 $wb['password_match_txt'] = 'Les mots de passe correspondent.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
index 4f914cdfc6..d7072cfe52 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generovat heslo';
 $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/de_mail_user_password.lng b/interface/web/mailuser/lib/lang/de_mail_user_password.lng
index 5e5fe5e933..cf97177b61 100644
--- a/interface/web/mailuser/lib/lang/de_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/de_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Passwort erzeugen';
 $wb['repeat_password_txt'] = 'Passwort wiederholen';
 $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.';
 $wb['password_match_txt'] = 'Die Passwörter stimmen überein.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/el_mail_user_password.lng b/interface/web/mailuser/lib/lang/el_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/el_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/el_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/es_mail_user_password.lng b/interface/web/mailuser/lib/lang/es_mail_user_password.lng
index a5f635bd87..24520b1027 100755
--- a/interface/web/mailuser/lib/lang/es_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/es_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.';
 $wb['password_strength_txt'] = 'Seguridad de la contraseña';
 $wb['password_txt'] = 'Contraseña';
 $wb['repeat_password_txt'] = 'Repetir contraseña';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/fi_mail_user_password.lng b/interface/web/mailuser/lib/lang/fi_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/fi_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/fi_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/fr_mail_user_password.lng b/interface/web/mailuser/lib/lang/fr_mail_user_password.lng
index 273740074d..7e870fe784 100644
--- a/interface/web/mailuser/lib/lang/fr_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/fr_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Générer un mot de passe';
 $wb['repeat_password_txt'] = 'Répéter le mot de passe';
 $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.';
 $wb['password_match_txt'] = 'Les mots de passe correspondent.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_password.lng b/interface/web/mailuser/lib/lang/hr_mail_user_password.lng
index ec61583f0d..6767685619 100644
--- a/interface/web/mailuser/lib/lang/hr_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/hr_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generiraj šifru';
 $wb['repeat_password_txt'] = 'Ponovi šifru';
 $wb['password_mismatch_txt'] = 'Šifre nisu identične.';
 $wb['password_match_txt'] = 'Šifre su identične.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/hu_mail_user_password.lng b/interface/web/mailuser/lib/lang/hu_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/hu_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/hu_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/id_mail_user_password.lng b/interface/web/mailuser/lib/lang/id_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/id_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/id_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/it_mail_user_password.lng b/interface/web/mailuser/lib/lang/it_mail_user_password.lng
index 4c6fca355d..b5c3af195b 100644
--- a/interface/web/mailuser/lib/lang/it_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/it_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Genera Password';
 $wb['repeat_password_txt'] = 'Ripeti Password';
 $wb['password_mismatch_txt'] = 'Le password non coincidono.';
 $wb['password_match_txt'] = 'Le password coincidono.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/ja_mail_user_password.lng b/interface/web/mailuser/lib/lang/ja_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/ja_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/ja_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/pl_mail_user_password.lng b/interface/web/mailuser/lib/lang/pl_mail_user_password.lng
index 48dfd26d94..1fe012a434 100644
--- a/interface/web/mailuser/lib/lang/pl_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/pl_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generuj hasło';
 $wb['repeat_password_txt'] = 'Powtórz hasło';
 $wb['password_mismatch_txt'] = 'Błąd, hasła nie pasują';
 $wb['password_match_txt'] = 'OK, hasła są jednakowe';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/pt_mail_user_password.lng b/interface/web/mailuser/lib/lang/pt_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/pt_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/pt_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/ro_mail_user_password.lng b/interface/web/mailuser/lib/lang/ro_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/ro_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/ro_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_password.lng b/interface/web/mailuser/lib/lang/ru_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/ru_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/ru_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/se_mail_user_password.lng b/interface/web/mailuser/lib/lang/se_mail_user_password.lng
index c78430162a..405bc35f2e 100644
--- a/interface/web/mailuser/lib/lang/se_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/se_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Skapa lösenord';
 $wb['repeat_password_txt'] = 'Upprepa lösenord';
 $wb['password_mismatch_txt'] = 'Lösenorden matchar inte';
 $wb['password_match_txt'] = 'Lösenorden matchar';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/sk_mail_user_password.lng b/interface/web/mailuser/lib/lang/sk_mail_user_password.lng
index cdf9674e70..654c1d0407 100644
--- a/interface/web/mailuser/lib/lang/sk_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/sk_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_password.lng b/interface/web/mailuser/lib/lang/tr_mail_user_password.lng
index 8036e9aa08..d06ad94bb0 100644
--- a/interface/web/mailuser/lib/lang/tr_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/tr_mail_user_password.lng
@@ -7,4 +7,5 @@ $wb['generate_password_txt'] = 'Parola OluÅŸtur';
 $wb['repeat_password_txt'] = 'Parola Onayı';
 $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.';
 $wb['password_match_txt'] = 'Parola ile onayı aynı.';
+$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng
index aa072205d2..023a2ea0e4 100755
--- a/interface/web/monitor/lib/lang/es.lng
+++ b/interface/web/monitor/lib/lang/es.lng
@@ -27,7 +27,7 @@ $wb['monitor_logs_mailerr_txt'] = 'Registros de errores de correo';
 $wb['monitor_logs_mailwarn_txt'] = 'Registros de advertencias de correo';
 $wb['monitor_logs_messages_txt'] = 'Registros de mensajes del sistema';
 $wb['monitor_norkhunter_txt'] = 'RKHunter no está instalado, por lo que no hay registros a mostrar';
-$wb['monitor_nosupportedraid1_txt'] = 'Por el momento, soportamos \"mdadm\" o \"mpt-status\" para supervisar el RAID.<br>No hemos podido encontrarlo en su servidor. </br> Por lo tanto no podemos monitorizar su RAID todavía.';
+$wb['monitor_nosupportedraid1_txt'] = 'Por el momento, soportamos \\"mdadm\\" o \\"mpt-status\\" para supervisar el RAID.<br>No hemos podido encontrarlo en su servidor. </br> Por lo tanto no podemos monitorizar su RAID todavía.';
 $wb['monitor_serverstate_beancountercritical_txt'] = 'Existen muchos errores en el Beancounter';
 $wb['monitor_serverstate_beancountererror_txt'] = 'Existen muchísimos errores en el Beancounter';
 $wb['monitor_serverstate_beancounterinfo_txt'] = 'Existen algún error en el Beancounter';
-- 
GitLab


From 9f3a03737b5375a0697eb6b69d56f52a0afa9fa9 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 5 Aug 2016 10:43:36 +0200
Subject: [PATCH 156/313] Hide DNSSEC from Wizard if DNS-Mirrors are available
 (prevents broken DNSSEC-Implementaion on Multiserver-Setups)

---
 interface/web/dns/dns_wizard.php              | 15 ++++++++++++---
 interface/web/dns/form/dns_template.tform.php | 12 +++++++++++-
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php
index a0fd131ae1..f6ddb974e7 100644
--- a/interface/web/dns/dns_wizard.php
+++ b/interface/web/dns/dns_wizard.php
@@ -167,13 +167,22 @@ if($_SESSION["s"]["user"]["typ"] != 'admin')
 
 }
 
+//* TODO: store dnssec-keys in the database - see below for non-admin-users
+//* hide dnssec if we found dns-mirror-servers
+$sql = "SELECT count(*) AS count FROM server WHERE mirror_server_id > 0 and dns_server = 1";
+$rec=$app->db->queryOneRecord($sql);
+
 $template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = ?", $template_id);
 $fields = explode(',', $template_record['fields']);
 if(is_array($fields)) {
 	foreach($fields as $field) {
-		$app->tpl->setVar($field."_VISIBLE", 1);
-		$field = strtolower($field);
-		$app->tpl->setVar($field, $_POST[$field]);
+		if($field == 'DNSSEC' && $rec['count'] > 0) {
+			//hide dnssec
+		} else {
+			$app->tpl->setVar($field."_VISIBLE", 1);
+			$field = strtolower($field);
+			$app->tpl->setVar($field, $_POST[$field]);
+		}
 	}
 }
 
diff --git a/interface/web/dns/form/dns_template.tform.php b/interface/web/dns/form/dns_template.tform.php
index 541eec4445..2c53f32ec1 100644
--- a/interface/web/dns/form/dns_template.tform.php
+++ b/interface/web/dns/form/dns_template.tform.php
@@ -50,6 +50,16 @@ $form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update,
 $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
 $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
 
+//* TODO: store dnssec-keys in the database - see below for non-admin-users
+//* hide dnssec if we found dns-mirror-servers
+$sql = "SELECT count(*) AS count FROM server WHERE mirror_server_id > 0 and dns_server = 1";
+$rec=$app->db->queryOneRecord($sql);
+if($rec['count'] > 0) {
+	$field_values = array('DOMAIN' => 'Domain', 'IP' => 'IP Address', 'IPV6' => 'IPv6 Address', 'NS1' => 'NS 1', 'NS2' => 'NS 2', 'EMAIL' => 'Email', 'DKIM' => 'DKIM');
+} else {
+	$field_values = array('DOMAIN' => 'Domain', 'IP' => 'IP Address', 'IPV6' => 'IPv6 Address', 'NS1' => 'NS 1', 'NS2' => 'NS 2', 'EMAIL' => 'Email', 'DKIM' => 'DKIM', 'DNSSEC' => 'DNSSEC');
+}
+
 $form["tabs"]['template'] = array (
 	'title'  => "DNS Template",
 	'width'  => 100,
@@ -74,7 +84,7 @@ $form["tabs"]['template'] = array (
 			'formtype' => 'CHECKBOXARRAY',
 			'default' => '',
 			'separator' => ',',
-			'value'  => array('DOMAIN' => 'Domain', 'IP' => 'IP Address', 'IPV6' => 'IPv6 Address', 'NS1' => 'NS 1', 'NS2' => 'NS 2', 'EMAIL' => 'Email', 'DKIM' => 'DKIM', 'DNSSEC' => 'DNSSEC'),
+			'value'  => $field_values,
 			'validators'    => array (  0 => array ('type'  => 'CUSTOM',
 					'class' => 'validate_dkim',
 					'function' => 'check_template',
-- 
GitLab


From 23af232f1fd101878861a07090dd67825421058b Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 5 Aug 2016 10:51:34 +0200
Subject: [PATCH 157/313] #4019 Do not switch apps vhost to tcp connections on
 Ubuntu 16.04 nginx setup.

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index fb587770bd..fc95bef038 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2085,7 +2085,7 @@ Email Address []:
 			$content = str_replace('{fpm_socket}', $fpm_socket, $content);
 			$content = str_replace('{cgi_socket}', $cgi_socket, $content);
 
-			if(file_exists('/var/run/php5-fpm.sock')){
+			if(file_exists('/var/run/php5-fpm.sock') || file_exists('/var/run/php/php7.0-fpm.sock')){
 				$use_tcp = '#';
 				$use_socket = '';
 			} else {
-- 
GitLab


From 3cf7f969254b849d28b55bd02b5adece76953c1c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 5 Aug 2016 11:07:36 +0200
Subject: [PATCH 158/313] Write SQL update errors to install log only.

---
 install/lib/update.lib.php | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index 6408c18022..6a6f5fe8cd 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -205,7 +205,11 @@ function updateDbAndIni() {
 					$cmd = "mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." --force -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." ".escapeshellarg($conf['mysql']['database'])." < ".$sql_patch_filename;
 				}
 				
-				if(in_array($next_db_version,explode(',',$silent_update_versions))) $cmd .= ' > /dev/null 2> /dev/null';
+				if(in_array($next_db_version,explode(',',$silent_update_versions))) {
+					$cmd .= ' > /dev/null 2> /dev/null';
+				} else {
+					$cmd .= ' > /var/log/ispconfig_install.log 2> /var/log/ispconfig_install.log';
+				}
 				system($cmd);
 				
 				swriteln($inst->lng('Loading SQL patch file').': '.$sql_patch_filename);
-- 
GitLab


From dd4a4ffe7e0063f795c30e9c9b5b678e2fd64c7b Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Tue, 9 Aug 2016 07:47:32 +0200
Subject: [PATCH 159/313] Remote users form broken in 3.1rc1 (#4080)

---
 interface/web/admin/templates/remote_user_edit.htm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/interface/web/admin/templates/remote_user_edit.htm b/interface/web/admin/templates/remote_user_edit.htm
index 261d8802a3..49353c7b58 100644
--- a/interface/web/admin/templates/remote_user_edit.htm
+++ b/interface/web/admin/templates/remote_user_edit.htm
@@ -7,7 +7,9 @@
         
             <div class="form-group">
                 <label for="remote_username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label>
+<!--
                 <div class="col-sm-2">{tmpl_var name='username_prefix'}</div>
+-->
                 <div class="col-sm-7"><input type="text" name="remote_username" id="username" value="{tmpl_var name='remote_username'}" class="form-control" /></div></div>
                 
             <div class="form-group">
@@ -45,4 +47,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/remote_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/remote_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
-- 
GitLab


From d452b525b8aa46e8ec5f7b70e863feaa07c230fd Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 9 Aug 2016 09:01:19 +0200
Subject: [PATCH 160/313] Append mysql update errors to the log file instead of
 overwriting it.

---
 install/lib/update.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index 6a6f5fe8cd..acc0051794 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -208,7 +208,7 @@ function updateDbAndIni() {
 				if(in_array($next_db_version,explode(',',$silent_update_versions))) {
 					$cmd .= ' > /dev/null 2> /dev/null';
 				} else {
-					$cmd .= ' > /var/log/ispconfig_install.log 2> /var/log/ispconfig_install.log';
+					$cmd .= ' >> /var/log/ispconfig_install.log 2>> /var/log/ispconfig_install.log';
 				}
 				system($cmd);
 				
-- 
GitLab


From ef770c79f71ca59cf2c1695abf5195838b3cdd6a Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 9 Aug 2016 09:04:12 +0200
Subject: [PATCH 161/313] Do not move files to junk when autoresponder is on,
 just dont send an autoresponse when mail is marked as spam.

---
 server/conf/sieve_filter_1.2.master | 1 -
 1 file changed, 1 deletion(-)

diff --git a/server/conf/sieve_filter_1.2.master b/server/conf/sieve_filter_1.2.master
index 08473e69c0..0dd9e62e6c 100644
--- a/server/conf/sieve_filter_1.2.master
+++ b/server/conf/sieve_filter_1.2.master
@@ -27,7 +27,6 @@ keep;
 
 # Move spam to spam folder
 if header :contains "X-Spam-Flag" "YES" {
-  fileinto "Junk";
   # Stop here so that we do not reply on spams
   stop;
 }
-- 
GitLab


From e4c556d61844af19e91256e62b0ae37191ac14f6 Mon Sep 17 00:00:00 2001
From: Dennis Riehle <webmaster@riehle-web.com>
Date: Tue, 9 Aug 2016 10:11:10 +0200
Subject: [PATCH 162/313] fixed #3859

---
 interface/web/monitor/lib/module.conf.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/monitor/lib/module.conf.php b/interface/web/monitor/lib/module.conf.php
index c0719e7ab0..3da77838dc 100644
--- a/interface/web/monitor/lib/module.conf.php
+++ b/interface/web/monitor/lib/module.conf.php
@@ -38,7 +38,7 @@ $module["nav"][] = array( 'title' => 'System State (All Servers)',
 
 $servers = $app->db->queryAllRecords("SELECT server_id, server_name FROM server order by server_name");
 
-$dropDown = "<select id='server_id' onchange=\"ISPConfig.loadContent('monitor/show_sys_state.php?state=server&server=' + document.getElementById('server_id').value);\">";
+$dropDown = "<select id='server_id' onchange=\"ISPConfig.loadContent('monitor/show_sys_state.php?state=server&server=' + document.getElementById('server_id').value);\" class='form-control'>";
 foreach ($servers as $server)
 {
 	$dropDown .= "<option value='" . $server['server_id'] . "|" . $server['server_name'] . "'>" . $server['server_name'] . "</option>";
-- 
GitLab


From cc93b6a06340dd34ab7514a03929b410217b939c Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 10 Aug 2016 15:07:37 +0200
Subject: [PATCH 163/313] - Fixed strict php error in letsencrypt cron

---
 server/lib/classes/cron.d/900-letsencrypt.inc.php | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/server/lib/classes/cron.d/900-letsencrypt.inc.php b/server/lib/classes/cron.d/900-letsencrypt.inc.php
index 5441ac2d78..0f6aaaed6b 100644
--- a/server/lib/classes/cron.d/900-letsencrypt.inc.php
+++ b/server/lib/classes/cron.d/900-letsencrypt.inc.php
@@ -36,7 +36,8 @@ class cronjob_letsencrypt extends cronjob {
 	public function onRunJob() {
 		global $app, $conf;
 
-		$letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) );
+		$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt'));
+		$letsencrypt = reset($letsencrypt);
 		if(is_executable($letsencrypt)) {
 			$version = trim(exec($letsencrypt . ' --version 2>/dev/null'));
 			if(preg_match('/^(\S+)\s+(\d+(\.\d+)+)$/', $version, $matches)) {
-- 
GitLab


From 9b1ea9501c5335e4f148425f84af6c27b2aafc15 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 12 Aug 2016 16:41:26 +0200
Subject: [PATCH 164/313] CSS adjustments to tooltip inner when using small
 screens (fixes #4096)

---
 interface/web/themes/default/assets/stylesheets/ispconfig.css  | 3 +++
 .../web/themes/default/assets/stylesheets/ispconfig.min.css    | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index 1b484b52d7..ea3a367650 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -719,4 +719,7 @@ span.flag-zw {background-position:0 -5435px}
 }
 input[type="password"].form-control[readonly] {
 	cursor: text;
+}
+.tooltip-inner {
+    max-width: 100%;
 }
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index fbb3cd0719..4350486b32 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}
\ No newline at end of file
-- 
GitLab


From c650cb5c05b309adafe9c21b67b4447f788ce9df Mon Sep 17 00:00:00 2001
From: Dennis Riehle <webmaster@riehle-web.com>
Date: Sun, 14 Aug 2016 14:41:59 +0200
Subject: [PATCH 165/313] removed colons from language files (#4080)

---
 interface/web/admin/lib/lang/ar_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/bg_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/br_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/ca_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/cz_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/en_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/es_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/fi_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/fr_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/hr_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/hu_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/id_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/it_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/ja_remote_user.lng | 6 +++---
 interface/web/admin/lib/lang/nl_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/pl_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/pt_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/ro_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/ru_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/se_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/sk_remote_user.lng | 8 ++++----
 interface/web/admin/lib/lang/tr_remote_user.lng | 8 ++++----
 22 files changed, 87 insertions(+), 87 deletions(-)

diff --git a/interface/web/admin/lib/lang/ar_remote_user.lng b/interface/web/admin/lib/lang/ar_remote_user.lng
index 65b3cfd4a2..935e432bf3 100644
--- a/interface/web/admin/lib/lang/ar_remote_user.lng
+++ b/interface/web/admin/lib/lang/ar_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Username:';
-$wb['password_txt'] = 'Password:';
-$wb['function_txt'] = 'Functions:';
+$wb['username_txt'] = 'Username';
+$wb['password_txt'] = 'Password';
+$wb['function_txt'] = 'Functions';
 $wb['username_error_unique'] = 'Username must be unique';
 $wb['username_error_empty'] = 'Username cannot be empty';
 $wb['password_error_empty'] = 'Password cannot be empty';
-$wb['password_strength_txt'] = 'Password Strength:';
+$wb['password_strength_txt'] = 'Password Strength';
 $wb['Mail domain functions'] = 'Mail domain functions';
 $wb['Mail user functions'] = 'Mail user functions';
 $wb['Mail alias functions'] = 'Mail alias functions';
diff --git a/interface/web/admin/lib/lang/bg_remote_user.lng b/interface/web/admin/lib/lang/bg_remote_user.lng
index e2f8805a2a..38dca5ab27 100644
--- a/interface/web/admin/lib/lang/bg_remote_user.lng
+++ b/interface/web/admin/lib/lang/bg_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Потребителско име:';
-$wb['password_txt'] = 'Парола:';
-$wb['function_txt'] = 'Функции:';
+$wb['username_txt'] = 'Потребителско име';
+$wb['password_txt'] = 'Парола';
+$wb['function_txt'] = 'Функции';
 $wb['username_error_unique'] = 'Потребителско име трябва да е уникално';
 $wb['username_error_empty'] = 'Потребителско име неможе да е празно';
 $wb['password_error_empty'] = 'Парола неможе да е празна';
-$wb['password_strength_txt'] = 'Сила на паролата:';
+$wb['password_strength_txt'] = 'Сила на паролата';
 $wb['Mail domain functions'] = 'Mail домейн функции';
 $wb['Mail user functions'] = 'Mail потребителски функции';
 $wb['Mail alias functions'] = 'Mail псевдоним функции';
diff --git a/interface/web/admin/lib/lang/br_remote_user.lng b/interface/web/admin/lib/lang/br_remote_user.lng
index f8f4012500..e38e02e20f 100644
--- a/interface/web/admin/lib/lang/br_remote_user.lng
+++ b/interface/web/admin/lib/lang/br_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Nome do usuário:';
-$wb['password_txt'] = 'Senha:';
-$wb['function_txt'] = 'Funções:';
+$wb['username_txt'] = 'Nome do usuário';
+$wb['password_txt'] = 'Senha';
+$wb['function_txt'] = 'Funções';
 $wb['username_error_unique'] = 'O nome de usuário deve ser único';
 $wb['username_error_empty'] = 'O nome de usuário não pode estar em branco';
 $wb['password_error_empty'] = 'A senha não pode estar em branco';
-$wb['password_strength_txt'] = 'Segurança da senha:';
+$wb['password_strength_txt'] = 'Segurança da senha';
 $wb['Mail domain functions'] = 'Funções de domínio de correio';
 $wb['Mail user functions'] = 'Funções de usuário de correio';
 $wb['Mail alias functions'] = 'Funções de aliases de correio';
diff --git a/interface/web/admin/lib/lang/ca_remote_user.lng b/interface/web/admin/lib/lang/ca_remote_user.lng
index c488f65516..4868e39bdb 100644
--- a/interface/web/admin/lib/lang/ca_remote_user.lng
+++ b/interface/web/admin/lib/lang/ca_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Username:';
-$wb['password_txt'] = 'Password:';
-$wb['function_txt'] = 'Functions:';
+$wb['username_txt'] = 'Username';
+$wb['password_txt'] = 'Password';
+$wb['function_txt'] = 'Functions';
 $wb['username_error_unique'] = 'Username must be unique';
 $wb['username_error_empty'] = 'Username cannot be empty';
 $wb['password_error_empty'] = 'Password cannot be empty';
-$wb['password_strength_txt'] = 'Password Strength:';
+$wb['password_strength_txt'] = 'Password Strength';
 $wb['Mail domain functions'] = 'Mail domain functions';
 $wb['Mail mailing list functions'] = 'Mail mailinglist functions';
 $wb['Mail user functions'] = 'Mail user functions';
diff --git a/interface/web/admin/lib/lang/cz_remote_user.lng b/interface/web/admin/lib/lang/cz_remote_user.lng
index 17c4f05b56..890a884cc0 100644
--- a/interface/web/admin/lib/lang/cz_remote_user.lng
+++ b/interface/web/admin/lib/lang/cz_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Uživatelské jméno:';
-$wb['password_txt'] = 'Heslo:';
-$wb['function_txt'] = 'Funkce:';
+$wb['username_txt'] = 'Uživatelské jméno';
+$wb['password_txt'] = 'Heslo';
+$wb['function_txt'] = 'Funkce';
 $wb['username_error_unique'] = 'Uživatelské jméno musí být unikátní';
 $wb['username_error_empty'] = 'Uživatelské jméno nemůže být prázdné';
 $wb['password_error_empty'] = 'Heslo nemůže být prázdné';
-$wb['password_strength_txt'] = 'Bezpečnost hesla:';
+$wb['password_strength_txt'] = 'Bezpečnost hesla';
 $wb['Mail domain functions'] = 'Funkce e-mailové domény';
 $wb['Mail user functions'] = 'Funkce e-mailového uživatele';
 $wb['Mail alias functions'] = 'Funkce e-mailového aliasu';
diff --git a/interface/web/admin/lib/lang/en_remote_user.lng b/interface/web/admin/lib/lang/en_remote_user.lng
index c488f65516..4868e39bdb 100644
--- a/interface/web/admin/lib/lang/en_remote_user.lng
+++ b/interface/web/admin/lib/lang/en_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Username:';
-$wb['password_txt'] = 'Password:';
-$wb['function_txt'] = 'Functions:';
+$wb['username_txt'] = 'Username';
+$wb['password_txt'] = 'Password';
+$wb['function_txt'] = 'Functions';
 $wb['username_error_unique'] = 'Username must be unique';
 $wb['username_error_empty'] = 'Username cannot be empty';
 $wb['password_error_empty'] = 'Password cannot be empty';
-$wb['password_strength_txt'] = 'Password Strength:';
+$wb['password_strength_txt'] = 'Password Strength';
 $wb['Mail domain functions'] = 'Mail domain functions';
 $wb['Mail mailing list functions'] = 'Mail mailinglist functions';
 $wb['Mail user functions'] = 'Mail user functions';
diff --git a/interface/web/admin/lib/lang/es_remote_user.lng b/interface/web/admin/lib/lang/es_remote_user.lng
index 4aa5115606..3eab509426 100755
--- a/interface/web/admin/lib/lang/es_remote_user.lng
+++ b/interface/web/admin/lib/lang/es_remote_user.lng
@@ -12,7 +12,7 @@ $wb['DNS rp functions'] = 'Funciones DNS para registro RP';
 $wb['DNS srv functions'] = 'Funciones DNS para registro SRV';
 $wb['DNS txt functions'] = 'Funciones DNS para registro TXT';
 $wb['DNS zone functions'] = 'Funciones para Zona DNS';
-$wb['function_txt'] = 'Funciones:';
+$wb['function_txt'] = 'Funciones';
 $wb['generate_password_txt'] = 'Generar contraseña';
 $wb['Mail alias functions'] = 'Funciones de correo para alias';
 $wb['Mail blacklist functions'] = 'Funciones de correo para lista negra';
@@ -31,8 +31,8 @@ $wb['Mail whitelist functions'] = 'Funciones de correo para lista blanca';
 $wb['password_error_empty'] = 'La contraseña no puede esta vacía';
 $wb['password_match_txt'] = 'Las contraseñas coinciden.';
 $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.';
-$wb['password_strength_txt'] = 'Fortaleza de contraseña:';
-$wb['password_txt'] = 'Contraseña:';
+$wb['password_strength_txt'] = 'Fortaleza de contraseña';
+$wb['password_txt'] = 'Contraseña';
 $wb['repeat_password_txt'] = 'Repetir contraseña';
 $wb['Sites Aliasdomain functions'] = 'Funciones para alias de dominio';
 $wb['Sites cron functions'] = 'Funciones para cron';
@@ -43,5 +43,5 @@ $wb['Sites Shell-User functions'] = 'Funciones para usuarios Shell';
 $wb['Sites Subdomain functions'] = 'Funciones para sub-dominios';
 $wb['username_error_empty'] = 'El nombre de usuario no puede esta vacío';
 $wb['username_error_unique'] = 'En nombre de usuario debe ser único';
-$wb['username_txt'] = 'Nombre de usuario:';
+$wb['username_txt'] = 'Nombre de usuario';
 ?>
diff --git a/interface/web/admin/lib/lang/fi_remote_user.lng b/interface/web/admin/lib/lang/fi_remote_user.lng
index 4f5dd6f01b..9e0abc7d75 100644
--- a/interface/web/admin/lib/lang/fi_remote_user.lng
+++ b/interface/web/admin/lib/lang/fi_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Käyttäjätunnus:';
-$wb['password_txt'] = 'Salasana:';
-$wb['function_txt'] = 'Toiminnot:';
+$wb['username_txt'] = 'Käyttäjätunnus';
+$wb['password_txt'] = 'Salasana';
+$wb['function_txt'] = 'Toiminnot';
 $wb['username_error_unique'] = 'Käyttäjätunnusen pitää olla yksilöllinen';
 $wb['username_error_empty'] = 'Käyttäjätunnus ei voi olla tyhjä';
 $wb['password_error_empty'] = 'Salasana ei voi olla tyhjä';
-$wb['password_strength_txt'] = 'Salasanan vahvuus:';
+$wb['password_strength_txt'] = 'Salasanan vahvuus';
 $wb['Mail domain functions'] = 'Postiverkkotunnuksen toiminnot';
 $wb['Mail user functions'] = 'Postin käyttäjän toiminnot';
 $wb['Mail alias functions'] = 'Postin alias-toiminnot';
diff --git a/interface/web/admin/lib/lang/fr_remote_user.lng b/interface/web/admin/lib/lang/fr_remote_user.lng
index 57407a929f..74cd211445 100644
--- a/interface/web/admin/lib/lang/fr_remote_user.lng
+++ b/interface/web/admin/lib/lang/fr_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Identifiant :';
-$wb['password_txt'] = 'Mot de passe :';
-$wb['function_txt'] = 'Fonctions :';
+$wb['username_txt'] = 'Identifiant';
+$wb['password_txt'] = 'Mot de passe';
+$wb['function_txt'] = 'Fonctions';
 $wb['username_error_unique'] = 'Lidentifiant doit être unique';
 $wb['username_error_empty'] = 'Lidentifiant ne peut être vide';
 $wb['password_error_empty'] = 'Le mot de passe ne peut être vide';
-$wb['password_strength_txt'] = 'Force du mot de passe :';
+$wb['password_strength_txt'] = 'Force du mot de passe';
 $wb['Mail domain functions'] = 'Fonctions domaine e-mail';
 $wb['Mail user functions'] = 'Fonctions utilisateur e-mail';
 $wb['Mail alias functions'] = 'Fonctions alias e-mail';
diff --git a/interface/web/admin/lib/lang/hr_remote_user.lng b/interface/web/admin/lib/lang/hr_remote_user.lng
index 9f6331b3ea..f932fc2296 100644
--- a/interface/web/admin/lib/lang/hr_remote_user.lng
+++ b/interface/web/admin/lib/lang/hr_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Korisničko ime:';
-$wb['password_txt'] = 'Å ifra:';
-$wb['function_txt'] = 'Funkcije:';
+$wb['username_txt'] = 'Korisničko ime';
+$wb['password_txt'] = 'Å ifra';
+$wb['function_txt'] = 'Funkcije';
 $wb['username_error_unique'] = 'Korisničko ime mora biti jedinstveno';
 $wb['username_error_empty'] = 'Korisničko ime ne može biti prazno';
 $wb['password_error_empty'] = 'Šifra ne može biti prazna';
-$wb['password_strength_txt'] = 'Jačina šifre:';
+$wb['password_strength_txt'] = 'Jačina šifre';
 $wb['Mail domain functions'] = 'Funkcije mail domena';
 $wb['Mail user functions'] = 'Mail user funkcije';
 $wb['Mail alias functions'] = 'Mail alias funkcije';
diff --git a/interface/web/admin/lib/lang/hu_remote_user.lng b/interface/web/admin/lib/lang/hu_remote_user.lng
index 49bf924aac..a9767ac77b 100644
--- a/interface/web/admin/lib/lang/hu_remote_user.lng
+++ b/interface/web/admin/lib/lang/hu_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Felhasználónév:';
-$wb['password_txt'] = 'Jelszó:';
-$wb['function_txt'] = 'Funkciók:';
+$wb['username_txt'] = 'Felhasználónév';
+$wb['password_txt'] = 'Jelszó';
+$wb['function_txt'] = 'Funkciók';
 $wb['username_error_unique'] = 'A Felhasználónévnek egyedinek kell lennie';
 $wb['username_error_empty'] = 'A Felhasználónév nem lehet üres';
 $wb['password_error_empty'] = 'A Jelszó nem lehet üres';
-$wb['password_strength_txt'] = 'Jelszó erőssége:';
+$wb['password_strength_txt'] = 'Jelszó erőssége';
 $wb['Mail domain functions'] = 'Mail domain funkciók';
 $wb['Mail user functions'] = 'Mail user funkciók';
 $wb['Mail alias functions'] = 'Mail alias funkciók';
diff --git a/interface/web/admin/lib/lang/id_remote_user.lng b/interface/web/admin/lib/lang/id_remote_user.lng
index 018690d06e..f5d44a8af1 100644
--- a/interface/web/admin/lib/lang/id_remote_user.lng
+++ b/interface/web/admin/lib/lang/id_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Nama pengguna:';
-$wb['password_txt'] = 'Kata Sandi:';
-$wb['function_txt'] = 'Fungsi:';
+$wb['username_txt'] = 'Nama pengguna';
+$wb['password_txt'] = 'Kata Sandi';
+$wb['function_txt'] = 'Fungsi';
 $wb['username_error_unique'] = 'Nama pengguna harus unik';
 $wb['username_error_empty'] = 'Nama pengguna tidak boleh kosong';
 $wb['password_error_empty'] = 'Kata sandi tidak boleh kosong';
-$wb['password_strength_txt'] = 'Kekuatan Sandi:';
+$wb['password_strength_txt'] = 'Kekuatan Sandi';
 $wb['Mail domain functions'] = 'Fungsi-fungsi domain Mail';
 $wb['Mail user functions'] = 'Fungsi-fungsi pengguna Mail';
 $wb['Mail alias functions'] = 'Fungsi-fungsi alias Mail';
diff --git a/interface/web/admin/lib/lang/it_remote_user.lng b/interface/web/admin/lib/lang/it_remote_user.lng
index 15826cfd34..790d59f5d5 100644
--- a/interface/web/admin/lib/lang/it_remote_user.lng
+++ b/interface/web/admin/lib/lang/it_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Nome Utente:';
-$wb['password_txt'] = 'Password:';
-$wb['function_txt'] = 'Funzioni:';
+$wb['username_txt'] = 'Nome Utente';
+$wb['password_txt'] = 'Password';
+$wb['function_txt'] = 'Funzioni';
 $wb['username_error_unique'] = 'Il nome utente deve essere unico';
 $wb['username_error_empty'] = 'Il nome utente  non può essere vuoto ';
 $wb['password_error_empty'] = 'La Password  non può essere vuoto ';
-$wb['password_strength_txt'] = 'Livello Sicurezza Password:';
+$wb['password_strength_txt'] = 'Livello Sicurezza Password';
 $wb['Mail domain functions'] = 'Funzioni Dominio di Posta';
 $wb['Mail user functions'] = 'Funzioni Utente di posta';
 $wb['Mail alias functions'] = 'Funzioni Alias di posta';
diff --git a/interface/web/admin/lib/lang/ja_remote_user.lng b/interface/web/admin/lib/lang/ja_remote_user.lng
index c219230131..fcd617151b 100644
--- a/interface/web/admin/lib/lang/ja_remote_user.lng
+++ b/interface/web/admin/lib/lang/ja_remote_user.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['username_txt'] = 'ユーザー名:';
-$wb['password_txt'] = 'パスワード:';
-$wb['function_txt'] = '機能:';
+$wb['username_txt'] = 'ユーザー名';
+$wb['password_txt'] = 'パスワード';
+$wb['function_txt'] = '機能';
 $wb['username_error_unique'] = '既に登録済みのユーザー名です。別の名前に変更してください。';
 $wb['username_error_empty'] = 'ユーザー名を指定してください。';
 $wb['password_error_empty'] = 'パスワードを指定してください。';
diff --git a/interface/web/admin/lib/lang/nl_remote_user.lng b/interface/web/admin/lib/lang/nl_remote_user.lng
index ece9be3030..6826e95dac 100644
--- a/interface/web/admin/lib/lang/nl_remote_user.lng
+++ b/interface/web/admin/lib/lang/nl_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Gebruikersnaam:';
-$wb['password_txt'] = 'Wachtwoord:';
-$wb['function_txt'] = 'Funties:';
+$wb['username_txt'] = 'Gebruikersnaam';
+$wb['password_txt'] = 'Wachtwoord';
+$wb['function_txt'] = 'Funties';
 $wb['username_error_unique'] = 'Gebruikersnaam moet uniek zijn';
 $wb['username_error_empty'] = 'Gebruikersnaam moet ingevuld zijn';
 $wb['password_error_empty'] = 'Wachtwoord moet ingevuld zijn';
-$wb['password_strength_txt'] = 'Wachtwoord sterkte:';
+$wb['password_strength_txt'] = 'Wachtwoord sterkte';
 $wb['Mail domain functions'] = 'Mail domein functies';
 $wb['Mail user functions'] = 'Mail gebruiker functies';
 $wb['Mail alias functions'] = 'Mail alias functies';
diff --git a/interface/web/admin/lib/lang/pl_remote_user.lng b/interface/web/admin/lib/lang/pl_remote_user.lng
index b456de8401..37065485aa 100644
--- a/interface/web/admin/lib/lang/pl_remote_user.lng
+++ b/interface/web/admin/lib/lang/pl_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Nazwa użytkownika:';
-$wb['password_txt'] = 'Hasło:';
-$wb['function_txt'] = 'Funkcje:';
+$wb['username_txt'] = 'Nazwa użytkownika';
+$wb['password_txt'] = 'Hasło';
+$wb['function_txt'] = 'Funkcje';
 $wb['username_error_unique'] = 'Nazwa użytkownika musi być unikalna.';
 $wb['username_error_empty'] = 'Nazwa użytkownika nie może być pusta.';
 $wb['password_error_empty'] = 'Hasło nie może być puste.';
-$wb['password_strength_txt'] = 'Siła hasła:';
+$wb['password_strength_txt'] = 'Siła hasła';
 $wb['Mail domain functions'] = 'Funkcje domeny e-mail';
 $wb['Mail user functions'] = 'Funkcje użytkownika e-mail';
 $wb['Mail alias functions'] = 'Funkcje aliasu e-mail';
diff --git a/interface/web/admin/lib/lang/pt_remote_user.lng b/interface/web/admin/lib/lang/pt_remote_user.lng
index 8b6c00e6bb..5e6a4997d5 100644
--- a/interface/web/admin/lib/lang/pt_remote_user.lng
+++ b/interface/web/admin/lib/lang/pt_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Nome do utilizador:';
-$wb['password_txt'] = 'Senha:';
-$wb['function_txt'] = 'Funções:';
+$wb['username_txt'] = 'Nome do utilizador';
+$wb['password_txt'] = 'Senha';
+$wb['function_txt'] = 'Funções';
 $wb['username_error_unique'] = 'O nome de utilizador deve ser único';
 $wb['username_error_empty'] = 'O nome de utilizador não pode estar em branco';
 $wb['password_error_empty'] = 'A senha não pode estar em branco';
-$wb['password_strength_txt'] = 'Segurança da senha:';
+$wb['password_strength_txt'] = 'Segurança da senha';
 $wb['Mail domain functions'] = 'Funções de domínio de correio';
 $wb['Mail user functions'] = 'Funções de utilizador de correio';
 $wb['Mail alias functions'] = 'Funções de aliases de correio';
diff --git a/interface/web/admin/lib/lang/ro_remote_user.lng b/interface/web/admin/lib/lang/ro_remote_user.lng
index 65b3cfd4a2..935e432bf3 100644
--- a/interface/web/admin/lib/lang/ro_remote_user.lng
+++ b/interface/web/admin/lib/lang/ro_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Username:';
-$wb['password_txt'] = 'Password:';
-$wb['function_txt'] = 'Functions:';
+$wb['username_txt'] = 'Username';
+$wb['password_txt'] = 'Password';
+$wb['function_txt'] = 'Functions';
 $wb['username_error_unique'] = 'Username must be unique';
 $wb['username_error_empty'] = 'Username cannot be empty';
 $wb['password_error_empty'] = 'Password cannot be empty';
-$wb['password_strength_txt'] = 'Password Strength:';
+$wb['password_strength_txt'] = 'Password Strength';
 $wb['Mail domain functions'] = 'Mail domain functions';
 $wb['Mail user functions'] = 'Mail user functions';
 $wb['Mail alias functions'] = 'Mail alias functions';
diff --git a/interface/web/admin/lib/lang/ru_remote_user.lng b/interface/web/admin/lib/lang/ru_remote_user.lng
index 18edf7f9b9..91e476fcb5 100644
--- a/interface/web/admin/lib/lang/ru_remote_user.lng
+++ b/interface/web/admin/lib/lang/ru_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Лоигн:';
-$wb['password_txt'] = 'Пароль:';
-$wb['function_txt'] = 'Функции:';
+$wb['username_txt'] = 'Лоигн';
+$wb['password_txt'] = 'Пароль';
+$wb['function_txt'] = 'Функции';
 $wb['username_error_unique'] = 'Логин должен быть уникальным';
 $wb['username_error_empty'] = 'Логин не должен быть пустым';
 $wb['password_error_empty'] = 'Пароль не должен быть пустым';
-$wb['password_strength_txt'] = 'Стойкость пароля:';
+$wb['password_strength_txt'] = 'Стойкость пароля';
 $wb['Mail domain functions'] = 'Функции почтового домена';
 $wb['Mail user functions'] = 'Функции почтовых пользователей';
 $wb['Mail alias functions'] = 'Функции почтовых алиасов';
diff --git a/interface/web/admin/lib/lang/se_remote_user.lng b/interface/web/admin/lib/lang/se_remote_user.lng
index 1b3b731fc8..1c77ba950b 100644
--- a/interface/web/admin/lib/lang/se_remote_user.lng
+++ b/interface/web/admin/lib/lang/se_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Användarnamn:';
-$wb['password_txt'] = 'Lösenord:';
-$wb['function_txt'] = 'Funktioner:';
+$wb['username_txt'] = 'Användarnamn';
+$wb['password_txt'] = 'Lösenord';
+$wb['function_txt'] = 'Funktioner';
 $wb['username_error_unique'] = 'Användarnamnet måste vara unikt';
 $wb['username_error_empty'] = 'Användarnamnet kan inte vara tomt';
 $wb['password_error_empty'] = 'Löenordet kan inte vara tomt';
-$wb['password_strength_txt'] = 'Lösenordsstyrka:';
+$wb['password_strength_txt'] = 'Lösenordsstyrka';
 $wb['Mail domain functions'] = 'Epostdomänfunktioner';
 $wb['Mail user functions'] = 'Mail user functions';
 $wb['Mail alias functions'] = 'Mail alias functions';
diff --git a/interface/web/admin/lib/lang/sk_remote_user.lng b/interface/web/admin/lib/lang/sk_remote_user.lng
index 5f419b28d9..028afed4f5 100644
--- a/interface/web/admin/lib/lang/sk_remote_user.lng
+++ b/interface/web/admin/lib/lang/sk_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Uživateľ:';
-$wb['password_txt'] = 'Heslo:';
-$wb['function_txt'] = 'Funkcia:';
+$wb['username_txt'] = 'Uživateľ';
+$wb['password_txt'] = 'Heslo';
+$wb['function_txt'] = 'Funkcia';
 $wb['username_error_unique'] = 'Prihlasovacie meno musí byť jedineľné';
 $wb['username_error_empty'] = 'Užívateľské meno nemôže byť prázdne';
 $wb['password_error_empty'] = 'Heslo nemôže byť prázdne';
-$wb['password_strength_txt'] = 'Pevnosť hesla:';
+$wb['password_strength_txt'] = 'Pevnosť hesla';
 $wb['Mail domain functions'] = 'Mail domain functions';
 $wb['Mail user functions'] = 'Mail user functions';
 $wb['Mail alias functions'] = 'Mail alias functions';
diff --git a/interface/web/admin/lib/lang/tr_remote_user.lng b/interface/web/admin/lib/lang/tr_remote_user.lng
index 998d344653..6bc88c270b 100644
--- a/interface/web/admin/lib/lang/tr_remote_user.lng
+++ b/interface/web/admin/lib/lang/tr_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Kullanıcı adı:';
-$wb['password_txt'] = 'Parola:';
-$wb['function_txt'] = 'İşlevler:';
+$wb['username_txt'] = 'Kullanıcı adı';
+$wb['password_txt'] = 'Parola';
+$wb['function_txt'] = 'İşlevler';
 $wb['username_error_unique'] = 'Bu kullanıcı adı zaten var';
 $wb['username_error_empty'] = 'Kullanıcı adı boş olamaz';
 $wb['password_error_empty'] = 'Parola boÅŸ olamaz';
-$wb['password_strength_txt'] = 'Parola Güçlüğü:';
+$wb['password_strength_txt'] = 'Parola Güçlüğü';
 $wb['Mail domain functions'] = 'Posta alan adı işlevleri';
 $wb['Mail mailing list functions'] = 'Posta posta listesi iÅŸlevleri';
 $wb['Mail user functions'] = 'Posta kullanıcı işlevleri';
-- 
GitLab


From bc909de263c48d58ba299fe0379793c9eecb2a39 Mon Sep 17 00:00:00 2001
From: Dennis Riehle <webmaster@riehle-web.com>
Date: Sun, 14 Aug 2016 14:42:30 +0200
Subject: [PATCH 166/313] fixed form to adhere to bootstrap standards (#4080)

---
 .../web/admin/templates/remote_user_edit.htm     | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/interface/web/admin/templates/remote_user_edit.htm b/interface/web/admin/templates/remote_user_edit.htm
index 49353c7b58..dcfea7929d 100644
--- a/interface/web/admin/templates/remote_user_edit.htm
+++ b/interface/web/admin/templates/remote_user_edit.htm
@@ -7,14 +7,18 @@
         
             <div class="form-group">
                 <label for="remote_username" class="col-sm-3 control-label">{tmpl_var name='username_txt'}</label>
-<!--
-                <div class="col-sm-2">{tmpl_var name='username_prefix'}</div>
--->
-                <div class="col-sm-7"><input type="text" name="remote_username" id="username" value="{tmpl_var name='remote_username'}" class="form-control" /></div></div>
+                <div class="col-sm-9"><input type="text" name="remote_username" id="username" value="{tmpl_var name='remote_username'}" class="form-control" /></div></div>
                 
             <div class="form-group">
                 <label for="remote_password" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label>
-                <div class="col-sm-6"><input type="password" name="remote_password" id="password" value="{tmpl_var name='remote_password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /></div><div class="col-sm-3 input-sm">&nbsp;</div><a href="javascript:void(0);" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a>
+                <div class="col-sm-9">
+					<div class="input-group">
+						<input type="password" name="remote_password" id="password" value="{tmpl_var name='remote_password'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" />
+						<span class="input-group-btn">
+							<button class="btn btn-default" type="button" onclick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</button>
+						</span>
+					</div><!-- /input-group -->
+				</div>
             </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label>
@@ -35,7 +39,7 @@
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='function_txt'}</label>
                 <div class="col-sm-9">
-                    &nbsp; {tmpl_var name='remote_functions'}
+                    {tmpl_var name='remote_functions'}
                 </div>
             </div>
                 
-- 
GitLab


From b742e347bedff300cef5f07a11cab25d3ce6d2c0 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 15 Aug 2016 12:34:49 +0200
Subject: [PATCH 167/313] Updated CZ language files.

---
 interface/lib/lang/cz.lng                     |  5 +-
 interface/web/admin/lib/lang/cz.lng           |  3 +
 .../admin/lib/lang/cz_directive_snippets.lng  |  3 +
 .../lib/lang/cz_directive_snippets_list.lng   |  3 +
 interface/web/admin/lib/lang/cz_firewall.lng  |  3 +
 .../web/admin/lib/lang/cz_firewall_list.lng   |  3 +
 interface/web/admin/lib/lang/cz_groups.lng    |  3 +
 .../web/admin/lib/lang/cz_groups_list.lng     |  3 +
 interface/web/admin/lib/lang/cz_iptables.lng  |  3 +
 .../web/admin/lib/lang/cz_iptables_list.lng   |  3 +
 .../web/admin/lib/lang/cz_language_add.lng    |  3 +
 .../admin/lib/lang/cz_language_complete.lng   |  3 +
 .../web/admin/lib/lang/cz_language_edit.lng   |  3 +
 .../web/admin/lib/lang/cz_language_export.lng |  3 +
 .../web/admin/lib/lang/cz_language_import.lng |  3 +
 .../web/admin/lib/lang/cz_language_list.lng   |  3 +
 .../web/admin/lib/lang/cz_package_install.lng |  3 +
 .../web/admin/lib/lang/cz_remote_action.lng   |  7 ++-
 .../web/admin/lib/lang/cz_remote_user.lng     | 11 ++--
 .../admin/lib/lang/cz_remote_user_list.lng    |  3 +
 interface/web/admin/lib/lang/cz_server.lng    |  3 +
 .../web/admin/lib/lang/cz_server_config.lng   | 23 ++++----
 .../admin/lib/lang/cz_server_config_list.lng  |  3 +
 interface/web/admin/lib/lang/cz_server_ip.lng |  3 +
 .../web/admin/lib/lang/cz_server_ip_list.lng  |  3 +
 .../web/admin/lib/lang/cz_server_ip_map.lng   | 15 +++--
 .../admin/lib/lang/cz_server_ip_map_list.lng  |  7 ++-
 .../web/admin/lib/lang/cz_server_list.lng     |  3 +
 .../web/admin/lib/lang/cz_server_php.lng      |  3 +
 .../web/admin/lib/lang/cz_server_php_list.lng |  3 +
 .../admin/lib/lang/cz_software_package.lng    |  3 +
 .../lib/lang/cz_software_package_install.lng  |  3 +
 .../lib/lang/cz_software_package_list.lng     |  3 +
 .../web/admin/lib/lang/cz_software_repo.lng   |  3 +
 .../admin/lib/lang/cz_software_repo_list.lng  |  3 +
 .../lib/lang/cz_software_update_list.lng      |  3 +
 .../web/admin/lib/lang/cz_system_config.lng   |  3 +
 .../admin/lib/lang/cz_tpl_default_admin.lng   |  3 +
 interface/web/admin/lib/lang/cz_users.lng     |  3 +
 .../web/admin/lib/lang/cz_users_list.lng      |  3 +
 interface/web/client/lib/lang/cz.lng          |  5 +-
 interface/web/client/lib/lang/cz_client.lng   | 39 +++++++------
 .../web/client/lib/lang/cz_client_circle.lng  |  3 +
 .../client/lib/lang/cz_client_circle_list.lng |  5 +-
 .../web/client/lib/lang/cz_client_del.lng     |  3 +
 .../web/client/lib/lang/cz_client_message.lng |  3 +
 .../lib/lang/cz_client_message_template.lng   |  3 +
 .../lang/cz_client_message_template_list.lng  |  3 +
 .../client/lib/lang/cz_client_template.lng    | 29 +++++-----
 .../lib/lang/cz_client_template_list.lng      |  3 +
 .../web/client/lib/lang/cz_clients_list.lng   |  3 +
 interface/web/client/lib/lang/cz_domain.lng   |  3 +
 .../web/client/lib/lang/cz_domain_list.lng    |  3 +
 interface/web/client/lib/lang/cz_reseller.lng | 39 +++++++------
 .../web/client/lib/lang/cz_resellers_list.lng |  3 +
 interface/web/dashboard/lib/lang/cz.lng       |  3 +
 .../lib/lang/cz_dashlet_customer.lng          |  3 +
 .../lib/lang/cz_dashlet_databasequota.lng     |  3 +
 .../cz_dashlet_invoice_client_settings.lng    |  3 +
 .../lib/lang/cz_dashlet_invoices.lng          |  3 +
 .../dashboard/lib/lang/cz_dashlet_limits.lng  |  3 +
 .../lib/lang/cz_dashlet_mailquota.lng         |  3 +
 .../dashboard/lib/lang/cz_dashlet_modules.lng |  5 +-
 .../lib/lang/cz_dashlet_products.lng          |  3 +
 .../dashboard/lib/lang/cz_dashlet_quota.lng   |  3 +
 .../dashboard/lib/lang/cz_dashlet_shop.lng    |  3 +
 interface/web/dns/lib/lang/cz.lng             |  5 +-
 interface/web/dns/lib/lang/cz_dns_a.lng       |  5 +-
 interface/web/dns/lib/lang/cz_dns_a_list.lng  |  3 +
 interface/web/dns/lib/lang/cz_dns_aaaa.lng    |  5 +-
 interface/web/dns/lib/lang/cz_dns_alias.lng   |  3 +
 interface/web/dns/lib/lang/cz_dns_cname.lng   |  3 +
 interface/web/dns/lib/lang/cz_dns_dkim.lng    |  3 +
 interface/web/dns/lib/lang/cz_dns_dmarc.lng   |  3 +
 interface/web/dns/lib/lang/cz_dns_ds.lng      |  3 +
 interface/web/dns/lib/lang/cz_dns_hinfo.lng   |  3 +
 interface/web/dns/lib/lang/cz_dns_import.lng  |  7 ++-
 interface/web/dns/lib/lang/cz_dns_loc.lng     |  3 +
 interface/web/dns/lib/lang/cz_dns_mx.lng      |  3 +
 interface/web/dns/lib/lang/cz_dns_ns.lng      |  3 +
 interface/web/dns/lib/lang/cz_dns_ptr.lng     |  3 +
 interface/web/dns/lib/lang/cz_dns_rp.lng      |  3 +
 interface/web/dns/lib/lang/cz_dns_slave.lng   |  3 +
 .../dns/lib/lang/cz_dns_slave_admin_list.lng  |  3 +
 .../web/dns/lib/lang/cz_dns_slave_list.lng    |  3 +
 interface/web/dns/lib/lang/cz_dns_soa.lng     |  3 +
 .../dns/lib/lang/cz_dns_soa_admin_list.lng    |  7 ++-
 .../web/dns/lib/lang/cz_dns_soa_list.lng      |  5 +-
 interface/web/dns/lib/lang/cz_dns_spf.lng     |  3 +
 interface/web/dns/lib/lang/cz_dns_srv.lng     |  3 +
 .../web/dns/lib/lang/cz_dns_template.lng      |  3 +
 .../web/dns/lib/lang/cz_dns_template_list.lng |  3 +
 interface/web/dns/lib/lang/cz_dns_tlsa.lng    |  3 +
 interface/web/dns/lib/lang/cz_dns_txt.lng     |  3 +
 interface/web/dns/lib/lang/cz_dns_wizard.lng  |  7 ++-
 interface/web/help/lib/lang/cz.lng            |  3 +
 interface/web/help/lib/lang/cz_faq_form.lng   |  3 +
 .../lib/lang/cz_faq_manage_questions_list.lng |  3 +
 .../help/lib/lang/cz_faq_sections_form.lng    |  3 +
 .../web/help/lib/lang/cz_help_faq_list.lng    |  3 +
 .../lib/lang/cz_help_faq_sections_list.lng    |  5 +-
 .../web/help/lib/lang/cz_support_message.lng  |  3 +
 .../help/lib/lang/cz_support_message_list.lng |  3 +
 interface/web/login/lib/lang/cz_login_as.lng  |  3 +
 interface/web/mail/lib/lang/cz.lng            |  3 +
 .../mail/lib/lang/cz_backup_stats_list.lng    |  3 +
 interface/web/mail/lib/lang/cz_mail_alias.lng |  3 +
 .../web/mail/lib/lang/cz_mail_alias_list.lng  |  5 +-
 .../web/mail/lib/lang/cz_mail_aliasdomain.lng |  3 +
 .../lib/lang/cz_mail_aliasdomain_list.lng     |  3 +
 .../web/mail/lib/lang/cz_mail_backup_list.lng |  7 ++-
 .../web/mail/lib/lang/cz_mail_blacklist.lng   |  3 +
 .../mail/lib/lang/cz_mail_blacklist_list.lng  |  5 +-
 .../mail/lib/lang/cz_mail_content_filter.lng  |  3 +
 .../lib/lang/cz_mail_content_filter_list.lng  |  3 +
 .../web/mail/lib/lang/cz_mail_domain.lng      | 17 +++---
 .../lib/lang/cz_mail_domain_admin_list.lng    |  3 +
 .../mail/lib/lang/cz_mail_domain_catchall.lng |  3 +
 .../lib/lang/cz_mail_domain_catchall_list.lng |  3 +
 .../web/mail/lib/lang/cz_mail_domain_list.lng |  3 +
 .../web/mail/lib/lang/cz_mail_forward.lng     |  3 +
 .../mail/lib/lang/cz_mail_forward_list.lng    |  5 +-
 interface/web/mail/lib/lang/cz_mail_get.lng   |  5 +-
 .../web/mail/lib/lang/cz_mail_get_list.lng    |  3 +
 .../web/mail/lib/lang/cz_mail_mailinglist.lng |  5 +-
 .../lib/lang/cz_mail_mailinglist_list.lng     |  3 +
 .../mail/lib/lang/cz_mail_relay_recipient.lng |  3 +
 .../lib/lang/cz_mail_relay_recipient_list.lng |  3 +
 .../web/mail/lib/lang/cz_mail_spamfilter.lng  |  3 +
 .../mail/lib/lang/cz_mail_spamfilter_list.lng |  3 +
 .../web/mail/lib/lang/cz_mail_transport.lng   |  3 +
 .../mail/lib/lang/cz_mail_transport_list.lng  |  3 +
 interface/web/mail/lib/lang/cz_mail_user.lng  |  3 +
 .../web/mail/lib/lang/cz_mail_user_filter.lng | 13 +++--
 .../lib/lang/cz_mail_user_filter_list.lng     |  5 +-
 .../web/mail/lib/lang/cz_mail_user_list.lng   |  3 +
 .../mail/lib/lang/cz_mail_user_stats_list.lng |  3 +
 .../web/mail/lib/lang/cz_mail_whitelist.lng   |  3 +
 .../mail/lib/lang/cz_mail_whitelist_list.lng  |  5 +-
 .../mail/lib/lang/cz_spamfilter_blacklist.lng |  3 +
 .../lib/lang/cz_spamfilter_blacklist_list.lng |  5 +-
 .../mail/lib/lang/cz_spamfilter_config.lng    | 13 +++--
 .../lib/lang/cz_spamfilter_config_list.lng    |  3 +
 .../mail/lib/lang/cz_spamfilter_policy.lng    |  3 +
 .../lib/lang/cz_spamfilter_policy_list.lng    |  3 +
 .../web/mail/lib/lang/cz_spamfilter_users.lng |  3 +
 .../lib/lang/cz_spamfilter_users_list.lng     |  3 +
 .../mail/lib/lang/cz_spamfilter_whitelist.lng |  3 +
 .../lib/lang/cz_spamfilter_whitelist_list.lng |  5 +-
 .../lib/lang/cz_user_quota_stats_list.lng     |  3 +
 .../web/mail/lib/lang/cz_xmpp_domain.lng      |  7 ++-
 .../lib/lang/cz_xmpp_domain_admin_list.lng    |  5 +-
 .../web/mail/lib/lang/cz_xmpp_domain_list.lng |  5 +-
 interface/web/mail/lib/lang/cz_xmpp_user.lng  | 23 ++++----
 .../web/mail/lib/lang/cz_xmpp_user_list.lng   |  7 ++-
 interface/web/mailuser/lib/lang/cz.lng        |  3 +
 interface/web/mailuser/lib/lang/cz_index.lng  |  3 +
 .../lib/lang/cz_mail_user_autoresponder.lng   |  3 +
 .../web/mailuser/lib/lang/cz_mail_user_cc.lng |  3 +
 .../mailuser/lib/lang/cz_mail_user_filter.lng |  3 +
 .../lib/lang/cz_mail_user_filter_list.lng     |  5 +-
 .../lib/lang/cz_mail_user_password.lng        |  3 +
 .../lib/lang/cz_mail_user_spamfilter.lng      |  3 +
 interface/web/monitor/lib/lang/cz.lng         | 11 ++--
 .../web/monitor/lib/lang/cz_datalog_list.lng  |  3 +
 .../web/monitor/lib/lang/cz_syslog_list.lng   |  3 +
 interface/web/sites/lib/lang/cz.lng           |  3 +
 interface/web/sites/lib/lang/cz_aps.lng       |  7 ++-
 .../sites/lib/lang/cz_aps_instances_list.lng  |  3 +
 .../sites/lib/lang/cz_aps_packages_list.lng   |  3 +
 .../lib/lang/cz_aps_update_packagelist.lng    |  3 +
 .../sites/lib/lang/cz_backup_stats_list.lng   |  3 +
 interface/web/sites/lib/lang/cz_cron.lng      |  3 +
 interface/web/sites/lib/lang/cz_cron_list.lng |  3 +
 interface/web/sites/lib/lang/cz_database.lng  |  5 +-
 .../sites/lib/lang/cz_database_admin_list.lng |  3 +
 .../web/sites/lib/lang/cz_database_list.lng   |  3 +
 .../lib/lang/cz_database_quota_stats_list.lng |  3 +
 .../web/sites/lib/lang/cz_database_user.lng   |  3 +
 .../lib/lang/cz_database_user_admin_list.lng  |  3 +
 .../sites/lib/lang/cz_database_user_list.lng  |  3 +
 .../lib/lang/cz_ftp_sites_stats_list.lng      | 14 +++--
 interface/web/sites/lib/lang/cz_ftp_user.lng  |  3 +
 .../web/sites/lib/lang/cz_ftp_user_list.lng   |  3 +
 .../web/sites/lib/lang/cz_shell_user.lng      |  3 +
 .../web/sites/lib/lang/cz_shell_user_list.lng |  3 +
 .../lib/lang/cz_user_quota_stats_list.lng     |  3 +
 .../web/sites/lib/lang/cz_web_aliasdomain.lng | 23 ++++----
 .../lib/lang/cz_web_aliasdomain_list.lng      |  3 +
 .../web/sites/lib/lang/cz_web_backup_list.lng |  7 ++-
 .../web/sites/lib/lang/cz_web_childdomain.lng | 19 ++++---
 .../lib/lang/cz_web_childdomain_list.lng      |  3 +
 .../lib/lang/cz_web_directive_snippets.lng    |  3 +
 .../web/sites/lib/lang/cz_web_domain.lng      |  7 ++-
 .../lib/lang/cz_web_domain_admin_list.lng     |  3 +
 .../web/sites/lib/lang/cz_web_domain_list.lng |  3 +
 .../web/sites/lib/lang/cz_web_folder.lng      |  3 +
 .../web/sites/lib/lang/cz_web_folder_list.lng |  3 +
 .../web/sites/lib/lang/cz_web_folder_user.lng |  3 +
 .../lib/lang/cz_web_folder_user_list.lng      |  3 +
 .../lib/lang/cz_web_sites_stats_list.lng      |  3 +
 .../web/sites/lib/lang/cz_web_subdomain.lng   |  3 +
 .../sites/lib/lang/cz_web_subdomain_list.lng  |  3 +
 .../sites/lib/lang/cz_web_vhost_domain.lng    |  9 ++-
 .../lang/cz_web_vhost_domain_admin_list.lng   |  3 +
 .../lib/lang/cz_web_vhost_domain_list.lng     |  3 +
 .../sites/lib/lang/cz_web_vhost_subdomain.lng | 17 +++---
 .../lib/lang/cz_web_vhost_subdomain_list.lng  |  5 +-
 .../web/sites/lib/lang/cz_webdav_user.lng     |  3 +
 .../sites/lib/lang/cz_webdav_user_list.lng    |  5 +-
 .../lib/lang/cz_strengthmeter.lng             |  3 +
 interface/web/tools/lib/lang/cz.lng           |  3 +
 .../tools/lib/lang/cz_import_ispconfig.lng    |  3 +
 .../web/tools/lib/lang/cz_import_vpopmail.lng |  3 +
 interface/web/tools/lib/lang/cz_index.lng     |  3 +
 interface/web/tools/lib/lang/cz_interface.lng |  3 +
 interface/web/tools/lib/lang/cz_resync.lng    | 57 ++++++++++---------
 .../web/tools/lib/lang/cz_tpl_default.lng     |  3 +
 .../web/tools/lib/lang/cz_usersettings.lng    |  5 +-
 interface/web/vm/lib/lang/cz.lng              |  5 +-
 .../web/vm/lib/lang/cz_openvz_action.lng      |  3 +
 interface/web/vm/lib/lang/cz_openvz_ip.lng    |  9 ++-
 .../web/vm/lib/lang/cz_openvz_ip_list.lng     |  7 ++-
 .../web/vm/lib/lang/cz_openvz_ostemplate.lng  |  3 +
 .../vm/lib/lang/cz_openvz_ostemplate_list.lng |  3 +
 .../web/vm/lib/lang/cz_openvz_template.lng    |  5 +-
 .../vm/lib/lang/cz_openvz_template_list.lng   |  3 +
 interface/web/vm/lib/lang/cz_openvz_vm.lng    |  9 ++-
 .../web/vm/lib/lang/cz_openvz_vm_list.lng     |  7 ++-
 229 files changed, 906 insertions(+), 220 deletions(-)

diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index 151fb43584..b1fd37f919 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -131,7 +131,7 @@ $wb['datalog_status_i_web_folder_user'] = 'Vytvoření uživatele pro adresáře
 $wb['datalog_status_u_web_folder_user'] = 'Aktualizace nastavení uživatele pro adresáře chráněné heslem';
 $wb['datalog_status_d_web_folder_user'] = 'Odstranění uživatele pro adresáře chráněné heslem';
 $wb['login_as_txt'] = 'Přihlašte se jako';
-$wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu. ';
+$wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu.';
 $wb['no_destination_perm'] = 'Nemáte oprávnění pro tuto destinaci.';
 $wb['client_you_are_locked'] = 'Nemáte oprávnění měnit žádná nastavení.';
 $wb['gender_m_txt'] = 'Pan';
@@ -151,3 +151,6 @@ $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz.lng b/interface/web/admin/lib/lang/cz.lng
index 6a6b8aafdd..6ae683ce36 100644
--- a/interface/web/admin/lib/lang/cz.lng
+++ b/interface/web/admin/lib/lang/cz.lng
@@ -50,3 +50,6 @@ $wb['Directive Snippets'] = 'Directive Snippets';
 $wb['Sites'] = 'Stránky';
 $wb['DNS'] = 'DNS';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets.lng b/interface/web/admin/lib/lang/cz_directive_snippets.lng
index c77222a4fc..04f14237d2 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets.lng
@@ -9,3 +9,6 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip
 $wb['variables_txt'] = 'Proměnné';
 $wb['customer_viewable_txt'] = 'Customer viewable';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets_list.lng b/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
index e31d707941..a1b9aa2953 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
@@ -6,3 +6,6 @@ $wb['type_txt'] = 'Verze';
 $wb['add_new_record_txt'] = 'Add Directive Snippet';
 $wb['customer_viewable_txt'] = 'Customer viewable';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_firewall.lng b/interface/web/admin/lib/lang/cz_firewall.lng
index c6146ae93d..87e8a62022 100644
--- a/interface/web/admin/lib/lang/cz_firewall.lng
+++ b/interface/web/admin/lib/lang/cz_firewall.lng
@@ -9,3 +9,6 @@ $wb['firewall_error_unique'] = 'Pro tento server již existuje záznam firewallu
 $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolené symboly jsou čísla, : a ,.';
 $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_firewall_list.lng b/interface/web/admin/lib/lang/cz_firewall_list.lng
index c350ddc418..d03fd784f2 100644
--- a/interface/web/admin/lib/lang/cz_firewall_list.lng
+++ b/interface/web/admin/lib/lang/cz_firewall_list.lng
@@ -6,3 +6,6 @@ $wb['tcp_port_txt'] = 'Otevřené TCP porty';
 $wb['udp_port_txt'] = 'Otevřené UDP porty';
 $wb['add_new_record_txt'] = 'Vytvořit záznam';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_groups.lng b/interface/web/admin/lib/lang/cz_groups.lng
index a6281be247..8ab250bbca 100644
--- a/interface/web/admin/lib/lang/cz_groups.lng
+++ b/interface/web/admin/lib/lang/cz_groups.lng
@@ -3,3 +3,6 @@ $wb['description_txt'] = 'Popis';
 $wb['name_txt'] = 'Skupina';
 $wb['name_err'] = 'Skupina musí mít min. 1, max. 30 znaků.';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_groups_list.lng b/interface/web/admin/lib/lang/cz_groups_list.lng
index e66a41aac8..2fe31bb680 100644
--- a/interface/web/admin/lib/lang/cz_groups_list.lng
+++ b/interface/web/admin/lib/lang/cz_groups_list.lng
@@ -5,3 +5,6 @@ $wb['name_txt'] = 'Skupina';
 $wb['add_new_record_txt'] = 'Vytvořit skupinu';
 $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelý nebo skupin zde může způsobit ztrátu dat!';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_iptables.lng b/interface/web/admin/lib/lang/cz_iptables.lng
index a40fc0490f..ea09bc9dc8 100644
--- a/interface/web/admin/lib/lang/cz_iptables.lng
+++ b/interface/web/admin/lib/lang/cz_iptables.lng
@@ -11,3 +11,6 @@ $wb['source_ip_txt'] = 'Zdrojové adresy';
 $wb['active_txt'] = 'Aktivní';
 $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_iptables_list.lng b/interface/web/admin/lib/lang/cz_iptables_list.lng
index 65cef7507e..4a207a2dda 100644
--- a/interface/web/admin/lib/lang/cz_iptables_list.lng
+++ b/interface/web/admin/lib/lang/cz_iptables_list.lng
@@ -13,3 +13,6 @@ $wb['source_ip_txt'] = 'Zdrojové adresy';
 $wb['active_txt'] = 'Aktivní';
 $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_language_add.lng b/interface/web/admin/lib/lang/cz_language_add.lng
index 21dcf62949..c5eb16f6b6 100644
--- a/interface/web/admin/lib/lang/cz_language_add.lng
+++ b/interface/web/admin/lib/lang/cz_language_add.lng
@@ -6,3 +6,6 @@ $wb['language_new_hint_txt'] = '2 znakové ISO 639-1 jazykové kódy (Viz: http:
 $wb['btn_save_txt'] = 'Vytvořit novou jazykovou sadu souborů';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_language_complete.lng b/interface/web/admin/lib/lang/cz_language_complete.lng
index e63b3301f2..4ec14293f5 100644
--- a/interface/web/admin/lib/lang/cz_language_complete.lng
+++ b/interface/web/admin/lib/lang/cz_language_complete.lng
@@ -5,3 +5,6 @@ $wb['language_select_txt'] = 'Vybrat jazyk k doplnění';
 $wb['btn_save_txt'] = 'Sloučit / doplnit jazykový soubor';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_language_edit.lng b/interface/web/admin/lib/lang/cz_language_edit.lng
index 3efa7e3037..62a51a85ac 100644
--- a/interface/web/admin/lib/lang/cz_language_edit.lng
+++ b/interface/web/admin/lib/lang/cz_language_edit.lng
@@ -6,3 +6,6 @@ $wb['lang_file_txt'] = 'Jazykový soubor';
 $wb['btn_save_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_language_export.lng b/interface/web/admin/lib/lang/cz_language_export.lng
index e02f861738..18fcba79cd 100644
--- a/interface/web/admin/lib/lang/cz_language_export.lng
+++ b/interface/web/admin/lib/lang/cz_language_export.lng
@@ -4,3 +4,6 @@ $wb['language_select_txt'] = 'Vybrat jazykovou sadu';
 $wb['btn_save_txt'] = 'Uložit vybranou jazykovou sadu do souboru';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_language_import.lng b/interface/web/admin/lib/lang/cz_language_import.lng
index 5dc4ccac38..e72a282e8d 100644
--- a/interface/web/admin/lib/lang/cz_language_import.lng
+++ b/interface/web/admin/lib/lang/cz_language_import.lng
@@ -7,3 +7,6 @@ $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['ignore_version_txt'] = 'Přeskočit kontrolu verze ISPConfigu.';
 $wb['list_desc_txt'] = 'VAROVÁNÍ: Nepoužívejte import souborů jazyku z nedůvěryhodných zdrojů.';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_language_list.lng b/interface/web/admin/lib/lang/cz_language_list.lng
index b2a7863715..b96d849509 100644
--- a/interface/web/admin/lib/lang/cz_language_list.lng
+++ b/interface/web/admin/lib/lang/cz_language_list.lng
@@ -5,3 +5,6 @@ $wb['module_txt'] = 'Modul';
 $wb['lang_file_txt'] = 'Jazykový soubor';
 $wb['lang_file_date_txt'] = 'Poslední úprava';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_package_install.lng b/interface/web/admin/lib/lang/cz_package_install.lng
index 2bdc9df315..0f14548a74 100644
--- a/interface/web/admin/lib/lang/cz_package_install.lng
+++ b/interface/web/admin/lib/lang/cz_package_install.lng
@@ -5,3 +5,6 @@ $wb['repo_username_txt'] = 'Uživatel (volitelné)';
 $wb['repo_password_txt'] = 'Heslo (volitelné)';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_remote_action.lng b/interface/web/admin/lib/lang/cz_remote_action.lng
index e1908e2d04..d6b328f530 100644
--- a/interface/web/admin/lib/lang/cz_remote_action.lng
+++ b/interface/web/admin/lib/lang/cz_remote_action.lng
@@ -2,11 +2,14 @@
 $wb['select_server_txt'] = 'Zvolit server';
 $wb['btn_do_txt'] = 'Provést akci';
 $wb['do_osupdate_caption'] = 'Aktualizace operačního systému na vzdáleném serveru.';
-$wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
+$wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
 $wb['do_ispcupdate_caption'] = 'Provedení ISPConfig 3 - aktualizace na vzdáleném serveru';
-$wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
+$wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
 $wb['action_scheduled'] = 'Akce je naplánována na provedení';
 $wb['select_all_server'] = 'Všechny servery';
 $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci';
 $wb['ispconfig_update_text'] = 'Přihlaste se jako uživatel root na terminal (shell) serveru a proveďte příkaz<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />spustí se ISPConfig aktualizace.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Klikněte zde pro podrobnější informace o provedení aktualizace</a>';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_remote_user.lng b/interface/web/admin/lib/lang/cz_remote_user.lng
index 890a884cc0..8096ea261d 100644
--- a/interface/web/admin/lib/lang/cz_remote_user.lng
+++ b/interface/web/admin/lib/lang/cz_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Uživatelské jméno';
-$wb['password_txt'] = 'Heslo';
-$wb['function_txt'] = 'Funkce';
+$wb['username_txt'] = 'Uživatelské jméno:';
+$wb['password_txt'] = 'Heslo:';
+$wb['function_txt'] = 'Funkce:';
 $wb['username_error_unique'] = 'Uživatelské jméno musí být unikátní';
 $wb['username_error_empty'] = 'Uživatelské jméno nemůže být prázdné';
 $wb['password_error_empty'] = 'Heslo nemůže být prázdné';
-$wb['password_strength_txt'] = 'Bezpečnost hesla';
+$wb['password_strength_txt'] = 'Bezpečnost hesla:';
 $wb['Mail domain functions'] = 'Funkce e-mailové domény';
 $wb['Mail user functions'] = 'Funkce e-mailového uživatele';
 $wb['Mail alias functions'] = 'Funkce e-mailového aliasu';
@@ -45,3 +45,6 @@ $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_remote_user_list.lng b/interface/web/admin/lib/lang/cz_remote_user_list.lng
index 3f4a008f39..0d364fc1f4 100644
--- a/interface/web/admin/lib/lang/cz_remote_user_list.lng
+++ b/interface/web/admin/lib/lang/cz_remote_user_list.lng
@@ -5,3 +5,6 @@ $wb['add_new_record_txt'] = 'Vytvořit uživatele';
 $wb['parent_remote_userid_txt'] = 'ID';
 $wb['username_txt'] = 'Uživatel';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server.lng b/interface/web/admin/lib/lang/cz_server.lng
index 8b86caf76b..c984963b3f 100644
--- a/interface/web/admin/lib/lang/cz_server.lng
+++ b/interface/web/admin/lib/lang/cz_server.lng
@@ -14,3 +14,6 @@ $wb['proxy_server_txt'] = 'Proxy-Server';
 $wb['firewall_server_txt'] = 'Firewall-Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index ea785f9d6c..e8da9610b2 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -20,10 +20,10 @@ $wb['fastcgi_bin_txt'] = 'FastCGI cesta k binarnímu balíčku';
 $wb['module_txt'] = 'Modul';
 $wb['maildir_path_txt'] = 'Cesta k mail adresáři';
 $wb['homedir_path_txt'] = 'Cesta k domácímu adresáři';
-$wb['mailuser_uid_txt'] = 'Mail uživatel UID';
-$wb['mailuser_gid_txt'] = 'Mail uživatel GID';
-$wb['mailuser_name_txt'] = 'Mail uživatel jméno';
-$wb['mailuser_group_txt'] = 'Mail uživatel skupina';
+$wb['mailuser_uid_txt'] = 'E-mail uživatel UID';
+$wb['mailuser_gid_txt'] = 'E-mail uživatel GID';
+$wb['mailuser_name_txt'] = 'E-mail uživatel jméno';
+$wb['mailuser_group_txt'] = 'E-mail uživatel skupina';
 $wb['relayhost_txt'] = 'Relayhost';
 $wb['relayhost_user_txt'] = 'Relayhost uživatel';
 $wb['relayhost_password_txt'] = 'Relayhost heslo';
@@ -58,7 +58,7 @@ $wb['bind_group_error_empty'] = 'BIND skupina je prázdná.';
 $wb['bind_zonefiles_dir_error_empty'] = 'BIND adresář se zónovými soubory je prázdný.';
 $wb['named_conf_path_error_empty'] = 'BIND named.conf cesta je prázdná.';
 $wb['named_conf_local_path_error_empty'] = 'BIND named.conf.local cesta je prázdná.';
-$wb['mail_filter_syntax_txt'] = 'Syntaxe mailového filtru';
+$wb['mail_filter_syntax_txt'] = 'Syntaxe e-mailového filtru';
 $wb['pop3_imap_daemon_txt'] = 'POP3/IMAP démon';
 $wb['php_open_basedir_txt'] = 'PHP open_basedir';
 $wb['php_open_basedir_error_empty'] = 'PHP open_basedir je prázdný.';
@@ -253,7 +253,7 @@ $wb['v6_prefix_txt'] = 'IPv6 Prefix';
 $wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror';
 $wb['v6_prefix_length'] = 'Prefix too long according to defined IPv6 ';
 $wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
-$wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
+$wb['backup_delete_txt'] = 'Odstranit zálohy pokud byla smazána doména/webové stránky';
 $wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
 $wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
 $wb['php_handler_txt'] = 'Default PHP Handler';
@@ -277,8 +277,11 @@ $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
 $wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
 $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
-$wb['hostname_txt'] = 'Hostname';
-$wb['hostname_error_empty'] = 'Hostname is empty.';
-$wb['hostname_error_regex'] = 'Invalid Hostname.';
-$wb['backup_time_txt'] = 'Backup time';
+$wb['hostname_txt'] = 'Název hostitele';
+$wb['hostname_error_empty'] = 'Název hostitele je prázdný';
+$wb['hostname_error_regex'] = 'Neplatný název hostitele.';
+$wb['backup_time_txt'] = 'Spustit zálohovaní v';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_config_list.lng b/interface/web/admin/lib/lang/cz_server_config_list.lng
index 2118c35357..8dc2b3e146 100644
--- a/interface/web/admin/lib/lang/cz_server_config_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_config_list.lng
@@ -2,3 +2,6 @@
 $wb['list_head_txt'] = 'Konfigurace serveru';
 $wb['server_name_txt'] = 'Server';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip.lng b/interface/web/admin/lib/lang/cz_server_ip.lng
index 43a382a646..1f3fcabcf8 100644
--- a/interface/web/admin/lib/lang/cz_server_ip.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip.lng
@@ -9,3 +9,6 @@ $wb['ip_type_txt'] = 'Verze';
 $wb['virtualhost_port_txt'] = 'HTTP Porty';
 $wb['error_port_syntax'] = 'Neplatné znaky ve volbě HTTP Portů. Prosím, zadejte pouze číselné hodnoty oddělené čárkami. Příklad: 80,443';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip_list.lng b/interface/web/admin/lib/lang/cz_server_ip_list.lng
index a0c10060b3..ccfb439e74 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_list.lng
@@ -8,3 +8,6 @@ $wb['virtualhost_txt'] = 'HTTP Vhost';
 $wb['virtualhost_port_txt'] = 'HTTP Ports';
 $wb['ip_type_txt'] = 'Verze';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip_map.lng b/interface/web/admin/lib/lang/cz_server_ip_map.lng
index e1e9d3162d..f66a24a357 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_map.lng
@@ -1,12 +1,15 @@
 <?php
 $wb['server_id_txt'] = 'Rewrite on Server';
-$wb['source_txt'] = 'Source IP';
-$wb['destination_txt'] = 'Destination IP';
+$wb['source_txt'] = 'Zdrojová IP adresa';
+$wb['destination_txt'] = 'Cílová IP adresa';
 $wb['active_txt'] = 'Aktivní';
-$wb['ip_error_wrong'] = 'The Destination IP address is invalid';
-$wb['destination_ip_empty'] = 'The Destination IP is empty.';
-$wb['source_ip_empty'] = 'The Source IP is empty.';
+$wb['ip_error_wrong'] = 'Cílová IP adresa je neplatná';
+$wb['destination_ip_empty'] = 'Cílová IP adresa je prázdná.';
+$wb['source_ip_empty'] = 'Zdrojová IP adresa je prázdná.';
 $wb['server_empty_error'] = 'The Server is empty.';
-$wb['duplicate_mapping_error'] = 'Mapping already exists.';
+$wb['duplicate_mapping_error'] = 'Mapování již existuje.';
 $wb['ip_mapping_error'] = 'Source IP can not be an IP of the Rewrite-Server';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip_map_list.lng b/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
index f4a4bcadc2..c8af2199cf 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
@@ -1,7 +1,10 @@
 <?php
 $wb['list_head_txt'] = 'IP Mappings';
 $wb['server_id_txt'] = 'Server';
-$wb['source_ip_txt'] = 'Source IP';
-$wb['destination_ip_txt'] = 'Destination IP';
+$wb['source_ip_txt'] = 'Zdrojová IP adresa';
+$wb['destination_ip_txt'] = 'Cílová IP adresa';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_list.lng b/interface/web/admin/lib/lang/cz_server_list.lng
index 8aaea041f4..a6196d560e 100644
--- a/interface/web/admin/lib/lang/cz_server_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_list.lng
@@ -12,3 +12,6 @@ $wb['proxy_server_txt'] = 'Proxy';
 $wb['firewall_server_txt'] = 'Firewall';
 $wb['xmpp_server_txt'] = 'XMPP';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_php.lng b/interface/web/admin/lib/lang/cz_server_php.lng
index 10aba05dd7..1fca3ec0c2 100644
--- a/interface/web/admin/lib/lang/cz_server_php.lng
+++ b/interface/web/admin/lib/lang/cz_server_php.lng
@@ -14,3 +14,6 @@ $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script';
 $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři';
 $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_server_php_list.lng b/interface/web/admin/lib/lang/cz_server_php_list.lng
index 389d85c358..efcb70507d 100644
--- a/interface/web/admin/lib/lang/cz_server_php_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_php_list.lng
@@ -5,3 +5,6 @@ $wb['add_new_record_txt'] = 'Vytvořit novou verzi PHP';
 $wb['client_id_txt'] = 'Klient';
 $wb['name_txt'] = 'Verze PHP';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_software_package.lng b/interface/web/admin/lib/lang/cz_software_package.lng
index faffe38217..09f9f50512 100644
--- a/interface/web/admin/lib/lang/cz_software_package.lng
+++ b/interface/web/admin/lib/lang/cz_software_package.lng
@@ -4,3 +4,6 @@ $wb['package_key_txt'] = 'Package Key';
 $wb['Software Package'] = 'Software Package';
 $wb['Modify software package details'] = 'Modify software package details';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_software_package_install.lng b/interface/web/admin/lib/lang/cz_software_package_install.lng
index 0d079ef6d3..23af032ba4 100644
--- a/interface/web/admin/lib/lang/cz_software_package_install.lng
+++ b/interface/web/admin/lib/lang/cz_software_package_install.lng
@@ -4,3 +4,6 @@ $wb['install_key_txt'] = 'Enter install key';
 $wb['btn_save_txt'] = 'Spustit instalaci';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_software_package_list.lng b/interface/web/admin/lib/lang/cz_software_package_list.lng
index 6896a9feb4..f29f7b4648 100644
--- a/interface/web/admin/lib/lang/cz_software_package_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_package_list.lng
@@ -11,3 +11,6 @@ $wb['no_packages_txt'] = 'Žádné balíčky nejsou k dispozici';
 $wb['edit_txt'] = 'Upravit';
 $wb['delete_txt'] = 'Smazat';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_software_repo.lng b/interface/web/admin/lib/lang/cz_software_repo.lng
index bd7bc9d0f2..c943f904d1 100644
--- a/interface/web/admin/lib/lang/cz_software_repo.lng
+++ b/interface/web/admin/lib/lang/cz_software_repo.lng
@@ -6,3 +6,6 @@ $wb['repo_password_txt'] = 'Heslo (volitelné)';
 $wb['active_txt'] = 'Aktivní';
 $wb['Software Repository which may contain addons or updates'] = 'Softwarové zdroje, které mohou obsahovat addony nebo aktualizace';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_software_repo_list.lng b/interface/web/admin/lib/lang/cz_software_repo_list.lng
index ca04f41dcf..a9b1298d3a 100644
--- a/interface/web/admin/lib/lang/cz_software_repo_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_repo_list.lng
@@ -4,3 +4,6 @@ $wb['active_txt'] = 'Aktivní';
 $wb['repo_name_txt'] = 'Název zdroje';
 $wb['repo_url_txt'] = 'URL';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_software_update_list.lng b/interface/web/admin/lib/lang/cz_software_update_list.lng
index c48ad8ce30..3a64c44a35 100644
--- a/interface/web/admin/lib/lang/cz_software_update_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_update_list.lng
@@ -7,3 +7,6 @@ $wb['version_txt'] = 'Verze';
 $wb['action_txt'] = 'Akce';
 $wb['no_updates_txt'] = 'Žádné aktualizace nejsou k dispozici';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng
index 930e3ebbfb..67aa4eb8a6 100644
--- a/interface/web/admin/lib/lang/cz_system_config.lng
+++ b/interface/web/admin/lib/lang/cz_system_config.lng
@@ -82,3 +82,6 @@ $wb['custom_login_text_txt'] = 'Vlastní text na přihlašovací stránce';
 $wb['custom_login_link_txt'] = 'Vlastní odkaz (URL) na přihlašovací stránce (vlastní text)';
 $wb['login_link_error_regex'] = 'Neplatný formát URL pro vlastní odkaz na přihlašovací stránce';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_tpl_default_admin.lng b/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
index 480d504421..6540c0a4ed 100644
--- a/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
+++ b/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
@@ -16,3 +16,6 @@ $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script';
 $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři';
 $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_users.lng b/interface/web/admin/lib/lang/cz_users.lng
index 160caaca50..6be31e0dec 100644
--- a/interface/web/admin/lib/lang/cz_users.lng
+++ b/interface/web/admin/lib/lang/cz_users.lng
@@ -33,3 +33,6 @@ $wb['username_error_collision'] = 'Uživatelské jméno nesmí být web nebo web
 $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
+
+
+
diff --git a/interface/web/admin/lib/lang/cz_users_list.lng b/interface/web/admin/lib/lang/cz_users_list.lng
index c4a8b0e234..230e19ebe4 100644
--- a/interface/web/admin/lib/lang/cz_users_list.lng
+++ b/interface/web/admin/lib/lang/cz_users_list.lng
@@ -7,3 +7,6 @@ $wb['add_new_record_txt'] = 'Vytvořit uživatele';
 $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelů nebo skupin zde může způsobit ztrátu dat!';
 $wb['groups_txt'] = 'Skupiny';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz.lng b/interface/web/client/lib/lang/cz.lng
index c4a3167cea..f9a7bfc6f3 100644
--- a/interface/web/client/lib/lang/cz.lng
+++ b/interface/web/client/lib/lang/cz.lng
@@ -6,7 +6,7 @@ $wb['Add Client'] = 'Vytvořit klienta';
 $wb['Edit Client'] = 'Upravit klienta';
 $wb['Clients'] = 'Klienti';
 $wb['Templates'] = 'Å ablony';
-$wb['Limit-Templates'] = 'Klientské šablony (Limity)';
+$wb['Limit-Templates'] = 'Klientské šablony (limity)';
 $wb['Add Reseller'] = 'Vytvořit distributora';
 $wb['Edit Reseller'] = 'Upravit distributora';
 $wb['Resellers'] = 'Distributoři (prodejci)';
@@ -26,3 +26,6 @@ $wb['error_client_group_id_empty'] = 'Musíte vybrat zákazníka<br>';
 $wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone';
 $wb['error_domain_in dnsslaveuse'] = 'This domain cannot be deleted, because it is in use as secondary dns zone';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng
index 85995aeef0..df7f689296 100644
--- a/interface/web/client/lib/lang/cz_client.lng
+++ b/interface/web/client/lib/lang/cz_client.lng
@@ -2,7 +2,7 @@
 $wb['limit_maildomain_txt'] = 'Max. počet e-mailových domén';
 $wb['limit_mailbox_txt'] = 'Max. počet mailboxů';
 $wb['limit_mailalias_txt'] = 'Max. počet e-mailových aliasů';
-$wb['limit_mailaliasdomain_txt'] = 'Max. počet doménových aliasů';
+$wb['limit_mailaliasdomain_txt'] = 'Max. počet doménových přezdívek';
 $wb['limit_mailforward_txt'] = 'Max. počet e-mailových předavačů';
 $wb['limit_mailcatchall_txt'] = 'Max. počet e-mailových košů';
 $wb['limit_mailrouting_txt'] = 'Max. počet e-mailových směrování';
@@ -155,26 +155,26 @@ $wb['parent_client_id_txt'] = 'Přiřazení klienta k distributorovi (prodejci)'
 $wb['none_txt'] = 'Žádný';
 $wb['contact_firstname_txt'] = 'Kontakt křestní jméno';
 $wb['limit_backup_txt'] = 'Funkce zálohování - dostupná volba pro klienta';
-$wb['xmpp_limits_txt'] = 'XMPP Limits';
+$wb['xmpp_limits_txt'] = 'XMPP limity';
 $wb['web_servers_txt'] = 'Webové servery';
 $wb['web_servers_placeholder'] = 'Zvolte webové servery';
-$wb['no_web_server_error'] = 'At least one webserver must be selected.';
+$wb['no_web_server_error'] = 'Alespoň jeden webový server musí být zvolen.';
 $wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before you remove it.';
-$wb['dns_servers_txt'] = 'DNS servers';
-$wb['dns_servers_placeholder'] = 'Select DNS servers';
-$wb['no_dns_server_error'] = 'At least one DNS server must be selected.';
+$wb['dns_servers_txt'] = 'DNS servery';
+$wb['dns_servers_placeholder'] = 'Zvolit DNS servery';
+$wb['no_dns_server_error'] = 'Alespoň jeden DNS server musí být zvolen.';
 $wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before you remove it.';
-$wb['db_servers_txt'] = 'Database servers';
-$wb['db_servers_placeholder'] = 'Select database servers';
-$wb['no_db_server_error'] = 'At least one Database server must be selected.';
+$wb['db_servers_txt'] = 'Databázové servery';
+$wb['db_servers_placeholder'] = 'Zvolit databázové servery';
+$wb['no_db_server_error'] = 'Alespoň jeden databázový server musí být zvolen.';
 $wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before you remove it.';
-$wb['mail_servers_txt'] = 'Mailservers';
-$wb['mail_servers_placeholder'] = 'Select mailservers';
-$wb['no_mail_server_error'] = 'At least one mailserver must be selected.';
+$wb['mail_servers_txt'] = 'Poštovní servery';
+$wb['mail_servers_placeholder'] = 'Zvolit poštovní servery';
+$wb['no_mail_server_error'] = 'Alespoň jeden e-mailový server musí být zvolen.';
 $wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before you remove it.';
-$wb['xmpp_servers_txt'] = 'XMPP Servers';
-$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
-$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
+$wb['xmpp_servers_txt'] = 'XMPP servery';
+$wb['xmpp_servers_placeholder'] = 'Zvolit XMPP Servery';
+$wb['no_xmpp_server_error'] = 'Alespoň jeden XMPP server musí být zvolen.';
 $wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
 $wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
 $wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
@@ -188,15 +188,18 @@ $wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb['limit_database_quota_txt'] = 'Kvóty databází';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
 $wb['reseller_txt'] = 'Distributor (prodejce)';
 $wb['btn_save_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['invalid_vat_id'] = 'The VAT ID is invalid.';
 $wb['email_error_empty'] = 'E-mail je prázdný';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let';
-$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['limit_directive_snippets_txt'] = 'Výběr configurace webového serveru - dostupná volba pro klienta';
+$wb['limit_database_user_txt'] = 'Max. počet databázových uživatelů';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_circle.lng b/interface/web/client/lib/lang/cz_client_circle.lng
index f26e2d6d4b..40e9bafed9 100644
--- a/interface/web/client/lib/lang/cz_client_circle.lng
+++ b/interface/web/client/lib/lang/cz_client_circle.lng
@@ -7,3 +7,6 @@ $wb['client_ids_txt'] = 'Klienti/Distributoři';
 $wb['description_txt'] = 'Popis';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_circle_list.lng b/interface/web/client/lib/lang/cz_client_circle_list.lng
index be2101f9d5..1b41eab1ea 100644
--- a/interface/web/client/lib/lang/cz_client_circle_list.lng
+++ b/interface/web/client/lib/lang/cz_client_circle_list.lng
@@ -3,8 +3,11 @@ $wb['list_head_txt'] = 'Skupiny klientů';
 $wb['circle_id_txt'] = 'ID skupiny';
 $wb['circle_name_txt'] = 'Název skupiny';
 $wb['description_txt'] = 'Popis';
-$wb['add_new_record_txt'] = 'Vytvořit novou skupinu';
+$wb['add_new_record_txt'] = 'Vytvořit skupinu';
 $wb['filter_txt'] = 'Filtr';
 $wb['delete_txt'] = 'Smazat';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_del.lng b/interface/web/client/lib/lang/cz_client_del.lng
index 5374ea6f75..cf176542d5 100644
--- a/interface/web/client/lib/lang/cz_client_del.lng
+++ b/interface/web/client/lib/lang/cz_client_del.lng
@@ -5,3 +5,6 @@ $wb['btn_save_txt'] = 'Smazat klienta';
 $wb['btn_cancel_txt'] = 'Zrušit bez smazání klienta';
 $wb['confirm_client_delete_txt'] = 'Jste si jisti, že chcete smazat tohoto klienta ?';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_message.lng b/interface/web/client/lib/lang/cz_client_message.lng
index 3710cbd254..7253dbd549 100644
--- a/interface/web/client/lib/lang/cz_client_message.lng
+++ b/interface/web/client/lib/lang/cz_client_message.lng
@@ -18,3 +18,6 @@ $wb['variables_txt'] = 'Výběr (možnosti):';
 $wb['gender_m_txt'] = 'Pan';
 $wb['gender_f_txt'] = 'Paní';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_message_template.lng b/interface/web/client/lib/lang/cz_client_message_template.lng
index b5e0b73039..cc53795b76 100644
--- a/interface/web/client/lib/lang/cz_client_message_template.lng
+++ b/interface/web/client/lib/lang/cz_client_message_template.lng
@@ -9,3 +9,6 @@ $wb['variables_txt'] = 'Proměnné';
 $wb['variables_description_txt'] = 'Proměnné uživatelské jméno a heslo jsou k dispozici (funkční) jako volba pouze v uvítacím e-mailu.';
 $wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_message_template_list.lng b/interface/web/client/lib/lang/cz_client_message_template_list.lng
index d4c2f63857..306bf52e4e 100644
--- a/interface/web/client/lib/lang/cz_client_message_template_list.lng
+++ b/interface/web/client/lib/lang/cz_client_message_template_list.lng
@@ -3,3 +3,6 @@ $wb['list_head_txt'] = 'E-mailové šablony';
 $wb['template_type_txt'] = 'Zpráva pro';
 $wb['template_name_txt'] = 'Název šablony';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_template.lng b/interface/web/client/lib/lang/cz_client_template.lng
index d275b87320..3658a1c5d1 100644
--- a/interface/web/client/lib/lang/cz_client_template.lng
+++ b/interface/web/client/lib/lang/cz_client_template.lng
@@ -3,7 +3,7 @@ $wb['limit_client_error_notint'] = 'Klientský limit není číslo.';
 $wb['limit_maildomain_txt'] = 'Max. počet e-mailových domén';
 $wb['limit_mailbox_txt'] = 'Max. počet mailboxů';
 $wb['limit_mailalias_txt'] = 'Max. e-mailových aliasů';
-$wb['limit_mailaliasdomain_txt'] = 'Max. počet doménových aliasů';
+$wb['limit_mailaliasdomain_txt'] = 'Max. počet doménových přezdívek';
 $wb['limit_mailforward_txt'] = 'Max. počet e-mailových předávání';
 $wb['limit_mailcatchall_txt'] = 'Max. počet e-mailových košů';
 $wb['limit_mailrouting_txt'] = 'Max. počet e-mailových směrování';
@@ -66,7 +66,7 @@ $wb['limit_openvz_vm_txt'] = 'Max. počet virtuálních serverů';
 $wb['limit_openvz_vm_template_id_txt'] = 'Povinná šablona pro virtuální server';
 $wb['limit_openvz_vm_error_notint'] = 'Limit pro virtuální servery musí být číslo.';
 $wb['ssh_chroot_txt'] = 'SSH-Chroot Možnosti';
-$wb['web_php_options_txt'] = 'PHP Možnosti';
+$wb['web_php_options_txt'] = 'PHP možnosti';
 $wb['template_type_txt'] = 'Typ šablony';
 $wb['template_name_txt'] = 'Název šablony';
 $wb['limit_cgi_txt'] = 'CGI - dostupná volba pro klienta';
@@ -96,11 +96,11 @@ $wb['default_slave_dnsserver_txt'] = 'Výchozí sekundární DNS server';
 $wb['limit_backup_txt'] = 'Funkce zálohování - dostupná volba pro klienta';
 $wb['default_dbserver_txt'] = 'Výchozí databázový server';
 $wb['limit_database_quota_txt'] = 'Kvóty databází';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
-$wb['xmpp_limits_txt'] = 'XMPP Limits';
-$wb['xmpp_servers_txt'] = 'XMPP Servers';
-$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
-$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
+$wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
+$wb['xmpp_limits_txt'] = 'XMPP limity';
+$wb['xmpp_servers_txt'] = 'XMPP servery';
+$wb['xmpp_servers_placeholder'] = 'Zvolit XMPP Servery';
+$wb['no_xmpp_server_error'] = 'Alespoň jeden XMPP server musí být zvolen.';
 $wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
 $wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
 $wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
@@ -113,11 +113,14 @@ $wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
 $wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
-$wb['dns_servers_txt'] = 'DNS servers';
+$wb['dns_servers_txt'] = 'DNS servery';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let';
-$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['limit_database_user_txt'] = 'Max. Database users';
-$wb['web_servers_txt'] = 'Webservers';
-$wb['db_servers_txt'] = 'Database servers';
-$wb['mail_servers_txt'] = 'Mailservers';
+$wb['limit_directive_snippets_txt'] = 'Výběr configurace webového serveru - dostupná volba pro klienta';
+$wb['limit_database_user_txt'] = 'Max. počet databázových uživatelů';
+$wb['web_servers_txt'] = 'Webové servery';
+$wb['db_servers_txt'] = 'Databázové servery';
+$wb['mail_servers_txt'] = 'E-mailové servery';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_client_template_list.lng b/interface/web/client/lib/lang/cz_client_template_list.lng
index 3abbd09adc..f1468391ed 100644
--- a/interface/web/client/lib/lang/cz_client_template_list.lng
+++ b/interface/web/client/lib/lang/cz_client_template_list.lng
@@ -4,3 +4,6 @@ $wb['template_type_txt'] = 'Typ';
 $wb['template_name_txt'] = 'Název šablony';
 $wb['template_id_txt'] = 'ID šablony';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_clients_list.lng b/interface/web/client/lib/lang/cz_clients_list.lng
index 3a28bf93e6..2ba4ffb5af 100644
--- a/interface/web/client/lib/lang/cz_clients_list.lng
+++ b/interface/web/client/lib/lang/cz_clients_list.lng
@@ -9,3 +9,6 @@ $wb['add_new_record_txt'] = 'Vytvořit klienta';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['customer_no_txt'] = 'Zákaznické číslo';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_domain.lng b/interface/web/client/lib/lang/cz_domain.lng
index 08b113fc4d..df73910212 100644
--- a/interface/web/client/lib/lang/cz_domain.lng
+++ b/interface/web/client/lib/lang/cz_domain.lng
@@ -4,3 +4,6 @@ $wb['domain_error_unique'] = 'Doména již existuje';
 $wb['domain_error_regex'] = 'Toto doménové jméno je zakázáno';
 $wb['Domain'] = 'Doména';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_domain_list.lng b/interface/web/client/lib/lang/cz_domain_list.lng
index 25adf20c25..b02428ea09 100644
--- a/interface/web/client/lib/lang/cz_domain_list.lng
+++ b/interface/web/client/lib/lang/cz_domain_list.lng
@@ -4,3 +4,6 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['domain_txt'] = 'Doména';
 $wb['user_txt'] = 'Klient';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng
index 97d5d79790..437f7a29d0 100644
--- a/interface/web/client/lib/lang/cz_reseller.lng
+++ b/interface/web/client/lib/lang/cz_reseller.lng
@@ -98,7 +98,7 @@ $wb['required_fields_txt'] = '* Povinná pole';
 $wb['limit_webdav_user_txt'] = 'Max. počet Webdav uživatelů';
 $wb['limit_webdav_user_error_notint'] = 'Limit WebDAV uživatelů musí být číslo.';
 $wb['limit_mailmailinglist_txt'] = 'Max. počet e-mailových konferencí';
-$wb['limit_mailaliasdomain_txt'] = 'Max. počet doménových aliasů';
+$wb['limit_mailaliasdomain_txt'] = 'Max. počet doménových přezdívek';
 $wb['limit_mailmailinglist_error_notint'] = 'Limit pro e-mailové konference musí být číslo.';
 $wb['limit_openvz_vm_txt'] = 'Max. počet virtuálních serverů';
 $wb['limit_openvz_vm_template_id_txt'] = 'Povinná šablona pro virtuální server';
@@ -162,24 +162,24 @@ $wb['limit_backup_txt'] = 'Funkce zálohování (volitelné)';
 $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)';
 $wb['web_servers_txt'] = 'Webové servery';
 $wb['web_servers_placeholder'] = 'Zvolte webové servery';
-$wb['no_web_server_error'] = 'At least one webserver must be selected.';
+$wb['no_web_server_error'] = 'Alespoň jeden webový server musí být zvolen.';
 $wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before to remove it.';
-$wb['dns_servers_txt'] = 'DNS Server';
-$wb['dns_servers_placeholder'] = 'Select DNS Servers';
-$wb['no_dns_server_error'] = 'At least one DNS server must be selected.';
+$wb['dns_servers_txt'] = 'DNS servery';
+$wb['dns_servers_placeholder'] = 'Zvolit DNS servery';
+$wb['no_dns_server_error'] = 'Alespoň jeden DNS server musí být zvolen.';
 $wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before to remove it.';
-$wb['db_servers_txt'] = 'Database Server';
-$wb['db_servers_placeholder'] = 'Select Database Servers';
-$wb['no_db_server_error'] = 'At least one Database server must be selected.';
+$wb['db_servers_txt'] = 'Databázové servery';
+$wb['db_servers_placeholder'] = 'Zvolit databázové servery';
+$wb['no_db_server_error'] = 'Alespoň jeden databázový server musí být zvolen.';
 $wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before to remove it.';
-$wb['mail_servers_txt'] = 'Mailservers';
-$wb['mail_servers_placeholder'] = 'Select Mailservers';
-$wb['no_mail_server_error'] = 'At least one Mailserver must be selected.';
+$wb['mail_servers_txt'] = 'Poštovní servery';
+$wb['mail_servers_placeholder'] = 'Zvolit poštovní servery';
+$wb['no_mail_server_error'] = 'Alespoň jeden e-mailový server musí být zvolen.';
 $wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before to remove it.';
-$wb['xmpp_limits_txt'] = 'XMPP Limits';
-$wb['xmpp_servers_txt'] = 'XMPP Servers';
-$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
-$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
+$wb['xmpp_limits_txt'] = 'XMPP limity';
+$wb['xmpp_servers_txt'] = 'XMPP servery';
+$wb['xmpp_servers_placeholder'] = 'Zvolit XMPP Servery';
+$wb['no_xmpp_server_error'] = 'Alespoň jeden XMPP server musí být zvolen.';
 $wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
 $wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
 $wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
@@ -197,10 +197,13 @@ $wb['btn_save_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['email_error_empty'] = 'E-mail je prázdný';
 $wb['limit_ssl_letsencrypt_txt'] = 'Let';
-$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['limit_directive_snippets_txt'] = 'Výběr configurace webového serveru - dostupná volba pro klienta';
+$wb['limit_database_user_txt'] = 'Max. počet databázových uživatelů';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_database_quota_txt'] = 'Databázové kvóty';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
+
+
+
diff --git a/interface/web/client/lib/lang/cz_resellers_list.lng b/interface/web/client/lib/lang/cz_resellers_list.lng
index 13202ff743..e9a89f819c 100644
--- a/interface/web/client/lib/lang/cz_resellers_list.lng
+++ b/interface/web/client/lib/lang/cz_resellers_list.lng
@@ -9,3 +9,6 @@ $wb['add_new_record_txt'] = 'Vytvořit distributora';
 $wb['customer_no_txt'] = 'Zákaznické číslo';
 $wb['username_txt'] = 'Uživatelské jméno';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz.lng b/interface/web/dashboard/lib/lang/cz.lng
index 9d2a3211cb..b1859b0a21 100644
--- a/interface/web/dashboard/lib/lang/cz.lng
+++ b/interface/web/dashboard/lib/lang/cz.lng
@@ -2,3 +2,6 @@
 $wb['welcome_user_txt'] = 'Vítejte %s';
 $wb['available_modules_txt'] = 'Dostupné moduly';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng b/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
index f337141de6..7b44d3eda0 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
@@ -2,3 +2,6 @@
 $wb['customerdata_txt'] = 'My Data';
 $wb['edit_txt'] = 'Editovat';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
index 93be2e3425..24d8a6e886 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
@@ -5,3 +5,6 @@ $wb['quota_txt'] = 'Kvóta';
 $wb['no_database_accounts_txt'] = 'Nebyla nalezena žádná databáze.';
 $wb['databasequota_txt'] = 'Kvóty databází';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
index 113d919c00..241fd38dbf 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
@@ -2,3 +2,6 @@
 $wb['invoice_client_settings_txt'] = 'Invoice Client Settings';
 $wb['edit_txt'] = 'Editovat';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
index 9666ed2b08..68530722c9 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
@@ -16,3 +16,6 @@ $wb['invoice_type_proforma_txt'] = 'Proforma';
 $wb['invoice_type_refund_txt'] = 'Refund';
 $wb['invoice_type_reminder_txt'] = 'Reminder';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
index 0b75ac3c1c..7733b8000c 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
@@ -29,3 +29,6 @@ $wb['limit_database_txt'] = 'Počet databází';
 $wb['limit_mailmailinglist_txt'] = 'Počet e-mailových konferencí';
 $wb['limit_domain_txt'] = 'Počet domén';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
index 742721c5ff..dff6a70f91 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
@@ -6,3 +6,6 @@ $wb['used_txt'] = 'Využité místo';
 $wb['quota_txt'] = 'Kvóta';
 $wb['no_email_accounts_txt'] = 'Nenalezeny žádné e-mailové účty.';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng b/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
index 25198e183f..3f3c87fcdc 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
@@ -1,4 +1,7 @@
 <?php
 $wb['available_modules_txt'] = 'Dostupné moduly';
-$wb['go_to_txt'] = 'Go to';
+$wb['go_to_txt'] = 'Vstoupit do sekce:';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_products.lng b/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
index 83749f6db9..b82756f01c 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
@@ -7,3 +7,6 @@ $wb['no_products_txt'] = 'No products found.';
 $wb['edit_txt'] = 'Editovat';
 $wb['cancellation_date_txt'] = 'Cancelled by';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
index 0c2074a996..11717cce3b 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
@@ -6,3 +6,6 @@ $wb['hard_txt'] = 'Kvóta max. obsazení';
 $wb['soft_txt'] = 'Kvóta pro upozornění';
 $wb['no_sites_txt'] = 'Nenalezeny žádné webové stránky.';
 ?>
+
+
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng b/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
index 1e0b5361d7..91b7a18b87 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
@@ -6,3 +6,6 @@ $wb['setup_fee_txt'] = 'Setup Fee';
 $wb['no_products_txt'] = 'No products found.';
 $wb['order_txt'] = 'Order';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz.lng b/interface/web/dns/lib/lang/cz.lng
index 2a001700ef..151bfd7357 100644
--- a/interface/web/dns/lib/lang/cz.lng
+++ b/interface/web/dns/lib/lang/cz.lng
@@ -18,5 +18,8 @@ $wb['DNS Wizard'] = 'DNS průvodce';
 $wb['Add DNS Zone'] = 'Vytvořit DNS zónu';
 $wb['Templates'] = 'Å ablony DNS';
 $wb['Secondary Zones'] = 'Sekundární DNS zóny';
-$wb['Import Zone File'] = 'Importovat vybraný DNS zonový soubor';
+$wb['Import Zone File'] = 'Importovat DNS zonový soubor';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_a.lng b/interface/web/dns/lib/lang/cz_dns_a.lng
index b30bab87aa..659baee6c0 100644
--- a/interface/web/dns/lib/lang/cz_dns_a.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a.lng
@@ -13,5 +13,8 @@ $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
 $wb['data_error_empty'] = 'IP adresa je prázdná';
 $wb['data_error_duplicate'] = 'Duplikace A záznamu';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
-$wb['ip_error_wrong'] = 'IP-Address format invalid';
+$wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_a_list.lng b/interface/web/dns/lib/lang/cz_dns_a_list.lng
index 5096f96127..dd400042a9 100644
--- a/interface/web/dns/lib/lang/cz_dns_a_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a_list.lng
@@ -13,3 +13,6 @@ $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Skutečně chcete smazat tento záznam ?';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_aaaa.lng b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
index 5dd5cd3eb7..0d50ab1303 100644
--- a/interface/web/dns/lib/lang/cz_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
@@ -12,5 +12,8 @@ $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
 $wb['data_error_empty'] = 'IP adresa je prázdná';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
-$wb['ip_error_wrong'] = 'IP-Address format invalid';
+$wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_alias.lng b/interface/web/dns/lib/lang/cz_dns_alias.lng
index a8ef6bdbbb..30f28ba8ab 100644
--- a/interface/web/dns/lib/lang/cz_dns_alias.lng
+++ b/interface/web/dns/lib/lang/cz_dns_alias.lng
@@ -14,3 +14,6 @@ $wb['data_error_empty'] = 'Cílový název hostitele je prázdný';
 $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_cname.lng b/interface/web/dns/lib/lang/cz_dns_cname.lng
index 8f38f227f0..c182cefecd 100644
--- a/interface/web/dns/lib/lang/cz_dns_cname.lng
+++ b/interface/web/dns/lib/lang/cz_dns_cname.lng
@@ -15,3 +15,6 @@ $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
 $wb['data_error_duplicate'] = 'Duplikace A záznamu nebo CNAME-záznamu';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_dkim.lng b/interface/web/dns/lib/lang/cz_dns_dkim.lng
index 77ac3cd818..1c2caa3a7d 100644
--- a/interface/web/dns/lib/lang/cz_dns_dkim.lng
+++ b/interface/web/dns/lib/lang/cz_dns_dkim.lng
@@ -9,3 +9,6 @@ $wb['no_zone_perm'] = 'Nemáte povolení k přidat záznam do této zóny DNS.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['selector_txt'] = 'DKIM selektor';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_dmarc.lng b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
index c5952552a6..13c841fbcd 100644
--- a/interface/web/dns/lib/lang/cz_dns_dmarc.lng
+++ b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
@@ -48,3 +48,6 @@ $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account i
 $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_ds.lng b/interface/web/dns/lib/lang/cz_dns_ds.lng
index 3d25095d3b..d8b5d50b41 100644
--- a/interface/web/dns/lib/lang/cz_dns_ds.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ds.lng
@@ -15,3 +15,6 @@ $wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['invalid_type_ds'] = 'DS-Record has a wrong format.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_hinfo.lng b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
index 2b257d2234..749341dcf1 100644
--- a/interface/web/dns/lib/lang/cz_dns_hinfo.lng
+++ b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
@@ -14,3 +14,6 @@ $wb['data_error_empty'] = 'Informace o hostovi je prázdná';
 $wb['data_error_regex'] = 'Informace o hostovi má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_import.lng b/interface/web/dns/lib/lang/cz_dns_import.lng
index 9c03fa961a..d162d0a1bf 100644
--- a/interface/web/dns/lib/lang/cz_dns_import.lng
+++ b/interface/web/dns/lib/lang/cz_dns_import.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['server_id_txt'] = 'Server';
 $wb['client_txt'] = 'Klient';
-$wb['btn_save_txt'] = 'Importovat vybraný DNS zonový soubor';
+$wb['btn_save_txt'] = 'Importovat DNS zonový soubor';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['domain_txt'] = 'Doména';
 $wb['zone_file_successfully_imported_txt'] = 'Zónový soubor byl úspěšně importován !';
@@ -10,7 +10,10 @@ $wb['zonefile_to_import_txt'] = 'Vybrat soubor s DNS zónou ';
 $wb['domain_field_desc_txt'] = 'Může být ponechána nevyplněná, pokud je název domény názvem souboru nebo je v obsahu souboru s DNS zónou.';
 $wb['title'] = 'Importovat soubory zón';
 $wb['no_file_uploaded_error'] = 'Nelze odeslat DNS zonový soubor';
-$wb['zone_file_import_txt'] = 'Importovat vybraný DNS zonový soubor';
+$wb['zone_file_import_txt'] = 'Importovat DNS zonový soubor';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_loc.lng b/interface/web/dns/lib/lang/cz_dns_loc.lng
index 90ddd3533b..5c91b5d848 100644
--- a/interface/web/dns/lib/lang/cz_dns_loc.lng
+++ b/interface/web/dns/lib/lang/cz_dns_loc.lng
@@ -14,3 +14,6 @@ $wb['data_error_empty'] = 'Text empty';
 $wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_mx.lng b/interface/web/dns/lib/lang/cz_dns_mx.lng
index af1599e1de..d083f5335b 100644
--- a/interface/web/dns/lib/lang/cz_dns_mx.lng
+++ b/interface/web/dns/lib/lang/cz_dns_mx.lng
@@ -16,3 +16,6 @@ $wb['data_error_regex'] = 'Název hostitele e-mailového serveru má chybný for
 $wb['duplicate_mx_record_txt'] = 'Duplicitní MX záznam.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_ns.lng b/interface/web/dns/lib/lang/cz_dns_ns.lng
index b2ca2a69fe..9db7ed35e5 100644
--- a/interface/web/dns/lib/lang/cz_dns_ns.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ns.lng
@@ -14,3 +14,6 @@ $wb['data_error_empty'] = 'Jmenný server je prázdný';
 $wb['data_error_regex'] = 'Jmenný server má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_ptr.lng b/interface/web/dns/lib/lang/cz_dns_ptr.lng
index c0a9a10922..16e1a547fa 100644
--- a/interface/web/dns/lib/lang/cz_dns_ptr.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ptr.lng
@@ -14,3 +14,6 @@ $wb['data_error_empty'] = 'Kanonický hostname je prázdný';
 $wb['data_error_regex'] = 'Kanonického hostname má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_rp.lng b/interface/web/dns/lib/lang/cz_dns_rp.lng
index f401a80810..8e88769470 100644
--- a/interface/web/dns/lib/lang/cz_dns_rp.lng
+++ b/interface/web/dns/lib/lang/cz_dns_rp.lng
@@ -14,3 +14,6 @@ $wb['data_error_empty'] = 'Odpovědná osoba je prázdná';
 $wb['data_error_regex'] = 'Odpovědná osoba má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_slave.lng b/interface/web/dns/lib/lang/cz_dns_slave.lng
index 16617f6c59..0d4cb992d9 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave.lng
@@ -15,3 +15,6 @@ $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 $wb['ipv4_form_txt'] = 'IPV4 formát, např. 1.2.3.4';
 $wb['secondary_zone_txt'] = 'Sekundární DNS zóna';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
index 2b4160735a..1adc64ee58 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
@@ -8,3 +8,6 @@ $wb['add_new_record_txt'] = 'Vytvořit novou Sekundarní DNS-Zónu';
 $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_slave_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_list.lng
index a0d68bc201..2c48643a03 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave_list.lng
@@ -7,3 +7,6 @@ $wb['ns_txt'] = 'NS';
 $wb['add_new_record_txt'] = 'Vytvořit sekundární DNS zónu';
 $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_soa.lng b/interface/web/dns/lib/lang/cz_dns_soa.lng
index cd24132952..39fc5a0c4f 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa.lng
@@ -41,3 +41,6 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
index fbf41a48d0..94df8ed241 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
@@ -5,7 +5,10 @@ $wb['server_id_txt'] = 'Server';
 $wb['origin_txt'] = 'Zóna';
 $wb['ns_txt'] = 'NS';
 $wb['mbox_txt'] = 'E-mail';
-$wb['add_new_record_wizard_txt'] = 'Vytvořit novou DNS zónu pomocí průvodce';
-$wb['add_new_record_txt'] = 'Vytvořit novou DNS zónu manuálně';
+$wb['add_new_record_wizard_txt'] = 'Vytvořit DNS zónu pomocí průvodce';
+$wb['add_new_record_txt'] = 'Vytvořit DNS zónu manuálně';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_soa_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_list.lng
index 7a58f4bdea..5a0773d2e9 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa_list.lng
@@ -7,5 +7,8 @@ $wb['ns_txt'] = 'NS';
 $wb['mbox_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit DNS zónu (SOA záznam)';
 $wb['add_new_record_wizard_txt'] = 'Vytvořit DNS zónu (dle šablony)';
-$wb['import_zone_file_txt'] = 'Import Zone File';
+$wb['import_zone_file_txt'] = 'Importovat DNS zonový soubor';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_spf.lng b/interface/web/dns/lib/lang/cz_dns_spf.lng
index 755e01f11e..8d9ac25720 100644
--- a/interface/web/dns/lib/lang/cz_dns_spf.lng
+++ b/interface/web/dns/lib/lang/cz_dns_spf.lng
@@ -23,3 +23,6 @@ $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account i
 $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_srv.lng b/interface/web/dns/lib/lang/cz_dns_srv.lng
index 00b1fc4cf1..fa180a59fb 100644
--- a/interface/web/dns/lib/lang/cz_dns_srv.lng
+++ b/interface/web/dns/lib/lang/cz_dns_srv.lng
@@ -18,3 +18,6 @@ $wb['srv_error_regex'] = 'Neplatný formát záznamu serveru. Záznam serveru mu
 $wb['aux_txt'] = 'Priorita';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_template.lng b/interface/web/dns/lib/lang/cz_dns_template.lng
index be4ac0e949..e6041d2cc9 100644
--- a/interface/web/dns/lib/lang/cz_dns_template.lng
+++ b/interface/web/dns/lib/lang/cz_dns_template.lng
@@ -4,3 +4,6 @@ $wb['fields_txt'] = 'Pole';
 $wb['template_txt'] = 'Å ablona';
 $wb['visible_txt'] = 'Viditelný';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_template_list.lng b/interface/web/dns/lib/lang/cz_dns_template_list.lng
index a4b2e40657..914deefd63 100644
--- a/interface/web/dns/lib/lang/cz_dns_template_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_template_list.lng
@@ -4,3 +4,6 @@ $wb['visible_txt'] = 'Viditelný';
 $wb['name_txt'] = 'Název';
 $wb['add_new_record_txt'] = 'Vytvořit záznam';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_tlsa.lng b/interface/web/dns/lib/lang/cz_dns_tlsa.lng
index b92da1d45b..cca40fd4ea 100644
--- a/interface/web/dns/lib/lang/cz_dns_tlsa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_tlsa.lng
@@ -14,3 +14,6 @@ $wb['data_error_empty'] = 'TLSA-Data empty';
 $wb['data_error_regex'] = 'TLSA dataformat is wrong. Correct: n n n HASH';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_txt.lng b/interface/web/dns/lib/lang/cz_dns_txt.lng
index 556e4dc5a6..69375f7d87 100644
--- a/interface/web/dns/lib/lang/cz_dns_txt.lng
+++ b/interface/web/dns/lib/lang/cz_dns_txt.lng
@@ -17,3 +17,6 @@ $wb['invalid_type_dkim'] = 'Přímá editace DKIM záznamu zde není povolena. E
 $wb['invalid_type_dmarc'] = 'Přímá editace DMARC záznamu zde není povolena. Editujte záznam pomocí tlačítka DMARC.';
 $wb['invalid_type_spf'] = 'Přímá editace SPF záznamu zde není povolena. Editujte záznam pomocí tlačítka SPF.';
 ?>
+
+
+
diff --git a/interface/web/dns/lib/lang/cz_dns_wizard.lng b/interface/web/dns/lib/lang/cz_dns_wizard.lng
index d9e80c3485..4f0c812ebc 100644
--- a/interface/web/dns/lib/lang/cz_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/cz_dns_wizard.lng
@@ -37,9 +37,12 @@ $wb['globalsearch_searchfield_watermark_txt'] = 'Hledat';
 $wb['globalsearch_suggestions_text_txt'] = 'Návrhy';
 $wb['list_head_txt'] = 'Průvodce vytvořením DNS zóny';
 $wb['list_desc_txt'] = 'Vytvoření DNS zóny pomocí průvodce';
-$wb['dkim_txt'] = 'DKIM enabled';
+$wb['dkim_txt'] = 'DKIM povolen';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['dnssec_txt'] = 'Podepsat zónu (DNSSEC)';
 $wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz.lng b/interface/web/help/lib/lang/cz.lng
index 55279c6a69..72dad835a0 100644
--- a/interface/web/help/lib/lang/cz.lng
+++ b/interface/web/help/lib/lang/cz.lng
@@ -12,3 +12,6 @@ $wb['Manage Sections'] = 'Spravovat sekce';
 $wb['Manage Questions'] = 'Spravovat dotazy';
 $wb['Add a Question & Answer Pair'] = 'Vytvořit otázku a odpověď';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz_faq_form.lng b/interface/web/help/lib/lang/cz_faq_form.lng
index 73feee6955..7761bfd9f1 100644
--- a/interface/web/help/lib/lang/cz_faq_form.lng
+++ b/interface/web/help/lib/lang/cz_faq_form.lng
@@ -4,3 +4,6 @@ $wb['faq_question_txt'] = 'Otázka';
 $wb['faq_answer_txt'] = 'Odpověď';
 $wb['faq_section_txt'] = 'Sekce';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng b/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
index 34a03b3175..486d767a3f 100644
--- a/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
+++ b/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
@@ -7,3 +7,6 @@ $wb['faq_sections_txt'] = 'Sekce';
 $wb['faq_faq_questions_txt'] = 'Často kladené dotazy';
 $wb['faq_new_question_txt'] = 'Vytvořit nový dotaz';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz_faq_sections_form.lng b/interface/web/help/lib/lang/cz_faq_sections_form.lng
index f9de704d8a..cd0e5447f7 100644
--- a/interface/web/help/lib/lang/cz_faq_sections_form.lng
+++ b/interface/web/help/lib/lang/cz_faq_sections_form.lng
@@ -1,3 +1,6 @@
 <?php
 $wb['faq_section_name_txt'] = 'Název sekce';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz_help_faq_list.lng b/interface/web/help/lib/lang/cz_help_faq_list.lng
index 923d9b892a..1cb89b2aa5 100644
--- a/interface/web/help/lib/lang/cz_help_faq_list.lng
+++ b/interface/web/help/lib/lang/cz_help_faq_list.lng
@@ -1,3 +1,6 @@
 <?php
 $wb['edit_txt'] = 'Upravit';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
index 79202940ec..1a9bc341cd 100644
--- a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
+++ b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
@@ -4,5 +4,8 @@ $wb['faq_delete_txt'] = 'Smazat';
 $wb['faq_edit_txt'] = 'Upravit';
 $wb['faq_sections_txt'] = 'Sekce';
 $wb['faq_faq_sections_txt'] = 'Sekce FAQ - Často kladené dotazy';
-$wb['faq_new_section_txt'] = 'Vytvořit novou sekci';
+$wb['faq_new_section_txt'] = 'Vytvořit sekci';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz_support_message.lng b/interface/web/help/lib/lang/cz_support_message.lng
index b9355474c9..579d663bba 100644
--- a/interface/web/help/lib/lang/cz_support_message.lng
+++ b/interface/web/help/lib/lang/cz_support_message.lng
@@ -13,3 +13,6 @@ $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request h
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Zprávu nelze odeslat, protože e-mailová adresa příjemce a/nebo odesílatele není platná.';
 ?>
+
+
+
diff --git a/interface/web/help/lib/lang/cz_support_message_list.lng b/interface/web/help/lib/lang/cz_support_message_list.lng
index 23f80584f9..defe9b3bd7 100644
--- a/interface/web/help/lib/lang/cz_support_message_list.lng
+++ b/interface/web/help/lib/lang/cz_support_message_list.lng
@@ -5,3 +5,6 @@ $wb['subject_txt'] = 'Předmět';
 $wb['add_new_record_txt'] = 'Vytvořit zprávu pro podporu';
 $wb['date_txt'] = 'Datum';
 ?>
+
+
+
diff --git a/interface/web/login/lib/lang/cz_login_as.lng b/interface/web/login/lib/lang/cz_login_as.lng
index 49a6e18b13..874164587d 100644
--- a/interface/web/login/lib/lang/cz_login_as.lng
+++ b/interface/web/login/lib/lang/cz_login_as.lng
@@ -9,3 +9,6 @@ $wb['firewall_error_unique'] = 'Pro tento server již existuje záznam firewallu
 $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolené symboly jsou čísla, : a ,.';
 $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng
index d0f6157cb4..c52b4b852b 100644
--- a/interface/web/mail/lib/lang/cz.lng
+++ b/interface/web/mail/lib/lang/cz.lng
@@ -46,3 +46,6 @@ $wb['Relay Recipients'] = 'Relay adresáti';
 $wb['Statistics'] = 'Statistiky';
 $wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_backup_stats_list.lng b/interface/web/mail/lib/lang/cz_backup_stats_list.lng
index d37348978d..a85b21eac1 100644
--- a/interface/web/mail/lib/lang/cz_backup_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_backup_stats_list.lng
@@ -7,3 +7,6 @@ $wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Velikost zálohy';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_alias.lng b/interface/web/mail/lib/lang/cz_mail_alias.lng
index b7067bca51..1226a67fac 100644
--- a/interface/web/mail/lib/lang/cz_mail_alias.lng
+++ b/interface/web/mail/lib/lang/cz_mail_alias.lng
@@ -15,3 +15,6 @@ $wb['send_as_txt'] = 'Odeslat jako';
 $wb['send_as_exp'] = 'Allow target to send mail using this alias as origin';
 $wb['greylisting_txt'] = 'Povolit greylisting';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_alias_list.lng b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
index 69242d0b9e..a3ae333d6d 100644
--- a/interface/web/mail/lib/lang/cz_mail_alias_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
@@ -4,5 +4,8 @@ $wb['active_txt'] = 'Aktivní';
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
 $wb['email_txt'] = 'E-mail';
-$wb['add_new_record_txt'] = 'Vytvořit novou e-mailovou přezdívku';
+$wb['add_new_record_txt'] = 'Vytvořit e-mailovou přezdívku';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng b/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
index 74611c2de0..179b9e9366 100644
--- a/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
+++ b/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
@@ -9,3 +9,6 @@ $wb['source_error_empty'] = 'Zdrojová doména je prázdná.';
 $wb['source_error_unique'] = 'Duplikování zdrojové domény.';
 $wb['source_error_regex'] = 'Chybná zdrojová doména.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
index d71da95dc0..9d651bf3a8 100644
--- a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
@@ -5,3 +5,6 @@ $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
 $wb['add_new_record_txt'] = 'Vytvořit doménovou přezdívku';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_backup_list.lng b/interface/web/mail/lib/lang/cz_mail_backup_list.lng
index 4c0eb8acd0..28408acb82 100644
--- a/interface/web/mail/lib/lang/cz_mail_backup_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_backup_list.lng
@@ -9,8 +9,11 @@ $wb['restore_confirm_txt'] = 'Restoring may overwrite existing files in your mai
 $wb['download_pending_txt'] = 'There is already a pending backup download job.';
 $wb['restore_pending_txt'] = 'There is already a pending backup restore job.';
 $wb['delete_backup_txt'] = 'Smazat zálohu';
-$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.';
-$wb['delete_confirm_txt'] = 'Really delete this backup?';
+$wb['delete_info_txt'] = 'Bylo zahájeno odstranění zálohy. Tato akce může trvat několik minut než bude dokončena.';
+$wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['filesize_txt'] = 'Velikost souboru';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_blacklist.lng b/interface/web/mail/lib/lang/cz_mail_blacklist.lng
index e1e6dab48f..4d2818e2a0 100644
--- a/interface/web/mail/lib/lang/cz_mail_blacklist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_blacklist.lng
@@ -7,3 +7,6 @@ $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
 $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
index 8ab290f7aa..cce4a1ba53 100644
--- a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
@@ -5,6 +5,9 @@ $wb['server_id_txt'] = 'Server';
 $wb['source_txt'] = 'Adresy na černé listině';
 $wb['type_txt'] = 'Typ';
 $wb['recipient_txt'] = 'Příjemce (adresát)';
-$wb['add_new_record_txt'] = 'Vytvořit záznam na černou listinu';
+$wb['add_new_record_txt'] = 'Přidat na černou listinu';
 $wb['access_txt'] = 'Přístup';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_content_filter.lng b/interface/web/mail/lib/lang/cz_mail_content_filter.lng
index 459ca228a2..30f12ee4ab 100644
--- a/interface/web/mail/lib/lang/cz_mail_content_filter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_content_filter.lng
@@ -7,3 +7,6 @@ $wb['action_txt'] = 'Akce';
 $wb['active_txt'] = 'Aktivní';
 $wb['pattern_error_empty'] = 'Vzor je prázdný.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng b/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
index ccb9fc0b1f..20e69dc51d 100644
--- a/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
@@ -6,3 +6,6 @@ $wb['pattern_txt'] = 'Vzor';
 $wb['action_txt'] = 'Akce';
 $wb['add_new_record_txt'] = 'Vytvořit obsahový filtr';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain.lng b/interface/web/mail/lib/lang/cz_mail_domain.lng
index 3a5212a66e..8b43f7f93f 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain.lng
@@ -4,20 +4,23 @@ $wb['domain_txt'] = 'Doména';
 $wb['type_txt'] = 'Typ';
 $wb['active_txt'] = 'Aktivní';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
-$wb['domain_error_unique'] = 'Dupolikování domény.';
+$wb['domain_error_unique'] = 'E-mailová doména s tímto doménovým jménem na serveru již existuje.';
 $wb['domain_error_regex'] = 'Chybný název domény.';
 $wb['client_txt'] = 'Klient';
-$wb['limit_maildomain_txt'] = 'Dosažen maximální počet email domén pro Váš účet.';
-$wb['dkim_txt'] = 'DKIM Aktivní';
-$wb['dkim_private_txt'] = 'DKIM Soukromý klíč';
-$wb['dkim_public_txt'] = 'DKIM veřejný klíčpouze pro informaci';
+$wb['limit_maildomain_txt'] = 'Dosažen maximální počet e-mailových domén pro Váš účet.';
+$wb['dkim_txt'] = 'DKIM aktivní';
+$wb['dkim_private_txt'] = 'DKIM soukromý klíč';
+$wb['dkim_public_txt'] = 'DKIM veřejný klíč pouze pro informaci';
 $wb['dkim_generate_txt'] = 'Generovat DKIM soukromý klíč';
-$wb['dkim_dns_txt'] = 'DNS Záznam';
+$wb['dkim_dns_txt'] = 'DNS záznam';
 $wb['dkim_private_key_error'] = 'Neplatný DKIM soukromý klíč';
 $wb['dkim_settings_txt'] = 'Zvýšení důvěryhodnosti e-mailů (DKIM)';
 $wb['dkim_selector_txt'] = 'DKIM selektor';
 $wb['dkim_selector_error'] = 'Neplatný DKIM selektor. Používejte pouze malá písmena, alfanumerické znaky (a-z , 0-9) do 63 znaků';
 $wb['policy_txt'] = 'Spamový filtr';
 $wb['no_policy'] = '- nepovoleno -';
-$wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.';
+$wb['error_not_allowed_server_id'] = 'Zvolený server není povolen pro tento účet.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
index c2aed68625..23e8a7c763 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
@@ -6,3 +6,6 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
index 1bb4a04577..e1b07668ee 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
@@ -9,3 +9,6 @@ $wb['limit_mailcatchall_txt'] = 'Dosažen maximální počet košů účtů pro
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_error_isemail'] = 'Cílová e-mailová adresa není platná.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
index ab502529af..6ef63cb9fb 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
@@ -7,3 +7,6 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'E-malová doména';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailový koš';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_list.lng
index 9bd9770e33..ed27cb59e2 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_list.lng
@@ -5,3 +5,6 @@ $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_forward.lng b/interface/web/mail/lib/lang/cz_mail_forward.lng
index f75cfc6a75..b50224c2e5 100644
--- a/interface/web/mail/lib/lang/cz_mail_forward.lng
+++ b/interface/web/mail/lib/lang/cz_mail_forward.lng
@@ -11,3 +11,6 @@ $wb['send_as_txt'] = 'Odeslat jako';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
 $wb['greylisting_txt'] = 'Povolit greylisting';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_forward_list.lng b/interface/web/mail/lib/lang/cz_mail_forward_list.lng
index 1fa1f2932f..71afea5bf8 100644
--- a/interface/web/mail/lib/lang/cz_mail_forward_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_forward_list.lng
@@ -4,5 +4,8 @@ $wb['active_txt'] = 'Aktivní';
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
 $wb['email_txt'] = 'E-mail';
-$wb['add_new_record_txt'] = 'Vytvořit nové přesměrování';
+$wb['add_new_record_txt'] = 'Vytvořit přesměrování';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_get.lng b/interface/web/mail/lib/lang/cz_mail_get.lng
index 68a4412960..9bb61e3785 100644
--- a/interface/web/mail/lib/lang/cz_mail_get.lng
+++ b/interface/web/mail/lib/lang/cz_mail_get.lng
@@ -15,5 +15,8 @@ $wb['destination_error_isemail'] = 'Nevybrán žádný cíl.';
 $wb['source_server_error_regex'] = 'POP3/IMAP server není validní doménový název.';
 $wb['source_read_all_txt'] = 'Načíst všechny e-maily (včetně již přečtené pošty)';
 $wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes';
-$wb['source_delete_note_txt'] = 'Prosím, zkontrolujte nejprve, zda příjímaní e-mailů funguje, než aktivujete tuto možnost.';
+$wb['source_delete_note_txt'] = 'Prosím, zkontrolujte nejprve, zda příjímání e-mailů funguje, než aktivujete tuto možnost.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_get_list.lng b/interface/web/mail/lib/lang/cz_mail_get_list.lng
index d1a412407d..46d02188fb 100644
--- a/interface/web/mail/lib/lang/cz_mail_get_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_get_list.lng
@@ -7,3 +7,6 @@ $wb['source_username_txt'] = 'Uživatelské jméno';
 $wb['destination_txt'] = 'Cíl';
 $wb['add_new_record_txt'] = 'Vytvořit účet';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
index e1f7dfbfa5..82270f0172 100644
--- a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
@@ -16,7 +16,10 @@ $wb['generate_password_txt'] = 'Generovat heslo';
 $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
-$wb['listname_error_unique'] = 'Na serveru je již shodný \\"název seznamu\\". Prosím, vyberte si jiný \\"název seznamu\\".';
+$wb['listname_error_unique'] = 'Na serveru je již shodný \"název seznamu\". Prosím, vyberte si jiný \"název seznamu\".';
 $wb['email_error_isemail'] = 'E-mailová adresa je neplatná.';
 $wb['mailinglist_txt'] = 'E-mailové konference';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
index db31273f59..7b73183a15 100644
--- a/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
@@ -3,3 +3,6 @@ $wb['list_head_txt'] = 'E-mailové konference';
 $wb['domain_txt'] = 'Doména';
 $wb['listname_txt'] = 'Název seznamu';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng b/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
index 1928c31e14..d4c0b004da 100644
--- a/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
+++ b/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
@@ -7,3 +7,6 @@ $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
 $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet e-mail filtrů pro Váš účet.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
index 3f8c4987a4..d9d6bdf7c9 100644
--- a/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
@@ -7,3 +7,6 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['add_new_record_txt'] = 'Vytvořit relay adresáta';
 $wb['access_txt'] = 'Přístup';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_spamfilter.lng b/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
index 4b6cc2b5d8..a19ab3acc0 100644
--- a/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
@@ -15,3 +15,6 @@ $wb['email_error_unique'] = 'Pro tuto email adresu již existuje filtrovací zá
 $wb['spam_redirect_maildir_purge_txt'] = 'Vyčistit poté mailový adresář';
 $wb['days_txt'] = 'Dny.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
index 0e4b885be1..556cf45932 100644
--- a/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
@@ -6,3 +6,6 @@ $wb['server_name_txt'] = 'server_name';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit nový záznam spamfiltru';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_transport.lng b/interface/web/mail/lib/lang/cz_mail_transport.lng
index 508ca764b6..1443a485b5 100644
--- a/interface/web/mail/lib/lang/cz_mail_transport.lng
+++ b/interface/web/mail/lib/lang/cz_mail_transport.lng
@@ -9,3 +9,6 @@ $wb['active_txt'] = 'Aktivní';
 $wb['limit_mailrouting_txt'] = 'Dosažen maximální počet e-mail směrování pro Váš účet.';
 $wb['transport_txt'] = 'Transport';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_transport_list.lng b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
index 8bdd31d7ce..a604d8dbec 100644
--- a/interface/web/mail/lib/lang/cz_mail_transport_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
@@ -7,3 +7,6 @@ $wb['transport_txt'] = 'E-mailové směrování';
 $wb['sort_order_txt'] = 'Třídit podle';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailové směrování';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng
index e0e2e8cf0f..bd96574776 100644
--- a/interface/web/mail/lib/lang/cz_mail_user.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user.lng
@@ -63,3 +63,6 @@ $wb['monthly_backup_txt'] = 'Měsíční';
 $wb['sender_cc_note_txt'] = '(Při posílání kopií na více e-mailových adres, oddělte čárkami.) ';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_filter.lng b/interface/web/mail/lib/lang/cz_mail_user_filter.lng
index c8d3a489a8..362bf50fde 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_filter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_filter.lng
@@ -16,14 +16,17 @@ $wb['is_txt'] = 'Je';
 $wb['begins_with_txt'] = 'Začíná na';
 $wb['ends_with_txt'] = 'Končí na';
 $wb['delete_txt'] = 'Smazat';
-$wb['move_stop_txt'] = 'Move to';
-$wb['header_txt'] = 'Header';
-$wb['size_over_txt'] = 'Email size over (KB)';
-$wb['size_under_txt'] = 'Email size under (KB)';
+$wb['move_stop_txt'] = 'Přesunout';
+$wb['header_txt'] = 'Hlavička';
+$wb['size_over_txt'] = 'Velikost e-mailu vetší jak (KB)';
+$wb['size_under_txt'] = 'Velikost e-mailu menší jak (KB)';
 $wb['localpart_txt'] = 'Localpart';
 $wb['domain_txt'] = 'Doména';
 $wb['keep_txt'] = 'Keep';
 $wb['reject_txt'] = 'Reject';
 $wb['stop_txt'] = 'Stop';
-$wb['move_to_txt'] = 'Move to';
+$wb['move_to_txt'] = 'Přesunout';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng b/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
index 8117c5a9f6..a620f6c1d1 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
@@ -3,5 +3,8 @@ $wb['rulename_txt'] = 'Název';
 $wb['add_new_record_txt'] = 'Vytvořit filtr';
 $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
-$wb['delete_confirmation'] = 'Opravdu smazat mailový filtr?';
+$wb['delete_confirmation'] = 'Opravdu smazat mailový filtr ?';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_list.lng b/interface/web/mail/lib/lang/cz_mail_user_list.lng
index e4e2241599..00b60185d3 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_list.lng
@@ -10,3 +10,6 @@ $wb['disablesmtp_txt'] = 'SMTP (odesílání)';
 $wb['disableimap_txt'] = 'IMAP';
 $wb['disablepop3_txt'] = 'POP3';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng b/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
index 50cbc31d5c..dacff95e69 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
@@ -6,3 +6,6 @@ $wb['last_month_txt'] = 'Minulý měsíc';
 $wb['this_year_txt'] = 'Tento rok';
 $wb['last_year_txt'] = 'Minulý rok';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_whitelist.lng b/interface/web/mail/lib/lang/cz_mail_whitelist.lng
index db55c18a0b..28a25cefb0 100644
--- a/interface/web/mail/lib/lang/cz_mail_whitelist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_whitelist.lng
@@ -7,3 +7,6 @@ $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
 $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
index 54fa0095a3..a0f773a645 100644
--- a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
@@ -5,6 +5,9 @@ $wb['server_id_txt'] = 'Server';
 $wb['source_txt'] = 'Adresy na bílé listině';
 $wb['type_txt'] = 'Typ';
 $wb['recipient_txt'] = 'Příjemce (adresát)';
-$wb['add_new_record_txt'] = 'Vytvořit záznam na bílou listinu';
+$wb['add_new_record_txt'] = 'Přidat na bílou listinu';
 $wb['access_txt'] = 'Přístup';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
index 4d47c28671..dc2bca81a2 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
@@ -10,3 +10,6 @@ $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
index 4599c7e9fb..21bd88f1f5 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
@@ -5,5 +5,8 @@ $wb['server_id_txt'] = 'Server';
 $wb['priority_txt'] = 'Priorita';
 $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-maily na černé listině';
-$wb['add_new_record_txt'] = 'Vytvořit záznam na černou listinu';
+$wb['add_new_record_txt'] = 'Přidat na černou listinu';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_config.lng b/interface/web/mail/lib/lang/cz_spamfilter_config.lng
index 6ee9156e77..6d7c98c354 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_config.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_config.lng
@@ -7,14 +7,17 @@ $wb['nameservers_txt'] = 'Jmenné servery';
 $wb['module_txt'] = 'Modul serveru';
 $wb['maildir_path_txt'] = 'Cesta k mail adresáři';
 $wb['homedir_path_txt'] = 'Cesta k domácímu adresáři';
-$wb['mailuser_uid_txt'] = 'Mail uživatel UID';
-$wb['mailuser_gid_txt'] = 'Mail uživatel GID';
-$wb['mailuser_name_txt'] = 'Mail uživatel jméno';
-$wb['mailuser_group_txt'] = 'Mail uživatel skupina';
+$wb['mailuser_uid_txt'] = 'E-mail uživatel UID';
+$wb['mailuser_gid_txt'] = 'E-mail uživatel GID';
+$wb['mailuser_name_txt'] = 'E-mail uživatel jméno';
+$wb['mailuser_group_txt'] = 'E-mail uživatel skupina';
 $wb['relayhost_txt'] = 'Relayhost';
 $wb['relayhost_user_txt'] = 'Relayhost uživatel';
 $wb['relayhost_password_txt'] = 'Relayhost heslo';
 $wb['mailbox_size_limit_txt'] = 'Limit velikosti e-mailové schránky';
 $wb['message_size_limit_txt'] = 'Limit velikosti zprávy';
-$wb['hostname_txt'] = 'Hostname';
+$wb['hostname_txt'] = 'Název hostitele';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
index fe2ee8d51c..10a4848a1d 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
@@ -3,3 +3,6 @@ $wb['list_head_txt'] = 'Konfigurace serveru';
 $wb['server_name_txt'] = 'Server';
 $wb['server_id_txt'] = 'server_id';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
index c5765e807f..9585b3c1c1 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
@@ -36,3 +36,6 @@ $wb['spam_admin_txt'] = 'SPAM admin';
 $wb['message_size_limit_txt'] = 'Limit velikosti zprávy';
 $wb['banned_rulenames_txt'] = 'Název pravidel zabanované';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
index 5b7cde522f..e36e787fdd 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
@@ -7,3 +7,6 @@ $wb['banned_files_lover_txt'] = 'Zabanované soubory';
 $wb['bad_header_lover_txt'] = 'Špatné hlavičky';
 $wb['add_new_record_txt'] = 'Vytvořit záznam politiky';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users.lng b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
index 3473064e21..ba347b8d6e 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_users.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
@@ -11,3 +11,6 @@ $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
index 5f823362cf..3e3530665f 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
@@ -8,3 +8,6 @@ $wb['fullname_txt'] = 'Jméno';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit spamfiltr uživatele';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
index 4d47c28671..dc2bca81a2 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
@@ -10,3 +10,6 @@ $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
index b65209df60..5f9327ff09 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
@@ -5,5 +5,8 @@ $wb['server_id_txt'] = 'Server';
 $wb['priority_txt'] = 'Priorita';
 $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-maily na bílé listině';
-$wb['add_new_record_txt'] = 'Vytvořit záznam na bílou listinu';
+$wb['add_new_record_txt'] = 'Přidat na bílou listinu';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
index b55af94171..454cc0ad78 100755
--- a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
@@ -6,3 +6,6 @@ $wb['email_txt'] = 'E-mailová adresa';
 $wb['used_txt'] = 'Využité místo';
 $wb['percentage_txt'] = 'Využité místo v %';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain.lng b/interface/web/mail/lib/lang/cz_xmpp_domain.lng
index 4a9b55de0c..a439629584 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain.lng
@@ -12,7 +12,7 @@ $wb['registration_message_txt'] = 'Registration Message';
 $wb['domain_admins_txt'] = 'Domain Admins (JIDs)';
 $wb['use_pubsub_txt'] = 'Enable Pubsub';
 $wb['use_proxy_txt'] = 'Enable Bytestream Proxy';
-$wb['use_anon_host_txt'] = 'Enable Anonymous Host';
+$wb['use_anon_host_txt'] = 'Povolit anonymní hostitele';
 $wb['use_vjud_txt'] = 'Enable VJUD User Directory';
 $wb['vjud_opt_mode_txt'] = 'VJUD Opt Mode';
 $wb['use_muc_host_txt'] = 'Enable Multi User Chatrooms';
@@ -53,10 +53,13 @@ $wb['ssl_locality_error_regex'] = 'Neplatný SSL řádek - Název města. Platn
 $wb['ssl_organisation_error_regex'] = 'Neplatný SSL řádek - Organizace. Platné znaky jsou: a-z, 0-9 a .,-_ (žádná diakritika)';
 $wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
 $wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['none_txt'] = 'None';
+$wb['none_txt'] = 'Žádný';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
 $wb['ssl_error_isemail'] = 'Please enter a valid email adress for generation of the SSL certificate';
 $wb['limit_xmppdomain_txt'] = 'The max. number of XMPP domains for your account is reached.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
index 24c75abe32..a1e2f90291 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
@@ -1,8 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'XMPP Domain';
+$wb['list_head_txt'] = 'XMPP domény';
 $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng b/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
index 8a2c15d6fa..23562607ff 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
@@ -1,7 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'XMPP Domain';
+$wb['list_head_txt'] = 'XMPP domény';
 $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_user.lng b/interface/web/mail/lib/lang/cz_xmpp_user.lng
index 4c7a3b639b..c7a404022e 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_user.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_user.lng
@@ -1,15 +1,18 @@
 <?php
-$wb['list_head_txt'] = 'XMPP User Accounts';
+$wb['list_head_txt'] = 'XMPP uživatelské účty';
 $wb['jid_txt'] = 'Jabber ID';
 $wb['active_txt'] = 'Aktivní';
-$wb['cryptpwd_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['error_no_pwd'] = 'Password is empty.';
-$wb['password_txt'] = 'Password';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['no_domain_perm'] = 'You have no permission for this domain.';
+$wb['cryptpwd_txt'] = 'Heslo';
+$wb['password_strength_txt'] = 'Bezpečnost hesla';
+$wb['error_no_pwd'] = 'Heslo je prázdné';
+$wb['password_txt'] = 'Heslo';
+$wb['generate_password_txt'] = 'Generovat heslo';
+$wb['repeat_password_txt'] = 'Opakujte heslo';
+$wb['password_mismatch_txt'] = 'Hesla se neshodují.';
+$wb['password_match_txt'] = 'Hesla se shodují.';
+$wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu.';
 $wb['limit_xmpp_user_txt'] = 'The max. number of xmpp accounts for your account is reached.';
 ?>
+
+
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_user_list.lng b/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
index 2e51bfacc8..daf1ded500 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
@@ -1,8 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'XMPP User Accounts';
+$wb['list_head_txt'] = 'XMPP uživatelské účty';
 $wb['jid_txt'] = 'Jabber ID';
 $wb['is_domain_admin_txt'] = 'Domain admin';
 $wb['is_muc_admin_txt'] = 'MUC admin';
-$wb['add_new_record_txt'] = 'Add new user';
+$wb['add_new_record_txt'] = 'Přidat uživatele';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz.lng b/interface/web/mailuser/lib/lang/cz.lng
index 8b4b58bc42..7665f8236a 100644
--- a/interface/web/mailuser/lib/lang/cz.lng
+++ b/interface/web/mailuser/lib/lang/cz.lng
@@ -7,3 +7,6 @@ $wb['Send copy'] = 'Poslat kopii na e-mail';
 $wb['Spamfilter'] = 'Spamový filtr';
 $wb['Email Filters'] = 'E-mailové filtry';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz_index.lng b/interface/web/mailuser/lib/lang/cz_index.lng
index 45af56ee8d..4e8b02ad5c 100644
--- a/interface/web/mailuser/lib/lang/cz_index.lng
+++ b/interface/web/mailuser/lib/lang/cz_index.lng
@@ -10,3 +10,6 @@ $wb['unlimited_txt'] = 'Neomezený';
 $wb['mb_txt'] = 'MB';
 $wb['none_txt'] = 'Nenastaveno';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
index ef3aeb42da..65a1aafc67 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
@@ -11,3 +11,6 @@ $wb['autoresponder_active'] = 'Povolit automatický odpovídač';
 $wb['now_txt'] = 'Nyní';
 $wb['autoresponder_subject_txt'] = 'Předmět e-mailu';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
index 57ecd90b9a..53183cf4eb 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
@@ -7,3 +7,6 @@ $wb['email_is_cc_error'] = 'Vyplněná e-mailová adresa a poslat kopii na e-mai
 $wb['name_optional_txt'] = '(Volitelné)';
 $wb['cc_note_txt'] = '(Při posílání kopií na více e-mailových adres, oddělte čárkami.)';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
index 27b54c1bc7..9588ed7f3a 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
@@ -19,3 +19,6 @@ $wb['move_to_txt'] = 'Přesunout do';
 $wb['delete_txt'] = 'Smazat';
 $wb['mailbox_filter_txt'] = 'Mailbox filter';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
index 25675fbe6d..b443b2ec7f 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
@@ -1,8 +1,11 @@
 <?php
 $wb['list_head_txt'] = 'E-mailová filtrovací pravidla';
 $wb['rulename_txt'] = 'Název pravidla';
-$wb['add_new_record_txt'] = 'Vytvořit nové pravidlo';
+$wb['add_new_record_txt'] = 'Vytvořit pravidlo';
 $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Opravdu chcete odstranit e-mail filter?';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
index d7072cfe52..5e18d934e4 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
@@ -9,3 +9,6 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
+
+
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
index 2a53036be6..cb903f9c79 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
@@ -5,3 +5,6 @@ $wb['email_txt'] = 'E-mail';
 $wb['no_policy'] = '- nepovoleno -';
 $wb['policy_txt'] = 'Politika';
 ?>
+
+
+
diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng
index 9424839d98..653836bfcf 100644
--- a/interface/web/monitor/lib/lang/cz.lng
+++ b/interface/web/monitor/lib/lang/cz.lng
@@ -114,8 +114,8 @@ $wb['monitor_serverstate_syslogunknown_txt'] = 'Systémový log: ???';
 $wb['monitor_serverstate_updatesok_txt'] = 'Systém je aktuální.';
 $wb['monitor_serverstate_updatesneeded_txt'] = 'Jedna nebo více komponent potřebují zaktualizovat';
 $wb['monitor_serverstate_updatesunknown_txt'] = 'Systémová aktualizace: ???';
-$wb['monitor_services_online_txt'] = 'Online';
-$wb['monitor_services_offline_txt'] = 'Offline';
+$wb['monitor_services_online_txt'] = 'Běží';
+$wb['monitor_services_offline_txt'] = 'Neběží';
 $wb['monitor_services_web_txt'] = 'Web-Server:';
 $wb['monitor_services_ftp_txt'] = 'FTP-Server:';
 $wb['monitor_services_smtp_txt'] = 'SMTP-Server:';
@@ -147,10 +147,10 @@ $wb['Show fail2ban-Log'] = 'Zobrazit Fail2Ban Log';
 $wb['Show IPTables'] = 'Zobrazit IPTables pravidla';
 $wb['Show OpenVz VE BeanCounter'] = 'Zobrazit OpenVz VE BeanCounter';
 $wb['Show Monit'] = 'Zobrazit Monit';
-$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
+$wb['no_monit_url_defined_txt'] = 'Monit URL adresa není nastavena.';
 $wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
 $wb['Show Munin'] = 'Zobrazit Munin';
-$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
+$wb['no_munin_url_defined_txt'] = 'Munin URL adresa není nastavena.';
 $wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
 $wb['no_data_database_size_txt'] = 'No data about the database usage available at the moment. Please check again later.';
 $wb['Show MongoDB-Log'] = 'Show MongoDB-Log';
@@ -161,3 +161,6 @@ $wb['monitor_database_domain_txt'] = 'Doména';
 $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:';
 $wb['monitor_title_mongodb_txt'] = 'MongoDB Log';
 ?>
+
+
+
diff --git a/interface/web/monitor/lib/lang/cz_datalog_list.lng b/interface/web/monitor/lib/lang/cz_datalog_list.lng
index c9e9a86555..ff7d2fe7c7 100644
--- a/interface/web/monitor/lib/lang/cz_datalog_list.lng
+++ b/interface/web/monitor/lib/lang/cz_datalog_list.lng
@@ -6,3 +6,6 @@ $wb['dbtable_txt'] = 'DB tabulka';
 $wb['action_txt'] = 'Akce';
 $wb['status_txt'] = 'Stav';
 ?>
+
+
+
diff --git a/interface/web/monitor/lib/lang/cz_syslog_list.lng b/interface/web/monitor/lib/lang/cz_syslog_list.lng
index 990662552b..7646dc32a1 100644
--- a/interface/web/monitor/lib/lang/cz_syslog_list.lng
+++ b/interface/web/monitor/lib/lang/cz_syslog_list.lng
@@ -5,3 +5,6 @@ $wb['server_id_txt'] = 'Server';
 $wb['loglevel_txt'] = 'Logovací úroveň';
 $wb['message_txt'] = 'Zpráva';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz.lng b/interface/web/sites/lib/lang/cz.lng
index 4c16438e34..96dc616e21 100644
--- a/interface/web/sites/lib/lang/cz.lng
+++ b/interface/web/sites/lib/lang/cz.lng
@@ -33,3 +33,6 @@ $wb['Update Packagelist'] = 'Aktualizace seznamu balíčků';
 $wb['Subdomain (Vhost)'] = 'Subdoména (Vhost)';
 $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng
index e6616393c9..c84d26d872 100644
--- a/interface/web/sites/lib/lang/cz_aps.lng
+++ b/interface/web/sites/lib/lang/cz_aps.lng
@@ -27,7 +27,7 @@ $wb['install_package_txt'] = 'Nainstalujte tento balíček';
 $wb['installation_txt'] = 'Instalace';
 $wb['install_location_txt'] = 'Umístění instalace';
 $wb['acceptance_txt'] = 'Souhlas';
-$wb['acceptance_text_txt'] = 'Yes, i\'ve read the license and agree.';
+$wb['acceptance_text_txt'] = 'Ano, četl jsem licenci a souhlasím.';
 $wb['install_language_txt'] = 'Jazyk rozhraní';
 $wb['new_database_password_txt'] = 'Nové databázové heslo';
 $wb['basic_settings_txt'] = 'Základní nastavení';
@@ -51,8 +51,11 @@ $wb['installation_task_txt'] = 'Instalace plánované';
 $wb['installation_error_txt'] = 'Chyba instalace';
 $wb['installation_success_txt'] = 'Nainstalované';
 $wb['installation_remove_txt'] = 'Odstranění plánu';
-$wb['packagelist_update_finished_txt'] = 'APS aktualizace seznamu balíčků dokončena.';
+$wb['packagelist_update_finished_txt'] = 'APS aktualizace seznamu balíčků byla dokončena.';
 $wb['btn_install_txt'] = 'Instalovat';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['limit_aps_txt'] = 'Max. počet APS  instancí u vašeho účtu je dosaženo.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_aps_instances_list.lng b/interface/web/sites/lib/lang/cz_aps_instances_list.lng
index 8d712878d7..6cd0317c31 100644
--- a/interface/web/sites/lib/lang/cz_aps_instances_list.lng
+++ b/interface/web/sites/lib/lang/cz_aps_instances_list.lng
@@ -9,3 +9,6 @@ $wb['pkg_delete_confirmation'] = 'Opravdu chcete smazat tuto instalaci ?';
 $wb['filter_txt'] = 'Hledat';
 $wb['delete_txt'] = 'Smazat';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_aps_packages_list.lng b/interface/web/sites/lib/lang/cz_aps_packages_list.lng
index 52ef6ebcd9..660f15079d 100644
--- a/interface/web/sites/lib/lang/cz_aps_packages_list.lng
+++ b/interface/web/sites/lib/lang/cz_aps_packages_list.lng
@@ -6,3 +6,6 @@ $wb['category_txt'] = 'Kategorie';
 $wb['status_txt'] = 'Odemčený';
 $wb['filter_txt'] = 'Hledat';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng b/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
index 8f4124b47e..c47ab8d9e9 100644
--- a/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
+++ b/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
@@ -5,3 +5,6 @@ $wb['btn_start_txt'] = 'Aktualizace seznamu balíčků';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['legend_txt'] = 'Zde si můžete aktualizovat seznam dostupných balíčků. Vezměte prosím na vědomí, že aktualizace může trvat až několik minut. Po spuštění aktualizace můžete následně opustit tuto sekci. Tento proces bude pokračovat na pozadí.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_backup_stats_list.lng b/interface/web/sites/lib/lang/cz_backup_stats_list.lng
index 29a84fd015..167b213fe1 100644
--- a/interface/web/sites/lib/lang/cz_backup_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_backup_stats_list.lng
@@ -8,3 +8,6 @@ $wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Velikost zálohy';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_cron.lng b/interface/web/sites/lib/lang/cz_cron.lng
index 05c62e7f01..c2b7e2e3d6 100644
--- a/interface/web/sites/lib/lang/cz_cron.lng
+++ b/interface/web/sites/lib/lang/cz_cron.lng
@@ -24,3 +24,6 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_cron_list.lng b/interface/web/sites/lib/lang/cz_cron_list.lng
index 5fdc8352f0..a55a4954fa 100644
--- a/interface/web/sites/lib/lang/cz_cron_list.lng
+++ b/interface/web/sites/lib/lang/cz_cron_list.lng
@@ -11,3 +11,6 @@ $wb['command_txt'] = 'Příkaz';
 $wb['add_new_cron_txt'] = 'Vytvořit cron úlohu';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_database.lng b/interface/web/sites/lib/lang/cz_database.lng
index 86a2ce0fc8..6a575ce7d0 100644
--- a/interface/web/sites/lib/lang/cz_database.lng
+++ b/interface/web/sites/lib/lang/cz_database.lng
@@ -44,6 +44,9 @@ $wb['no_dbuser_txt'] = 'Žádný';
 $wb['database_client_differs_txt'] = 'Klient mateřského webu a databáze se neshodují.';
 $wb['database_user_missing_txt'] = 'Prosím vyberte uživatele databáze pro tuto databázi.';
 $wb['limit_database_quota_txt'] = 'Kvóta databáze';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
 $wb['limit_database_quota_free_txt'] = 'Max. available DB quota ';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_database_admin_list.lng b/interface/web/sites/lib/lang/cz_database_admin_list.lng
index 79f4bd8d47..b6993ab20f 100644
--- a/interface/web/sites/lib/lang/cz_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_admin_list.lng
@@ -10,3 +10,6 @@ $wb['sys_groupid_txt'] = 'Klient';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['type_txt'] = 'Typ';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_database_list.lng b/interface/web/sites/lib/lang/cz_database_list.lng
index ca82f150d7..b81e2a201d 100644
--- a/interface/web/sites/lib/lang/cz_database_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_list.lng
@@ -9,3 +9,6 @@ $wb['add_new_record_txt'] = 'Vytvořit databázi';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['type_txt'] = 'Typ';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
index 3fcf8e5cf8..8f7ed8bb99 100644
--- a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
@@ -6,3 +6,6 @@ $wb['used_txt'] = 'Využité místo';
 $wb['quota_txt'] = 'Kvóta';
 $wb['percentage_txt'] = 'Využito v %';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_database_user.lng b/interface/web/sites/lib/lang/cz_database_user.lng
index 81c77a1a80..4773e8063a 100644
--- a/interface/web/sites/lib/lang/cz_database_user.lng
+++ b/interface/web/sites/lib/lang/cz_database_user.lng
@@ -22,3 +22,6 @@ $wb['globalsearch_searchfield_watermark_txt'] = 'Hledat';
 $wb['globalsearch_suggestions_text_txt'] = 'Návrhy';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
index 7a13c03697..0577343a90 100644
--- a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
@@ -4,3 +4,6 @@ $wb['database_user_txt'] = 'Uživatel databáze';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele databáze';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_database_user_list.lng b/interface/web/sites/lib/lang/cz_database_user_list.lng
index 1acb6ac4c1..c390336868 100644
--- a/interface/web/sites/lib/lang/cz_database_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_user_list.lng
@@ -3,3 +3,6 @@ $wb['list_head_txt'] = 'Uživatelé databáze';
 $wb['database_user_txt'] = 'Uživatelé databáze';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele databáze';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
index 74a8715cb5..fdd8c9fecd 100644
--- a/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
@@ -1,10 +1,12 @@
 <?php
-$wb['list_head_txt'] = 'FTP traffic';
+$wb['list_head_txt'] = 'FTP provoz';
 $wb['domain_txt'] = 'Doména';
-$wb['this_month_txt'] = 'This month';
-$wb['last_month_txt'] = 'Last month';
-$wb['this_year_txt'] = 'This year';
-$wb['last_year_txt'] = 'Last year';
-$wb['sum_txt'] = 'Sum (Download + Upload)';
+$wb['this_month_txt'] = 'Tento měsíc';
+$wb['last_month_txt'] = 'Minulý měsíc';
+$wb['this_year_txt'] = 'Tento rok';
+$wb['sum_txt'] = 'Součet (Stažení + Odeslání)';
 $wb['in_out_txt'] = 'DL/UL';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_ftp_user.lng b/interface/web/sites/lib/lang/cz_ftp_user.lng
index 768a05ae62..d3782faec9 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user.lng
@@ -33,3 +33,6 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['expires_txt'] = 'Expire at';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_ftp_user_list.lng b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
index 2b052e29c9..8d4bbd62f1 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
@@ -6,3 +6,6 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit FTP uživatele';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng
index eb66108057..b5023c4111 100644
--- a/interface/web/sites/lib/lang/cz_shell_user.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user.lng
@@ -34,3 +34,6 @@ $wb['shell_error_regex'] = 'Invalid shell';
 $wb['invalid_username_txt'] = 'Invalid Username';
 $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_shell_user_list.lng b/interface/web/sites/lib/lang/cz_shell_user_list.lng
index f67bb99050..2a27064153 100644
--- a/interface/web/sites/lib/lang/cz_shell_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user_list.lng
@@ -6,3 +6,6 @@ $wb['parent_domain_id_txt'] = 'Stránka';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit shell uživatele';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
index 8e3a8ccd4b..a7ac08727b 100644
--- a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
@@ -7,3 +7,6 @@ $wb['hard_txt'] = 'Kvóta max. obsazení';
 $wb['soft_txt'] = 'Kvóta pro upozornění';
 $wb['files_txt'] = 'Jednotlivé soubory';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
index f00b8a2e37..0ecdb6011d 100644
--- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
@@ -21,10 +21,10 @@ $wb['redirect_type_txt'] = 'Typ přesměrování';
 $wb['redirect_path_txt'] = 'Cesta přesměrování';
 $wb['active_txt'] = 'Aktivní';
 $wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Linux User';
-$wb['system_group_txt'] = 'Linux Group';
-$wb['ip_address_txt'] = 'IPv4-Address';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['system_user_txt'] = 'Linux Uživatel';
+$wb['system_group_txt'] = 'Linux Skupina';
+$wb['ip_address_txt'] = 'IPv4-Adresa';
+$wb['ipv6_address_txt'] = 'IPv6 adresa';
 $wb['vhost_type_txt'] = 'VHost Type';
 $wb['hd_quota_txt'] = 'Harddisk Quota';
 $wb['traffic_quota_txt'] = 'Traffic Quota';
@@ -71,8 +71,8 @@ $wb['stats_type_txt'] = 'Webstatistics program';
 $wb['custom_php_ini_txt'] = 'Vlastní nastavení php.ini';
 $wb['none_txt'] = 'Žádný';
 $wb['disabled_txt'] = 'Vypnuto';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
+$wb['no_redirect_txt'] = 'Žádné přesměrování';
+$wb['no_flag_txt'] = 'Žádný příznak';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
@@ -102,10 +102,10 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
 $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
 $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
 $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['generate_password_txt'] = 'Generovat heslo';
+$wb['repeat_password_txt'] = 'Opakujte heslo';
+$wb['password_mismatch_txt'] = 'Hesla se neshodují.';
+$wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
 $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
 $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
@@ -113,3 +113,6 @@ $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
 $wb['Domain'] = 'Přezdívky domén webové stránky';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
index 52941756f7..ca4ffb090a 100644
--- a/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
@@ -12,3 +12,6 @@ $wb['no_redirect_txt'] = 'Žádné přesměrování';
 $wb['no_flag_txt'] = 'Žádný příznak';
 $wb['none_txt'] = 'Žádná';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_backup_list.lng b/interface/web/sites/lib/lang/cz_web_backup_list.lng
index c26459c29a..e83e2ca616 100644
--- a/interface/web/sites/lib/lang/cz_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_backup_list.lng
@@ -14,8 +14,11 @@ $wb['backup_type_mysql'] = 'MySQL Databáze';
 $wb['backup_type_web'] = 'Soubory webových stránek';
 $wb['filesize_txt'] = 'Velikost souboru';
 $wb['delete_backup_txt'] = 'Smazat zálohu';
-$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.';
-$wb['delete_confirm_txt'] = 'Really delete this backup?';
+$wb['delete_info_txt'] = 'Bylo zahájeno odstranění zálohy. Tato akce může trvat několik minut než bude dokončena.';
+$wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng
index 24b80feb9c..eb21544b4c 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng
@@ -44,13 +44,13 @@ $wb['domain_error_unique'] = 'Webová stránka nebo sub / alias doména s tímto
 $wb['domain_error_regex'] = 'Neplatné doménové jméno.';
 $wb['host_txt'] = 'Host';
 $wb['redirect_error_regex'] = 'Neplatná cesta přesměrování. Platné přesměrování je například: /test/ nebo http://www.domain.tld/test/';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
+$wb['no_redirect_txt'] = 'Žádné přesměrování';
+$wb['no_flag_txt'] = 'Žádný příznak';
 $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
 $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
 $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['ipv6_address_txt'] = 'IPv6 adresa';
 $wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
 $wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
 $wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
@@ -76,7 +76,7 @@ $wb['ruby_txt'] = 'Ruby';
 $wb['stats_user_txt'] = 'Webstatistics username';
 $wb['stats_type_txt'] = 'Webstatistics program';
 $wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['none_txt'] = 'None';
+$wb['none_txt'] = 'Žádný';
 $wb['disabled_txt'] = 'Vypnuto';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
@@ -107,12 +107,15 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
 $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
 $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
 $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['generate_password_txt'] = 'Generovat heslo';
+$wb['repeat_password_txt'] = 'Opakujte heslo';
+$wb['password_mismatch_txt'] = 'Hesla se neshodují.';
+$wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
 $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
 $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
 $wb['Domain'] = 'Přezdívky domén webové stránky';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
index cae42bd466..8f537543a8 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
@@ -13,3 +13,6 @@ $wb['none_txt'] = 'Žádná';
 $wb['add_new_subdomain_txt'] = 'Vytvořit subdoménu';
 $wb['add_new_aliasdomain_txt'] = 'Vytvořit přezdívku domény';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_directive_snippets.lng b/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
index d2590e53cf..66cc55e2b3 100644
--- a/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
+++ b/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
@@ -1,3 +1,6 @@
 <?php
 $wb['directive_snippets_id_txt'] = 'Desired configuration';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng
index 83303f5f46..decc1d63b8 100644
--- a/interface/web/sites/lib/lang/cz_web_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain.lng
@@ -72,7 +72,7 @@ $wb['save_certificate_txt'] = 'Uložit certifikát';
 $wb['create_certificate_txt'] = 'Vytvořit certifikát';
 $wb['delete_certificate_txt'] = 'Smazat certifikát';
 $wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['ipv6_address_txt'] = 'IPv6 adresa';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO přesměrování';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
@@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.';
 $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.';
 $wb['ssl_key_txt'] = 'SSL klíč';
 $wb['perl_txt'] = 'Perl';
-$wb['fastcgi_php_version_txt'] = 'PHP verze';
+$wb['fastcgi_php_version_txt'] = 'Výběr PHP verze';
 $wb['pm_txt'] = 'PHP-FPM Process Manager';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
@@ -134,3 +134,6 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng b/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
index 33a836ae56..6226129c46 100644
--- a/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
@@ -7,3 +7,6 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_domain_list.lng b/interface/web/sites/lib/lang/cz_web_domain_list.lng
index 86968d01d3..d055823ece 100644
--- a/interface/web/sites/lib/lang/cz_web_domain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain_list.lng
@@ -6,3 +6,6 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder.lng b/interface/web/sites/lib/lang/cz_web_folder.lng
index 69310b5558..8eb5839931 100644
--- a/interface/web/sites/lib/lang/cz_web_folder.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder.lng
@@ -6,3 +6,6 @@ $wb['active_txt'] = 'Aktivní';
 $wb['path_error_regex'] = 'Neplatná cesta ke složce.';
 $wb['error_folder_already_protected_txt'] = 'Záznam pro tuto složku již existuje';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder_list.lng b/interface/web/sites/lib/lang/cz_web_folder_list.lng
index 216a483451..e7757544ac 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_list.lng
@@ -6,3 +6,6 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['path_txt'] = 'Cesta';
 $wb['add_new_record_txt'] = 'Vytvořit složku';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder_user.lng b/interface/web/sites/lib/lang/cz_web_folder_user.lng
index ca4cf5d9a6..c591203d35 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_user.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_user.lng
@@ -12,3 +12,6 @@ $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['no_folder_perm'] = 'Nemáte oprávnění pro tuto složku.';
 $wb['error_user_exists_already_txt'] = 'There is already a record for this user.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
index ee38e93c2f..096b3088b2 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
@@ -5,3 +5,6 @@ $wb['web_folder_id_txt'] = 'Složka';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele složky';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng b/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
index ed93596824..b00b493de1 100644
--- a/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
@@ -7,3 +7,6 @@ $wb['this_year_txt'] = 'Tento rok';
 $wb['last_year_txt'] = 'Minulý rok';
 $wb['sum_txt'] = 'Součet';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_subdomain.lng b/interface/web/sites/lib/lang/cz_web_subdomain.lng
index f01101f185..51648664f9 100644
--- a/interface/web/sites/lib/lang/cz_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_subdomain.lng
@@ -48,3 +48,6 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_subdomain_list.lng b/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
index 7e5774ad11..44bc60ce63 100644
--- a/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
@@ -6,3 +6,6 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Subdoména';
 $wb['add_new_record_txt'] = 'Vytvořit subdoménu';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
index 53cb9f322b..3060db7a81 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
@@ -77,7 +77,7 @@ $wb['save_certificate_txt'] = 'Uložit certifikát';
 $wb['create_certificate_txt'] = 'Vytvořit certifikát';
 $wb['delete_certificate_txt'] = 'Smazat certifikát';
 $wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['ipv6_address_txt'] = 'IPv6 adresa';
 $wb['nginx_directives_txt'] = 'nginx Directives';
 $wb['seo_redirect_txt'] = 'SEO přesměrování';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
@@ -98,7 +98,7 @@ $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.';
 $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.';
 $wb['ssl_key_txt'] = 'SSL klíč';
 $wb['perl_txt'] = 'Perl';
-$wb['fastcgi_php_version_txt'] = 'PHP verze';
+$wb['fastcgi_php_version_txt'] = 'Výběr PHP verze';
 $wb['pm_txt'] = 'PHP-FPM Process Manager';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
@@ -142,9 +142,12 @@ $wb['reset_client_data_txt'] = 'Obnovit údaje (resetovat)';
 $wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL';
 $wb['rewrite_to_https_txt'] = 'Přesměrovat HTTP na HTTPS';
 $wb['password_strength_txt'] = 'Síla hesla';
-$wb['directive_snippets_id_txt'] = 'Web server config';
+$wb['directive_snippets_id_txt'] = 'Výběr configurace webového serveru';
 $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
index 72121bb040..27572dca04 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
@@ -9,3 +9,6 @@ $wb['add_new_record_txt'] = 'Vytvořit webové stránky';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
index 3e9ce72e5c..607f6a6558 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
@@ -9,3 +9,6 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
index 4f5bbe1d56..839c40ff4c 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
@@ -25,10 +25,10 @@ $wb['redirect_type_txt'] = 'Typ přesměrování';
 $wb['redirect_path_txt'] = 'Cesta přesměrování';
 $wb['active_txt'] = 'Aktivní';
 $wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Linux User';
-$wb['system_group_txt'] = 'Linux Group';
-$wb['ip_address_txt'] = 'IPv4-Address';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['system_user_txt'] = 'Linux Uživatel';
+$wb['system_group_txt'] = 'Linux Skupina';
+$wb['ip_address_txt'] = 'IPv4-Adresa';
+$wb['ipv6_address_txt'] = 'IPv6 adresa';
 $wb['vhost_type_txt'] = 'VHost Type';
 $wb['hd_quota_txt'] = 'Harddisk Quota';
 $wb['traffic_quota_txt'] = 'Traffic Quota';
@@ -75,8 +75,8 @@ $wb['stats_type_txt'] = 'Webstatistics program';
 $wb['custom_php_ini_txt'] = 'Vlastní nastavení php.ini';
 $wb['none_txt'] = 'Žádný';
 $wb['disabled_txt'] = 'Vypnuto';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
+$wb['no_redirect_txt'] = 'Žádné přesměrování';
+$wb['no_flag_txt'] = 'Žádný příznak';
 $wb['save_certificate_txt'] = 'Uložit certifikát';
 $wb['create_certificate_txt'] = 'Vytvořit certifikát';
 $wb['delete_certificate_txt'] = 'Smazat certifikát';
@@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be
 $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
 $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.';
 $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.';
-$wb['fastcgi_php_version_txt'] = 'PHP verze';
+$wb['fastcgi_php_version_txt'] = 'Výběr PHP verze';
 $wb['pm_txt'] = 'PHP-FPM Process Manager';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
@@ -129,3 +129,6 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
index 86e9e18e7e..89341bde98 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
@@ -4,5 +4,8 @@ $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Subdoména';
-$wb['add_new_record_txt'] = 'Vytvořit novou poddoménu';
+$wb['add_new_record_txt'] = 'Vytvořit poddoménu';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_webdav_user.lng b/interface/web/sites/lib/lang/cz_webdav_user.lng
index 659cf3e8cc..f12b429e5b 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user.lng
@@ -19,3 +19,6 @@ $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 ?>
+
+
+
diff --git a/interface/web/sites/lib/lang/cz_webdav_user_list.lng b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
index 01a39a5925..8d92b5fcb6 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
@@ -1,8 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'Webdav uživatelé';
+$wb['list_head_txt'] = 'WebDAV uživatelé';
 $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit WebDAV uživatele';
 ?>
+
+
+
diff --git a/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
index cff29d541a..6049dfd80f 100644
--- a/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
+++ b/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
@@ -6,3 +6,6 @@ $wb['password_strength_3_txt'] = 'Dobré';
 $wb['password_strength_4_txt'] = 'Silné';
 $wb['password_strength_5_txt'] = 'Velmi silné';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz.lng b/interface/web/tools/lib/lang/cz.lng
index 66bcaf49ae..96d68ff1c8 100644
--- a/interface/web/tools/lib/lang/cz.lng
+++ b/interface/web/tools/lib/lang/cz.lng
@@ -11,3 +11,6 @@ $wb['ISPConfig 3 mail'] = 'ISPConfig 3 vzdalený e-mail server';
 $wb['PDNS Tupa'] = 'PowerDNS Tupa';
 $wb['Interface'] = 'Rozhraní';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz_import_ispconfig.lng b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
index 8ebf71795c..23ae681167 100644
--- a/interface/web/tools/lib/lang/cz_import_ispconfig.lng
+++ b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
@@ -21,3 +21,6 @@ $wb['import_forward_txt'] = 'Import forward';
 $wb['import_user_filter_txt'] = 'Importovat uživatelský filter';
 $wb['import_spamfilter_txt'] = 'Importovat spamový filter';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz_import_vpopmail.lng b/interface/web/tools/lib/lang/cz_import_vpopmail.lng
index c9a9cb32c4..6f1fefa86f 100644
--- a/interface/web/tools/lib/lang/cz_import_vpopmail.lng
+++ b/interface/web/tools/lib/lang/cz_import_vpopmail.lng
@@ -5,3 +5,6 @@ $wb['btn_start_txt'] = 'Start Import';
 $wb['btn_connect_txt'] = 'Connect to remote server';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz_index.lng b/interface/web/tools/lib/lang/cz_index.lng
index 5ebf1ec341..22c8134fd8 100644
--- a/interface/web/tools/lib/lang/cz_index.lng
+++ b/interface/web/tools/lib/lang/cz_index.lng
@@ -2,3 +2,6 @@
 $wb['page_head_txt'] = 'ISPConfig nástroje';
 $wb['page_desc_txt'] = 'Změna uživatelského nastavení';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz_interface.lng b/interface/web/tools/lib/lang/cz_interface.lng
index 507b7c3cbe..581feca0ce 100644
--- a/interface/web/tools/lib/lang/cz_interface.lng
+++ b/interface/web/tools/lib/lang/cz_interface.lng
@@ -5,3 +5,6 @@ $wb['language_txt'] = 'Jazyk';
 $wb['startmodule_txt'] = 'Výchozí modul po přihlášení';
 $wb['app_theme_txt'] = 'Výchozí grafické téma';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz_resync.lng b/interface/web/tools/lib/lang/cz_resync.lng
index 808991847d..ecb5a84eda 100644
--- a/interface/web/tools/lib/lang/cz_resync.lng
+++ b/interface/web/tools/lib/lang/cz_resync.lng
@@ -1,21 +1,21 @@
 <?php
 $wb['head_txt'] = 'Resynchronizační nástroje';
-$wb['legend_txt'] = 'Resynchronizace';
-$wb['resync_sites_txt'] = 'Resynchronizovat webové stránky';
-$wb['resync_ftp_txt'] = 'Resynchronizovat FTP uživatele';
-$wb['resync_shell_txt'] = 'Resynchronizovat shell uživatele';
-$wb['resync_cron_txt'] = 'Resynchronizovat cron úlohy';
-$wb['resync_db_txt'] = 'Resynchronizovat clientdb konfigurace';
-$wb['resync_mailbox_txt'] = 'Resynchronizovat e-mailové schránky';
+$wb['legend_txt'] = 'Resynchronizovat';
+$wb['resync_sites_txt'] = 'Webové stránky';
+$wb['resync_ftp_txt'] = 'FTP uživatele';
+$wb['resync_shell_txt'] = 'Shell uživatele';
+$wb['resync_cron_txt'] = 'Cron úlohy';
+$wb['resync_db_txt'] = 'Databáze a uživatele databází';
+$wb['resync_mailbox_txt'] = 'E-mailové schránky';
 $wb['resync_dns_txt'] = 'DNS záznamy';
 $wb['btn_start_txt'] = 'Zahájit';
 $wb['btn_cancel_txt'] = 'Zrušit';
-$wb['resync_client_txt'] = 'Resync Client records';
+$wb['resync_client_txt'] = 'Evidence klientů a distributorů';
 $wb['resync_all_txt'] = 'Všechny služby';
 $wb['resync_webdav_txt'] = 'WebDAV-Users';
-$wb['resync_mail_txt'] = 'Maildomains';
-$wb['resync_mailfilter_txt'] = 'Mailfilter';
-$wb['resync_mailinglist_txt'] = 'Mailinglist';
+$wb['resync_mail_txt'] = 'E-mailové domény';
+$wb['resync_mailfilter_txt'] = 'E-mailové filtry';
+$wb['resync_mailinglist_txt'] = 'E-mailové konference';
 $wb['resync_vserver_txt'] = 'vServer';
 $wb['all_active_txt'] = 'All active server';
 $wb['all_active_mail_txt'] = 'All active Mail-Server';
@@ -24,26 +24,29 @@ $wb['all_active_dns_txt'] = 'All active DNS-Server';
 $wb['all_active_file_txt'] = 'All active File-Server';
 $wb['all_active_db_txt'] = 'All active Database-Server';
 $wb['all_active_vserver_txt'] = 'All active vServer';
-$wb['do_sites_txt'] = 'Resynced Website';
-$wb['do_ftp_txt'] = 'Resynced FTP user';
-$wb['do_webdav_txt'] = 'Resynced WebDav user';
-$wb['do_shell_txt'] = 'Resynced Shell user';
-$wb['do_cron_txt'] = 'Resynced Cronjob';
-$wb['do_db_user_txt'] = 'Resynced Database User';
-$wb['do_db_txt'] = 'Resynced Database';
-$wb['do_mail_txt'] = 'Resynced Maildomain';
-$wb['do_mailbox_txt'] = 'Resynced Mailbox';
-$wb['do_mail_alias_txt'] = 'Resynced Alias';
+$wb['do_sites_txt'] = 'Proběhla resynchronizace webových stránek';
+$wb['do_ftp_txt'] = 'Proběhla resynchronizace FTP uživatelů';
+$wb['do_webdav_txt'] = 'Proběhla resynchronizace WebDav uživatelů';
+$wb['do_shell_txt'] = 'Proběhla resynchronizace Shell uživatelů';
+$wb['do_cron_txt'] = 'Proběhla resynchronizace Cron pracovních úloh';
+$wb['do_db_user_txt'] = 'Proběhla resynchronizace databázových uživatelů';
+$wb['do_db_txt'] = 'Proběhla resynchronizace databází';
+$wb['do_mail_txt'] = 'Proběhla resynchronizace e-mailovových domén';
+$wb['do_mailbox_txt'] = 'Proběhla resynchronizace e-mailovových schránek';
+$wb['do_mail_alias_txt'] = 'Proběhla resynchronizace e-mailovových přezdívek';
 $wb['do_mail_access_txt'] = 'Resynced Mail access';
 $wb['do_mail_contentfilter_txt'] = 'Resynced Content Filter';
 $wb['do_mail_userfilter_txt'] = 'Resynced Mail User Filter';
-$wb['do_mailinglist_txt'] = 'Resynced Mailinglist';
-$wb['do_dns_txt'] = 'Resynced DNS zone';
-$wb['do_vserver_txt'] = 'Resynced vServer';
-$wb['do_clients_txt'] = 'Resynced clients and reseller';
+$wb['do_mailinglist_txt'] = 'Proběhla resynchronizace e-mailovových konferencí';
+$wb['do_dns_txt'] = 'Proběhla resynchronizace DNS zón';
+$wb['do_vserver_txt'] = 'Proběhla resynchronizace vServer';
+$wb['do_clients_txt'] = 'Proběhla resynchronizace klientů a distributorů ';
 $wb['no_results_txt'] = 'Nic nebylo nalezeno';
 $wb['do_mail_spamfilter_policy_txt'] = 'Resynced Spamfilter Policies';
 $wb['do_mail_spamfilter_txt'] = 'Resynced Spamfilter';
-$wb['do_mailget_txt'] = 'Resynced Fetchmail';
-$wb['resync_mailget_txt'] = 'Fetchmail';
+$wb['do_mailget_txt'] = 'Proběhla resynchronizace externího získávání e-mailů';
+$wb['resync_mailget_txt'] = 'Externí získávání e-mailů';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz_tpl_default.lng b/interface/web/tools/lib/lang/cz_tpl_default.lng
index 0bc79e972f..946633e530 100644
--- a/interface/web/tools/lib/lang/cz_tpl_default.lng
+++ b/interface/web/tools/lib/lang/cz_tpl_default.lng
@@ -5,3 +5,6 @@ $wb['no_settings_txt'] = 'Nejsou žádné nastavení pro výchozí motiv.';
 $wb['btn_start_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
+
+
diff --git a/interface/web/tools/lib/lang/cz_usersettings.lng b/interface/web/tools/lib/lang/cz_usersettings.lng
index 98dd4ed8e7..885a353a79 100644
--- a/interface/web/tools/lib/lang/cz_usersettings.lng
+++ b/interface/web/tools/lib/lang/cz_usersettings.lng
@@ -1,5 +1,4 @@
 <?php
-$wb['password_txt'] = 'Heslo';
 $wb['password_strength_txt'] = 'Bezpečnost hesla';
 $wb['language_txt'] = 'Jazyk';
 $wb['password_mismatch'] = 'Hesla se neshodují.';
@@ -9,4 +8,8 @@ $wb['generate_password_txt'] = 'Generovat heslo';
 $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
+$wb['password_txt'] = 'Heslo';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz.lng b/interface/web/vm/lib/lang/cz.lng
index 030d6b37cf..88b403dc50 100644
--- a/interface/web/vm/lib/lang/cz.lng
+++ b/interface/web/vm/lib/lang/cz.lng
@@ -2,6 +2,9 @@
 $wb['Virtual Servers'] = 'Virtual Servers';
 $wb['OS Templates'] = 'OS Å ablony';
 $wb['VM Templates'] = 'VM Å ablony';
-$wb['IP addresses'] = 'IP addresses';
+$wb['IP addresses'] = 'IP adresy';
 $wb['OpenVZ'] = 'OpenVZ';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_action.lng b/interface/web/vm/lib/lang/cz_openvz_action.lng
index 3e2e3e0b84..6073b0fa05 100644
--- a/interface/web/vm/lib/lang/cz_openvz_action.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_action.lng
@@ -14,3 +14,6 @@ $wb['ostemplate_name_error'] = 'The OSTemplate name conatains unallowed characte
 $wb['ostemplate_name_unique_error'] = 'There is already a OSTemplate with that name.';
 $wb['ostemplate_exec_txt'] = 'The command to create a OSTemplate has been sent to the host server. It will take several minutes until the OSTemplate has been created.';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ip.lng b/interface/web/vm/lib/lang/cz_openvz_ip.lng
index 6016681df8..f038e91c7b 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ip.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ip.lng
@@ -1,9 +1,12 @@
 <?php
 $wb['server_id_txt'] = 'Hostserver';
-$wb['ip_address_txt'] = 'IP address';
+$wb['ip_address_txt'] = 'IP adresa';
 $wb['vm_id_txt'] = 'Virtual server';
-$wb['reserved_txt'] = 'Reserved';
+$wb['reserved_txt'] = 'Rezervováno';
 $wb['ip_error_wrong'] = 'Please fill in a valid IPv4 address.';
 $wb['ip_error_unique'] = 'This IP address does already exist.';
-$wb['IP address'] = 'IP address';
+$wb['IP address'] = 'IP adresa';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ip_list.lng b/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
index e6a3a68c2c..e8d7171883 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
@@ -1,7 +1,10 @@
 <?php
 $wb['list_head_txt'] = 'OpenVZ IP addresses';
 $wb['server_id_txt'] = 'Server';
-$wb['ip_address_txt'] = 'IP address';
-$wb['reserved_txt'] = 'Reserved';
+$wb['ip_address_txt'] = 'IP adresa';
+$wb['reserved_txt'] = 'Rezervováno';
 $wb['vm_id_txt'] = 'VM';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng b/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
index 72838a20de..fbe9c5c0b2 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
@@ -9,3 +9,6 @@ $wb['template_name_error_empty'] = 'Template name is empty.';
 $wb['template_file_error_empty'] = 'Template filename is empty.';
 $wb['Template'] = 'Å ablona';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
index 7705a4d18f..e50fd9c550 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
@@ -6,3 +6,6 @@ $wb['server_id_txt'] = 'Server';
 $wb['allservers_txt'] = 'Exists on all servers';
 $wb['ostemplate_id_txt'] = 'ID';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_template.lng b/interface/web/vm/lib/lang/cz_openvz_template.lng
index 773c7e40b6..0af3295029 100644
--- a/interface/web/vm/lib/lang/cz_openvz_template.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_template.lng
@@ -93,5 +93,8 @@ $wb['features_txt'] = 'Features';
 $wb['iptables_txt'] = 'IP Tables';
 $wb['custom_txt'] = 'Custom settings';
 $wb['custom_error'] = 'Not allowed in Custom settings: ';
-$wb['hostname_txt'] = 'Hostname';
+$wb['hostname_txt'] = 'Název hostitele';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_template_list.lng b/interface/web/vm/lib/lang/cz_openvz_template_list.lng
index 89c11ef5d1..32eb54572d 100644
--- a/interface/web/vm/lib/lang/cz_openvz_template_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_template_list.lng
@@ -3,3 +3,6 @@ $wb['list_head_txt'] = 'OpenVZ Virtual Machine Template';
 $wb['active_txt'] = 'Aktivní';
 $wb['template_name_txt'] = 'Název šablony';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_vm.lng b/interface/web/vm/lib/lang/cz_openvz_vm.lng
index c7256e1c1c..154c124718 100644
--- a/interface/web/vm/lib/lang/cz_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_vm.lng
@@ -12,7 +12,7 @@ $wb['capability_txt'] = 'Capability';
 $wb['server_id_txt'] = 'Hostserver';
 $wb['ostemplate_id_txt'] = 'OSTemplate';
 $wb['template_id_txt'] = 'Å ablona';
-$wb['ip_address_txt'] = 'IP address';
+$wb['ip_address_txt'] = 'IP adresa';
 $wb['vm_password_txt'] = 'VM Password';
 $wb['start_boot_txt'] = 'Start at boot';
 $wb['active_txt'] = 'Aktivní';
@@ -40,6 +40,9 @@ $wb['iptables_txt'] = 'IP Tables';
 $wb['custom_txt'] = 'Custom settings';
 $wb['bootorder_txt'] = 'Boot order priority';
 $wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boot order priority';
-$wb['hostname_txt'] = 'Hostname';
-$wb['hostname_error_empty'] = 'Hostname is empty.';
+$wb['hostname_txt'] = 'Název hostitele';
+$wb['hostname_error_empty'] = 'Název hostitele je prázdný';
 ?>
+
+
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_vm_list.lng b/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
index 94ffcba534..56655e6f1d 100644
--- a/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
@@ -4,7 +4,10 @@ $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Hostserver';
 $wb['ostemplate_id_txt'] = 'OSTemplate';
 $wb['template_id_txt'] = 'Å ablona';
-$wb['ip_address_txt'] = 'IP address';
+$wb['ip_address_txt'] = 'IP adresa';
 $wb['veid_txt'] = 'VEID';
-$wb['hostname_txt'] = 'Hostname';
+$wb['hostname_txt'] = 'Název hostitele';
 ?>
+
+
+
-- 
GitLab


From d1d4dfb6c5542ece7baf11d4d8e6424b861dc7eb Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 15 Aug 2016 12:37:02 +0200
Subject: [PATCH 168/313] Updated TR language files.

---
 interface/lib/lang/tr.lng                     |   2 +-
 interface/web/admin/lib/lang/tr_firewall.lng  |   4 +-
 interface/web/admin/lib/lang/tr_iptables.lng  |   2 +-
 .../web/admin/lib/lang/tr_remote_action.lng   |   4 +-
 .../web/admin/lib/lang/tr_remote_user.lng     |   8 +-
 .../web/admin/lib/lang/tr_server_config.lng   |   4 +-
 .../web/admin/lib/lang/tr_system_config.lng   |  12 +-
 interface/web/admin/lib/lang/tr_users.lng     |   2 +-
 interface/web/client/lib/lang/tr_client.lng   |  10 +-
 .../client/lib/lang/tr_client_template.lng    |   2 +-
 interface/web/client/lib/lang/tr_reseller.lng |  10 +-
 interface/web/dns/lib/lang/tr_dns_a.lng       |   2 +-
 interface/web/dns/lib/lang/tr_dns_aaaa.lng    |   2 +-
 interface/web/dns/lib/lang/tr_dns_cname.lng   |   2 +-
 interface/web/dns/lib/lang/tr_dns_soa.lng     |   2 +-
 interface/web/dns/lib/lang/tr_dns_txt.lng     |   6 +-
 interface/web/dns/lib/lang/tr_dns_wizard.lng  |   4 +-
 interface/web/login/lib/lang/tr.lng           |   2 +-
 interface/web/login/lib/lang/tr_login_as.lng  |   6 +-
 interface/web/mail/lib/lang/tr_mail_alias.lng |   2 +-
 .../web/mail/lib/lang/tr_mail_domain.lng      |  10 +-
 .../web/mail/lib/lang/tr_mail_forward.lng     |   2 +-
 interface/web/mail/lib/lang/tr_mail_get.lng   |   2 +-
 interface/web/mail/lib/lang/tr_mail_user.lng  |  28 +--
 .../web/mail/lib/lang/tr_mail_user_filter.lng |  18 +-
 .../web/mailuser/lib/lang/tr_mail_user_cc.lng |   2 +-
 interface/web/sites/lib/lang/tr.lng           |   2 +-
 interface/web/sites/lib/lang/tr_aps.lng       |  16 +-
 .../web/sites/lib/lang/tr_web_aliasdomain.lng | 190 ++++++++--------
 .../lib/lang/tr_web_aliasdomain_list.lng      |  22 +-
 .../web/sites/lib/lang/tr_web_backup_list.lng |   4 +-
 .../web/sites/lib/lang/tr_web_domain.lng      | 206 ++++++++---------
 .../lib/lang/tr_web_domain_admin_list.lng     |  14 +-
 .../web/sites/lib/lang/tr_web_domain_list.lng |  10 +-
 .../web/sites/lib/lang/tr_web_subdomain.lng   |  58 ++---
 .../sites/lib/lang/tr_web_subdomain_list.lng  |  10 +-
 .../sites/lib/lang/tr_web_vhost_subdomain.lng | 212 +++++++++---------
 .../lib/lang/tr_web_vhost_subdomain_list.lng  |  12 +-
 .../web/tools/lib/lang/tr_usersettings.lng    |   2 +-
 .../web/vm/lib/lang/tr_openvz_template.lng    |   2 +-
 interface/web/vm/lib/lang/tr_openvz_vm.lng    |  10 +-
 41 files changed, 460 insertions(+), 460 deletions(-)

diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng
index 0fe170b1f4..eb5d1a03d8 100644
--- a/interface/lib/lang/tr.lng
+++ b/interface/lib/lang/tr.lng
@@ -146,7 +146,7 @@ $wb['strength_2'] = 'Yeterli';
 $wb['strength_3'] = 'İyi';
 $wb['strength_4'] = 'Güçlü';
 $wb['strength_5'] = 'Çok Güçlü';
-$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \\"{strength}\\" güçlüğünde olmalı.';
+$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \"{strength}\" güçlüğünde olmalı.';
 $wb['weak_password_length_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda olmalı.';
 $wb['security_check1_txt'] = 'Güvenlik iznini denetle:';
 $wb['security_check2_txt'] = 'başarısız.';
diff --git a/interface/web/admin/lib/lang/tr_firewall.lng b/interface/web/admin/lib/lang/tr_firewall.lng
index a45998d4e1..8db312ff05 100644
--- a/interface/web/admin/lib/lang/tr_firewall.lng
+++ b/interface/web/admin/lib/lang/tr_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Virgül ile ayırarak yazın';
 $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın';
 $wb['active_txt'] = 'Etkin';
 $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.';
-$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
-$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
+$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
+$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_iptables.lng b/interface/web/admin/lib/lang/tr_iptables.lng
index 219d85f567..dcec556485 100644
--- a/interface/web/admin/lib/lang/tr_iptables.lng
+++ b/interface/web/admin/lib/lang/tr_iptables.lng
@@ -9,5 +9,5 @@ $wb['state_txt'] = 'Durum';
 $wb['destination_ip_txt'] = 'Hedef Adresi';
 $wb['source_ip_txt'] = 'Kaynak Adresi';
 $wb['active_txt'] = 'Etkin';
-$wb['iptables_error_unique'] = 'Bu sunucu için zaten bir güvenlik kaydı var.';
+$wb['iptables_error_unique'] = 'Bu sunucu için zaten bir güvenlik duvarı kaydı var.';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_remote_action.lng b/interface/web/admin/lib/lang/tr_remote_action.lng
index c067f67e88..2f124714e1 100644
--- a/interface/web/admin/lib/lang/tr_remote_action.lng
+++ b/interface/web/admin/lib/lang/tr_remote_action.lng
@@ -2,11 +2,11 @@
 $wb['select_server_txt'] = 'Sunucu Seçin';
 $wb['btn_do_txt'] = 'İşlemi Başlatın';
 $wb['do_osupdate_caption'] = 'Uzak sunucudaki işletim sistemini güncelleyin';
-$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \\"aptitude -y upgrade\\" komutunu yürütür.<br><br><strong>OLUŞABİLECEK RİSKLER SİZE AİTTİR!</strong>';
+$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \"aptitude -y upgrade\" komutunu yürütür.<br><br><strong>OLUŞABİLECEK RİSKLER SİZE AİTTİR!</strong>';
 $wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelleyin';
 $wb['do_ispcupdate_desc'] = 'Bu işlem seçilmiş sunucuda ISPConfig3 güncellemesini yürütür.<br><br><strong>OLUŞABİLECEK RİSKLER SÜZE AİTTİR!</strong>';
 $wb['action_scheduled'] = 'İşlem yürütülmek üzere zamanlandı';
 $wb['select_all_server'] = 'Tüm Sunucularda';
 $wb['ispconfig_update_title'] = 'ISPConfig güncelleme yönergeleri';
-$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />komutunu yürütün.<br /><br /><a href=\\"http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\\" target=\\"_blank\\">Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın</a>';
+$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />komutunu yürütün.<br /><br /><a href=\"http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\" target=\"_blank\">Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın</a>';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_remote_user.lng b/interface/web/admin/lib/lang/tr_remote_user.lng
index 6bc88c270b..998d344653 100644
--- a/interface/web/admin/lib/lang/tr_remote_user.lng
+++ b/interface/web/admin/lib/lang/tr_remote_user.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['username_txt'] = 'Kullanıcı adı';
-$wb['password_txt'] = 'Parola';
-$wb['function_txt'] = 'İşlevler';
+$wb['username_txt'] = 'Kullanıcı adı:';
+$wb['password_txt'] = 'Parola:';
+$wb['function_txt'] = 'İşlevler:';
 $wb['username_error_unique'] = 'Bu kullanıcı adı zaten var';
 $wb['username_error_empty'] = 'Kullanıcı adı boş olamaz';
 $wb['password_error_empty'] = 'Parola boÅŸ olamaz';
-$wb['password_strength_txt'] = 'Parola Güçlüğü';
+$wb['password_strength_txt'] = 'Parola Güçlüğü:';
 $wb['Mail domain functions'] = 'Posta alan adı işlevleri';
 $wb['Mail mailing list functions'] = 'Posta posta listesi iÅŸlevleri';
 $wb['Mail user functions'] = 'Posta kullanıcı işlevleri';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index f293bd2e4e..d8d90a6f34 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -152,7 +152,7 @@ $wb['try_rescue_txt'] = 'Hizmetler izlensin ve sorun çıktığında yeniden ba
 $wb['do_not_try_rescue_httpd_txt'] = 'HTTPD izlenmesin';
 $wb['do_not_try_rescue_mysql_txt'] = 'MySQL izlenmesin';
 $wb['do_not_try_rescue_mail_txt'] = 'E-posta izlenmesin';
-$wb['rescue_description_txt'] = '<b>Uyarı:</b> mysql sunucusunu kapatmak istiyorsanız \\"MySQL izlenmesin\\" seçeneğini işaretleyip 2-3 dakika bekleyin.<br>2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!';
+$wb['rescue_description_txt'] = '<b>Uyarı:</b> mysql sunucusunu kapatmak istiyorsanız \"MySQL izlenmesin\" seçeneğini işaretleyip 2-3 dakika bekleyin.<br>2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!';
 $wb['enable_sni_txt'] = 'SNI Kullanılsın';
 $wb['set_folder_permissions_on_update_txt'] = 'Güncellenirken klasör izinleri ayarlansın';
 $wb['add_web_users_to_sshusers_group_txt'] = 'Web kullanıcıları -sshusers- grubuna eklensin';
@@ -250,6 +250,7 @@ $wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped
 $wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.';
 $wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.';
 $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch';
+$wb['backup_time_txt'] = 'Backup time';
 $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['v6_prefix_txt'] = 'IPv6 Prefix';
 $wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror';
@@ -280,5 +281,4 @@ $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
 $wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
 $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
-$wb['backup_time_txt'] = 'Backup time';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng
index bd47eb1935..bbcb6a5ce2 100644
--- a/interface/web/admin/lib/lang/tr_system_config.lng
+++ b/interface/web/admin/lib/lang/tr_system_config.lng
@@ -13,11 +13,6 @@ $wb['dbuser_prefix_txt'] = 'Veritabanı kullanıcısı ön eki';
 $wb['shelluser_prefix_txt'] = 'Kabuk kullanıcısı ön eki';
 $wb['webdavuser_prefix_txt'] = 'Webdav kullanıcısı ön eki';
 $wb['ftpuser_prefix_txt'] = 'FTP kullanıcısı ön eki';
-$wb['company_name_txt'] = 'Company Name for the page title';
-$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites';
-$wb['custom_login_text_txt'] = 'Custom Text on Login-Page';
-$wb['custom_login_link_txt'] = 'Custom Link on Login-Page';
-$wb['login_link_error_regex'] = 'Invalid Link for Custom Login';
 $wb['vhost_subdomains_txt'] = 'Alt alanlar web sitesi ÅŸeklinde oluÅŸturulsun';
 $wb['vhost_subdomains_note_txt'] = 'Sistemde SSunucu alt alan adları varken bu seçenek devre dışı bırakılamaz!';
 $wb['dbname_prefix_error_regex'] = 'Veritabanı adı ön ekinde izin verilmeyen karakterler var';
@@ -69,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Müşteri no kalıbında geçersi
 $wb['customer_no_start_txt'] = 'Müşteri No Başlangıç Değeri';
 $wb['customer_no_counter_txt'] = 'Müşteri No Sayacı';
 $wb['session_timeout_txt'] = 'Oturum Zaman Aşımı (dakika)';
-$wb['session_allow_endless_txt'] = '\\"Oturum açık kalsın\\" kullanılabilsin';
+$wb['session_allow_endless_txt'] = '\"Oturum açık kalsın\" kullanılabilsin';
 $wb['No'] = 'No';
 $wb['min_password_length_txt'] = 'En Az Parola UzunluÄŸu';
 $wb['min_password_strength_txt'] = 'En Az Parola Güçlüğü';
@@ -81,4 +76,9 @@ $wb['default_webserver_txt'] = 'Default Webserver';
 $wb['default_dnsserver_txt'] = 'Default DNS Server';
 $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
 $wb['default_dbserver_txt'] = 'Default Database Server';
+$wb['company_name_txt'] = 'Company Name for the page title';
+$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites';
+$wb['custom_login_text_txt'] = 'Custom Text on Login-Page';
+$wb['custom_login_link_txt'] = 'Custom Link on Login-Page';
+$wb['login_link_error_regex'] = 'Invalid Link for Custom Login';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_users.lng b/interface/web/admin/lib/lang/tr_users.lng
index 5b1c1e8485..178f05a78a 100644
--- a/interface/web/admin/lib/lang/tr_users.lng
+++ b/interface/web/admin/lib/lang/tr_users.lng
@@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Parola OluÅŸtur';
 $wb['repeat_password_txt'] = 'Parola Onayı';
 $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.';
 $wb['password_match_txt'] = 'Parola ile onayı aynı.';
-$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\\"';
+$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\"';
 $wb['client_not_admin_err'] = 'Bir müşteriye ait bir kullanıcının tipi admin olarak atanamaz';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng
index 4dbe1e9dc4..cf8c09f78e 100644
--- a/interface/web/client/lib/lang/tr_client.lng
+++ b/interface/web/client/lib/lang/tr_client.lng
@@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.';
 $wb['customer_no_error_unique'] = 'Müşteri numarası eşsiz (ya da boş) olmalıdır.';
 $wb['paypal_email_error_isemail'] = 'Lütfen geçerli bir PayPal e-posta adresi yazın.';
 $wb['paypal_email_txt'] = 'PayPal E-posta Adresi';
-$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
+$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
 $wb['aps_limits_txt'] = 'APS Yükleyici Sınırları';
 $wb['limit_aps_txt'] = 'En Fazla APS Kopyası Sayısı';
 $wb['limit_aps_error_notint'] = 'APS kopya sayısı sınırı bir sayı olmalıdır.';
@@ -154,7 +154,9 @@ $wb['added_date_txt'] = 'EklendiÄŸi Tarih';
 $wb['parent_client_id_txt'] = 'Bayi Müşterisi';
 $wb['none_txt'] = 'yok';
 $wb['contact_firstname_txt'] = 'Contact firstname';
+$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['limit_backup_txt'] = 'Backupfunction available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
 $wb['xmpp_limits_txt'] = 'XMPP Limits';
 $wb['web_servers_txt'] = 'Webservers';
 $wb['web_servers_placeholder'] = 'Select webservers';
@@ -189,14 +191,12 @@ $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['reseller_txt'] = 'Reseller';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
 $wb['invalid_vat_id'] = 'The VAT ID is invalid.';
 $wb['email_error_empty'] = 'Email is empty';
-$wb['limit_database_user_txt'] = 'Max. Database users';
-$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/client/lib/lang/tr_client_template.lng b/interface/web/client/lib/lang/tr_client_template.lng
index fd1dcd980e..e1619050c5 100644
--- a/interface/web/client/lib/lang/tr_client_template.lng
+++ b/interface/web/client/lib/lang/tr_client_template.lng
@@ -95,6 +95,7 @@ $wb['default_dnsserver_txt'] = 'Default DNS Server';
 $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
 $wb['limit_backup_txt'] = 'Backupfunction available';
 $wb['default_dbserver_txt'] = 'Default Database Server';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
 $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['xmpp_limits_txt'] = 'XMPP Limits';
@@ -114,7 +115,6 @@ $wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb['dns_servers_txt'] = 'DNS servers';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['web_servers_txt'] = 'Webservers';
diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng
index 6eeac567a1..be54949f8f 100644
--- a/interface/web/client/lib/lang/tr_reseller.lng
+++ b/interface/web/client/lib/lang/tr_reseller.lng
@@ -156,9 +156,12 @@ $wb['added_date_txt'] = 'EklendiÄŸi Tarih';
 $wb['limit_domainmodule_error_notint'] = 'Alan adı modülü sınırı bir sayı olmalıdır.';
 $wb['limit_domainmodule_txt'] = 'Alan Adı Modülü Sınırı';
 $wb['client_limits_txt'] = 'Müşteri Sınırları';
-$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
+$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
 $wb['contact_firstname_txt'] = 'Contact firstname';
+$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_backup_txt'] = 'Backupfunction available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
 $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)';
 $wb['web_servers_txt'] = 'Webservers';
 $wb['web_servers_placeholder'] = 'Select Webservers';
@@ -196,11 +199,8 @@ $wb['invalid_vat_id'] = 'The VAT ID is invalid.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
 $wb['email_error_empty'] = 'Email is empty';
-$wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
-$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['password_click_to_set_txt'] = 'Click to set';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_a.lng b/interface/web/dns/lib/lang/tr_dns_a.lng
index 4a20c2e39e..0cf1414fd8 100644
--- a/interface/web/dns/lib/lang/tr_dns_a.lng
+++ b/interface/web/dns/lib/lang/tr_dns_a.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.';
 $wb['name_error_empty'] = 'Sunucu adı boş olamaz.';
 $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.';
 $wb['data_error_empty'] = 'IP Adresi boÅŸ olamaz';
-$wb['ip_error_wrong'] = 'IP Adresi biçimi geçersiz';
 $wb['data_error_duplicate'] = 'Bu A DNS kaydı zaten var';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
+$wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_aaaa.lng b/interface/web/dns/lib/lang/tr_dns_aaaa.lng
index d3f5bc92b0..b0c28aed41 100644
--- a/interface/web/dns/lib/lang/tr_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/tr_dns_aaaa.lng
@@ -11,6 +11,6 @@ $wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.';
 $wb['name_error_empty'] = 'Sunucu adı boş olamaz.';
 $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.';
 $wb['data_error_empty'] = 'IP Adresi boÅŸ olamaz';
-$wb['ip_error_wrong'] = 'IP Adresi biçimi geçersiz';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
+$wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_cname.lng b/interface/web/dns/lib/lang/tr_dns_cname.lng
index 13bd8a0ae8..00366b9695 100644
--- a/interface/web/dns/lib/lang/tr_dns_cname.lng
+++ b/interface/web/dns/lib/lang/tr_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Sunucu adı boş olamaz.';
 $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.';
 $wb['data_error_empty'] = 'Hedef sunucu adı boş olamaz';
 $wb['data_error_regex'] = 'Hedef sunucu adı biçimi geçersiz';
-$wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record';
+$wb['data_error_duplicate'] = 'Çift A ya da CNAME kaydı var.';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_soa.lng b/interface/web/dns/lib/lang/tr_dns_soa.lng
index 412d6fd5ac..e80ece2ba0 100644
--- a/interface/web/dns/lib/lang/tr_dns_soa.lng
+++ b/interface/web/dns/lib/lang/tr_dns_soa.lng
@@ -39,5 +39,5 @@ $wb['dnssec_info_txt'] = 'DNSSEC DS-Data for registry';
 $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_txt.lng b/interface/web/dns/lib/lang/tr_dns_txt.lng
index edbfa444b3..7b77bae7f9 100644
--- a/interface/web/dns/lib/lang/tr_dns_txt.lng
+++ b/interface/web/dns/lib/lang/tr_dns_txt.lng
@@ -4,9 +4,6 @@ $wb['zone_txt'] = 'Bölge';
 $wb['name_txt'] = 'Sunucu Adı';
 $wb['type_txt'] = 'Tip';
 $wb['data_txt'] = 'Metin';
-$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button';
-$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button';
-$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.';
 $wb['ttl_txt'] = 'TTL Süresi';
 $wb['active_txt'] = 'Etkin';
 $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.';
@@ -16,4 +13,7 @@ $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.';
 $wb['data_error_empty'] = 'Metin boÅŸ olamaz';
 $wb['data_error_regex'] = 'Metin biçimi geçersiz';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
+$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button';
+$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button';
+$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_wizard.lng b/interface/web/dns/lib/lang/tr_dns_wizard.lng
index a6e60e656b..1a96393914 100644
--- a/interface/web/dns/lib/lang/tr_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/tr_dns_wizard.lng
@@ -35,11 +35,11 @@ $wb['globalsearch_noresults_text_txt'] = 'Sonuç yok.';
 $wb['globalsearch_noresults_limit_txt'] = '0 sonuç';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Arama';
 $wb['globalsearch_suggestions_text_txt'] = 'Öneriler';
-$wb['dkim_txt'] = 'DKIM enabled';
+$wb['dkim_txt'] = 'DKIM';
+$wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
 $wb['ipv6_txt'] = 'IPv6 Address';
 $wb['error_ipv6_empty'] = 'IPv6 empty.';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
 $wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
diff --git a/interface/web/login/lib/lang/tr.lng b/interface/web/login/lib/lang/tr.lng
index 6c121d8b78..c50ea5c8a2 100644
--- a/interface/web/login/lib/lang/tr.lng
+++ b/interface/web/login/lib/lang/tr.lng
@@ -24,10 +24,10 @@ $wb['back_txt'] = 'Geri';
 $wb['error_maintenance_mode'] = 'ISPConfig bakımda. Kısa bir süre sonra yeniden çalışıyor olacak, sabrınız için teşekkürler.';
 $wb['theme_not_compatible'] = 'Seçilmiş tema geçerli ISPConfig sürümü ile uyumlu değil. Lütfen temanın yeni sürümünü araştırın.<br />Varsayılan tema etkinleştirildi.';
 $wb['stay_logged_in_txt'] = 'Oturumum açık kalsın';
-$wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.';
 $wb['pw_reset_act'] = 'You have been sent an activation link. Please visit the link to confirm your password request.';
 $wb['pw_reset_act_mail_title'] = 'Confirm ISPConfig 3 Control panel password reset';
 $wb['pw_reset_act_mail_msg'] = 'Please confirm that your want to reset your ISPConfig 3 control panel account password by visiting the following activation link: ';
+$wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.';
 $wb['lost_password_function_wait_txt'] = 'You cannot request a new password, yet. Please wait a few minutes.';
 $wb['lost_password_function_expired_txt'] = 'This activation link has expired. Please request a new one.';
 $wb['lost_password_function_denied_txt'] = 'This activation link is not valid.';
diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng
index cabcfdb8bb..24efdfddfd 100644
--- a/interface/web/login/lib/lang/tr_login_as.lng
+++ b/interface/web/login/lib/lang/tr_login_as.lng
@@ -1,11 +1,11 @@
 <?php
 $wb['login_1_txt'] = 'Bu kullanıcı olarak oturum açmak ister misiniz';
-$wb['login_2_txt'] = '\\"Geri dönmek\\" için oturumu kapat üzerine tıklayın.';
+$wb['login_2_txt'] = '\"Geri dönmek\" için oturumu kapat üzerine tıklayın.';
 $wb['btn_yes_txt'] = 'Evet, Müşteri olarak oturum aç';
 $wb['btn_back_txt'] = 'Hayır, listeye geri dön';
 $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın';
 $wb['active_txt'] = 'Etkin';
 $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.';
-$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
-$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
+$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
+$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
 ?>
diff --git a/interface/web/mail/lib/lang/tr_mail_alias.lng b/interface/web/mail/lib/lang/tr_mail_alias.lng
index 5132969edb..d3fd3f1271 100644
--- a/interface/web/mail/lib/lang/tr_mail_alias.lng
+++ b/interface/web/mail/lib/lang/tr_mail_alias.lng
@@ -1,7 +1,6 @@
 <?php
 $wb['email_txt'] = 'E-posta';
 $wb['destination_txt'] = 'Hedef';
-$wb['greylisting_txt'] = 'Enable greylisting';
 $wb['active_txt'] = 'Etkin';
 $wb['email_error_isemail'] = 'E-posta adresi geçersiz.';
 $wb['email_error_unique'] = 'Bu e-posta adresi zaten var';
@@ -14,4 +13,5 @@ $wb['duplicate_email_alias_txt'] = 'Bu takma e-posta adresi zaten var.';
 $wb['source_txt'] = 'Takma Ad';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this alias as origin';
+$wb['greylisting_txt'] = 'Enable greylisting';
 ?>
diff --git a/interface/web/mail/lib/lang/tr_mail_domain.lng b/interface/web/mail/lib/lang/tr_mail_domain.lng
index 069efee9ce..4ee4aa50fa 100644
--- a/interface/web/mail/lib/lang/tr_mail_domain.lng
+++ b/interface/web/mail/lib/lang/tr_mail_domain.lng
@@ -7,17 +7,17 @@ $wb['domain_error_empty'] = 'Alan adı boş olamaz.';
 $wb['domain_error_unique'] = 'Bu alan adı zaten var.';
 $wb['domain_error_regex'] = 'Alan adı geçersiz.';
 $wb['client_txt'] = 'Müşteri';
+$wb['limit_maildomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.';
+$wb['policy_txt'] = 'Önemsiz Posta Süzgeci';
+$wb['no_policy'] = '- devre dışı -';
 $wb['dkim_txt'] = 'enable DKIM';
 $wb['dkim_private_txt'] = 'DKIM Private-key';
 $wb['dkim_public_txt'] = 'DKIM Public-key\nfor information only';
 $wb['dkim_generate_txt'] = 'Generate DKIM Private-key';
 $wb['dkim_dns_txt'] = 'DNS-Record';
 $wb['dkim_private_key_error'] = 'Invalid DKIM-Private key';
-$wb['dkim_selector_txt'] = 'DKIM-Selector';
-$wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars';
 $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)';
-$wb['limit_maildomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.';
-$wb['policy_txt'] = 'Önemsiz Posta Süzgeci';
-$wb['no_policy'] = '- devre dışı -';
 $wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.';
+$wb['dkim_selector_txt'] = 'DKIM-Selector';
+$wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars';
 ?>
diff --git a/interface/web/mail/lib/lang/tr_mail_forward.lng b/interface/web/mail/lib/lang/tr_mail_forward.lng
index aee530ca0a..f96a0e4c07 100644
--- a/interface/web/mail/lib/lang/tr_mail_forward.lng
+++ b/interface/web/mail/lib/lang/tr_mail_forward.lng
@@ -1,5 +1,4 @@
 <?php
-$wb['greylisting_txt'] = 'Enable greylisting';
 $wb['email_txt'] = 'E-posta';
 $wb['destination_txt'] = 'Hedef E-posta';
 $wb['active_txt'] = 'Etkin';
@@ -10,4 +9,5 @@ $wb['source_txt'] = 'Kaynak E-posta';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
+$wb['greylisting_txt'] = 'Enable greylisting';
 ?>
diff --git a/interface/web/mail/lib/lang/tr_mail_get.lng b/interface/web/mail/lib/lang/tr_mail_get.lng
index b82b6c8c9a..3e29c26a71 100644
--- a/interface/web/mail/lib/lang/tr_mail_get.lng
+++ b/interface/web/mail/lib/lang/tr_mail_get.lng
@@ -15,5 +15,5 @@ $wb['source_username_error_isempty'] = 'Kullanıcı adı boş olamaz.';
 $wb['source_password_error_isempty'] = 'Parola boÅŸ olamaz.';
 $wb['destination_error_isemail'] = 'Hedef seçilmemiş.';
 $wb['source_server_error_regex'] = 'POP3/IMAP Sunucu alan adı geçersiz.';
-$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \\"E-postalar alındıktan sonra silinsin\\" = Hayır iken \\"Tüm e-postalar alınsın\\" = Evet olamaz';
+$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \"E-postalar alındıktan sonra silinsin\" = Hayır iken \"Tüm e-postalar alınsın\" = Evet olamaz';
 ?>
diff --git a/interface/web/mail/lib/lang/tr_mail_user.lng b/interface/web/mail/lib/lang/tr_mail_user.lng
index 71241ec9f7..5ba43edccd 100644
--- a/interface/web/mail/lib/lang/tr_mail_user.lng
+++ b/interface/web/mail/lib/lang/tr_mail_user.lng
@@ -9,40 +9,32 @@ $wb['email_error_unique'] = 'Bu e-posta adresi zaten var.';
 $wb['autoresponder_subject_txt'] = 'E-posta Konusu';
 $wb['autoresponder_subject'] = 'Ofis dışında yanıtı';
 $wb['autoresponder_text_txt'] = 'Metin';
+$wb['autoresponder_txt'] = 'Etkin';
+$wb['autoresponder_start_date_txt'] = 'Başlangıç';
+$wb['autoresponder_start_date_ispast'] = 'Başlangıç zamanı geçmişte olamaz.';
+$wb['autoresponder_end_date_txt'] = 'BitiÅŸ';
+$wb['autoresponder_end_date_isgreater'] = 'Bitiş zamanı başlangıç zamanından sonra olmalıdır.';
 $wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.';
 $wb['error_no_pwd'] = 'Parola boÅŸ olamaz.';
 $wb['quota_error_isint'] = 'Posta kutusunun boyutu bir sayı olmalıdır.';
 $wb['quota_txt'] = 'Kota (sınırsız için 0 yazın)';
 $wb['server_id_txt'] = 'Sunucu kodu';
 $wb['password_txt'] = 'Parola';
-$wb['password_click_to_set_txt'] = 'Click to set';
 $wb['maildir_txt'] = 'Posta Klasörü';
 $wb['postfix_txt'] = 'Alım Etkin';
-$wb['greylisting_txt'] = 'Enable greylisting';
 $wb['access_txt'] = 'EriÅŸim Etkin';
 $wb['policy_txt'] = 'Önemsiz Posta Süzgeci';
 $wb['no_policy'] = '- devre dışı -';
 $wb['limit_mailbox_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla posta kutusu sayısına ulaştınız.';
 $wb['limit_mailquota_txt'] = 'Posta kutularınız için kullanabileceğiniz en fazla boyuta ulaştınız. Kullanılabilecek alan MB:';
+$wb['disablesmtp_txt'] = 'SMTP Kullanılmasın (gönderim)';
 $wb['disableimap_txt'] = 'IMAP Kullanılmasın';
 $wb['disablepop3_txt'] = 'POP3 Kullanılmasın';
 $wb['duplicate_alias_or_forward_txt'] = 'Bu e-posta adresi zaten takma ya da yönlendirilmiş.';
 $wb['quota_error_value'] = 'Kota değeri geçersiz. Değer sınırsız için 0 ya da 1 değerinden büyük olmalı';
-$wb['autoresponder_txt'] = 'Etkin';
-$wb['autoresponder_start_date_txt'] = 'Başlangıç';
-$wb['autoresponder_start_date_ispast'] = 'Başlangıç zamanı geçmişte olamaz.';
-$wb['autoresponder_end_date_txt'] = 'BitiÅŸ';
-$wb['autoresponder_end_date_isgreater'] = 'Bitiş zamanı başlangıç zamanından sonra olmalıdır.';
-$wb['disablesmtp_txt'] = 'Disable SMTP (sending)';
 $wb['move_junk_txt'] = 'Önemsiz Epostalar Junk Klasörüne Taşınsın';
 $wb['name_txt'] = 'Ad';
 $wb['name_optional_txt'] = '(İsteğe bağlı)';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['no_backup_txt'] = 'No backup';
-$wb['daily_backup_txt'] = 'Daily';
-$wb['weekly_backup_txt'] = 'Weekly';
-$wb['monthly_backup_txt'] = 'Monthly';
 $wb['autoresponder_active'] = 'Otoyanıtlayıcı kullanılsın';
 $wb['cc_txt'] = 'Kopyası şuraya gönderilsin';
 $wb['cc_error_isemail'] = 'Kopyası şuraya gönderilsin alanına geçerli bir e-posta adresi yazılmalı';
@@ -59,7 +51,15 @@ $wb['password_match_txt'] = 'Parola ile onayı aynı.';
 $wb['email_error_isascii'] = 'E-posta istemcinizde sorun yaşamamak için lütfen parolanızda dile özel unikod karakterler kullanmayın.';
 $wb['cc_note_txt'] = '(Birden çok e-posta adresini virgül ile ayırarak yazın)';
 $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.';
+$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['greylisting_txt'] = 'Enable greylisting';
 $wb['sender_cc_txt'] = 'Send outgoing copy to';
 $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
+$wb['backup_interval_txt'] = 'Backup interval';
+$wb['backup_copies_txt'] = 'Number of backup copies';
+$wb['no_backup_txt'] = 'No backup';
+$wb['daily_backup_txt'] = 'Daily';
+$wb['weekly_backup_txt'] = 'Weekly';
+$wb['monthly_backup_txt'] = 'Monthly';
 $wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
 ?>
diff --git a/interface/web/mail/lib/lang/tr_mail_user_filter.lng b/interface/web/mail/lib/lang/tr_mail_user_filter.lng
index 38eb4a4e28..8897a9d18b 100644
--- a/interface/web/mail/lib/lang/tr_mail_user_filter.lng
+++ b/interface/web/mail/lib/lang/tr_mail_user_filter.lng
@@ -15,15 +15,15 @@ $wb['contains_txt'] = 'Şunu içeren';
 $wb['is_txt'] = 'Şununla aynı';
 $wb['begins_with_txt'] = 'Åžununla baÅŸlayan';
 $wb['ends_with_txt'] = 'Åžununla biten';
+$wb['move_stop_txt'] = 'Şuraya taşı';
 $wb['delete_txt'] = 'Sil';
-$wb['move_stop_txt'] = 'Move to';
-$wb['header_txt'] = 'Header';
-$wb['size_over_txt'] = 'Email size over (KB)';
-$wb['size_under_txt'] = 'Email size under (KB)';
-$wb['localpart_txt'] = 'Localpart';
-$wb['domain_txt'] = 'Domain';
-$wb['keep_txt'] = 'Keep';
-$wb['reject_txt'] = 'Reject';
-$wb['stop_txt'] = 'Stop';
+$wb['header_txt'] = 'Başlık';
+$wb['size_over_txt'] = 'E-posta boyutu (KB)üzerinde';
+$wb['size_under_txt'] = 'E-posta boyutu (KB) altında';
+$wb['localpart_txt'] = 'Yerel bölüm';
+$wb['domain_txt'] = 'Etki alanı';
+$wb['keep_txt'] = 'Tut';
+$wb['reject_txt'] = 'Reddet';
+$wb['stop_txt'] = 'Durdur';
 $wb['move_to_txt'] = 'Move to';
 ?>
diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_cc.lng b/interface/web/mailuser/lib/lang/tr_mail_user_cc.lng
index 61bf2c6270..039ed70625 100644
--- a/interface/web/mailuser/lib/lang/tr_mail_user_cc.lng
+++ b/interface/web/mailuser/lib/lang/tr_mail_user_cc.lng
@@ -5,5 +5,5 @@ $wb['email_txt'] = 'E-posta';
 $wb['cc_error_isemail'] = '-Şuraya kopya gönder- e-posta adresi geçersiz';
 $wb['email_is_cc_error'] = 'E-posta adresi ile kopyanın gönderileceği adres aynı olamaz.';
 $wb['name_optional_txt'] = '(İsteğe bağlı)';
-$wb['cc_note_txt'] = '(Birden çok e-posta adresini vürgül ile ayırarak yazın)';
+$wb['cc_note_txt'] = '(Birden çok e-posta adresini virgül ile ayırarak yazın)';
 ?>
diff --git a/interface/web/sites/lib/lang/tr.lng b/interface/web/sites/lib/lang/tr.lng
index d0570f6c12..4f8620c34a 100644
--- a/interface/web/sites/lib/lang/tr.lng
+++ b/interface/web/sites/lib/lang/tr.lng
@@ -31,5 +31,5 @@ $wb['Available packages'] = 'Kullanılabilecek Paketler';
 $wb['Installed packages'] = 'Yüklü Paketler';
 $wb['Update Packagelist'] = 'Güncelleme Paketi Listesi';
 $wb['Subdomain (Vhost)'] = 'Alt alan adı (SSunucu)';
-$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.';
+$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_aps.lng b/interface/web/sites/lib/lang/tr_aps.lng
index 534ee020a7..58bd945039 100644
--- a/interface/web/sites/lib/lang/tr_aps.lng
+++ b/interface/web/sites/lib/lang/tr_aps.lng
@@ -40,14 +40,14 @@ $wb['error_inv_main_location'] = 'Yazdığınız yükleme konumunu klasörü ge
 $wb['error_license_agreement'] = 'Devam etmek için lisans anlaşmasını onaylamalısınız.';
 $wb['error_no_database_pw'] = 'Yazdığınız veritabanı parolası geçersiz.';
 $wb['error_short_database_pw'] = 'Lütfen daha uzun bir veritabanı parolası yazın.';
-$wb['error_no_value_for'] = '\\"%s\\" alanı boş olamaz.';
-$wb['error_short_value_for'] = '\\"%s\\" alanına daha uzun bir değer yazılmalıdır.';
-$wb['error_long_value_for'] = '\\"%s\\" alanına daha kısa bir değer yazılmalıdır.';
-$wb['error_inv_value_for'] = '\\"%s\\" alanına yazılan değer geçersiz.';
-$wb['error_inv_email_for'] = '\\"%s\\" alanına yazılan e-posta adresi geçersiz.';
-$wb['error_inv_domain_for'] = '\\"%s\\" alanına yazılan alan adı geçersiz.';
-$wb['error_inv_integer_for'] = '\\"%s\\" alanına yazılan sayı geçersiz.';
-$wb['error_inv_float_for'] = '\\"%s\\" alanına yazılan küsuratlı sayı geçersiz.';
+$wb['error_no_value_for'] = '\"%s\" alanı boş olamaz.';
+$wb['error_short_value_for'] = '\"%s\" alanına daha uzun bir değer yazılmalıdır.';
+$wb['error_long_value_for'] = '\"%s\" alanına daha kısa bir değer yazılmalıdır.';
+$wb['error_inv_value_for'] = '\"%s\" alanına yazılan değer geçersiz.';
+$wb['error_inv_email_for'] = '\"%s\" alanına yazılan e-posta adresi geçersiz.';
+$wb['error_inv_domain_for'] = '\"%s\" alanına yazılan alan adı geçersiz.';
+$wb['error_inv_integer_for'] = '\"%s\" alanına yazılan sayı geçersiz.';
+$wb['error_inv_float_for'] = '\"%s\" alanına yazılan küsuratlı sayı geçersiz.';
 $wb['error_used_location'] = 'Yükleme yoluna daha önce yüklenmiş bir paket var.';
 $wb['installation_task_txt'] = 'Yükleme planlandı';
 $wb['installation_error_txt'] = 'Yükleme hatası';
diff --git a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng
index 4149c71149..7e4c0b7c51 100644
--- a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng
+++ b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng
@@ -1,115 +1,115 @@
 <?php
-$wb['domain_txt'] = 'Aliasdomain';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['ssl_state_txt'] = 'State';
-$wb['ssl_locality_txt'] = 'Locality';
-$wb['ssl_organisation_txt'] = 'Organisation';
-$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
-$wb['ssl_domain_txt'] = 'SSL Domain';
-$wb['server_id_txt'] = 'Server';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['type_txt'] = 'Type';
-$wb['parent_domain_id_txt'] = 'Parent Website';
-$wb['redirect_type_txt'] = 'Redirect Type';
-$wb['redirect_path_txt'] = 'Redirect Path';
-$wb['active_txt'] = 'Active';
-$wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Linux User';
-$wb['system_group_txt'] = 'Linux Group';
-$wb['ip_address_txt'] = 'IPv4-Address';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['vhost_type_txt'] = 'VHost Type';
-$wb['hd_quota_txt'] = 'Harddisk Quota';
-$wb['traffic_quota_txt'] = 'Traffic Quota';
+$wb['domain_txt'] = 'Takma Alan Adı';
+$wb['backup_interval_txt'] = 'Yedekleme Sıklığı';
+$wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı';
+$wb['ssl_state_txt'] = 'İl';
+$wb['ssl_locality_txt'] = 'Bölge';
+$wb['ssl_organisation_txt'] = 'Kurum';
+$wb['ssl_organisation_unit_txt'] = 'Birim';
+$wb['ssl_country_txt'] = 'Ülke';
+$wb['ssl_key_txt'] = 'SSL Anahtarı';
+$wb['ssl_request_txt'] = 'SSL İsteği';
+$wb['ssl_cert_txt'] = 'SSL Sertifikası';
+$wb['ssl_bundle_txt'] = 'SSL Yığını';
+$wb['ssl_action_txt'] = 'SSL İşlemi';
+$wb['ssl_domain_txt'] = 'SSL Alan Adı';
+$wb['server_id_txt'] = 'Sunucu';
+$wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. / karakterini yazmayın.';
+$wb['type_txt'] = 'Tip';
+$wb['parent_domain_id_txt'] = 'Üst Web Sitesi';
+$wb['redirect_type_txt'] = 'Yönlendirme Tipi';
+$wb['redirect_path_txt'] = 'Yönlendirme Yolu';
+$wb['active_txt'] = 'Etkin';
+$wb['document_root_txt'] = 'Kök Klasör';
+$wb['system_user_txt'] = 'Linux Kullanıcısı';
+$wb['system_group_txt'] = 'Linux Grubu';
+$wb['ip_address_txt'] = 'IPv4 Adresi';
+$wb['ipv6_address_txt'] = 'IPv6 Adresi';
+$wb['vhost_type_txt'] = 'SSunucu Tipi';
+$wb['hd_quota_txt'] = 'Disk Kotası';
+$wb['traffic_quota_txt'] = 'Trafik Kotası';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Own Error-Documents';
-$wb['subdomain_txt'] = 'Auto-Subdomain';
+$wb['errordocs_txt'] = 'Özel Hata Sayfaları';
+$wb['subdomain_txt'] = 'Otomatik Alt Alan';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
-$wb['client_txt'] = 'Client';
-$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.';
-$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.';
-$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.';
-$wb['apache_directives_txt'] = 'Apache Directives';
-$wb['domain_error_empty'] = 'Domain is empty.';
-$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.';
-$wb['domain_error_regex'] = 'Domain name invalid.';
-$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
-$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
-$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
-$wb['error_ssl_state_empty'] = 'SSL State is empty.';
-$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
-$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
-$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['client_group_id_txt'] = 'Client';
-$wb['stats_password_txt'] = 'Set Webstatistics password';
+$wb['client_txt'] = 'Müşteri';
+$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.';
+$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla başka alan adı sayısına ulaştınız.';
+$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt alan adı sayısına ulaştınız.';
+$wb['apache_directives_txt'] = 'Apache Yönergeleri';
+$wb['domain_error_empty'] = 'Alan adı boş olamaz.';
+$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/başka alan adı var.';
+$wb['domain_error_regex'] = 'Alan adı geçersiz.';
+$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt alan adı zaten var.';
+$wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boş olamaz.';
+$wb['traffic_quota_error_empty'] = 'Trafik kotası boş olamaz.';
+$wb['error_ssl_state_empty'] = 'SSL ÅŸehri boÅŸ olamaz.';
+$wb['error_ssl_locality_empty'] = 'SSL bölgesi boş olamaz.';
+$wb['error_ssl_organisation_empty'] = 'SSL kurumu boÅŸ olamaz.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boÅŸ olamaz.';
+$wb['error_ssl_country_empty'] = 'SSL ülkesi boş olamaz.';
+$wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boş olamaz';
+$wb['client_group_id_txt'] = 'Müşteri';
+$wb['stats_password_txt'] = 'Web İstatistikleri Parolası';
 $wb['allow_override_txt'] = 'Apache AllowOverride';
-$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota';
-$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota';
-$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/';
+$wb['limit_web_quota_free_txt'] = 'Kullanılabilecek En Fazla Disk Kotası';
+$wb['ssl_state_error_regex'] = 'SSL şehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası';
+$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/';
 $wb['php_open_basedir_txt'] = 'PHP open_basedir';
-$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatistics username';
-$wb['stats_type_txt'] = 'Webstatistics program';
-$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['none_txt'] = 'None';
-$wb['disabled_txt'] = 'Disabled';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['save_certificate_txt'] = 'Save certificate';
-$wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
+$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı';
+$wb['stats_type_txt'] = 'Web istatistikleri yazılımı';
+$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları';
+$wb['none_txt'] = 'Yok';
+$wb['disabled_txt'] = 'Devre dışı';
+$wb['no_redirect_txt'] = 'Yönlendirme yok';
+$wb['no_flag_txt'] = 'İşaret yok';
+$wb['save_certificate_txt'] = 'Sertifikayı kaydet';
+$wb['create_certificate_txt'] = 'Sertifika ekle';
+$wb['delete_certificate_txt'] = 'Sertifikayı sil';
+$wb['nginx_directives_txt'] = 'nginx Yönergeleri';
+$wb['seo_redirect_txt'] = 'AMD Yönlendirme';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
 $wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın';
+$wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleştirilmemiş. Bir IP adresi için yalnız bir SSL sertifikası etkinleştirebilirsiniz.';
 $wb['python_txt'] = 'Python';
 $wb['perl_txt'] = 'Perl';
 $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
 $wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
 $wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
 $wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPM pm ayarlarının değerleri şu şekilde olmalıdır: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.';
+$wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.';
+$wb['fastcgi_php_version_txt'] = 'PHP Sürümü';
+$wb['pm_txt'] = 'PHP-FPM İşlem Yöneticisi';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['Domain'] = 'Aliasdomain';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests değeri sıfır ya da pozitif bir tamsayı olmalıdır.';
+$wb['pm_ondemand_hint_txt'] = 'İsteğe bağlı işlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliğini seçerseniz, PHP başlatılamaz!';
+$wb['generate_password_txt'] = 'Parola OluÅŸtur';
+$wb['repeat_password_txt'] = 'Parola Onayı';
+$wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.';
+$wb['password_match_txt'] = 'Parola ile onayı aynı.';
+$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:';
+$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:';
+$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:';
+$wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri';
+$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:';
+$wb['Domain'] = 'Başka alan adı';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng
index fdb496d403..b7acfd099a 100644
--- a/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng
@@ -1,14 +1,14 @@
 <?php
-$wb['list_head_txt'] = 'Aliasdomain';
-$wb['active_txt'] = 'Aktif';
+$wb['list_head_txt'] = 'Takma Alan Adı';
+$wb['active_txt'] = 'Etkin';
 $wb['server_id_txt'] = 'Sunucu';
-$wb['parent_domain_id_txt'] = 'Websitesi';
-$wb['domain_txt'] = 'Aliasdomain';
-$wb['add_new_record_txt'] = 'Yeni Aliasdomain';
-$wb['domain_error_empty'] = 'Domain boÅŸ.';
-$wb['domain_error_unique'] = 'Bu Domain zaten var.';
-$wb['domain_error_regex'] = 'Geçersiz Domain.';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['none_txt'] = 'None';
+$wb['parent_domain_id_txt'] = 'Web Sitesi';
+$wb['domain_txt'] = 'Takma Alan Adı';
+$wb['add_new_record_txt'] = 'Takma Alan Adı Ekle';
+$wb['domain_error_empty'] = 'Alan adı boş olamaz.';
+$wb['domain_error_unique'] = 'Aynı alan adı zaten var.';
+$wb['domain_error_regex'] = 'Alan adı geçersiz.';
+$wb['no_redirect_txt'] = 'Yönlendirme yok';
+$wb['no_flag_txt'] = 'İşaret yok';
+$wb['none_txt'] = 'Yok';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_backup_list.lng b/interface/web/sites/lib/lang/tr_web_backup_list.lng
index b4b11b8cd5..c9bc16ae78 100644
--- a/interface/web/sites/lib/lang/tr_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_backup_list.lng
@@ -11,11 +11,11 @@ $wb['restore_confirm_txt'] = 'Geri yükleme işlemi web sitenizde bulunan dosyal
 $wb['download_pending_txt'] = 'Zaten bekleyen bir yedek indirme iÅŸlemi var.';
 $wb['restore_pending_txt'] = 'Zaten bekleyen bir yedek geri yükleme işlemi var.';
 $wb['backup_type_mysql'] = 'MySQL Veritabanı';
+$wb['backup_type_web'] = 'Web sitesi dosyaları';
+$wb['filesize_txt'] = 'Filesize';
 $wb['delete_backup_txt'] = 'Delete Backup';
 $wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.';
 $wb['delete_confirm_txt'] = 'Really delete this backup?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
-$wb['backup_type_web'] = 'Web sitesi dosyaları';
-$wb['filesize_txt'] = 'Filesize';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng
index ad23d23fb0..da3625df37 100644
--- a/interface/web/sites/lib/lang/tr_web_domain.lng
+++ b/interface/web/sites/lib/lang/tr_web_domain.lng
@@ -1,134 +1,134 @@
 <?php
-$wb['ssl_state_txt'] = 'Mevki';
-$wb['ssl_locality_txt'] = 'Semt';
-$wb['ssl_organisation_txt'] = 'KuruluÅŸ';
-$wb['ssl_organisation_unit_txt'] = 'Kuruluş Ünitesi';
+$wb['backup_interval_txt'] = 'Yedekleme Sıklığı';
+$wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı';
+$wb['ssl_state_txt'] = 'İl';
+$wb['ssl_locality_txt'] = 'Bölge';
+$wb['ssl_organisation_txt'] = 'Kurum';
+$wb['ssl_organisation_unit_txt'] = 'Birim';
 $wb['ssl_country_txt'] = 'Ülke';
+$wb['ssl_key_txt'] = 'SSL Anahtarı';
 $wb['ssl_request_txt'] = 'SSL İsteği';
 $wb['ssl_cert_txt'] = 'SSL Sertifikası';
 $wb['ssl_bundle_txt'] = 'SSL Yığını';
-$wb['ssl_action_txt'] = 'SSL Eylemi';
+$wb['ssl_action_txt'] = 'SSL İşlemi';
+$wb['ssl_domain_txt'] = 'SSL Alan Adı';
 $wb['server_id_txt'] = 'Sunucu';
-$wb['domain_txt'] = 'Domain';
-$wb['type_txt'] = 'Çeşit';
-$wb['parent_domain_id_txt'] = 'Ana Website';
-$wb['redirect_type_txt'] = 'Yönlendirme Çeşidi';
+$wb['domain_txt'] = 'Alan Adı';
+$wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen / karakterini yazmayın.';
+$wb['type_txt'] = 'Tip';
+$wb['parent_domain_id_txt'] = 'Üst Web Sitesi';
+$wb['redirect_type_txt'] = 'Yönlendirme Tipi';
 $wb['redirect_path_txt'] = 'Yönlendirme Yolu';
-$wb['active_txt'] = 'Aktif';
-$wb['document_root_txt'] = 'Documentroot';
+$wb['active_txt'] = 'Etkin';
+$wb['document_root_txt'] = 'Kök Klasör';
 $wb['system_user_txt'] = 'Linux Kullanıcısı';
 $wb['system_group_txt'] = 'Linux Grubu';
-$wb['ip_address_txt'] = 'IP Adresi';
-$wb['vhost_type_txt'] = 'VHost Çeşidi';
-$wb['hd_quota_txt'] = 'Harddisk Kotası';
+$wb['ip_address_txt'] = 'IPv4 Adresi';
+$wb['ipv6_address_txt'] = 'IPv6 Adresi';
+$wb['vhost_type_txt'] = 'SSunucu Tipi';
+$wb['hd_quota_txt'] = 'Disk Kotası';
 $wb['traffic_quota_txt'] = 'Trafik Kotası';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Özelleştirilebilir Hata Sayfaları';
-$wb['subdomain_txt'] = 'Otomatik Subdomain';
+$wb['errordocs_txt'] = 'Özel Hata Sayfaları';
+$wb['subdomain_txt'] = 'Otomatik Alt Alan';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Müşteri';
-$wb['limit_web_domain_txt'] = 'Hesabınızdaki max. web domaini sayısına ulaştınız.';
-$wb['limit_web_aliasdomain_txt'] = 'Hesabınızdaki max. aliasdomain sayısına ulaştınız.';
-$wb['limit_web_subdomain_txt'] = 'Hesabınızdaki max. web subdomain sayısına ulaştınız.';
-$wb['apache_directives_txt'] = 'Apache direktifleri';
-$wb['domain_error_empty'] = 'Domain boÅŸ.';
-$wb['domain_error_unique'] = 'Bu isimde websitesi veya sub / aliasdomain zaten var.';
-$wb['domain_error_regex'] = 'Domain ismi geçersiz.';
-$wb['hd_quota_error_empty'] = 'Harddisk kotası boş.';
-$wb['traffic_quota_error_empty'] = 'Trafik kotası boş.';
-$wb['error_ssl_state_empty'] = 'SSL Mevkisi boÅŸ .';
-$wb['error_ssl_locality_empty'] = 'SSL Semti boÅŸ.';
-$wb['error_ssl_organisation_empty'] = 'SSL KuruluÅŸu boÅŸ.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Kuruluş Ünitesi boş.';
-$wb['error_ssl_country_empty'] = 'SSL Ülkesi boş.';
+$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.';
+$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla başka alan adı sayısına ulaştınız.';
+$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt alan adı sayısına ulaştınız.';
+$wb['apache_directives_txt'] = 'Apache Yönergeleri';
+$wb['domain_error_empty'] = 'Alan adı boş olamaz.';
+$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/başka alan adı var.';
+$wb['domain_error_regex'] = 'Alan adı geçersiz.';
+$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt alan adı zaten var.';
+$wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boş olamaz.';
+$wb['traffic_quota_error_empty'] = 'Trafik kotası boş olamaz.';
+$wb['error_ssl_state_empty'] = 'SSL ÅŸehri boÅŸ olamaz.';
+$wb['error_ssl_locality_empty'] = 'SSL bölgesi boş olamaz.';
+$wb['error_ssl_organisation_empty'] = 'SSL kurumu boÅŸ olamaz.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boÅŸ olamaz.';
+$wb['error_ssl_country_empty'] = 'SSL ülkesi boş olamaz.';
+$wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boş olamaz';
 $wb['client_group_id_txt'] = 'Müşteri';
-$wb['stats_password_txt'] = 'Web istatistikleri ÅŸifresi';
-$wb['ssl_domain_txt'] = 'SSL Domain';
-$wb['allow_override_txt'] = 'Allow Override';
-$wb['limit_web_quota_free_txt'] = 'Max. kullanılabilir Harddisk Kotası';
-$wb['ssl_state_error_regex'] = 'Geçersiz SSL Durumu. İzin verilen karakterler: a-z, 0-9 ve .,-_';
-$wb['ssl_locality_error_regex'] = 'Geçersiz SSL Yöresi. İzin verilen karakterler: a-z, 0-9 ve .,-_';
-$wb['ssl_organisation_error_regex'] = 'Geçersiz SSL Organizasyonu. İzin verilen karakterler: a-z, 0-9 ve .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Geçersiz SSL Organizasyon Unitesi. İzin verilen karakterler: a-z, 0-9 ve .,-_';
-$wb['ssl_country_error_regex'] = 'Geçersiz SSL Ülkesi. İzin verilen karakterler: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Max. kullanılabilir Trafik Kotası';
-$wb['redirect_error_regex'] = 'Geçersiz yönlendirme yolu. Geçerli yönlendirmeler örneğin: /test/ veya http://www.domain.tld/test/';
+$wb['stats_password_txt'] = 'Web istatistikleri parolası';
+$wb['allow_override_txt'] = 'Apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası';
+$wb['ssl_state_error_regex'] = 'SSL şehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ';
+$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ';
+$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ';
+$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ';
+$wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası';
+$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/';
 $wb['php_open_basedir_txt'] = 'PHP open_basedir';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatistics username';
-$wb['stats_type_txt'] = 'Webstatistics program';
-$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['none_txt'] = 'None';
-$wb['disabled_txt'] = 'Disabled';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['save_certificate_txt'] = 'Save certificate';
-$wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
+$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı';
+$wb['stats_type_txt'] = 'Web istatistikleri yazılımı';
+$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları';
+$wb['none_txt'] = 'Yok';
+$wb['disabled_txt'] = 'Devre Dışı';
+$wb['no_redirect_txt'] = 'Yönlendirme yok';
+$wb['no_flag_txt'] = 'İşaret yok';
+$wb['save_certificate_txt'] = 'Sertifikayı kaydet';
+$wb['create_certificate_txt'] = 'Sertifika ekle';
+$wb['delete_certificate_txt'] = 'Sertifikayı sil';
+$wb['nginx_directives_txt'] = 'nginx Yönergeleri';
+$wb['seo_redirect_txt'] = 'AMD Yönlendirme';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
 $wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın';
+$wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleştirilmemiş. Bir IP adresi için yalnız bir SSL sertifikası etkinleştirebilirsiniz.';
 $wb['python_txt'] = 'Python';
+$wb['perl_txt'] = 'Perl';
 $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
 $wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
 $wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
 $wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['perl_txt'] = 'Perl';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPM pm ayarlarının değerleri şu şekilde olmalıdır: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.';
+$wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.';
+$wb['fastcgi_php_version_txt'] = 'PHP Sürümü';
+$wb['pm_txt'] = 'PHP-FPM İşlem Yöneticisi';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['no_server_error'] = 'No server selected.';
-$wb['no_backup_txt'] = 'No backup';
-$wb['daily_backup_txt'] = 'Daily';
-$wb['weekly_backup_txt'] = 'Weekly';
-$wb['monthly_backup_txt'] = 'Monthly';
-$wb['rewrite_rules_txt'] = 'Rewrite Rules';
-$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
-$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
-$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
-$wb['variables_txt'] = 'Variables';
-$wb['added_by_txt'] = 'Added by';
-$wb['added_date_txt'] = 'Added date';
-$wb['backup_excludes_txt'] = 'Excluded Directories';
-$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
-$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
-$wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings';
-$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group';
-$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests değeri sıfır ya da pozitif bir tamsayı olmalıdır.';
+$wb['pm_ondemand_hint_txt'] = 'İsteğe bağlı işlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliğini seçerseniz, PHP başlatılamaz!';
+$wb['generate_password_txt'] = 'Parola OluÅŸtur';
+$wb['repeat_password_txt'] = 'Parola Onayı';
+$wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.';
+$wb['password_match_txt'] = 'Parola ile onayı aynı.';
+$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:';
+$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:';
+$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:';
+$wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri';
+$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:';
+$wb['no_server_error'] = 'Bir sunucu seçmelisiniz.';
+$wb['no_backup_txt'] = 'Yedek alınmasın';
+$wb['daily_backup_txt'] = 'Günlük';
+$wb['weekly_backup_txt'] = 'Haftalık';
+$wb['monthly_backup_txt'] = 'Aylık';
+$wb['rewrite_rules_txt'] = 'Yeniden Yazma Kuralları';
+$wb['invalid_rewrite_rules_txt'] = 'Yeniden Yazma Kuralları Geçersiz';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:';
+$wb['configuration_error_txt'] = 'AYAR HATASI';
+$wb['variables_txt'] = 'DeÄŸiÅŸkenler';
+$wb['added_by_txt'] = 'Ekleyen';
+$wb['added_date_txt'] = 'EklendiÄŸi tarih';
+$wb['backup_excludes_txt'] = 'Katılmayacak Klasörler';
+$wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.';
+$wb['invalid_custom_php_ini_settings_txt'] = 'php.ini ayarları geçersiz';
+$wb['invalid_system_user_or_group_txt'] = 'Sistem kullanıcısı ya da grubu geçersiz';
+$wb['apache_directive_blocked_error'] = 'Apache yönergesi güvenlik ayarları tarafından engellenmiş:';
 $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
diff --git a/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng b/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng
index b460e27100..f86967d0d4 100644
--- a/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['sys_groupid_txt'] = 'Client';
-$wb['list_head_txt'] = 'Websites';
-$wb['domain_id_txt'] = 'ID';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['add_new_record_txt'] = 'Add new website';
+$wb['sys_groupid_txt'] = 'Müşteri';
+$wb['list_head_txt'] = 'Web Siteleri';
+$wb['domain_id_txt'] = 'Kod';
+$wb['active_txt'] = 'Etkin';
+$wb['server_id_txt'] = 'Sunucu';
+$wb['domain_txt'] = 'Alan Adı';
+$wb['add_new_record_txt'] = 'Web Sitesi Ekle';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_domain_list.lng b/interface/web/sites/lib/lang/tr_web_domain_list.lng
index 8dbf8fd450..a2320b5dcd 100644
--- a/interface/web/sites/lib/lang/tr_web_domain_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_domain_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Web siteleri';
-$wb['domain_id_txt'] = 'ID';
-$wb['active_txt'] = 'Aktif';
+$wb['list_head_txt'] = 'Web Siteleri';
+$wb['domain_id_txt'] = 'Kod';
+$wb['active_txt'] = 'Etkin';
 $wb['server_id_txt'] = 'Sunucu';
-$wb['domain_txt'] = 'Domain';
-$wb['add_new_record_txt'] = 'Yeni Website';
+$wb['domain_txt'] = 'Alan Adı';
+$wb['add_new_record_txt'] = 'Web Sitesi Ekle';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_subdomain.lng b/interface/web/sites/lib/lang/tr_web_subdomain.lng
index b1defe6d23..c6e28bc6fa 100644
--- a/interface/web/sites/lib/lang/tr_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/tr_web_subdomain.lng
@@ -1,26 +1,26 @@
 <?php
-$wb['ssl_state_txt'] = 'Mevki';
-$wb['ssl_locality_txt'] = 'Semt';
-$wb['ssl_organisation_txt'] = 'Organizasyon';
-$wb['ssl_organisation_unit_txt'] = 'Organizasyon Unitesi';
+$wb['ssl_state_txt'] = 'İl';
+$wb['ssl_locality_txt'] = 'Bölge';
+$wb['ssl_organisation_txt'] = 'Kurum';
+$wb['ssl_organisation_unit_txt'] = 'Birim';
 $wb['ssl_country_txt'] = 'Ülke';
 $wb['ssl_request_txt'] = 'SSL İsteği';
 $wb['ssl_cert_txt'] = 'SSL Sertifikası';
 $wb['ssl_bundle_txt'] = 'SSL Yığını';
-$wb['ssl_action_txt'] = 'SSL Eylemi';
+$wb['ssl_action_txt'] = 'SSL İşlemi';
 $wb['server_id_txt'] = 'Sunucu';
-$wb['domain_txt'] = 'Domain';
-$wb['type_txt'] = 'Çeşit';
-$wb['parent_domain_id_txt'] = 'Ana Website';
-$wb['redirect_type_txt'] = 'Yönlendirme Çeşidi';
+$wb['domain_txt'] = 'Alan Adı';
+$wb['type_txt'] = 'Tip';
+$wb['parent_domain_id_txt'] = 'Üst Web Sitesi';
+$wb['redirect_type_txt'] = 'Yönlendirme Tipi';
 $wb['redirect_path_txt'] = 'Yönlendirme Yolu';
-$wb['active_txt'] = 'Aktif';
-$wb['document_root_txt'] = 'Documentroot';
+$wb['active_txt'] = 'Etkin';
+$wb['document_root_txt'] = 'Kök Klasör';
 $wb['system_user_txt'] = 'Linux Kullanıcısı';
 $wb['system_group_txt'] = 'Linux Grubu';
-$wb['ip_address_txt'] = 'IP Adresleri';
-$wb['vhost_type_txt'] = 'VHost Çeşidi';
-$wb['hd_quota_txt'] = 'Harddisk Kotası';
+$wb['ip_address_txt'] = 'IP Adresi';
+$wb['vhost_type_txt'] = 'SSunucu Tipi';
+$wb['hd_quota_txt'] = 'Disk Kotası';
 $wb['traffic_quota_txt'] = 'Trafik Kotası';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
@@ -28,21 +28,21 @@ $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Müşteri';
-$wb['limit_web_domain_txt'] = 'Hesabınızdaki max. web domaini sayısına ulaştınız.';
-$wb['limit_web_aliasdomain_txt'] = 'Hesabınızdaki max. aliasdomain sayısına ulaştınız.';
-$wb['limit_web_subdomain_txt'] = 'Hesabınızdaki max. web subdomain sayısına ulaştınız.';
-$wb['apache_directives_txt'] = 'Apache direktifleri';
-$wb['domain_error_empty'] = 'Domain boÅŸ.';
-$wb['domain_error_unique'] = 'Bu isimde websitesi veya sub / aliasdomain zaten var.';
-$wb['domain_error_regex'] = 'Domain ismi geçersiz.';
-$wb['host_txt'] = 'Host';
-$wb['redirect_error_regex'] = 'Geçersiz yönlendirme yolu. Geçerli yönlendirmeler örneğin: /test/ veya http://www.domain.tld/test/';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
+$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.';
+$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla başka alan adı sayısına ulaştınız.';
+$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt alan adı sayısına ulaştınız.';
+$wb['apache_directives_txt'] = 'Apache Yönergeleri';
+$wb['domain_error_empty'] = 'Alan adı boş olamaz.';
+$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/başka alan adı var.';
+$wb['domain_error_regex'] = 'Alan adı geçersiz.';
+$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt alan adları kullanılamaz.';
+$wb['host_txt'] = 'Sunucu';
+$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/';
+$wb['no_redirect_txt'] = 'Yönlendirme yok';
+$wb['no_flag_txt'] = 'İşaret yok';
+$wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri';
+$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:';
+$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.';
 $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
diff --git a/interface/web/sites/lib/lang/tr_web_subdomain_list.lng b/interface/web/sites/lib/lang/tr_web_subdomain_list.lng
index 44b7bbeecb..8155af64b3 100644
--- a/interface/web/sites/lib/lang/tr_web_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_subdomain_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Subdomainler';
-$wb['active_txt'] = 'Aktif';
+$wb['list_head_txt'] = 'Alt Alan Adları';
+$wb['active_txt'] = 'Etkin';
 $wb['server_id_txt'] = 'Sunucu';
-$wb['parent_domain_id_txt'] = 'Websitesi';
-$wb['domain_txt'] = 'Subdomain';
-$wb['add_new_record_txt'] = 'Yeni Subdomain';
+$wb['parent_domain_id_txt'] = 'Web Sitesi';
+$wb['domain_txt'] = 'Alt Alan Adı';
+$wb['add_new_record_txt'] = 'Alt Alan Ekle';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng
index 35c9298e71..2bbcfb661c 100644
--- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng
+++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng
@@ -1,129 +1,129 @@
 <?php
-$wb['parent_domain_id_txt'] = 'Parent Website';
-$wb['web_folder_txt'] = 'Web folder';
-$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.';
-$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['ssl_state_txt'] = 'State';
-$wb['ssl_locality_txt'] = 'Locality';
-$wb['ssl_organisation_txt'] = 'Organisation';
-$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
-$wb['ssl_domain_txt'] = 'SSL Domain';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['host_txt'] = 'Hostname';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['type_txt'] = 'Type';
-$wb['redirect_type_txt'] = 'Redirect Type';
-$wb['redirect_path_txt'] = 'Redirect Path';
-$wb['active_txt'] = 'Active';
-$wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Linux User';
-$wb['system_group_txt'] = 'Linux Group';
-$wb['ip_address_txt'] = 'IPv4-Address';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['vhost_type_txt'] = 'VHost Type';
-$wb['hd_quota_txt'] = 'Harddisk Quota';
-$wb['traffic_quota_txt'] = 'Traffic Quota';
+$wb['parent_domain_id_txt'] = 'Üst Web Sitesi';
+$wb['web_folder_txt'] = 'Web Klasörü';
+$wb['web_folder_invalid_txt'] = 'Web klasörü geçresiz, lütfen başka bir klasör seçin.';
+$wb['web_folder_unique_txt'] = 'Web klasörü zaten kullanılıyor, lütfen başka bir klasör seçin.';
+$wb['backup_interval_txt'] = 'Yedekleme Sıklığı';
+$wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı';
+$wb['ssl_state_txt'] = 'İl';
+$wb['ssl_locality_txt'] = 'Bölge';
+$wb['ssl_organisation_txt'] = 'Kurum';
+$wb['ssl_organisation_unit_txt'] = 'Birim';
+$wb['ssl_country_txt'] = 'Ülke';
+$wb['ssl_key_txt'] = 'SSL Anahtarı';
+$wb['ssl_request_txt'] = 'SSL İsteği';
+$wb['ssl_cert_txt'] = 'SSL Sertifikası';
+$wb['ssl_bundle_txt'] = 'SSL Yığını';
+$wb['ssl_action_txt'] = 'SSL İşlemi';
+$wb['ssl_domain_txt'] = 'SSL Alan Adı';
+$wb['server_id_txt'] = 'Sunucu';
+$wb['domain_txt'] = 'Alan Adı';
+$wb['host_txt'] = 'Sunucu Adı';
+$wb['web_folder_error_regex'] = 'Yazılan klasör geçersiz. Lütfen / karakteri kullanmadan yazın.';
+$wb['type_txt'] = 'Tip';
+$wb['redirect_type_txt'] = 'Yönlendirme Tipi';
+$wb['redirect_path_txt'] = 'Yönlendirme Yolu';
+$wb['active_txt'] = 'Etkin';
+$wb['document_root_txt'] = 'Kök Klasör';
+$wb['system_user_txt'] = 'Linux Kullanıcısı';
+$wb['system_group_txt'] = 'Linux Grubu';
+$wb['ip_address_txt'] = 'IPv4 Adresi';
+$wb['ipv6_address_txt'] = 'IPv6 Adresi';
+$wb['vhost_type_txt'] = 'SSunucu Tipi';
+$wb['hd_quota_txt'] = 'Disk Kotası';
+$wb['traffic_quota_txt'] = 'Trafik Kotası';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Own Error-Documents';
-$wb['subdomain_txt'] = 'Auto-Subdomain';
+$wb['errordocs_txt'] = 'Özel Hata Sayfaları';
+$wb['subdomain_txt'] = 'Otomatik Alt Alan';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
-$wb['client_txt'] = 'Client';
-$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.';
-$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.';
-$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.';
-$wb['apache_directives_txt'] = 'Apache Directives';
-$wb['domain_error_empty'] = 'Domain is empty.';
-$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.';
-$wb['domain_error_regex'] = 'Domain name invalid.';
-$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
-$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
-$wb['error_ssl_state_empty'] = 'SSL State is empty.';
-$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
-$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
-$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['client_group_id_txt'] = 'Client';
-$wb['stats_password_txt'] = 'Webstatistics password';
+$wb['client_txt'] = 'Müşteri';
+$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.';
+$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla başka alan adı sayısına ulaştınız.';
+$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt alan adı sayısına ulaştınız.';
+$wb['apache_directives_txt'] = 'Apache Yönergeleri';
+$wb['domain_error_empty'] = 'Alan adı boş olamaz.';
+$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/başka alan adı var.';
+$wb['domain_error_regex'] = 'Alan adı geçersiz.';
+$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt alan adları kullanılamaz.';
+$wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boş olamaz.';
+$wb['traffic_quota_error_empty'] = 'Trafik kotası boş olamaz.';
+$wb['error_ssl_state_empty'] = 'SSL ÅŸehri boÅŸ olamaz.';
+$wb['error_ssl_locality_empty'] = 'SSL bölgesi boş olamaz.';
+$wb['error_ssl_organisation_empty'] = 'SSL kurumu boÅŸ olamaz.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boÅŸ olamaz.';
+$wb['error_ssl_country_empty'] = 'SSL ülkesi boş olamaz.';
+$wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boş olamaz';
+$wb['client_group_id_txt'] = 'Müşteri';
+$wb['stats_password_txt'] = 'Web istatistikleri parolasını ayarla';
 $wb['allow_override_txt'] = 'Apache AllowOverride';
-$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota';
-$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota';
-$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/';
+$wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası';
+$wb['ssl_state_error_regex'] = 'SSL şehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_';
+$wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası';
+$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/';
 $wb['php_open_basedir_txt'] = 'PHP open_basedir';
-$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatistics username';
-$wb['stats_type_txt'] = 'Webstatistics program';
-$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['none_txt'] = 'None';
-$wb['disabled_txt'] = 'Disabled';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['save_certificate_txt'] = 'Save certificate';
-$wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
+$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı';
+$wb['stats_type_txt'] = 'Web istatistikleri yazılımı';
+$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları';
+$wb['none_txt'] = 'Yok';
+$wb['disabled_txt'] = 'Devre Dışı';
+$wb['no_redirect_txt'] = 'Yönlendirme yok';
+$wb['no_flag_txt'] = 'İşaret yok';
+$wb['save_certificate_txt'] = 'Sertifikayı kaydet';
+$wb['create_certificate_txt'] = 'Sertifika ekle';
+$wb['delete_certificate_txt'] = 'Sertifikayı sil';
+$wb['nginx_directives_txt'] = 'nginx Yönergeleri';
+$wb['seo_redirect_txt'] = 'AMD Yönlendirme';
 $wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
 $wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın';
+$wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleştirilmemiş. Bir IP adresi için yalnız bir SSL sertifikası etkinleştirebilirsiniz.';
 $wb['python_txt'] = 'Python';
 $wb['perl_txt'] = 'Perl';
 $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
 $wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
 $wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
 $wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['error_php_fpm_pm_settings_txt'] = 'PHP-FPM pm ayarlarının değerleri şu şekilde olmalıdır: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers değeri pozitif bir tamsayı olmalıdır.';
+$wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.';
+$wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.';
+$wb['fastcgi_php_version_txt'] = 'PHP Sürümü';
+$wb['pm_txt'] = 'PHP-FPM İşlem Yöneticisi';
 $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
 $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['rewrite_rules_txt'] = 'Rewrite Rules';
-$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
-$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout değeri pozitif bir tamsayı olmalıdır.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests değeri sıfır ya da pozitif bir tamsayı olmalıdır.';
+$wb['pm_ondemand_hint_txt'] = 'İsteğe bağlı işlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliğini seçerseniz, PHP başlatılamaz!';
+$wb['generate_password_txt'] = 'Parola OluÅŸtur';
+$wb['repeat_password_txt'] = 'Parola Onayı';
+$wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.';
+$wb['password_match_txt'] = 'Parola ile onayı aynı.';
+$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:';
+$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:';
+$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:';
+$wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri';
+$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:';
+$wb['rewrite_rules_txt'] = 'Yeniden Yazma Kuralları';
+$wb['invalid_rewrite_rules_txt'] = 'Yeniden Yazma Kuralları Geçersiz';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:';
 $wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
-$wb['variables_txt'] = 'Variables';
-$wb['backup_excludes_txt'] = 'Excluded Directories';
-$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
-$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
-$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
+$wb['variables_txt'] = 'DeÄŸiÅŸkenler';
+$wb['backup_excludes_txt'] = 'Katılmayacak Klasörler';
+$wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.';
+$wb['subdomain_error_empty'] = 'Alt alan adı boş ya da geçersiz karakterler içeriyor.';
 $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
diff --git a/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng
index 1c16bcda28..bc7e7622c2 100644
--- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Subdomains';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['domain_txt'] = 'Subdomain';
-$wb['add_new_record_txt'] = 'Add new subdomain';
+$wb['list_head_txt'] = 'Alt Alanlar';
+$wb['active_txt'] = 'Etkin';
+$wb['server_id_txt'] = 'Sunucu';
+$wb['parent_domain_id_txt'] = 'Web Sitesi';
+$wb['domain_txt'] = 'Alt Alan Adı';
+$wb['add_new_record_txt'] = 'Alt alan ekle';
 ?>
diff --git a/interface/web/tools/lib/lang/tr_usersettings.lng b/interface/web/tools/lib/lang/tr_usersettings.lng
index cfc5a0dc23..60c7679b9f 100644
--- a/interface/web/tools/lib/lang/tr_usersettings.lng
+++ b/interface/web/tools/lib/lang/tr_usersettings.lng
@@ -1,5 +1,4 @@
 <?php
-$wb['password_txt'] = 'Parola';
 $wb['password_strength_txt'] = 'Parola Güçlüğü';
 $wb['language_txt'] = 'Dil';
 $wb['password_mismatch'] = 'Parola ile onayı aynı değil.';
@@ -9,4 +8,5 @@ $wb['generate_password_txt'] = 'Parola OluÅŸtur';
 $wb['repeat_password_txt'] = 'Parola Onayı';
 $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.';
 $wb['password_match_txt'] = 'Parola ile onayı aynı.';
+$wb['password_txt'] = 'Password';
 ?>
diff --git a/interface/web/vm/lib/lang/tr_openvz_template.lng b/interface/web/vm/lib/lang/tr_openvz_template.lng
index fb1452e885..2621212862 100644
--- a/interface/web/vm/lib/lang/tr_openvz_template.lng
+++ b/interface/web/vm/lib/lang/tr_openvz_template.lng
@@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'TCP gönderme arabelleğinin toplam boyutu.';
 $wb['tcprcvbuf_desc_txt'] = 'TCP alma arabelleÄŸinin toplam boyutu.';
 $wb['othersockbuf_desc_txt'] = 'UNIX alan adı soket arabelleğinin toplam boyutu, UDP ve diğer datagram iletişim kuralları gönderme ara bellekleri.';
 $wb['dgramrcvbuf_desc_txt'] = 'UDP ve diğer datagram iletişim kuralları alma ara bellekleri.';
-$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\\" (bellek bitti boşaltma garantisi).';
+$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\" (bellek bitti boşaltma garantisi).';
 $wb['privvmpages_desc_txt'] = 'Bellek sayfası cinsinden ayrılacak bellek sınırı.';
 $wb['lockedpages_desc_txt'] = 'İşlem sayfaları takasına izin verilmez (mlock(2) ile kilitlenmiş sayfalar).';
 $wb['shmpages_desc_txt'] = 'Bellek sayfası cinsinden, paylaşılan belleğin toplam boyutu (IPC, paylaşılan anonim haritalama ve tmpfs nesneleri).';
diff --git a/interface/web/vm/lib/lang/tr_openvz_vm.lng b/interface/web/vm/lib/lang/tr_openvz_vm.lng
index 8840183a50..fad86d9f3a 100644
--- a/interface/web/vm/lib/lang/tr_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/tr_openvz_vm.lng
@@ -20,11 +20,6 @@ $wb['active_txt'] = 'Etkin';
 $wb['description_txt'] = 'Açıklama';
 $wb['client_group_id_txt'] = 'Müşteri';
 $wb['veid_txt'] = 'VEID';
-$wb['features_txt'] = 'Features';
-$wb['iptables_txt'] = 'IP Tables';
-$wb['custom_txt'] = 'Custom settings';
-$wb['bootorder_txt'] = 'Boot order priority';
-$wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boot order priority';
 $wb['create_dns_txt'] = 'Sunucu için DNS oluştur';
 $wb['active_until_date_txt'] = 'Åžu tarihe kadar etkin';
 $wb['ip_address_error_empty'] = 'IP adresi boÅŸ olamaz.';
@@ -42,4 +37,9 @@ $wb['io_priority_error_empty'] = 'G/Ç önceliği boş olamaz.';
 $wb['template_nameserver_error_empty'] = 'Ad sunucuları boş olamaz.';
 $wb['Virtual server'] = 'Sanal sunucu';
 $wb['Advanced'] = 'GeliÅŸmiÅŸ';
+$wb['features_txt'] = 'Features';
+$wb['iptables_txt'] = 'IP Tables';
+$wb['custom_txt'] = 'Custom settings';
+$wb['bootorder_txt'] = 'Boot order priority';
+$wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boot order priority';
 ?>
-- 
GitLab


From 89391e179a7677045efd1f15df091696b5f55e7e Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 15 Aug 2016 12:42:59 +0200
Subject: [PATCH 169/313] Imported DK language files.

---
 interface/lib/lang/dk.lng                     | 153 ++++++++++
 interface/web/admin/lib/lang/dk.lng           |  52 ++++
 .../admin/lib/lang/dk_directive_snippets.lng  |  11 +
 .../lib/lang/dk_directive_snippets_list.lng   |   8 +
 interface/web/admin/lib/lang/dk_firewall.lng  |  11 +
 .../web/admin/lib/lang/dk_firewall_list.lng   |   8 +
 interface/web/admin/lib/lang/dk_groups.lng    |   5 +
 .../web/admin/lib/lang/dk_groups_list.lng     |   7 +
 interface/web/admin/lib/lang/dk_iptables.lng  |  13 +
 .../web/admin/lib/lang/dk_iptables_list.lng   |  15 +
 .../web/admin/lib/lang/dk_language_add.lng    |   8 +
 .../admin/lib/lang/dk_language_complete.lng   |   7 +
 .../web/admin/lib/lang/dk_language_edit.lng   |   8 +
 .../web/admin/lib/lang/dk_language_export.lng |   6 +
 .../web/admin/lib/lang/dk_language_import.lng |   9 +
 .../web/admin/lib/lang/dk_language_list.lng   |   7 +
 .../web/admin/lib/lang/dk_package_install.lng |   7 +
 .../web/admin/lib/lang/dk_remote_action.lng   |  12 +
 .../web/admin/lib/lang/dk_remote_user.lng     |  47 +++
 .../admin/lib/lang/dk_remote_user_list.lng    |   7 +
 interface/web/admin/lib/lang/dk_server.lng    |  16 +
 .../web/admin/lib/lang/dk_server_config.lng   | 284 ++++++++++++++++++
 .../admin/lib/lang/dk_server_config_list.lng  |   4 +
 interface/web/admin/lib/lang/dk_server_ip.lng |  11 +
 .../web/admin/lib/lang/dk_server_ip_list.lng  |  10 +
 .../web/admin/lib/lang/dk_server_ip_map.lng   |  12 +
 .../admin/lib/lang/dk_server_ip_map_list.lng  |   7 +
 .../web/admin/lib/lang/dk_server_list.lng     |  14 +
 .../web/admin/lib/lang/dk_server_php.lng      |  16 +
 .../web/admin/lib/lang/dk_server_php_list.lng |   7 +
 .../admin/lib/lang/dk_software_package.lng    |   6 +
 .../lib/lang/dk_software_package_install.lng  |   6 +
 .../lib/lang/dk_software_package_list.lng     |  13 +
 .../web/admin/lib/lang/dk_software_repo.lng   |   8 +
 .../admin/lib/lang/dk_software_repo_list.lng  |   6 +
 .../lib/lang/dk_software_update_list.lng      |   9 +
 .../web/admin/lib/lang/dk_system_config.lng   |  84 ++++++
 .../admin/lib/lang/dk_tpl_default_admin.lng   |  18 ++
 interface/web/admin/lib/lang/dk_users.lng     |  35 +++
 .../web/admin/lib/lang/dk_users_list.lng      |   9 +
 interface/web/client/lib/lang/dk.lng          |  28 ++
 interface/web/client/lib/lang/dk_client.lng   | 202 +++++++++++++
 .../web/client/lib/lang/dk_client_circle.lng  |   9 +
 .../client/lib/lang/dk_client_circle_list.lng |  10 +
 .../web/client/lib/lang/dk_client_del.lng     |   7 +
 .../web/client/lib/lang/dk_client_message.lng |  20 ++
 .../lib/lang/dk_client_message_template.lng   |  11 +
 .../lang/dk_client_message_template_list.lng  |   5 +
 .../client/lib/lang/dk_client_template.lng    | 123 ++++++++
 .../lib/lang/dk_client_template_list.lng      |   6 +
 .../web/client/lib/lang/dk_clients_list.lng   |  11 +
 interface/web/client/lib/lang/dk_domain.lng   |   6 +
 .../web/client/lib/lang/dk_domain_list.lng    |   6 +
 interface/web/client/lib/lang/dk_reseller.lng | 206 +++++++++++++
 .../web/client/lib/lang/dk_resellers_list.lng |  11 +
 interface/web/dashboard/lib/lang/dk.lng       |   4 +
 .../lib/lang/dk_dashlet_customer.lng          |   4 +
 .../lib/lang/dk_dashlet_databasequota.lng     |   7 +
 .../dk_dashlet_invoice_client_settings.lng    |   4 +
 .../lib/lang/dk_dashlet_invoices.lng          |  18 ++
 .../dashboard/lib/lang/dk_dashlet_limits.lng  |  31 ++
 .../lib/lang/dk_dashlet_mailquota.lng         |   8 +
 .../dashboard/lib/lang/dk_dashlet_modules.lng |   4 +
 .../lib/lang/dk_dashlet_products.lng          |   9 +
 .../dashboard/lib/lang/dk_dashlet_quota.lng   |   8 +
 .../dashboard/lib/lang/dk_dashlet_shop.lng    |   8 +
 interface/web/dns/lib/lang/dk.lng             |  22 ++
 interface/web/dns/lib/lang/dk_dns_a.lng       |  17 ++
 interface/web/dns/lib/lang/dk_dns_a_list.lng  |  15 +
 interface/web/dns/lib/lang/dk_dns_aaaa.lng    |  16 +
 interface/web/dns/lib/lang/dk_dns_alias.lng   |  16 +
 interface/web/dns/lib/lang/dk_dns_cname.lng   |  17 ++
 interface/web/dns/lib/lang/dk_dns_dkim.lng    |  11 +
 interface/web/dns/lib/lang/dk_dns_dmarc.lng   |  50 +++
 interface/web/dns/lib/lang/dk_dns_ds.lng      |  18 ++
 interface/web/dns/lib/lang/dk_dns_hinfo.lng   |  16 +
 interface/web/dns/lib/lang/dk_dns_import.lng  |  16 +
 interface/web/dns/lib/lang/dk_dns_loc.lng     |  16 +
 interface/web/dns/lib/lang/dk_dns_mx.lng      |  18 ++
 interface/web/dns/lib/lang/dk_dns_ns.lng      |  16 +
 interface/web/dns/lib/lang/dk_dns_ptr.lng     |  16 +
 interface/web/dns/lib/lang/dk_dns_rp.lng      |  16 +
 interface/web/dns/lib/lang/dk_dns_slave.lng   |  17 ++
 .../dns/lib/lang/dk_dns_slave_admin_list.lng  |  10 +
 .../web/dns/lib/lang/dk_dns_slave_list.lng    |   9 +
 interface/web/dns/lib/lang/dk_dns_soa.lng     |  43 +++
 .../dns/lib/lang/dk_dns_soa_admin_list.lng    |  11 +
 .../web/dns/lib/lang/dk_dns_soa_list.lng      |  11 +
 interface/web/dns/lib/lang/dk_dns_spf.lng     |  28 ++
 interface/web/dns/lib/lang/dk_dns_srv.lng     |  20 ++
 .../web/dns/lib/lang/dk_dns_template.lng      |   6 +
 .../web/dns/lib/lang/dk_dns_template_list.lng |   6 +
 interface/web/dns/lib/lang/dk_dns_tlsa.lng    |  16 +
 interface/web/dns/lib/lang/dk_dns_txt.lng     |  19 ++
 interface/web/dns/lib/lang/dk_dns_wizard.lng  |  45 +++
 interface/web/help/lib/lang/dk.lng            |  14 +
 interface/web/help/lib/lang/dk_faq_form.lng   |   6 +
 .../lib/lang/dk_faq_manage_questions_list.lng |   9 +
 .../help/lib/lang/dk_faq_sections_form.lng    |   3 +
 .../web/help/lib/lang/dk_help_faq_list.lng    |   3 +
 .../lib/lang/dk_help_faq_sections_list.lng    |   8 +
 .../web/help/lib/lang/dk_support_message.lng  |  15 +
 .../help/lib/lang/dk_support_message_list.lng |   7 +
 interface/web/login/lib/lang/dk.lng           |  34 +++
 interface/web/login/lib/lang/dk_login_as.lng  |  11 +
 interface/web/mail/lib/lang/dk.lng            |  48 +++
 .../mail/lib/lang/dk_backup_stats_list.lng    |   9 +
 interface/web/mail/lib/lang/dk_mail_alias.lng |  17 ++
 .../web/mail/lib/lang/dk_mail_alias_list.lng  |   8 +
 .../web/mail/lib/lang/dk_mail_aliasdomain.lng |  11 +
 .../lib/lang/dk_mail_aliasdomain_list.lng     |   7 +
 .../web/mail/lib/lang/dk_mail_backup_list.lng |  16 +
 .../web/mail/lib/lang/dk_mail_blacklist.lng   |   9 +
 .../mail/lib/lang/dk_mail_blacklist_list.lng  |  10 +
 .../mail/lib/lang/dk_mail_content_filter.lng  |   9 +
 .../lib/lang/dk_mail_content_filter_list.lng  |   8 +
 .../web/mail/lib/lang/dk_mail_domain.lng      |  23 ++
 .../lib/lang/dk_mail_domain_admin_list.lng    |   8 +
 .../mail/lib/lang/dk_mail_domain_catchall.lng |  11 +
 .../lib/lang/dk_mail_domain_catchall_list.lng |   9 +
 .../web/mail/lib/lang/dk_mail_domain_list.lng |   7 +
 .../web/mail/lib/lang/dk_mail_forward.lng     |  13 +
 .../mail/lib/lang/dk_mail_forward_list.lng    |   8 +
 interface/web/mail/lib/lang/dk_mail_get.lng   |  19 ++
 .../web/mail/lib/lang/dk_mail_get_list.lng    |   9 +
 .../web/mail/lib/lang/dk_mail_mailinglist.lng |  22 ++
 .../lib/lang/dk_mail_mailinglist_list.lng     |   5 +
 .../mail/lib/lang/dk_mail_relay_recipient.lng |   9 +
 .../lib/lang/dk_mail_relay_recipient_list.lng |   9 +
 .../web/mail/lib/lang/dk_mail_spamfilter.lng  |  17 ++
 .../mail/lib/lang/dk_mail_spamfilter_list.lng |   8 +
 .../web/mail/lib/lang/dk_mail_transport.lng   |  11 +
 .../mail/lib/lang/dk_mail_transport_list.lng  |   9 +
 interface/web/mail/lib/lang/dk_mail_user.lng  |  65 ++++
 .../web/mail/lib/lang/dk_mail_user_filter.lng |  29 ++
 .../lib/lang/dk_mail_user_filter_list.lng     |   7 +
 .../web/mail/lib/lang/dk_mail_user_list.lng   |  12 +
 .../mail/lib/lang/dk_mail_user_stats_list.lng |   8 +
 .../web/mail/lib/lang/dk_mail_whitelist.lng   |   9 +
 .../mail/lib/lang/dk_mail_whitelist_list.lng  |  10 +
 .../mail/lib/lang/dk_spamfilter_blacklist.lng |  12 +
 .../lib/lang/dk_spamfilter_blacklist_list.lng |   9 +
 .../mail/lib/lang/dk_spamfilter_config.lng    |  20 ++
 .../lib/lang/dk_spamfilter_config_list.lng    |   5 +
 .../mail/lib/lang/dk_spamfilter_policy.lng    |  38 +++
 .../lib/lang/dk_spamfilter_policy_list.lng    |   9 +
 .../web/mail/lib/lang/dk_spamfilter_users.lng |  13 +
 .../lib/lang/dk_spamfilter_users_list.lng     |  10 +
 .../mail/lib/lang/dk_spamfilter_whitelist.lng |  12 +
 .../lib/lang/dk_spamfilter_whitelist_list.lng |   9 +
 .../lib/lang/dk_user_quota_stats_list.lng     |   8 +
 .../web/mail/lib/lang/dk_xmpp_domain.lng      |  62 ++++
 .../lib/lang/dk_xmpp_domain_admin_list.lng    |   8 +
 .../web/mail/lib/lang/dk_xmpp_domain_list.lng |   7 +
 interface/web/mail/lib/lang/dk_xmpp_user.lng  |  15 +
 .../web/mail/lib/lang/dk_xmpp_user_list.lng   |   8 +
 interface/web/mailuser/lib/lang/dk.lng        |   9 +
 interface/web/mailuser/lib/lang/dk_index.lng  |  12 +
 .../lib/lang/dk_mail_user_autoresponder.lng   |  13 +
 .../web/mailuser/lib/lang/dk_mail_user_cc.lng |   9 +
 .../mailuser/lib/lang/dk_mail_user_filter.lng |  21 ++
 .../lib/lang/dk_mail_user_filter_list.lng     |   8 +
 .../lib/lang/dk_mail_user_password.lng        |  11 +
 .../lib/lang/dk_mail_user_spamfilter.lng      |   7 +
 interface/web/monitor/lib/lang/dk.lng         | 163 ++++++++++
 .../web/monitor/lib/lang/dk_datalog_list.lng  |   8 +
 .../web/monitor/lib/lang/dk_syslog_list.lng   |   7 +
 interface/web/sites/lib/lang/dk.lng           |  35 +++
 interface/web/sites/lib/lang/dk_aps.lng       |  58 ++++
 .../sites/lib/lang/dk_aps_instances_list.lng  |  11 +
 .../sites/lib/lang/dk_aps_packages_list.lng   |   8 +
 .../lib/lang/dk_aps_update_packagelist.lng    |   7 +
 .../sites/lib/lang/dk_backup_stats_list.lng   |  10 +
 interface/web/sites/lib/lang/dk_cron.lng      |  26 ++
 interface/web/sites/lib/lang/dk_cron_list.lng |  13 +
 interface/web/sites/lib/lang/dk_database.lng  |  49 +++
 .../sites/lib/lang/dk_database_admin_list.lng |  12 +
 .../web/sites/lib/lang/dk_database_list.lng   |  11 +
 .../lib/lang/dk_database_quota_stats_list.lng |   8 +
 .../web/sites/lib/lang/dk_database_user.lng   |  24 ++
 .../lib/lang/dk_database_user_admin_list.lng  |   6 +
 .../sites/lib/lang/dk_database_user_list.lng  |   5 +
 .../lib/lang/dk_ftp_sites_stats_list.lng      |  10 +
 interface/web/sites/lib/lang/dk_ftp_user.lng  |  35 +++
 .../web/sites/lib/lang/dk_ftp_user_list.lng   |   8 +
 .../web/sites/lib/lang/dk_shell_user.lng      |  36 +++
 .../web/sites/lib/lang/dk_shell_user_list.lng |   8 +
 .../lib/lang/dk_user_quota_stats_list.lng     |   9 +
 .../web/sites/lib/lang/dk_web_aliasdomain.lng | 115 +++++++
 .../lib/lang/dk_web_aliasdomain_list.lng      |  14 +
 .../web/sites/lib/lang/dk_web_backup_list.lng |  21 ++
 .../web/sites/lib/lang/dk_web_childdomain.lng | 118 ++++++++
 .../lib/lang/dk_web_childdomain_list.lng      |  16 +
 .../lib/lang/dk_web_directive_snippets.lng    |   3 +
 .../web/sites/lib/lang/dk_web_domain.lng      | 136 +++++++++
 .../lib/lang/dk_web_domain_admin_list.lng     |   9 +
 .../web/sites/lib/lang/dk_web_domain_list.lng |   8 +
 .../web/sites/lib/lang/dk_web_folder.lng      |   8 +
 .../web/sites/lib/lang/dk_web_folder_list.lng |   8 +
 .../web/sites/lib/lang/dk_web_folder_user.lng |  14 +
 .../lib/lang/dk_web_folder_user_list.lng      |   7 +
 .../lib/lang/dk_web_sites_stats_list.lng      |   9 +
 .../web/sites/lib/lang/dk_web_subdomain.lng   |  50 +++
 .../sites/lib/lang/dk_web_subdomain_list.lng  |   8 +
 .../sites/lib/lang/dk_web_vhost_domain.lng    | 155 ++++++++++
 .../lang/dk_web_vhost_domain_admin_list.lng   |  11 +
 .../lib/lang/dk_web_vhost_domain_list.lng     |  12 +
 .../sites/lib/lang/dk_web_vhost_subdomain.lng | 131 ++++++++
 .../lib/lang/dk_web_vhost_subdomain_list.lng  |   8 +
 .../web/sites/lib/lang/dk_webdav_user.lng     |  21 ++
 .../sites/lib/lang/dk_webdav_user_list.lng    |   8 +
 .../lib/lang/dk_strengthmeter.lng             |   8 +
 interface/web/tools/lib/lang/dk.lng           |  13 +
 .../tools/lib/lang/dk_import_ispconfig.lng    |  23 ++
 .../web/tools/lib/lang/dk_import_vpopmail.lng |   8 +
 interface/web/tools/lib/lang/dk_index.lng     |   4 +
 interface/web/tools/lib/lang/dk_interface.lng |   7 +
 interface/web/tools/lib/lang/dk_resync.lng    |  49 +++
 .../web/tools/lib/lang/dk_tpl_default.lng     |   7 +
 .../web/tools/lib/lang/dk_usersettings.lng    |  12 +
 interface/web/vm/lib/lang/dk.lng              |   7 +
 .../web/vm/lib/lang/dk_openvz_action.lng      |  16 +
 interface/web/vm/lib/lang/dk_openvz_ip.lng    |   9 +
 .../web/vm/lib/lang/dk_openvz_ip_list.lng     |   7 +
 .../web/vm/lib/lang/dk_openvz_ostemplate.lng  |  11 +
 .../vm/lib/lang/dk_openvz_ostemplate_list.lng |   8 +
 .../web/vm/lib/lang/dk_openvz_template.lng    |  97 ++++++
 .../vm/lib/lang/dk_openvz_template_list.lng   |   5 +
 interface/web/vm/lib/lang/dk_openvz_vm.lng    |  45 +++
 .../web/vm/lib/lang/dk_openvz_vm_list.lng     |  10 +
 230 files changed, 5016 insertions(+)
 create mode 100644 interface/lib/lang/dk.lng
 create mode 100644 interface/web/admin/lib/lang/dk.lng
 create mode 100644 interface/web/admin/lib/lang/dk_directive_snippets.lng
 create mode 100644 interface/web/admin/lib/lang/dk_directive_snippets_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_firewall.lng
 create mode 100644 interface/web/admin/lib/lang/dk_firewall_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_groups.lng
 create mode 100644 interface/web/admin/lib/lang/dk_groups_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_iptables.lng
 create mode 100644 interface/web/admin/lib/lang/dk_iptables_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_language_add.lng
 create mode 100644 interface/web/admin/lib/lang/dk_language_complete.lng
 create mode 100644 interface/web/admin/lib/lang/dk_language_edit.lng
 create mode 100644 interface/web/admin/lib/lang/dk_language_export.lng
 create mode 100644 interface/web/admin/lib/lang/dk_language_import.lng
 create mode 100644 interface/web/admin/lib/lang/dk_language_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_package_install.lng
 create mode 100644 interface/web/admin/lib/lang/dk_remote_action.lng
 create mode 100644 interface/web/admin/lib/lang/dk_remote_user.lng
 create mode 100644 interface/web/admin/lib/lang/dk_remote_user_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_config.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_config_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_ip.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_ip_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_ip_map.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_ip_map_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_php.lng
 create mode 100644 interface/web/admin/lib/lang/dk_server_php_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_software_package.lng
 create mode 100644 interface/web/admin/lib/lang/dk_software_package_install.lng
 create mode 100644 interface/web/admin/lib/lang/dk_software_package_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_software_repo.lng
 create mode 100644 interface/web/admin/lib/lang/dk_software_repo_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_software_update_list.lng
 create mode 100644 interface/web/admin/lib/lang/dk_system_config.lng
 create mode 100644 interface/web/admin/lib/lang/dk_tpl_default_admin.lng
 create mode 100644 interface/web/admin/lib/lang/dk_users.lng
 create mode 100644 interface/web/admin/lib/lang/dk_users_list.lng
 create mode 100644 interface/web/client/lib/lang/dk.lng
 create mode 100644 interface/web/client/lib/lang/dk_client.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_circle.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_circle_list.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_del.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_message.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_message_template.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_message_template_list.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_template.lng
 create mode 100644 interface/web/client/lib/lang/dk_client_template_list.lng
 create mode 100644 interface/web/client/lib/lang/dk_clients_list.lng
 create mode 100644 interface/web/client/lib/lang/dk_domain.lng
 create mode 100644 interface/web/client/lib/lang/dk_domain_list.lng
 create mode 100644 interface/web/client/lib/lang/dk_reseller.lng
 create mode 100644 interface/web/client/lib/lang/dk_resellers_list.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_customer.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_databasequota.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_invoice_client_settings.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_limits.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_mailquota.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_modules.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_products.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_quota.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_shop.lng
 create mode 100644 interface/web/dns/lib/lang/dk.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_a.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_a_list.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_aaaa.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_alias.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_cname.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_dkim.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_dmarc.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_ds.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_hinfo.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_import.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_loc.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_mx.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_ns.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_ptr.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_rp.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_slave.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_slave_admin_list.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_slave_list.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_soa.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_soa_list.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_spf.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_srv.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_template.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_template_list.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_tlsa.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_txt.lng
 create mode 100644 interface/web/dns/lib/lang/dk_dns_wizard.lng
 create mode 100644 interface/web/help/lib/lang/dk.lng
 create mode 100644 interface/web/help/lib/lang/dk_faq_form.lng
 create mode 100644 interface/web/help/lib/lang/dk_faq_manage_questions_list.lng
 create mode 100644 interface/web/help/lib/lang/dk_faq_sections_form.lng
 create mode 100644 interface/web/help/lib/lang/dk_help_faq_list.lng
 create mode 100644 interface/web/help/lib/lang/dk_help_faq_sections_list.lng
 create mode 100644 interface/web/help/lib/lang/dk_support_message.lng
 create mode 100644 interface/web/help/lib/lang/dk_support_message_list.lng
 create mode 100644 interface/web/login/lib/lang/dk.lng
 create mode 100644 interface/web/login/lib/lang/dk_login_as.lng
 create mode 100644 interface/web/mail/lib/lang/dk.lng
 create mode 100644 interface/web/mail/lib/lang/dk_backup_stats_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_alias.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_alias_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_aliasdomain.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_aliasdomain_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_backup_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_blacklist.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_blacklist_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_content_filter.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_content_filter_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_domain.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_domain_admin_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_domain_catchall.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_domain_catchall_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_domain_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_forward.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_forward_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_get.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_get_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_mailinglist.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_mailinglist_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_relay_recipient.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_relay_recipient_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_spamfilter.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_spamfilter_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_transport.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_transport_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_user.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_user_filter.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_user_filter_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_user_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_user_stats_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_whitelist.lng
 create mode 100644 interface/web/mail/lib/lang/dk_mail_whitelist_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_blacklist.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_blacklist_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_config.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_config_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_policy.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_policy_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_users.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_users_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_whitelist.lng
 create mode 100644 interface/web/mail/lib/lang/dk_spamfilter_whitelist_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_user_quota_stats_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_xmpp_domain.lng
 create mode 100644 interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_xmpp_domain_list.lng
 create mode 100644 interface/web/mail/lib/lang/dk_xmpp_user.lng
 create mode 100644 interface/web/mail/lib/lang/dk_xmpp_user_list.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk_index.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk_mail_user_cc.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk_mail_user_filter.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk_mail_user_filter_list.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk_mail_user_password.lng
 create mode 100644 interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng
 create mode 100644 interface/web/monitor/lib/lang/dk.lng
 create mode 100644 interface/web/monitor/lib/lang/dk_datalog_list.lng
 create mode 100644 interface/web/monitor/lib/lang/dk_syslog_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk.lng
 create mode 100644 interface/web/sites/lib/lang/dk_aps.lng
 create mode 100644 interface/web/sites/lib/lang/dk_aps_instances_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_aps_packages_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_aps_update_packagelist.lng
 create mode 100644 interface/web/sites/lib/lang/dk_backup_stats_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_cron.lng
 create mode 100644 interface/web/sites/lib/lang/dk_cron_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_database.lng
 create mode 100644 interface/web/sites/lib/lang/dk_database_admin_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_database_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_database_user.lng
 create mode 100644 interface/web/sites/lib/lang/dk_database_user_admin_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_database_user_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_ftp_user.lng
 create mode 100644 interface/web/sites/lib/lang/dk_ftp_user_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_shell_user.lng
 create mode 100644 interface/web/sites/lib/lang/dk_shell_user_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_user_quota_stats_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_aliasdomain.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_aliasdomain_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_backup_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_childdomain.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_childdomain_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_directive_snippets.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_domain.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_domain_admin_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_domain_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_folder.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_folder_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_folder_user.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_folder_user_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_sites_stats_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_subdomain.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_subdomain_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_vhost_domain.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng
 create mode 100644 interface/web/sites/lib/lang/dk_web_vhost_subdomain_list.lng
 create mode 100644 interface/web/sites/lib/lang/dk_webdav_user.lng
 create mode 100644 interface/web/sites/lib/lang/dk_webdav_user_list.lng
 create mode 100644 interface/web/strengthmeter/lib/lang/dk_strengthmeter.lng
 create mode 100644 interface/web/tools/lib/lang/dk.lng
 create mode 100644 interface/web/tools/lib/lang/dk_import_ispconfig.lng
 create mode 100644 interface/web/tools/lib/lang/dk_import_vpopmail.lng
 create mode 100644 interface/web/tools/lib/lang/dk_index.lng
 create mode 100644 interface/web/tools/lib/lang/dk_interface.lng
 create mode 100644 interface/web/tools/lib/lang/dk_resync.lng
 create mode 100644 interface/web/tools/lib/lang/dk_tpl_default.lng
 create mode 100644 interface/web/tools/lib/lang/dk_usersettings.lng
 create mode 100644 interface/web/vm/lib/lang/dk.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_action.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_ip.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_ip_list.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_ostemplate.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_ostemplate_list.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_template.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_template_list.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_vm.lng
 create mode 100644 interface/web/vm/lib/lang/dk_openvz_vm_list.lng

diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng
new file mode 100644
index 0000000000..5546da7268
--- /dev/null
+++ b/interface/lib/lang/dk.lng
@@ -0,0 +1,153 @@
+<?php
+$wb['conf_format_dateshort'] = 'Y-m-d';
+$wb['conf_format_dateshort_human_readable'] = 'yyyy-mm-dd';
+$wb['conf_format_datelong'] = 'l dS of F Y';
+$wb['conf_format_timeshort'] = 'H:i';
+$wb['conf_format_timelong'] = 'H:i:s';
+$wb['conf_format_datetime'] = 'Y-m-d H:i';
+$wb['number_format_decimals'] = '4';
+$wb['number_format_decimals_client'] = '2';
+$wb['number_format_dec_point'] = ',';
+$wb['number_format_thousands_sep'] = '.';
+$wb['error_301'] = 'Modulet er ikke tilladt for den aktuelle bruger.';
+$wb['error_302'] = 'Modulet er ugyldigt.';
+$wb['error_1001'] = 'Brugernavn og adgangskode kan ikke være tomt !';
+$wb['error_1002'] = 'Brugernavn og/eller adgangskode er ikke korrekt !';
+$wb['error_1003'] = 'Brugernavnet er deaktiveret !';
+$wb['delete_confirmation'] = 'Vil du virkelig slette denne post ?';
+$wb['error_no_view_permission'] = 'Du har ikke tilladelse til at se denne pakke eller denne pakke eksisterer ikke !';
+$wb['error_no_delete_permission'] = 'Du har ikke tilladelse til at slette denne pakke !';
+$wb['page_txt'] = 'Side';
+$wb['page_of_txt'] = 'af';
+$wb['page_and_txt'] = 'og';
+$wb['page_next_txt'] = 'Næste';
+$wb['page_back_txt'] = 'Tilbage';
+$wb['delete_txt'] = 'Slet';
+$wb['filter_txt'] = 'Filter';
+$wb['add_new_record_txt'] = 'Tilføj ny pakke';
+$wb['btn_save_txt'] = 'Gem';
+$wb['btn_cancel_txt'] = 'Tilbage';
+$wb['top_menu_system'] = 'System';
+$wb['top_menu_client'] = 'Kunder';
+$wb['top_menu_email'] = 'E-mail';
+$wb['top_menu_monitor'] = 'Overvåge';
+$wb['top_menu_sites'] = 'Sider';
+$wb['top_menu_dns'] = 'DNS';
+$wb['top_menu_tools'] = 'Værktøjer';
+$wb['top_menu_help'] = 'Hjælp';
+$wb['top_menu_billing'] = 'Fakturering';
+$wb['top_menu_mailuser'] = 'Mailbruger';
+$wb['top_menu_domain'] = 'Domæner';
+$wb['top_menu_dashboard'] = 'Hjem';
+$wb['top_menu_vm'] = 'VServer';
+$wb['toolsarea_head_txt'] = 'Værktøjer';
+$wb['latest_news_txt'] = 'Seneste nyt';
+$wb['logout_txt'] = 'Log ud';
+$wb['daynamesmin_su'] = 'Sø';
+$wb['daynamesmin_mo'] = 'Ma';
+$wb['daynamesmin_tu'] = 'Ti';
+$wb['daynamesmin_we'] = 'On';
+$wb['daynamesmin_th'] = 'To';
+$wb['daynamesmin_fr'] = 'Fr';
+$wb['daynamesmin_sa'] = 'Lø';
+$wb['daynames_sunday'] = 'Søndag';
+$wb['daynames_monday'] = 'Mandag';
+$wb['daynames_tuesday'] = 'Tirsdag';
+$wb['daynames_wednesday'] = 'Onsdag';
+$wb['daynames_thursday'] = 'Torsdag';
+$wb['daynames_friday'] = 'Fredag';
+$wb['daynames_saturday'] = 'Lørdag';
+$wb['monthnamesshort_jan'] = 'Jan';
+$wb['monthnamesshort_feb'] = 'Feb';
+$wb['monthnamesshort_mar'] = 'Mar';
+$wb['monthnamesshort_apr'] = 'Apr';
+$wb['monthnamesshort_may'] = 'Maj';
+$wb['monthnamesshort_jun'] = 'Jun';
+$wb['monthnamesshort_jul'] = 'Jul';
+$wb['monthnamesshort_aug'] = 'Aug';
+$wb['monthnamesshort_sep'] = 'Sep';
+$wb['monthnamesshort_oct'] = 'Okt';
+$wb['monthnamesshort_nov'] = 'Nov';
+$wb['monthnamesshort_dec'] = 'Dec';
+$wb['datepicker_nextText'] = 'Næste';
+$wb['datepicker_prevText'] = 'Forrige';
+$wb['submit_confirmation'] = 'Ønsker du virkelig at udføre denne handling ?';
+$wb['globalsearch_resultslimit_of_txt'] = 'af';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultater';
+$wb['globalsearch_noresults_text_txt'] = 'Ingen resultater.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultater';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Søg';
+$wb['globalsearch_suggestions_text_txt'] = 'Forslag';
+$wb['global_tabchange_warning_txt'] = 'Data på denne fane vil blive ændret, hvis du trykker OK. Ved annullering vil disse data blive kasseret.';
+$wb['global_tabchange_discard_txt'] = 'Du har ikke-gemte ændringer på dette faneblad. Ændringer vil blive kasseret, hvis du fortsætter.';
+$wb['datalog_changes_txt'] = 'Følgende ændringer er endnu ikke sendt til alle servere:';
+$wb['datalog_changes_end_txt'] = 'Lagring af opdateringer kan tage op til et minut. Vær tålmodig.';
+$wb['datalog_status_i_web_database'] = 'Opret ny database';
+$wb['datalog_status_u_web_database'] = 'Opdater database';
+$wb['datalog_status_d_web_database'] = 'Slet database';
+$wb['datalog_status_i_web_database_user'] = 'Opret database bruger';
+$wb['datalog_status_u_web_database_user'] = 'Opdater database bruger';
+$wb['datalog_status_d_web_database_user'] = 'Slet database bruger';
+$wb['datalog_status_i_web_domain'] = 'Opret ny webside';
+$wb['datalog_status_u_web_domain'] = 'Opdater webside indstillinger';
+$wb['datalog_status_d_web_domain'] = 'Slet webside';
+$wb['datalog_status_i_ftp_user'] = 'Opret FTP bruger';
+$wb['datalog_status_u_ftp_user'] = 'Opdater FTP bruger';
+$wb['datalog_status_d_ftp_user'] = 'Slet FTP bruger';
+$wb['datalog_status_i_mail_domain'] = 'Opret e-mail domæne';
+$wb['datalog_status_u_mail_domain'] = 'Opdater e-mail domæne';
+$wb['datalog_status_d_mail_domain'] = 'Slet e-mail domæne';
+$wb['datalog_status_i_mail_user'] = 'Opret e-mail bruger';
+$wb['datalog_status_u_mail_user'] = 'Opdater e-mail bruger';
+$wb['datalog_status_d_mail_user'] = 'Slet e-mail bruger';
+$wb['datalog_status_i_spamfilter_users'] = 'Opret spam filterindstillinger';
+$wb['datalog_status_u_spamfilter_users'] = 'Opdater spam filterindstillinger';
+$wb['datalog_status_d_spamfilter_users'] = 'Slet spam filterindstillinger';
+$wb['datalog_status_i_mail_forwarding'] = 'Opret e-mail adresse';
+$wb['datalog_status_u_mail_forwarding'] = 'Opdater e-mail adresse';
+$wb['datalog_status_d_mail_forwarding'] = 'Slet e-mail adresse';
+$wb['datalog_status_i_dns_rr'] = 'Opret DNS-post';
+$wb['datalog_status_u_dns_rr'] = 'Opdater DNS-post';
+$wb['datalog_status_d_dns_rr'] = 'Slet DNS-post';
+$wb['datalog_status_i_dns_soa'] = 'Opret DNS zone';
+$wb['datalog_status_u_dns_soa'] = 'Opdater DNS zone';
+$wb['datalog_status_d_dns_soa'] = 'Slet DNS zone';
+$wb['datalog_status_i_cron'] = 'Opret cron job';
+$wb['datalog_status_u_cron'] = 'Opdater cron job';
+$wb['datalog_status_d_cron'] = 'Slet cron job';
+$wb['datalog_status_i_mail_get'] = 'Opret mail-hentnings konto';
+$wb['datalog_status_u_mail_get'] = 'Opdater mail-hentnings konto';
+$wb['datalog_status_d_mail_get'] = 'Slet mail-hentnings konto';
+$wb['datalog_status_i_mail_mailinglist'] = 'Opret mail-liste';
+$wb['datalog_status_u_mail_mailinglist'] = 'Opdater mail-liste';
+$wb['datalog_status_d_mail_mailinglist'] = 'Slet mail-liste';
+$wb['datalog_status_i_shell_user'] = 'Opret shell bruger';
+$wb['datalog_status_u_shell_user'] = 'Opdater shell bruger';
+$wb['datalog_status_d_shell_user'] = 'Slet shell bruger';
+$wb['datalog_status_i_web_folder'] = 'Opret mappe beskyttelse';
+$wb['datalog_status_u_web_folder'] = 'Opdater mappe beskyttelse';
+$wb['datalog_status_d_web_folder'] = 'Slet mappe beskyttelse';
+$wb['datalog_status_i_web_folder_user'] = 'Opret mappe beskyttelses bruger';
+$wb['datalog_status_u_web_folder_user'] = 'Opdater mappe beskyttelses bruger';
+$wb['datalog_status_d_web_folder_user'] = 'Slet mappe beskyttelses bruger';
+$wb['err_csrf_attempt_blocked'] = 'CSRF forsøg blokeret.';
+$wb['login_as_txt'] = 'Log ind som';
+$wb['no_domain_perm'] = 'Du har ingen rettigheder til dette domæne.';
+$wb['no_destination_perm'] = 'Du har ingen rettigheder til denne destination.';
+$wb['client_you_are_locked'] = 'Du har ingen rettigheder til at ændre indstillinger.';
+$wb['gender_m_txt'] = 'Hr.';
+$wb['gender_f_txt'] = 'Fr.';
+$wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'Denne kunde har åbne poster i fakturerings modulet, kunden kan derfor ikke slettes.';
+$wb['yes_txt'] = 'Ja';
+$wb['no_txt'] = 'Nej';
+$wb['None'] = 'Ingen';
+$wb['strength_1'] = 'Svag';
+$wb['strength_2'] = 'Nogenlunde';
+$wb['strength_3'] = 'God';
+$wb['strength_4'] = 'Stærk';
+$wb['strength_5'] = 'Meget Stærk';
+$wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden og have en styrke på \"{strength}\".';
+$wb['weak_password_length_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden.';
+$wb['security_check1_txt'] = 'Check for sikkerheds tilladelse:';
+$wb['security_check2_txt'] = 'mislykkedes.';
+?>
diff --git a/interface/web/admin/lib/lang/dk.lng b/interface/web/admin/lib/lang/dk.lng
new file mode 100644
index 0000000000..2e07b64fb0
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk.lng
@@ -0,0 +1,52 @@
+<?php
+$wb['1001'] = 'Brugernavn eller adgangskode er tomt.';
+$wb['1002'] = 'Brugernavn eller adgangskode er forkert.';
+$wb['Groups'] = 'Grupper';
+$wb['groups_description'] = 'Form to edit systembruger grupper.';
+$wb['Servers'] = 'Servere';
+$wb['Config'] = 'Konfiguration';
+$wb['Add user'] = 'Tilføj bruger';
+$wb['Edit user'] = 'Rediger bruger';
+$wb['Add group'] = 'Tilføj gruppe';
+$wb['Edit group'] = 'Rediger gruppe';
+$wb['Edit server'] = 'Rediger server';
+$wb['Sync. Now'] = 'Sync. Nu';
+$wb['DB Sync.'] = 'DB Sync.';
+$wb['User Management'] = 'Bruger HÃ¥ndtering';
+$wb['CP Users'] = 'CP Brugere';
+$wb['Remote Users'] = 'Fjern-Brugere';
+$wb['System'] = 'System';
+$wb['Server Services'] = 'Server Services';
+$wb['Services'] = 'Services';
+$wb['Server Config'] = 'Server Konfiguration';
+$wb['Server'] = 'Server';
+$wb['Mail'] = 'Mail';
+$wb['Getmail'] = 'Hent mail';
+$wb['Web'] = 'Web';
+$wb['FastCGI'] = 'FastCGI';
+$wb['Jailkit'] = 'Jailkit';
+$wb['Rescue'] = 'Redde';
+$wb['Server IP addresses'] = 'Server IP adresser';
+$wb['Additional PHP Versions'] = 'Yderligere PHP Versioner';
+$wb['Directive Snippets'] = 'Direktiv Kodestykker';
+$wb['Firewall'] = 'Firewall';
+$wb['Interface'] = 'System Konfiguration';
+$wb['Interface Config'] = 'Grænseflade konfiguration';
+$wb['Domains'] = 'Domæner';
+$wb['Misc'] = 'Diverse';
+$wb['Software'] = 'Apps & Tilføjelser';
+$wb['Repositories'] = 'Arkiver';
+$wb['Packages'] = 'Pakker';
+$wb['Updates'] = 'Opdateringer';
+$wb['Language Editor'] = 'Sprog Editor';
+$wb['Languages'] = 'Sprog';
+$wb['New Language'] = 'Nyt Sprog';
+$wb['Merge'] = 'Flet sprog';
+$wb['Export'] = 'Exporter';
+$wb['Import'] = 'Importer';
+$wb['Remote Actions'] = 'Fjernbetjenings aktioner';
+$wb['Do OS-Update'] = 'Udfør OS-Opdatering';
+$wb['Do ISPConfig-Update'] = 'Udfør ISPConfig-Opdatering';
+$wb['Sites'] = 'Sites';
+$wb['DNS'] = 'DNS';
+?>
diff --git a/interface/web/admin/lib/lang/dk_directive_snippets.lng b/interface/web/admin/lib/lang/dk_directive_snippets.lng
new file mode 100644
index 0000000000..6a568629a5
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_directive_snippets.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['Directive Snippets'] = 'Direktiv Kodestykker';
+$wb['name_txt'] = 'Navn på Kodestykke';
+$wb['type_txt'] = 'Type';
+$wb['snippet_txt'] = 'Kodestykke';
+$wb['active_txt'] = 'Aktiv';
+$wb['directive_snippets_name_empty'] = 'Angiv et navn til uddrag.';
+$wb['directive_snippets_name_error_unique'] = 'Der er allerede et direktiv uddrag med dette navn.';
+$wb['variables_txt'] = 'Variabler';
+$wb['customer_viewable_txt'] = 'Customer viewable';
+?>
diff --git a/interface/web/admin/lib/lang/dk_directive_snippets_list.lng b/interface/web/admin/lib/lang/dk_directive_snippets_list.lng
new file mode 100644
index 0000000000..fe9df2eaba
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_directive_snippets_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Direktiv Kodestykker';
+$wb['active_txt'] = 'Aktiv';
+$wb['name_txt'] = 'Navn på Kodestykke';
+$wb['type_txt'] = 'Type';
+$wb['add_new_record_txt'] = 'Tilføj Direktiv Kodestykke';
+$wb['customer_viewable_txt'] = 'Customer viewable';
+?>
diff --git a/interface/web/admin/lib/lang/dk_firewall.lng b/interface/web/admin/lib/lang/dk_firewall.lng
new file mode 100644
index 0000000000..9a20698384
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_firewall.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['tcp_port_txt'] = 'Ã…ben TCP porte';
+$wb['udp_port_txt'] = 'Ã…ben UDP porte';
+$wb['tcp_port_help_txt'] = 'Adskilt af komma';
+$wb['udp_port_help_txt'] = 'Adskilt af komma';
+$wb['active_txt'] = 'Aktiv';
+$wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.';
+$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \":\" og \",\".';
+$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \":\" og \",\".';
+?>
diff --git a/interface/web/admin/lib/lang/dk_firewall_list.lng b/interface/web/admin/lib/lang/dk_firewall_list.lng
new file mode 100644
index 0000000000..55b23b317f
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_firewall_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Firewall';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['tcp_port_txt'] = 'Ã…ben TCP porte';
+$wb['udp_port_txt'] = 'Ã…ben UDP porte';
+$wb['add_new_record_txt'] = 'Tilføj Firewall post';
+?>
diff --git a/interface/web/admin/lib/lang/dk_groups.lng b/interface/web/admin/lib/lang/dk_groups.lng
new file mode 100644
index 0000000000..57626540d6
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_groups.lng
@@ -0,0 +1,5 @@
+<?php
+$wb['description_txt'] = 'Beskrivelse';
+$wb['name_txt'] = 'Gruppe';
+$wb['name_err'] = 'Gruppe skal være min 1, max 30 Karakter.';
+?>
diff --git a/interface/web/admin/lib/lang/dk_groups_list.lng b/interface/web/admin/lib/lang/dk_groups_list.lng
new file mode 100644
index 0000000000..ab37678b02
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_groups_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Systembruger grupper';
+$wb['description_txt'] = 'Beskrivelse';
+$wb['name_txt'] = 'Gruppe';
+$wb['add_new_record_txt'] = 'Tilføj ny Gruppe';
+$wb['warning_txt'] = '<b>ADVARSEL:</b> Du må ikke redigere eller ændre brugerindstillinger her. Brug indstillingerne Kunde og Forhandlere i Kunde-modulet i stedet. Ændring eller at skifte brugere eller grupper her kan forårsage tab af data!';
+?>
diff --git a/interface/web/admin/lib/lang/dk_iptables.lng b/interface/web/admin/lib/lang/dk_iptables.lng
new file mode 100644
index 0000000000..0e4c3b5335
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_iptables.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['multiport_txt'] = 'Multi Port';
+$wb['singleport_txt'] = 'Single Port';
+$wb['protocol_txt'] = 'Protekol';
+$wb['table_txt'] = 'Tabel';
+$wb['target_txt'] = 'MÃ¥l';
+$wb['state_txt'] = 'Status';
+$wb['destination_ip_txt'] = 'Destination Adresse';
+$wb['source_ip_txt'] = 'Kilde Adresse';
+$wb['active_txt'] = 'Aktiv';
+$wb['iptables_error_unique'] = 'Der er allerede en firewall post for denne server.';
+?>
diff --git a/interface/web/admin/lib/lang/dk_iptables_list.lng b/interface/web/admin/lib/lang/dk_iptables_list.lng
new file mode 100644
index 0000000000..fdeedbbd5b
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_iptables_list.lng
@@ -0,0 +1,15 @@
+<?php
+$wb['list_head_txt'] = 'IP Tabeller';
+$wb['add_new_rule_txt'] = 'Tilføj IP Tabeller Regler';
+$wb['server_id_txt'] = 'Server';
+$wb['multiport_txt'] = 'Multi Port';
+$wb['singleport_txt'] = 'Single Port';
+$wb['protocol_txt'] = 'Protekol';
+$wb['table_txt'] = 'Tabel';
+$wb['target_txt'] = 'MÃ¥l';
+$wb['state_txt'] = 'Status';
+$wb['destination_ip_txt'] = 'Destination Adresse';
+$wb['source_ip_txt'] = 'Kilde Adresse';
+$wb['active_txt'] = 'Aktiv';
+$wb['iptables_error_unique'] = 'Der er allerede en firewall post for denne server.';
+?>
diff --git a/interface/web/admin/lib/lang/dk_language_add.lng b/interface/web/admin/lib/lang/dk_language_add.lng
new file mode 100644
index 0000000000..c9bb1a0b43
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_language_add.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Tilføj nyt sprog';
+$wb['language_select_txt'] = 'Vælg basis sprog';
+$wb['language_new_txt'] = 'Nyt sprog';
+$wb['language_new_hint_txt'] = '2 karakters ISO 639-1 sprog-kode (See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
+$wb['btn_save_txt'] = 'Opret nyt sprog fil-sæt';
+$wb['btn_cancel_txt'] = 'Tilbage';
+?>
diff --git a/interface/web/admin/lib/lang/dk_language_complete.lng b/interface/web/admin/lib/lang/dk_language_complete.lng
new file mode 100644
index 0000000000..3c3824e9ea
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_language_complete.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Flet sprog';
+$wb['list_desc_txt'] = 'Flet den valgte sprog fil med den engelske master sprog fil. <br />Dette tilføjer manglende strenge fra engelske master sprog fil til det valgte sprog.';
+$wb['language_select_txt'] = 'Vælg sprog';
+$wb['btn_save_txt'] = 'Flet filer nu';
+$wb['btn_cancel_txt'] = 'Tilbage';
+?>
diff --git a/interface/web/admin/lib/lang/dk_language_edit.lng b/interface/web/admin/lib/lang/dk_language_edit.lng
new file mode 100644
index 0000000000..f78826f022
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_language_edit.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Sprog fil editor';
+$wb['language_select_txt'] = 'Vælg sprog';
+$wb['module_txt'] = 'Modul';
+$wb['lang_file_txt'] = 'Sprog fil';
+$wb['btn_save_txt'] = 'Gem';
+$wb['btn_cancel_txt'] = 'Tilbage';
+?>
diff --git a/interface/web/admin/lib/lang/dk_language_export.lng b/interface/web/admin/lib/lang/dk_language_export.lng
new file mode 100644
index 0000000000..7abe805d26
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_language_export.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['list_head_txt'] = 'Exporter sprog filer';
+$wb['language_select_txt'] = 'Vælg sprog';
+$wb['btn_save_txt'] = 'Exporter det valgte sprog fil-sæt';
+$wb['btn_cancel_txt'] = 'Tilbage';
+?>
diff --git a/interface/web/admin/lib/lang/dk_language_import.lng b/interface/web/admin/lib/lang/dk_language_import.lng
new file mode 100644
index 0000000000..e210bd7c83
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_language_import.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Importer sprog filer';
+$wb['list_desc_txt'] = 'ADVARSEL: Importere ikke sprogfiler fra utroværdige kilder.';
+$wb['language_import_txt'] = 'Vælg sprog fil';
+$wb['btn_save_txt'] = 'Importer den valgte sprog fil';
+$wb['language_overwrite_txt'] = 'Overskriv fil, hvis den allerede findes.';
+$wb['btn_cancel_txt'] = 'Tilbage';
+$wb['ignore_version_txt'] = 'Skip ISPConfig versions check';
+?>
diff --git a/interface/web/admin/lib/lang/dk_language_list.lng b/interface/web/admin/lib/lang/dk_language_list.lng
new file mode 100644
index 0000000000..6a91f661e2
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_language_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Sprog fil editor';
+$wb['language_select_txt'] = 'Vælg sprog';
+$wb['module_txt'] = 'Modul';
+$wb['lang_file_txt'] = 'Sprog fil';
+$wb['lang_file_date_txt'] = 'Seneste redigering';
+?>
diff --git a/interface/web/admin/lib/lang/dk_package_install.lng b/interface/web/admin/lib/lang/dk_package_install.lng
new file mode 100644
index 0000000000..8e1eba050c
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_package_install.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['repo_name_txt'] = 'Arkiv';
+$wb['repo_url_txt'] = 'URL';
+$wb['repo_username_txt'] = 'Bruger (valgfri)';
+$wb['repo_password_txt'] = 'Adgangskode (valgfri)';
+$wb['active_txt'] = 'Aktiv';
+?>
diff --git a/interface/web/admin/lib/lang/dk_remote_action.lng b/interface/web/admin/lib/lang/dk_remote_action.lng
new file mode 100644
index 0000000000..5a118264ab
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_remote_action.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['select_server_txt'] = 'Vælg Server(e)';
+$wb['btn_do_txt'] = 'Udfør handling';
+$wb['do_osupdate_caption'] = 'Udfør OS-Opdatering på fjern server';
+$wb['do_osupdate_desc'] = 'Denne Handling udfør en \'aptitude -y upgrade\' på den valgte server.<br><br><strong>BRUG DETTE PÅ EGEN RISIKO!</strong>';
+$wb['do_ispcupdate_caption'] = 'Udfør ISPConfig 3 - Opdatering på fjern-server';
+$wb['do_ispcupdate_desc'] = 'Denne Handling udfør en ISPConfig 3 opdatering på den valgte server.<br><br><strong>BRUG DETTE PÅ EGEN RISIKO!</strong>';
+$wb['action_scheduled'] = 'Handlingen er planlagt til udførelse';
+$wb['select_all_server'] = 'Alle servere';
+$wb['ispconfig_update_title'] = 'ISPConfig opdateringsinstruktioner';
+$wb['ispconfig_update_text'] = 'Log ind som root-bruger på Shell af din server og udføre kommandoen<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />for at starte ISPConfig opdateringen.<br /><br /><a href=\'http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\' target=\'_blank\'>Klik her for detaljerede opdateringsinstruktioner</a>';
+?>
diff --git a/interface/web/admin/lib/lang/dk_remote_user.lng b/interface/web/admin/lib/lang/dk_remote_user.lng
new file mode 100644
index 0000000000..710c239e00
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_remote_user.lng
@@ -0,0 +1,47 @@
+<?php
+$wb['username_txt'] = 'Brugernavn:';
+$wb['password_txt'] = 'Adgangskode:';
+$wb['function_txt'] = 'Funktioner:';
+$wb['username_error_unique'] = 'Brugernavn skal være unikke';
+$wb['username_error_empty'] = 'Brugernavn kan ikke være tomt';
+$wb['password_error_empty'] = 'Adgangskode kan ikke være tomt';
+$wb['password_strength_txt'] = 'Adgangskode Styrke:';
+$wb['Mail domain functions'] = 'Mail domain funktioner';
+$wb['Mail mailing list functions'] = 'Mail mailinglist funktioner';
+$wb['Mail user functions'] = 'Mail bruger funktioner';
+$wb['Mail alias functions'] = 'Mail alias funktioner';
+$wb['Mail forward functions'] = 'Mail forward funktioner';
+$wb['Mail catchall functions'] = 'Mail catchall funktioner';
+$wb['Mail transport functions'] = 'Mail transport funktioner';
+$wb['Mail whitelist functions'] = 'Mail whitelist funktioner';
+$wb['Mail blacklist functions'] = 'Mail blacklist funktioner';
+$wb['Mail spamfilter user functions'] = 'Mail spamfilter bruger funktioner';
+$wb['Mail spamfilter policy functions'] = 'Mail spamfilter policy funktioner';
+$wb['Mail fetchmail functions'] = 'Mail fetchmail funktioner';
+$wb['Mail user filter functions'] = 'Mail bruger filter funktioner';
+$wb['Mail filter functions'] = 'Mail filter funktioner';
+$wb['Client functions'] = 'Kunde funktioner';
+$wb['Sites cron functions'] = 'Sider cron funktioner';
+$wb['Sites database functions'] = 'Sider database funktioner';
+$wb['Sites FTP-User functions'] = 'Sider FTP-Bruger funktioner';
+$wb['Sites Shell-User functions'] = 'Sider Shell-Bruger funktioner';
+$wb['Sites Domain functions'] = 'Sider Domæne funktioner';
+$wb['Sites Aliasdomain functions'] = 'Sider Alias-domæne funktioner';
+$wb['Sites Subdomain functions'] = 'Sider Sub-domæne funktioner';
+$wb['DNS zone functions'] = 'DNS zone funktioner';
+$wb['DNS a functions'] = 'DNS a funktioner';
+$wb['DNS aaaa functions'] = 'DNS aaaa funktioner';
+$wb['DNS alias functions'] = 'DNS alias funktioner';
+$wb['DNS cname functions'] = 'DNS cname funktioner';
+$wb['DNS hinfo functions'] = 'DNS hinfo funktioner';
+$wb['DNS mx functions'] = 'DNS mx funktioner';
+$wb['DNS ns functions'] = 'DNS ns funktioner';
+$wb['DNS ptr functions'] = 'DNS ptr funktioner';
+$wb['DNS rp functions'] = 'DNS rp funktioner';
+$wb['DNS srv functions'] = 'DNS srv funktioner';
+$wb['DNS txt functions'] = 'DNS txt funktioner';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+?>
diff --git a/interface/web/admin/lib/lang/dk_remote_user_list.lng b/interface/web/admin/lib/lang/dk_remote_user_list.lng
new file mode 100644
index 0000000000..a0b14a0bda
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_remote_user_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Fjern-Brugere';
+$wb['list_desc_txt'] = '?';
+$wb['add_new_record_txt'] = 'Tilføj ny bruger';
+$wb['parent_remote_userid_txt'] = 'Bruger ID';
+$wb['username_txt'] = 'Brugernavn';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server.lng b/interface/web/admin/lib/lang/dk_server.lng
new file mode 100644
index 0000000000..63145e8b7e
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['config_txt'] = 'config';
+$wb['server_name_txt'] = 'Servernavn';
+$wb['mail_server_txt'] = 'Mailserver';
+$wb['web_server_txt'] = 'Webserver';
+$wb['dns_server_txt'] = 'DNS-Server';
+$wb['file_server_txt'] = 'Fileserver';
+$wb['db_server_txt'] = 'DB-Server';
+$wb['vserver_server_txt'] = 'VServer-Server';
+$wb['proxy_server_txt'] = 'Proxy-Server';
+$wb['firewall_server_txt'] = 'Firewall-Server';
+$wb['active_txt'] = 'Aktiv';
+$wb['mirror_server_id_txt'] = 'Er spejl af Server';
+$wb['- None -'] = '- Ingen -';
+$wb['xmpp_server_txt'] = 'XMPP Server';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
new file mode 100644
index 0000000000..5d403719ab
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -0,0 +1,284 @@
+<?php
+$wb['ufw_enable_txt'] = 'Enable';
+$wb['ufw_manage_builtins_txt'] = 'Administrer Builtin Rules';
+$wb['ufw_ipv6_txt'] = 'Enable IPv6';
+$wb['ufw_default_input_policy_txt'] = 'Standard Input Politik';
+$wb['ufw_default_output_policy_txt'] = 'Standard Output Politik';
+$wb['ufw_default_forward_policy_txt'] = 'Standard Forward Politik';
+$wb['ufw_default_application_policy_txt'] = 'Standard Application Politik';
+$wb['ufw_log_level_txt'] = 'Log Level';
+$wb['jailkit_chroot_home_txt'] = 'Jailkit chroot home';
+$wb['jailkit_chroot_app_sections_txt'] = 'Jailkit chroot app sektioner';
+$wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chrooted applikationer';
+$wb['jailkit_chroot_cron_programs_txt'] = 'Jailkit cron chrooted applikationer';
+$wb['website_path_txt'] = 'Webside sti';
+$wb['website_symlinks_txt'] = 'Webside symlinks';
+$wb['website_symlinks_rel_txt'] = 'Lav relative symlinks';
+$wb['website_basedir_txt'] = 'Webside basedir';
+$wb['website_autoalias_txt'] = 'Webside auto alias';
+$wb['website_autoalias_note_txt'] = 'Pladsholdere:';
+$wb['vhost_conf_dir_txt'] = 'Vhost config dir';
+$wb['vhost_conf_enabled_dir_txt'] = 'Vhost config enabled dir';
+$wb['getmail_config_dir_txt'] = 'Getmail config dir';
+$wb['fastcgi_starter_path_txt'] = 'FastCGI starter path';
+$wb['fastcgi_starter_script_txt'] = 'FastCGI starter script';
+$wb['fastcgi_alias_txt'] = 'FastCGI Alias';
+$wb['fastcgi_phpini_path_txt'] = 'FastCGI php.ini Path';
+$wb['fastcgi_children_txt'] = 'FastCGI Children';
+$wb['fastcgi_max_requests_txt'] = 'FastCGI max. Anmodninger';
+$wb['fastcgi_bin_txt'] = 'FastCGI Bin';
+$wb['module_txt'] = 'Modul';
+$wb['maildir_path_txt'] = 'Maildir Path';
+$wb['homedir_path_txt'] = 'Homedir Path';
+$wb['mailuser_uid_txt'] = 'Mailbruger UID';
+$wb['mailuser_gid_txt'] = 'Mailbruger GID';
+$wb['mailuser_name_txt'] = 'Mailbruger Navn';
+$wb['mailuser_group_txt'] = 'Mailbruger Gruppe';
+$wb['relayhost_txt'] = 'Relayhost';
+$wb['relayhost_user_txt'] = 'Relayhost Bruger';
+$wb['relayhost_password_txt'] = 'Relayhost Adgangskode';
+$wb['mailbox_size_limit_txt'] = 'Postboks Størrelse Begrænsning';
+$wb['message_size_limit_txt'] = 'Meddelelse Størrelse Begrænsning';
+$wb['ip_address_txt'] = 'IP Adresse';
+$wb['netmask_txt'] = 'Netmask';
+$wb['gateway_txt'] = 'Gateway';
+$wb['hostname_txt'] = 'Værtsnavn';
+$wb['nameservers_txt'] = 'Navneservere';
+$wb['auto_network_configuration_txt'] = 'Netværkskonfiguration';
+$wb['ip_address_error_wrong'] = 'Ugyldigt IP adresse format.';
+$wb['netmask_error_wrong'] = 'Ugyldigt Netmask format.';
+$wb['gateway_error_wrong'] = 'Ugyldigt Gateway format.';
+$wb['hostname_error_empty'] = 'Værtsnavn er tomt.';
+$wb['hostname_error_regex'] = 'Ugyldigt Værtsnavn.';
+$wb['nameservers_error_empty'] = 'Navneserver er tomt.';
+$wb['config_dir_txt'] = 'Konfigurations mappe';
+$wb['init_script_txt'] = 'Cron init script navn';
+$wb['crontab_dir_txt'] = 'Path for individuel crontabs';
+$wb['wget_txt'] = 'Sti til wget program';
+$wb['web_user_txt'] = 'Apache bruger';
+$wb['web_group_txt'] = 'Apache gruppe';
+$wb['security_level_txt'] = 'Sikkerhedsniveau';
+$wb['loglevel_txt'] = 'Logniveau';
+$wb['apps_vhost_port_txt'] = 'Apps-vhost port';
+$wb['apps_vhost_ip_txt'] = 'Apps-vhost IP';
+$wb['apps_vhost_servername_txt'] = 'Apps-vhost Domæne';
+$wb['bind_user_txt'] = 'BIND Bruger';
+$wb['bind_group_txt'] = 'BIND Gruppe';
+$wb['bind_zonefiles_dir_txt'] = 'BIND zonefiler mappe';
+$wb['named_conf_path_txt'] = 'BIND named.conf path';
+$wb['bind_user_error_empty'] = 'BIND bruger er tomt.';
+$wb['bind_group_error_empty'] = 'BIND gruppe er tomt.';
+$wb['bind_zonefiles_dir_error_empty'] = 'BIND zonefiler mappe er tomt.';
+$wb['named_conf_path_error_empty'] = 'BIND named.conf path er tomt.';
+$wb['named_conf_local_path_error_empty'] = 'BIND named.conf.local path er tomt.';
+$wb['mail_filter_syntax_txt'] = 'Mailfilter Syntax';
+$wb['pop3_imap_daemon_txt'] = 'POP3/IMAP Daemon';
+$wb['php_open_basedir_txt'] = 'PHP open_basedir';
+$wb['php_open_basedir_error_empty'] = 'PHP open_basedir er tomt.';
+$wb['htaccess_allow_override_txt'] = '.htaccess AllowOverride';
+$wb['htaccess_allow_override_error_empty'] = '.htaccess AllowOverride er tomt.';
+$wb['awstats_conf_dir_txt'] = 'awstats conf mapper';
+$wb['awstats_data_dir_txt'] = 'awstats data mapper';
+$wb['awstats_pl_txt'] = 'awstats.pl script';
+$wb['awstats_buildstaticpages_pl_txt'] = 'awstats_buildstaticpages.pl script';
+$wb['backup_dir_txt'] = 'Backup mappe';
+$wb['named_conf_local_path_txt'] = 'BIND named.conf.local path';
+$wb['php_ini_path_cgi_txt'] = 'CGI php.ini path';
+$wb['php_ini_path_apache_txt'] = 'Apache php.ini path';
+$wb['check_apache_config_txt'] = 'Test apache konfiguration ved genstart';
+$wb['network_config_warning_txt'] = 'Netværkskonfigurationen indstilling er kun tilgængelig for Debian og Ubuntu Servere. Aktivere ikke denne indstilling, hvis din netværks-grænseflade ikke er eth0.';
+$wb['CA_path_txt'] = 'CA Path';
+$wb['CA_pass_txt'] = 'CA passphrase';
+$wb['fastcgi_config_syntax_txt'] = 'FastCGI config syntax';
+$wb['backup_mode_txt'] = 'Backup mode';
+$wb['backup_mode_userzip'] = 'Backup webfiler ejet af web-bruger som zip';
+$wb['backup_mode_rootgz'] = 'Backup alle filer i web mappe som root-bruger';
+$wb['server_type_txt'] = 'Server Type';
+$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Vhost config dir';
+$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Nginx Vhost config enabled dir';
+$wb['nginx_user_txt'] = 'Nginx bruger';
+$wb['nginx_group_txt'] = 'Nginx gruppe';
+$wb['nginx_cgi_socket_txt'] = 'Nginx CGI Socket';
+$wb['backup_dir_error_empty'] = 'Backup mappe er tomt.';
+$wb['maildir_path_error_empty'] = 'Maildir Path er tomt.';
+$wb['homedir_path_error_empty'] = 'Homedir Path er tomt.';
+$wb['mailuser_uid_error_empty'] = 'Mailbruger UID er tomt.';
+$wb['mailuser_gid_error_empty'] = 'Mailbruger GID er tomt.';
+$wb['mailuser_name_error_empty'] = 'Mailbruger Navn er tomt.';
+$wb['mailuser_group_error_empty'] = 'Mailbruger Gruppe er tomt.';
+$wb['getmail_config_dir_error_empty'] = 'Getmail config dir er tomt.';
+$wb['website_basedir_error_empty'] = 'Webside basedir er tomt.';
+$wb['website_path_error_empty'] = 'Webside path er tomt.';
+$wb['website_symlinks_error_empty'] = 'Webside symlinks er tomt.';
+$wb['vhost_conf_dir_error_empty'] = 'Vhost config dir er tomt.';
+$wb['vhost_conf_enabled_dir_error_empty'] = 'Vhost config enabled dir er tomt.';
+$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx Vhost config dir er tomt.';
+$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Nginx Vhost config enabled dir er tomt.';
+$wb['apache_user_error_empty'] = 'Apache bruger er tomt.';
+$wb['apache_group_error_empty'] = 'Apache gruppe er tomt.';
+$wb['nginx_user_error_empty'] = 'Nginx bruger er tomt.';
+$wb['nginx_group_error_empty'] = 'Nginx gruppe er tomt.';
+$wb['php_ini_path_apache_error_empty'] = 'Apache php.ini path er tomt.';
+$wb['php_ini_path_cgi_error_empty'] = 'CGI php.ini path er tomt.';
+$wb['nginx_cgi_socket_empty'] = 'Nginx CGI Socket er tomt.';
+$wb['apps_vhost_port_error_empty'] = 'Apps-vhost port er tomt.';
+$wb['apps_vhost_ip_error_empty'] = 'Apps-vhost IP er tomt.';
+$wb['fastcgi_starter_path_error_empty'] = 'FastCGI starter sti er tom.';
+$wb['fastcgi_starter_script_error_empty'] = 'FastCGI starter script er tomt.';
+$wb['fastcgi_alias_error_empty'] = 'FastCGI Alias er tomt.';
+$wb['fastcgi_phpini_path_error_empty'] = 'FastCGI php.ini sti er tom.';
+$wb['fastcgi_children_error_empty'] = 'FastCGI Children er tom.';
+$wb['fastcgi_max_requests_error_empty'] = 'FastCGI max. Anmodninger er tom.';
+$wb['fastcgi_bin_error_empty'] = 'FastCGI Bin er tom.';
+$wb['jailkit_chroot_home_error_empty'] = 'Jailkit chroot home er tom.';
+$wb['jailkit_chroot_app_sections_error_empty'] = 'Jailkit chroot app sektioner er tomme.';
+$wb['jailkit_chroot_app_programs_error_empty'] = 'Jailkit chrooted applikationer er tomme.';
+$wb['jailkit_chroot_cron_programs_error_empty'] = 'Jailkit cron chrooted applikationer er tomme.';
+$wb['vlogger_config_dir_error_empty'] = 'Konfigurations mappe er tom.';
+$wb['cron_init_script_error_empty'] = 'Cron init script name er tomt.';
+$wb['crontab_dir_error_empty'] = 'Path for individual crontabs er tomt.';
+$wb['cron_wget_error_empty'] = 'Path to wget program er tomt.';
+$wb['php_fpm_init_script_txt'] = 'PHP-FPM init script';
+$wb['php_fpm_init_script_error_empty'] = 'PHP-FPM init script er tomt.';
+$wb['php_fpm_ini_path_txt'] = 'PHP-FPM php.ini path';
+$wb['php_fpm_ini_path_error_empty'] = 'PHP-FPM php.ini path er tomt.';
+$wb['php_fpm_pool_dir_txt'] = 'PHP-FPM pool mappe';
+$wb['php_fpm_pool_dir_error_empty'] = 'PHP-FPM pool mappe er tomt.';
+$wb['php_fpm_start_port_txt'] = 'PHP-FPM start port';
+$wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port er tomt.';
+$wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket mappe';
+$wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket mappe er tomt.';
+$wb['try_rescue_txt'] = 'Aktiver overvågnings service og genstarte ved fejl';
+$wb['do_not_try_rescue_httpd_txt'] = 'Deaktiver HTTPD monitoring';
+$wb['do_not_try_rescue_mysql_txt'] = 'Deaktiver MySQL monitoring';
+$wb['do_not_try_rescue_mail_txt'] = 'Deaktiver E-mail monitoring';
+$wb['rescue_description_txt'] = '<b>Information:</b> Hvis du ønsker nedlukning af mysql skal du vælge \"Deaktiver MySQL monitor\" afkrydsningsfeltet og derefter vente 2-3 minutter.<br>Hvis du ikke vente 2-3 minutter, vil redning forsøge at genstarte mysql!';
+$wb['enable_sni_txt'] = 'Enable SNI';
+$wb['set_folder_permissions_on_update_txt'] = 'Indstil mappe tilladelser ved opdatering';
+$wb['add_web_users_to_sshusers_group_txt'] = 'Tilføj web-brugere til -sshusers- gruppe';
+$wb['connect_userid_to_webid_txt'] = 'Forbinde Linux brugerid til webid';
+$wb['connect_userid_to_webid_start_txt'] = 'Start ID for brugerid/webid forbinde';
+$wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List';
+$wb['realtime_blackhole_list_note_txt'] = '(Adskille RBL\'er med kommaer)';
+$wb['ssl_settings_txt'] = 'SSL Indstillinger';
+$wb['permissions_txt'] = 'Tilladelser';
+$wb['php_settings_txt'] = 'PHP Indstillinger';
+$wb['apps_vhost_settings_txt'] = 'Apps Vhost Indstillinger';
+$wb['awstats_settings_txt'] = 'AWStats Indstillinger';
+$wb['firewall_txt'] = 'Firewall';
+$wb['mailbox_quota_stats_txt'] = 'Postboks kvota statistik';
+$wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
+$wb['web_folder_protection_txt'] = 'Gør web mapper immume (udvidede attributter)';
+$wb['overtraffic_notify_admin_txt'] = 'Send over-trafik meddelelse til admin';
+$wb['overtraffic_notify_client_txt'] = 'Send over-trafik meddelelse til kunde';
+$wb['rbl_error_regex'] = 'Angiv gyldige RBL værtsnavne.';
+$wb['overquota_notify_admin_txt'] = 'Send kvote advarsler til admin';
+$wb['overquota_notify_client_txt'] = 'Send kvote advarsler til kunde';
+$wb['overquota_notify_onok_txt'] = 'Send kvote ok meddelelse til kunde';
+$wb['overquota_notify_freq_txt'] = 'Send kvote advarsler X dage';
+$wb['overquota_notify_freq_note_txt'] = '0 = send meddelelse bare én gang, ingen gentagelses meddelelser';
+$wb['admin_notify_events_txt'] = 'Send e-mail til admin begyndende med følgende niveau';
+$wb['no_notifications_txt'] = 'Ingen Underretninger';
+$wb['monit_url_txt'] = 'Monit URL';
+$wb['monit_user_txt'] = 'Monit Bruger';
+$wb['monit_password_txt'] = 'Monit Adgangskode';
+$wb['monit_url_error_regex'] = 'Ugyldigt Monit URL';
+$wb['monit_url_note_txt'] = 'Pladsholder:';
+$wb['munin_url_txt'] = 'Munin URL';
+$wb['munin_user_txt'] = 'Munin Bruger';
+$wb['munin_password_txt'] = 'Munin Adgangskode';
+$wb['munin_url_error_regex'] = 'Ugyldig Munin URL';
+$wb['munin_url_note_txt'] = 'Pladsholder:';
+$wb['backup_dir_is_mount_txt'] = 'Backup Mappe er et mount?';
+$wb['monitor_system_updates_txt'] = 'Check for Linux opdateringer';
+$wb['invalid_apache_user_txt'] = 'Ugyldigt apache bruger.';
+$wb['invalid_apache_group_txt'] = 'Ugyldigt apache gruppe.';
+$wb['backup_dir_error_regex'] = 'Ugyldigt backup mappe.';
+$wb['maildir_path_error_regex'] = 'Ugyldigt maildir path.';
+$wb['homedir_path_error_regex'] = 'Ugyldigt homedir path.';
+$wb['mailuser_name_error_regex'] = 'Ugyldigt mailbruger name.';
+$wb['mailuser_group_name_error_regex'] = 'Ugyldigt mailbruger gruppe navn.';
+$wb['mailuser_uid_error_range'] = 'Mailbruger uid skal være >= 2000';
+$wb['mailuser_gid_error_range'] = 'Mailbruger gid skal være >= 2000';
+$wb['getmail_config_dir_error_regex'] = 'Ugyldigt getmail config mappe.';
+$wb['website_basedir_error_regex'] = 'Ugyldigt webside basedir.';
+$wb['website_symlinks_error_regex'] = 'Ugyldigt webside symlinks.';
+$wb['vhost_conf_dir_error_regex'] = 'Ugyldigt vhost config mappe.';
+$wb['vhost_conf_enabled_dir_error_regex'] = 'Ugyldigt vhost conf enabled mappe.';
+$wb['nginx_vhost_conf_dir_error_regex'] = 'Ugyldigt nginx config mappe.';
+$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Ugyldigt nginx conf enabled mappe.';
+$wb['ca_path_error_regex'] = 'Ugyldigt CA path.';
+$wb['invalid_nginx_user_txt'] = 'Ugyldigt nginx bruger.';
+$wb['invalid_nginx_group_txt'] = 'Ugyldigt nginx gruppe.';
+$wb['php_ini_path_apache_error_regex'] = 'Ugyldigt apache php.ini path.';
+$wb['php_ini_path_cgi_error_regex'] = 'Ugyldigt cgi php.ini path.';
+$wb['php_fpm_init_script_error_regex'] = 'Ugyldigt php-fpm init script.';
+$wb['php_fpm_ini_path_error_regex'] = 'Ugyldigt php-fpm ini path.';
+$wb['php_fpm_pool_dir_error_regex'] = 'Ugyldigt php-fpm pool mappe.';
+$wb['php_fpm_socket_dir_error_regex'] = 'Ugyldigt php-fpm socket mappe.';
+$wb['php_open_basedir_error_regex'] = 'Ugyldigt php open_basedir.';
+$wb['awstats_data_dir_empty'] = 'awstats data mappe er tomt';
+$wb['awstats_data_dir_error_regex'] = 'Ugyldigt awstats data mappe.';
+$wb['awstats_pl_empty'] = 'awstats.pl setting er tomt.';
+$wb['awstats_pl_error_regex'] = 'Ugyldigt awstats.pl path.';
+$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl er tomt';
+$wb['awstats_buildstaticpages_pl_error_regex'] = 'Ugyldigt awstats_buildstaticpages.pl path.';
+$wb['invalid_bind_user_txt'] = 'Ugyldigt BIND bruger.';
+$wb['invalid_bind_group_txt'] = 'Ugyldigt BIND gruppe.';
+$wb['bind_zonefiles_dir_error_regex'] = 'Ugyldigt BIND zonefiles mappe.';
+$wb['named_conf_path_error_regex'] = 'Ugyldigt named.conf path.';
+$wb['named_conf_local_path_error_regex'] = 'Ugyldigt named.conf.local path.';
+$wb['fastcgi_starter_path_error_regex'] = 'Ugyldigt fastcgi starter path.';
+$wb['fastcgi_starter_script_error_regex'] = 'Ugyldigt fastcgi starter script.';
+$wb['fastcgi_alias_error_regex'] = 'Ugyldigt fastcgi alias.';
+$wb['fastcgi_phpini_path_error_regex'] = 'Ugyldigt fastcgi path.';
+$wb['fastcgi_bin_error_regex'] = 'Ugyldigt fastcgi bin.';
+$wb['jailkit_chroot_home_error_regex'] = 'Ugyldigt jaikit chroot home.';
+$wb['jailkit_chroot_app_sections_error_regex'] = 'Ugyldigt jaikit chroot sections.';
+$wb['jailkit_chroot_app_programs_error_regex'] = 'Ugyldigt jaikit chroot app programs.';
+$wb['jailkit_chroot_cron_programs_error_regex'] = 'Ugyldigt jaikit chroot cron programs.';
+$wb['vlogger_config_dir_error_regex'] = 'Ugyldigt vlogger config dir.';
+$wb['cron_init_script_error_regex'] = 'Ugyldigt cron init script.';
+$wb['crontab_dir_error_regex'] = 'Ugyldigt crontab mappe.';
+$wb['cron_wget_error_regex'] = 'Ugyldigt cron wget path.';
+$wb['network_filesystem_txt'] = 'Netværksfilsystem';
+$wb['maildir_format_txt'] = 'Maildir Format';
+$wb['dkim_path_txt'] = 'DKIM Path';
+$wb['mailbox_virtual_uidgid_maps_txt'] = 'Use Websites Linux uid for mailbox';
+$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'only in single web and mail-server-setup';
+$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped in multi-server-setup.';
+$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.';
+$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.';
+$wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch';
+$wb['backup_time_txt'] = 'Backup time';
+$wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
+$wb['v6_prefix_txt'] = 'IPv6 Prefix';
+$wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror';
+$wb['v6_prefix_length'] = 'Prefix too long according to defined IPv6 ';
+$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
+$wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
+$wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
+$wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
+$wb['php_handler_txt'] = 'Default PHP Handler';
+$wb['disabled_txt'] = 'Disabled';
+$wb['dkim_strength_txt'] = 'DKIM strength';
+$wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
+$wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
+$wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY available';
+$wb['web_settings_txt'] = 'Web Server';
+$wb['xmpp_server_txt'] = 'XMPP Server';
+$wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
+$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time';
+$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360';
+$wb['xmpp_module_saslauth'] = 'saslauth';
+$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)';
+$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)';
+$wb['xmpp_ports_txt'] = 'Component ports';
+$wb['xmpp_port_http_txt'] = 'HTTP';
+$wb['xmpp_port_https_txt'] = 'HTTPS';
+$wb['xmpp_port_pastebin_txt'] = 'Pastebin';
+$wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
+$wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_config_list.lng b/interface/web/admin/lib/lang/dk_server_config_list.lng
new file mode 100644
index 0000000000..124fe3e553
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_config_list.lng
@@ -0,0 +1,4 @@
+<?php
+$wb['list_head_txt'] = 'Server Konfiguration';
+$wb['server_name_txt'] = 'Server';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_ip.lng b/interface/web/admin/lib/lang/dk_server_ip.lng
new file mode 100644
index 0000000000..ba1586644d
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_ip.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['client_id_txt'] = 'Kunde';
+$wb['ip_type_txt'] = 'Type';
+$wb['ip_address_txt'] = 'IP Adresse';
+$wb['virtualhost_txt'] = 'HTTP NameVirtualHost';
+$wb['virtualhost_port_txt'] = 'HTTP Porte';
+$wb['ip_error_wrong'] = 'IP adressen er ugyldigt';
+$wb['ip_error_unique'] = 'IP adressen skal være unikke';
+$wb['error_port_syntax'] = 'Ugyldigt tegn i Port felt, du må kun indtaste kommasepareret tal. F.eks.: 80,443';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_ip_list.lng b/interface/web/admin/lib/lang/dk_server_ip_list.lng
new file mode 100644
index 0000000000..14829f95d6
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_ip_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb['list_head_txt'] = 'IP Adresser';
+$wb['server_id_txt'] = 'Server';
+$wb['client_id_txt'] = 'Kunde';
+$wb['ip_address_txt'] = 'IP Adresse';
+$wb['add_new_record_txt'] = 'Tilføj ny IP Adresse';
+$wb['virtualhost_txt'] = 'HTTP Vhost';
+$wb['virtualhost_port_txt'] = 'HTTP Porte';
+$wb['ip_type_txt'] = 'Type';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_ip_map.lng b/interface/web/admin/lib/lang/dk_server_ip_map.lng
new file mode 100644
index 0000000000..94508abb79
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_ip_map.lng
@@ -0,0 +1,12 @@
+<?php
+$wb["server_id_txt"] = 'Rewrite on Server';
+$wb["source_txt"] = 'Source IP';
+$wb["destination_txt"] = 'Destination IP';
+$wb["active_txt"] = 'Active';
+$wb["ip_error_wrong"] = 'The Destination IP address is invalid';
+$wb["destination_ip_empty"] = 'The Destination IP is empty.';
+$wb["source_ip_empty"] = 'The Source IP is empty.';
+$wb["server_empty_error"] = 'The Server is empty.';
+$wb["duplicate_mapping_error"] = "Mapping already exists.";
+$wb["ip_mapping_error"] = "Source IP can not be an IP of the Rewrite-Server";
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_ip_map_list.lng b/interface/web/admin/lib/lang/dk_server_ip_map_list.lng
new file mode 100644
index 0000000000..60c6815fda
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_ip_map_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb["list_head_txt"] = 'IP Mappings';
+$wb["server_id_txt"] = 'Server';
+$wb["source_ip_txt"] = 'Source IP';
+$wb["destination_ip_txt"] = 'Destination IP';
+$wb["active_txt"] = 'Active';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_list.lng b/interface/web/admin/lib/lang/dk_server_list.lng
new file mode 100644
index 0000000000..7301fc357e
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_list.lng
@@ -0,0 +1,14 @@
+<?php
+$wb['list_head_txt'] = 'Server';
+$wb['server_name_txt'] = 'Navn';
+$wb['mail_server_txt'] = 'Mail';
+$wb['web_server_txt'] = 'Web';
+$wb['dns_server_txt'] = 'DNS';
+$wb['file_server_txt'] = 'File';
+$wb['db_server_txt'] = 'DB';
+$wb['vserver_server_txt'] = 'VServer';
+$wb['proxy_server_txt'] = 'Proxy';
+$wb['firewall_server_txt'] = 'Firewall';
+$wb['add_new_record_txt'] = 'Tilføj ny Server';
+$wb['xmpp_server_txt'] = 'XMPP';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_php.lng b/interface/web/admin/lib/lang/dk_server_php.lng
new file mode 100644
index 0000000000..cc821ec2f2
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_php.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['client_id_txt'] = 'Kunde';
+$wb['name_txt'] = 'PHP Navn';
+$wb['Name'] = 'Navn';
+$wb['FastCGI Settings'] = 'FastCGI Indstillinger';
+$wb['PHP-FPM Settings'] = 'PHP-FPM Indstillinger';
+$wb['Additional PHP Versions'] = 'Yderligere PHP Versioner';
+$wb['Form to edit additional PHP versions'] = 'Formular for at redigere yderligere PHP-versioner';
+$wb['server_php_name_error_empty'] = 'Navne-feltet må ikke være tomt.';
+$wb['php_fastcgi_binary_txt'] = 'Sti til PHP FastCGI binary';
+$wb['php_fastcgi_ini_dir_txt'] = 'Sti til php.ini mappe';
+$wb['php_fpm_init_script_txt'] = 'Sti til PHP-FPM init script';
+$wb['php_fpm_ini_dir_txt'] = 'Sti til php.ini mappe';
+$wb['php_fpm_pool_dir_txt'] = 'Sti til PHP-FPM pool mappe';
+?>
diff --git a/interface/web/admin/lib/lang/dk_server_php_list.lng b/interface/web/admin/lib/lang/dk_server_php_list.lng
new file mode 100644
index 0000000000..8dbcdd211f
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_server_php_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Yderligere PHP Versioner';
+$wb['server_id_txt'] = 'Server';
+$wb['add_new_record_txt'] = 'Tilføj ny PHP version';
+$wb['client_id_txt'] = 'Kunde';
+$wb['name_txt'] = 'PHP Navn';
+?>
diff --git a/interface/web/admin/lib/lang/dk_software_package.lng b/interface/web/admin/lib/lang/dk_software_package.lng
new file mode 100644
index 0000000000..86f45dc91e
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_software_package.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['package_title_txt'] = 'Pakke Titel';
+$wb['package_key_txt'] = 'Pakke Nøgle';
+$wb['Software Package'] = 'Software Pakke';
+$wb['Modify software package details'] = 'Ændre software pakke detaljer';
+?>
diff --git a/interface/web/admin/lib/lang/dk_software_package_install.lng b/interface/web/admin/lib/lang/dk_software_package_install.lng
new file mode 100644
index 0000000000..fd9211652c
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_software_package_install.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['head_txt'] = 'Install software pakke';
+$wb['install_key_txt'] = 'Indtast installations nøgle';
+$wb['btn_save_txt'] = 'Start Installation';
+$wb['btn_cancel_txt'] = 'Annullere';
+?>
diff --git a/interface/web/admin/lib/lang/dk_software_package_list.lng b/interface/web/admin/lib/lang/dk_software_package_list.lng
new file mode 100644
index 0000000000..3fb5399eae
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_software_package_list.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['list_head_txt'] = 'Apps & Tilføjelses pakker';
+$wb['installed_txt'] = 'Status';
+$wb['package_title_txt'] = 'Pakke';
+$wb['package_description_txt'] = 'Beskrivelse';
+$wb['action_txt'] = 'Handling';
+$wb['toolsarea_head_txt'] = 'Pakker';
+$wb['repoupdate_txt'] = 'Opdater pakke listen';
+$wb['package_id_txt'] = 'lokal App-ID';
+$wb['no_packages_txt'] = 'Ingen pakker tilgængelig';
+$wb['edit_txt'] = 'Rediger';
+$wb['delete_txt'] = 'Slet';
+?>
diff --git a/interface/web/admin/lib/lang/dk_software_repo.lng b/interface/web/admin/lib/lang/dk_software_repo.lng
new file mode 100644
index 0000000000..2c506cdc6b
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_software_repo.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['repo_name_txt'] = 'Arkiv';
+$wb['repo_url_txt'] = 'URL';
+$wb['repo_username_txt'] = 'Bruger (valgfri)';
+$wb['repo_password_txt'] = 'Adgangskode (valgfri)';
+$wb['active_txt'] = 'Aktiv';
+$wb['Software Repository which may contain addons or updates'] = 'Software Arkiv som kan indeholde tilføjelser eller opdateringer';
+?>
diff --git a/interface/web/admin/lib/lang/dk_software_repo_list.lng b/interface/web/admin/lib/lang/dk_software_repo_list.lng
new file mode 100644
index 0000000000..aa33919cbd
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_software_repo_list.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['list_head_txt'] = 'Arkiv';
+$wb['active_txt'] = 'Aktiv';
+$wb['repo_name_txt'] = 'Arkiv';
+$wb['repo_url_txt'] = 'URL';
+?>
diff --git a/interface/web/admin/lib/lang/dk_software_update_list.lng b/interface/web/admin/lib/lang/dk_software_update_list.lng
new file mode 100644
index 0000000000..8a8e8686af
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_software_update_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Software opdateringer';
+$wb['server_select_txt'] = 'Vælg server';
+$wb['installed_txt'] = 'Handling';
+$wb['update_title_txt'] = 'Opdater';
+$wb['version_txt'] = 'Version';
+$wb['action_txt'] = 'Handling';
+$wb['no_updates_txt'] = 'Ingen opdateringer tilgængelig';
+?>
diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng
new file mode 100644
index 0000000000..ec5a754826
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_system_config.lng
@@ -0,0 +1,84 @@
+<?php
+$wb['system_config_desc_txt'] = '';
+$wb['smtp_missing_admin_mail_txt'] = 'Indtast venligst admin navn og admin mail adresse, hvis du vil bruge smtp mail afsendelse.';
+$wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)';
+$wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (forhandler)';
+$wb['dashboard_atom_url_client_txt'] = 'Dashboard atom feed URL (klient)';
+$wb['warning'] = 'Rediger disse værdier forsigtigt! Fjern ikke præfikser på et system med mere end én klient.';
+$wb['tab_change_discard_txt'] = 'Kassér ændringer på fanen forandring';
+$wb['tab_change_warning_txt'] = 'Fane ændrings advarsel';
+$wb['tab_change_warning_note_txt'] = 'Vis en advarsel på fanen ændring i redigere formularer, hvis nogen data er blevet ændret af brugeren.';
+$wb['dbname_prefix_txt'] = 'Database navn prefix';
+$wb['dbuser_prefix_txt'] = 'Database bruger prefix';
+$wb['shelluser_prefix_txt'] = 'Shell bruger prefix';
+$wb['webdavuser_prefix_txt'] = 'Webdav bruger prefix';
+$wb['ftpuser_prefix_txt'] = 'FTP bruger prefix';
+$wb['vhost_subdomains_txt'] = 'Opret Sub-domæne som web side';
+$wb['vhost_subdomains_note_txt'] = 'Du kan ikke deaktivere dette, så længe der findes vhost sub-domæner i systemet!';
+$wb['dbname_prefix_error_regex'] = 'Char ikke tilladt i database name prefix.';
+$wb['dbuser_prefix_error_regex'] = 'Char ikke tilladt i database bruger prefix.';
+$wb['ftpuser_prefix_error_regex'] = 'Char ikke tilladt i ftp bruger prefix.';
+$wb['shelluser_prefix_error_regex'] = 'Char ikke tilladt i shell bruger prefix.';
+$wb['webdavuser_prefix_error_regex'] = 'Char ikke tilladt i webdav bruger prefix.';
+$wb['dblist_phpmyadmin_link_txt'] = 'Link til phpmyadmin i DB liste';
+$wb['enable_custom_login_txt'] = 'Tillad brugerdefinerede login-navn';
+$wb['mailboxlist_webmail_link_txt'] = 'Link til webmail i Postboks liste';
+$wb['webmail_url_txt'] = 'Webmail URL';
+$wb['mailmailinglist_link_txt'] = 'Link til mailing list i Mailing list liste';
+$wb['mailmailinglist_url_txt'] = 'Mail-list URL';
+$wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL';
+$wb['use_domain_module_txt'] = 'Brug domæne grænser i klient-modul for at tilføje nye domæner';
+$wb['use_domain_module_hint'] = 'Hvis du bruger domæne grænser, kan dine kunder kun vælge et af de områder admin skabte for dem. De kan ikke frit redigere domæne-feltet. Du er nødt til at re-login efter at ændre denne værdi, for at gøre ændringerne synlige.';
+$wb['new_domain_txt'] = 'HTML for at oprette et nyt domæne';
+$wb['webftp_url_txt'] = 'WebFTP URL';
+$wb['admin_mail_txt'] = 'Administratorer e-mail';
+$wb['monitor_key_txt'] = 'Monitor nøgleord';
+$wb['admin_name_txt'] = 'Administratorer navn';
+$wb['maintenance_mode_txt'] = 'Vedligeholdelsestilstand';
+$wb['smtp_enabled_txt'] = 'Brug SMTP for at sende system mails';
+$wb['smtp_host_txt'] = 'SMTP host';
+$wb['smtp_port_txt'] = 'SMTP port';
+$wb['smtp_user_txt'] = 'SMTP bruger';
+$wb['smtp_pass_txt'] = 'SMTP adgangskode';
+$wb['smtp_crypt_txt'] = 'Brug SSL/TLS krypteret forbindelse for SMTP';
+$wb['phpmyadmin_url_error_regex'] = 'Ugyldigt phpmyadmin URL';
+$wb['use_combobox_txt'] = 'Brug jQuery UI Combobox';
+$wb['use_loadindicator_txt'] = 'Brug Load Indicator';
+$wb['f5_to_reload_js_txt'] = 'Hvis du ændrer dette, kan du blive nødt til at trykke på F5 for at browseren genindlæser JavaScript-biblioteker eller tømme browserens cache.';
+$wb['client_username_web_check_disabled_txt'] = 'Deaktiver klient-brugernavns check for ordet \'web\'.';
+$wb['mailbox_show_autoresponder_tab_txt'] = 'Vis autoresponder tab i mail kontooplysninger';
+$wb['mailbox_show_mail_filter_tab_txt'] = 'Vis mail filter tab i mail kontooplysninger';
+$wb['mailbox_show_custom_rules_tab_txt'] = 'Vis custom mailfilter tab i mail kontooplysninger';
+$wb['webmail_url_error_regex'] = 'Ugyldigt webmail URL';
+$wb['phpmyadmin_url_note_txt'] = 'Pladsholder:';
+$wb['webmail_url_note_txt'] = 'Pladsholder:';
+$wb['available_dashlets_note_txt'] = 'Tilgængelig Dashlets:';
+$wb['admin_dashlets_left_txt'] = 'Left Admin Dashlets';
+$wb['admin_dashlets_right_txt'] = 'Right Admin Dashlets';
+$wb['reseller_dashlets_left_txt'] = 'Left Forhandler Dashlets';
+$wb['reseller_dashlets_right_txt'] = 'Right Forhandler Dashlets';
+$wb['client_dashlets_left_txt'] = 'Left Kunde Dashlets';
+$wb['client_dashlets_right_txt'] = 'Right Kunde Dashlets';
+$wb['customer_no_template_txt'] = 'Kunde Nr. skabelon';
+$wb['customer_no_template_error_regex_txt'] = 'Kunde Nr. skabelon indeholder ugyldigt karaktere';
+$wb['customer_no_start_txt'] = 'Kunde Nr. start værdi';
+$wb['customer_no_counter_txt'] = 'Kunde Nr. tæller';
+$wb['session_timeout_txt'] = 'Session timeout (minutter)';
+$wb['session_allow_endless_txt'] = 'Aktiver \"forbliv logget ind\"';
+$wb['No'] = 'No';
+$wb['min_password_length_txt'] = 'Minimum adgangskode længde';
+$wb['min_password_strength_txt'] = 'Minimum adgangskode styrke';
+$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site';
+$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!';
+$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
+$wb['default_mailserver_txt'] = 'Default Mailserver';
+$wb['default_webserver_txt'] = 'Default Webserver';
+$wb['default_dnsserver_txt'] = 'Default DNS Server';
+$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
+$wb['default_dbserver_txt'] = 'Default Database Server';
+$wb['company_name_txt'] = 'Company Name for the page title';
+$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites';
+$wb['custom_login_text_txt'] = 'Custom Text on Login-Page';
+$wb['custom_login_link_txt'] = 'Custom Link on Login-Page';
+$wb['login_link_error_regex'] = 'Invalid Link for Custom Login';
+?>
diff --git a/interface/web/admin/lib/lang/dk_tpl_default_admin.lng b/interface/web/admin/lib/lang/dk_tpl_default_admin.lng
new file mode 100644
index 0000000000..8cc2a12842
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_tpl_default_admin.lng
@@ -0,0 +1,18 @@
+<?php
+$wb['tpl_default_admin_head_txt'] = 'Global Standard-Tema Indstillinger';
+$wb['tpl_default_admin_desc_txt'] = '?';
+$wb['server_id_txt'] = 'Server';
+$wb['client_id_txt'] = 'Kunde';
+$wb['name_txt'] = 'PHP Navn';
+$wb['Name'] = 'Navn';
+$wb['FastCGI Settings'] = 'FastCGI Indstillinger';
+$wb['PHP-FPM Settings'] = 'PHP-FPM Indstillinger';
+$wb['Additional PHP Versions'] = 'Yderligere PHP Versioner';
+$wb['Form to edit additional PHP versions'] = 'Formular for at redigere yderligere PHP-versioner';
+$wb['server_php_name_error_empty'] = 'Navne-feltet må ikke være tomt.';
+$wb['php_fastcgi_binary_txt'] = 'Sti til PHP FastCGI binary';
+$wb['php_fastcgi_ini_dir_txt'] = 'Sti til php.ini mappe';
+$wb['php_fpm_init_script_txt'] = 'Sti til PHP-FPM init script';
+$wb['php_fpm_ini_dir_txt'] = 'Sti til php.ini mappe';
+$wb['php_fpm_pool_dir_txt'] = 'Sti til PHP-FPM pool mappe';
+?>
diff --git a/interface/web/admin/lib/lang/dk_users.lng b/interface/web/admin/lib/lang/dk_users.lng
new file mode 100644
index 0000000000..7fbebaea69
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_users.lng
@@ -0,0 +1,35 @@
+<?php
+$wb['username_txt'] = 'Brugernavn';
+$wb['username_err'] = 'Brugernavnet er for langt eller indeholder ugyldige karaktere.';
+$wb['username_empty'] = 'Brugernavnet er tomt.';
+$wb['username_unique'] = 'Der findes allerede en bruger med dette brugernavn.';
+$wb['passwort_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['modules_txt'] = 'Modul';
+$wb['startmodule_txt'] = 'Startmodul';
+$wb['app_theme_txt'] = 'Design';
+$wb['typ_txt'] = 'Type';
+$wb['active_txt'] = 'Aktiv';
+$wb['language_txt'] = 'Sprog';
+$wb['name_txt'] = 'Navn';
+$wb['vorname_txt'] = 'Fornavn';
+$wb['unternehmen_txt'] = 'Firma';
+$wb['strasse_txt'] = 'Gade';
+$wb['ort_txt'] = 'By';
+$wb['plz_txt'] = 'Post nr.';
+$wb['land_txt'] = 'Land';
+$wb['email_txt'] = 'E-mail';
+$wb['url_txt'] = 'Url';
+$wb['telefon_txt'] = 'Telefon';
+$wb['fax_txt'] = 'Fax';
+$wb['groups_txt'] = 'Grupper';
+$wb['default_group_txt'] = 'Standard Gruppe';
+$wb['startmodule_err'] = 'Start modul er ikke indenfor moduler.';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['username_error_collision'] = 'Brugernavn må ikke være web eller web plus et tal.\"';
+$wb['client_not_admin_err'] = 'En bruger der hører til en klient kan ikke indstilles til typen: admin';
+$wb['lost_password_function_txt'] = 'Forgot password function is available';
+?>
diff --git a/interface/web/admin/lib/lang/dk_users_list.lng b/interface/web/admin/lib/lang/dk_users_list.lng
new file mode 100644
index 0000000000..85c2c66244
--- /dev/null
+++ b/interface/web/admin/lib/lang/dk_users_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Brugere';
+$wb['username_txt'] = 'Brugernavn';
+$wb['client_id_txt'] = 'Bruger ID';
+$wb['active_txt'] = 'Aktiv';
+$wb['groups_txt'] = 'Grupper';
+$wb['add_new_record_txt'] = 'Tilføj ny bruger';
+$wb['warning_txt'] = '<b>ADVARSEL:</b> Du må ikke redigere eller ændre brugerindstillinger her. Brug indstillingerne Kunde og Forhandlere i Kunde-modulet i stedet. Ændring eller at skifte brugere eller grupper her kan forårsage tab af data!';
+?>
diff --git a/interface/web/client/lib/lang/dk.lng b/interface/web/client/lib/lang/dk.lng
new file mode 100644
index 0000000000..12400944a9
--- /dev/null
+++ b/interface/web/client/lib/lang/dk.lng
@@ -0,0 +1,28 @@
+<?php
+$wb['Client'] = 'Kunde';
+$wb['Address'] = 'Adresse';
+$wb['Limits'] = 'Begrænsninger';
+$wb['Add Client'] = 'Tilføj Kunde';
+$wb['Edit Client'] = 'Rediger Kunder';
+$wb['Clients'] = 'Kunder';
+$wb['Templates'] = 'Skabeloner';
+$wb['Limit-Templates'] = 'Pakke-Skabeloner';
+$wb['Add Reseller'] = 'Tilføj Forhandler';
+$wb['Edit Reseller'] = 'Rediger Forhandler';
+$wb['Resellers'] = 'Forhandlere';
+$wb['error_has_clients'] = 'Denne forhandler har kunder. Slet kunder hos forhandleren først.';
+$wb['add_additional_template_txt'] = 'Tilføj ekstra skabelon';
+$wb['delete_additional_template_txt'] = 'Slet ekstra skabelon';
+$wb['Messaging'] = 'Meddelelser';
+$wb['Send email'] = 'Send E-mail';
+$wb['Edit Client Circle'] = 'Rediger Kunde Cirkel';
+$wb['Domains'] = 'Domæner';
+$wb['domain_txt'] = 'Domæne';
+$wb['client_txt'] = 'Kunde';
+$wb['error_domain_in mailuse'] = 'Dette domæne kan ikke slettes, da det er i brug som mail-domæne';
+$wb['error_domain_in webuse'] = 'Dette domæne kan ikke slettes, da det er i brug som web-domæne';
+$wb['error_client_can_not_add_domain'] = 'Du kan ikke tilføj et nyt domæne';
+$wb['error_client_group_id_empty'] = 'Du skal vælge en kunde<br>';
+$wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone';
+$wb['error_domain_in dnsslaveuse'] = 'This domain cannot be deleted, because it is in use as secondary dns zone';
+?>
diff --git a/interface/web/client/lib/lang/dk_client.lng b/interface/web/client/lib/lang/dk_client.lng
new file mode 100644
index 0000000000..c9c6d8697c
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client.lng
@@ -0,0 +1,202 @@
+<?php
+$wb['limit_maildomain_txt'] = 'Max. antal af e-mail domæner';
+$wb['limit_mailmailinglist_txt'] = 'Max. antal af mail-lister';
+$wb['limit_mailbox_txt'] = 'Max. antal af mail-bokse';
+$wb['limit_mailalias_txt'] = 'Max. antal af e-mail aliaser';
+$wb['limit_mailaliasdomain_txt'] = 'Max. antal af domæne aliaser';
+$wb['limit_mailforward_txt'] = 'Max. antal af e-mail forwarders';
+$wb['limit_mailcatchall_txt'] = 'Max. antal af e-mail catchall konti';
+$wb['limit_mailrouting_txt'] = 'Max. antal af e-mail routes';
+$wb['limit_mailfilter_txt'] = 'Max. antal af e-mail filtere';
+$wb['limit_fetchmail_txt'] = 'Max. antal af fetchmail konti';
+$wb['limit_mailquota_txt'] = 'Postboks kvota';
+$wb['limit_spamfilter_wblist_txt'] = 'Max. antal af spamfilter white/blacklist filtere';
+$wb['limit_spamfilter_user_txt'] = 'Max. antal af spamfilter brugere';
+$wb['limit_spamfilter_policy_txt'] = 'Max. antal af spamfilter politikker';
+$wb['default_mailserver_txt'] = 'Standard Mailserver';
+$wb['company_name_txt'] = 'Firma navn';
+$wb['contact_name_txt'] = 'Kontakt navn';
+$wb['username_txt'] = 'Brugernavn';
+$wb['password_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['language_txt'] = 'Sprog';
+$wb['usertheme_txt'] = 'Tema';
+$wb['street_txt'] = 'Gade';
+$wb['zip_txt'] = 'Post nr.';
+$wb['city_txt'] = 'By';
+$wb['state_txt'] = 'Komune';
+$wb['country_txt'] = 'Land';
+$wb['telephone_txt'] = 'Telefon';
+$wb['mobile_txt'] = 'Mobil';
+$wb['fax_txt'] = 'Fax';
+$wb['email_txt'] = 'E-mail';
+$wb['internet_txt'] = 'Internet';
+$wb['icq_txt'] = 'ICQ';
+$wb['notes_txt'] = 'Noter';
+$wb['company_txt'] = 'Firma';
+$wb['title_txt'] = 'Titel';
+$wb['firstname_txt'] = 'Fornavn';
+$wb['surname_txt'] = 'Efternavn';
+$wb['limit_domain_txt'] = 'limit_domain';
+$wb['limit_subdomain_txt'] = 'limit_subdomain';
+$wb['limit_webquota_txt'] = 'limit_webkvote';
+$wb['limit_database_txt'] = 'Max. antal af Databaser';
+$wb['limit_cron_txt'] = 'Max. antal af cron jobs';
+$wb['limit_cron_type_txt'] = 'Max. Tilladte Cron Job typer (chrooted og full implies url)';
+$wb['limit_cron_frequency_txt'] = 'Min. Forsinkelser mellem udførelser';
+$wb['ip_address_txt'] = 'ip_adresse';
+$wb['limit_client_error_notint'] = 'Sub-client grænse skal være et tal.';
+$wb['firstname_error_empty'] = 'Fornavn er tomt.';
+$wb['contact_error_empty'] = 'Kontakt navn er tomt.';
+$wb['default_webserver_txt'] = 'Standard Webserver';
+$wb['limit_web_domain_txt'] = 'Max. antal af web domæner';
+$wb['limit_web_aliasdomain_txt'] = 'Max. antal af web alias-domæner';
+$wb['limit_web_subdomain_txt'] = 'Max. antal af web sub-domæner';
+$wb['limit_ftp_user_txt'] = 'Max. antal af FTP brugere';
+$wb['default_dnsserver_txt'] = 'Standard DNS Server';
+$wb['limit_dns_zone_txt'] = 'Max. antal af DNS zoner';
+$wb['limit_dns_slave_zone_txt'] = 'Max. antal af sekundær DNS zoner';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS poster';
+$wb['limit_shell_user_txt'] = 'Max. antal af Shell brugere';
+$wb['limit_webdav_user_txt'] = 'Max. antal af Webdav brugere';
+$wb['limit_client_txt'] = 'Max. antal af Kunder';
+$wb['username_error_empty'] = 'Brugernavn er tomt.';
+$wb['username_error_unique'] = 'Brugernavne skal være unikke.';
+$wb['limit_maildomain_error_notint'] = 'E-mail domæne grænse skal være et tal.';
+$wb['limit_mailmailinglist_error_notint'] = 'Mail-liste post grænse skal være et tal.';
+$wb['limit_mailbox_error_notint'] = 'Mailboks grænse skal være et tal.';
+$wb['limit_mailalias_error_notint'] = 'E-mail alias grænse skal være et tal.';
+$wb['limit_mailaliasdomain_error_notint'] = 'E-mail domæne alias grænse skal være et tal.';
+$wb['limit_mailforward_error_notint'] = 'E-mail forward grænse skal være et tal.';
+$wb['limit_mailcatchall_error_notint'] = 'E-mail catchall grænse skal være et tal.';
+$wb['limit_mailrouting_error_notint'] = 'E-mail routing grænse skal være et tal.';
+$wb['limit_mailfilter_error_notint'] = 'E-mail filter grænse skal være et tal.';
+$wb['limit_mailfetchmail_error_notint'] = 'Fetchmail grænse skal være et tal.';
+$wb['limit_mailquota_error_notint'] = 'E-mail kvote grænse skal være et tal.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'Spamfilter white/blacklist grænse skal være et tal.';
+$wb['limit_spamfilter_user_error_notint'] = 'Spamfilter bruger grænse skal være et tal.';
+$wb['limit_spamfilter_policy_error_notint'] = 'Spamfilter policy grænse skal være et tal.';
+$wb['limit_web_domain_error_notint'] = 'Webside grænse skal være et tal.';
+$wb['limit_web_aliasdomain_error_notint'] = 'Webside alias domain grænse skal være et tal.';
+$wb['limit_web_subdomain_error_notint'] = 'Webside subdomain grænse skal være et tal.';
+$wb['limit_ftp_user_error_notint'] = 'FTP bruger grænse skal være et tal.';
+$wb['limit_shell_user_error_notint'] = 'Shell bruger grænse skal være et tal.';
+$wb['limit_webdav_user_error_notint'] = 'Webdav bruger grænse skal være et tal.';
+$wb['limit_dns_zone_error_notint'] = 'DNS post grænse skal være et tal.';
+$wb['limit_dns_slave_zone_error_notint'] = 'DNS slave zone grænse skal være et tal.';
+$wb['default_dbserver_txt'] = 'Standard Database Server';
+$wb['limit_database_error_notint'] = 'Database grænse skal være et tal.';
+$wb['limit_cron_error_notint'] = 'Crone grænse skal være et tal.';
+$wb['limit_cron_error_frequency'] = 'Crone frekvens grænse skal være et tal.';
+$wb['username_error_regex'] = 'Brugernavn indeholder ugyldigt karaktere.';
+$wb['template_master_txt'] = 'Master skabelon';
+$wb['template_additional_txt'] = 'Tilføjelses skabelon';
+$wb['active_template_additional_txt'] = 'Aktiv Tilføjelser';
+$wb['add_additional_template_txt'] = 'Tilføj yderligere skabelon';
+$wb['delete_additional_template_txt'] = 'Slet yderligere skabelon';
+$wb['ssh_chroot_txt'] = 'SSH-Chroot Indstillinger';
+$wb['web_php_options_txt'] = 'PHP Indstillinger';
+$wb['limit_cgi_txt'] = 'CGI tilgængelig';
+$wb['limit_ssi_txt'] = 'SSI tilgængelig';
+$wb['limit_perl_txt'] = 'Perl tilgængelig';
+$wb['limit_ruby_txt'] = 'Ruby tilgængelig';
+$wb['limit_python_txt'] = 'Python tilgængelig';
+$wb['force_suexec_txt'] = 'SuEXEC forced';
+$wb['limit_hterror_txt'] = 'Tilpasset fejl dokumenter tilgængelig';
+$wb['limit_wildcard_txt'] = 'Wildcard sub-domæne tilgængelig';
+$wb['limit_ssl_txt'] = 'SSL tilgængelig';
+$wb['limit_client_error'] = 'Max. antal af kunder er nået.';
+$wb['limit_web_quota_txt'] = 'Web Kvote';
+$wb['limit_traffic_quota_txt'] = 'Trafik Kvote';
+$wb['limit_trafficquota_error_notint'] = 'Trafik Kvote skal være et tal.';
+$wb['customer_no_txt'] = 'Kunde Nr.';
+$wb['vat_id_txt'] = 'VAT ID';
+$wb['required_fields_txt'] = '* Krævede felter';
+$wb['company_id_txt'] = 'Firma/Entreprenør ID';
+$wb['limit_openvz_vm_txt'] = 'Max. antal af virtuelle servere';
+$wb['limit_openvz_vm_template_id_txt'] = 'Tving virtuelle server skabelon';
+$wb['limit_openvz_vm_error_notint'] = 'Virtuelle server grænse skal være et tal.';
+$wb['web_php_options_notempty'] = 'Ingen PHP mulighed(er) valgt. Vælg mindst en PHP mulighed.';
+$wb['ssh_chroot_notempty'] = 'Ingen SSH chroot mulighed valgt. Vælg mindst en SSH mulighed.';
+$wb['username_error_collision'] = 'Brugernavne kan ikke starte med ordet -web- eller -web- efterfulgt af et tal.';
+$wb['bank_account_number_txt'] = 'Bank konto nr..';
+$wb['bank_account_owner_txt'] = 'Bank konto ejer';
+$wb['bank_code_txt'] = 'Bank kode';
+$wb['bank_name_txt'] = 'Bank navn';
+$wb['bank_account_iban_txt'] = 'IBAN';
+$wb['bank_account_swift_txt'] = 'BIC/Swift';
+$wb['web_limits_txt'] = 'Web Begrænsninger';
+$wb['email_limits_txt'] = 'E-mail Begrænsninger';
+$wb['database_limits_txt'] = 'Database Begrænsninger';
+$wb['cron_job_limits_txt'] = 'Cron Job Begrænsninger';
+$wb['dns_limits_txt'] = 'DNS Begrænsninger';
+$wb['virtualization_limits_txt'] = 'Virtualisering Begrænsninger';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['email_error_isemail'] = 'Indtast en gyldig e-mail adresse.';
+$wb['customer_no_error_unique'] = 'Kunde nr. skal være unikke (eller tomt).';
+$wb['paypal_email_error_isemail'] = 'Indtast en gyldig PayPal e-mail adresse.';
+$wb['paypal_email_txt'] = 'PayPal E-mail';
+$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.';
+$wb['aps_limits_txt'] = 'APS Installer Begrænsninger';
+$wb['limit_aps_txt'] = 'Max. antal af APS forekomster';
+$wb['limit_aps_error_notint'] = 'APS forekomster grænse skal være et tal.';
+$wb['default_slave_dnsserver_txt'] = 'Standard Sekundær DNS Server';
+$wb['locked_txt'] = 'LÃ¥st (deaktiverer alle webs mv)';
+$wb['canceled_txt'] = 'Annulleret (deaktivere kunde log ind)';
+$wb['gender_txt'] = 'Titel';
+$wb['gender_m_txt'] = 'Hr.';
+$wb['gender_f_txt'] = 'Fr.';
+$wb['added_by_txt'] = 'Tilføjet af';
+$wb['added_date_txt'] = 'Tilføjet d.';
+$wb['parent_client_id_txt'] = 'Kunde af forhandler';
+$wb['none_txt'] = 'ingen';
+$wb['contact_firstname_txt'] = 'Contact firstname';
+$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['limit_backup_txt'] = 'Backupfunction available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['xmpp_limits_txt'] = 'XMPP Limits';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['web_servers_placeholder'] = 'Select webservers';
+$wb['no_web_server_error'] = 'At least one webserver must be selected.';
+$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before you remove it.';
+$wb['dns_servers_txt'] = 'DNS servers';
+$wb['dns_servers_placeholder'] = 'Select DNS servers';
+$wb['no_dns_server_error'] = 'At least one DNS server must be selected.';
+$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before you remove it.';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['db_servers_placeholder'] = 'Select database servers';
+$wb['no_db_server_error'] = 'At least one Database server must be selected.';
+$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before you remove it.';
+$wb['mail_servers_txt'] = 'Mailservers';
+$wb['mail_servers_placeholder'] = 'Select mailservers';
+$wb['no_mail_server_error'] = 'At least one mailserver must be selected.';
+$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before you remove it.';
+$wb['xmpp_servers_txt'] = 'XMPP Servers';
+$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
+$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
+$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
+$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
+$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
+$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains';
+$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts';
+$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available';
+$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available';
+$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available';
+$wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
+$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
+$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
+$wb['limit_xmpp_status_txt'] = 'Status host available';
+$wb['limit_database_quota_txt'] = 'Database quota';
+$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
+$wb['reseller_txt'] = 'Reseller';
+$wb['btn_save_txt'] = 'Save';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['invalid_vat_id'] = 'The VAT ID is invalid.';
+$wb['email_error_empty'] = 'Email is empty';
+$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_circle.lng b/interface/web/client/lib/lang/dk_client_circle.lng
new file mode 100644
index 0000000000..006db179a8
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_circle.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['Client Circle'] = 'Kunde Cirkel';
+$wb['Circle'] = 'Cirkel';
+$wb['circle_txt'] = 'Cirkel';
+$wb['circle_name_txt'] = 'Cirkel Navn';
+$wb['client_ids_txt'] = 'Kunder/Forhandlere';
+$wb['description_txt'] = 'Beskrivelse';
+$wb['active_txt'] = 'Aktiv';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_circle_list.lng b/interface/web/client/lib/lang/dk_client_circle_list.lng
new file mode 100644
index 0000000000..1d1181d991
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_circle_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb['list_head_txt'] = 'Kunde Cirkler';
+$wb['circle_id_txt'] = 'Cirkel ID';
+$wb['circle_name_txt'] = 'Cirkel Navn';
+$wb['description_txt'] = 'Beskrivelse';
+$wb['add_new_record_txt'] = 'Tilføj ny cirkel';
+$wb['filter_txt'] = 'Filter';
+$wb['delete_txt'] = 'Slet';
+$wb['active_txt'] = 'Aktiv';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_del.lng b/interface/web/client/lib/lang/dk_client_del.lng
new file mode 100644
index 0000000000..ba5f592219
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_del.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['confirm_action_txt'] = 'Bekræft handling';
+$wb['delete_explanation'] = 'Denne handling vil slette følgende antal poster forbundet med denne kunde';
+$wb['btn_save_txt'] = 'Slet kunden';
+$wb['btn_cancel_txt'] = 'Annullere uden at slette kunden';
+$wb['confirm_client_delete_txt'] = 'Er du sikker på at du vil slette denne kunde?';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_message.lng b/interface/web/client/lib/lang/dk_client_message.lng
new file mode 100644
index 0000000000..aa6ab0dea7
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_message.lng
@@ -0,0 +1,20 @@
+<?php
+$wb['page_head_txt'] = 'Send kundeoplysninger';
+$wb['btn_send_txt'] = 'Send e-mail';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['sender_txt'] = 'Afsender e-mail adresse';
+$wb['subject_txt'] = 'Emne';
+$wb['message_txt'] = 'Meddelelse';
+$wb['form_legend_client_txt'] = 'Send e-mail meddelelse til kunder.';
+$wb['form_legend_admin_txt'] = 'Send e-mail meddelelse til kunder og forhandler.';
+$wb['sender_invalid_error'] = 'Afsender e-mail ugyldigt.';
+$wb['subject_invalid_error'] = 'Emne er tomt.';
+$wb['message_invalid_error'] = 'Meddelelse er tom.';
+$wb['email_sent_to_txt'] = 'E-mail sendt til:';
+$wb['recipient_txt'] = 'Modtager';
+$wb['all_clients_resellers_txt'] = 'Alle kunder og forhandler';
+$wb['all_clients_txt'] = 'Alle kunder';
+$wb['variables_txt'] = 'Variabler:';
+$wb['gender_m_txt'] = 'Hr.';
+$wb['gender_f_txt'] = 'Fr.';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_message_template.lng b/interface/web/client/lib/lang/dk_client_message_template.lng
new file mode 100644
index 0000000000..d8f362875f
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_message_template.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['template_type_txt'] = 'E-mail type';
+$wb['template_name_txt'] = 'Skabelon navn';
+$wb['subject_txt'] = 'Emne';
+$wb['message_txt'] = 'Meddelelse';
+$wb['Email template'] = 'E-mail skabelon';
+$wb['Settings'] = 'Indstillinger';
+$wb['variables_txt'] = 'Variabler';
+$wb['variables_description_txt'] = '(Brugernavn og adgangskode variabler er kun tilgængelig i velkomst e-mails.)';
+$wb['duplicate_welcome_error'] = 'Der kan kun være én standard velkomstmail skabelon. Rediger den eksisterende skabelon i stedet for at tilføje en ny.';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_message_template_list.lng b/interface/web/client/lib/lang/dk_client_message_template_list.lng
new file mode 100644
index 0000000000..215855b2e1
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_message_template_list.lng
@@ -0,0 +1,5 @@
+<?php
+$wb['list_head_txt'] = 'E-mail Skabeloner';
+$wb['template_type_txt'] = 'Meddelelse for';
+$wb['template_name_txt'] = 'Skabelon navn';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_template.lng b/interface/web/client/lib/lang/dk_client_template.lng
new file mode 100644
index 0000000000..299a47a0b9
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_template.lng
@@ -0,0 +1,123 @@
+<?php
+$wb['template_type_txt'] = 'Skabelon type';
+$wb['template_name_txt'] = 'Skabelon navn';
+$wb['limit_client_error_notint'] = 'Kunde Begrænsning er ikke et tal.';
+$wb['limit_maildomain_txt'] = 'Max. antal af e-mail domæner';
+$wb['limit_mailbox_txt'] = 'Max. antal af mail-bokse';
+$wb['limit_mailalias_txt'] = 'Max. antal af e-mail aliaser';
+$wb['limit_mailaliasdomain_txt'] = 'Max. antal af domæne aliaser';
+$wb['limit_mailmailinglist_txt'] = 'Max. antal af mailing lister';
+$wb['limit_mailforward_txt'] = 'Max. antal af e-mail forwarders';
+$wb['limit_mailcatchall_txt'] = 'Max. antal af e-mail catchall konti';
+$wb['limit_mailrouting_txt'] = 'Max. antal af e-mail routes';
+$wb['limit_mailfilter_txt'] = 'Max. antal af e-mail filtere';
+$wb['limit_fetchmail_txt'] = 'Max. antal af fetchmail konti';
+$wb['limit_mailquota_txt'] = 'Postboks kvota';
+$wb['limit_spamfilter_wblist_txt'] = 'Max. antal af spamfilter white/blacklist filtere';
+$wb['limit_spamfilter_user_txt'] = 'Max. antal af spamfilter brugere';
+$wb['limit_spamfilter_policy_txt'] = 'Max. antal af spamfilter politikker';
+$wb['limit_domain_txt'] = 'limit_domain';
+$wb['limit_subdomain_txt'] = 'limit_subdomain';
+$wb['limit_webquota_txt'] = 'limit_webkvote';
+$wb['limit_database_txt'] = 'Max. antal af Databaser';
+$wb['limit_cron_txt'] = 'Max. antal af cron jobs';
+$wb['limit_cron_type_txt'] = 'Max. type af cron jobs (chrooted og full implies url)';
+$wb['limit_cron_frequency_txt'] = 'Min. forsinkelse mellem udførelser';
+$wb['limit_web_domain_txt'] = 'Max. antal af web domæner';
+$wb['limit_web_aliasdomain_txt'] = 'Max. antal af web alias-domæner';
+$wb['limit_web_subdomain_txt'] = 'Max. antal af web sub-domæner';
+$wb['limit_ftp_user_txt'] = 'Max. antal af FTP brugere';
+$wb['limit_dns_zone_txt'] = 'Max. antal af DNS zoner';
+$wb['limit_dns_slave_zone_txt'] = 'Max. antal af sekundær DNS zoner';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS poster';
+$wb['limit_shell_user_txt'] = 'Max. antal af Shell brugere';
+$wb['limit_webdav_user_txt'] = 'Max. antal af Webdav brugere';
+$wb['limit_client_txt'] = 'Max. antal af Kunder';
+$wb['limit_maildomain_error_notint'] = 'E-mail domæne grænse skal være et tal.';
+$wb['limit_mailmailinglist_error_notint'] = 'Mailing-liste post-grænse skal være et tal.';
+$wb['limit_mailbox_error_notint'] = 'Mailboks grænse skal være et tal.';
+$wb['limit_mailalias_error_notint'] = 'E-mail alias grænse skal være et tal.';
+$wb['limit_mailaliasdomain_error_notint'] = 'E-mail domæne alias grænse skal være et tal.';
+$wb['limit_mailforward_error_notint'] = 'E-mail forward grænse skal være et tal.';
+$wb['limit_mailcatchall_error_notint'] = 'E-mail catchall grænse skal være et tal.';
+$wb['limit_mailrouting_error_notint'] = 'E-mail routing grænse skal være et tal.';
+$wb['limit_mailfilter_error_notint'] = 'E-mail filter grænse skal være et tal.';
+$wb['limit_mailfetchmail_error_notint'] = 'Fetchmail grænse skal være et tal.';
+$wb['limit_mailquota_error_notint'] = 'E-mail kvote grænse skal være et tal.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'Spamfilter white/blacklist grænse skal være et tal.';
+$wb['limit_spamfilter_user_error_notint'] = 'Spamfilter bruger grænse skal være et tal.';
+$wb['limit_spamfilter_policy_error_notint'] = 'Spamfilter policy grænse skal være et tal.';
+$wb['limit_web_domain_error_notint'] = 'Webside grænse skal være et tal.';
+$wb['limit_web_aliasdomain_error_notint'] = 'Webside alias domain grænse skal være et tal.';
+$wb['limit_web_subdomain_error_notint'] = 'Webside sub-domæne grænse skal være et tal.';
+$wb['limit_ftp_user_error_notint'] = 'Ftp bruger grænse skal være et tal.';
+$wb['limit_shell_user_error_notint'] = 'Shell bruger grænse skal være et tal.';
+$wb['limit_webdav_user_error_notint'] = 'Webdav bruger grænse skal være et tal.';
+$wb['limit_dns_zone_error_notint'] = 'Dns zone grænse skal være et tal.';
+$wb['limit_dns_slave_zone_error_notint'] = 'Dns slave zone grænse skal være et tal.';
+$wb['limit_dns_record_error_notint'] = 'Dns post grænse skal være et tal.';
+$wb['limit_database_error_notint'] = 'Database grænse skal være et tal.';
+$wb['limit_cron_error_notint'] = 'Crone grænse skal være et tal.';
+$wb['limit_cron_error_frequency'] = 'Crone frekvens grænse skal være et tal.';
+$wb['error_template_name_empty'] = 'Indtast et Skabelon navn';
+$wb['limit_web_quota_txt'] = 'Web Kvote';
+$wb['limit_traffic_quota_txt'] = 'Trafik Kvote';
+$wb['limit_trafficquota_error_notint'] = 'Trafik Kvote skal være et tal.';
+$wb['template_del_aborted_txt'] = 'Slet afbrudt. Der er stadig en kunde, som har denne skabelon valgt.';
+$wb['limit_openvz_vm_txt'] = 'Max. antal af virtuelle servere';
+$wb['limit_openvz_vm_template_id_txt'] = 'Tving virtuelle server skabelon';
+$wb['limit_openvz_vm_error_notint'] = 'Den virtuelle server grænse skal være et tal.';
+$wb['ssh_chroot_txt'] = 'SSH-Chroot Indstillinger';
+$wb['web_php_options_txt'] = 'PHP Indstillinger';
+$wb['limit_cgi_txt'] = 'CGI tilgængelig';
+$wb['limit_ssi_txt'] = 'SSI tilgængelig';
+$wb['limit_perl_txt'] = 'Perl tilgængelig';
+$wb['limit_ruby_txt'] = 'Ruby tilgængelig';
+$wb['limit_python_txt'] = 'Python tilgængelig';
+$wb['force_suexec_txt'] = 'SuEXEC forced';
+$wb['limit_hterror_txt'] = 'Tilpasset fejl dokumenter tilgængelig';
+$wb['limit_wildcard_txt'] = 'Wildcard sub-domæne tilgængelig';
+$wb['limit_ssl_txt'] = 'SSL tilgængelig';
+$wb['web_limits_txt'] = 'Web Begrænsninger';
+$wb['email_limits_txt'] = 'E-mail Begrænsninger';
+$wb['database_limits_txt'] = 'Database Begrænsninger';
+$wb['cron_job_limits_txt'] = 'Cron Job Begrænsninger';
+$wb['dns_limits_txt'] = 'DNS Begrænsninger';
+$wb['virtualization_limits_txt'] = 'Virtualisering Begrænsninger';
+$wb['aps_limits_txt'] = 'APS Installer Begrænsninger';
+$wb['limit_aps_txt'] = 'Max. antal af APS instances';
+$wb['limit_aps_error_notint'] = 'APS forekomst grænse skal være et tal.';
+$wb['limit_domainmodule_txt'] = 'Domænemodul Begrænsning';
+$wb['client_limits_txt'] = 'Kunde Begrænsninger';
+$wb['default_mailserver_txt'] = 'Default Mailserver';
+$wb['default_webserver_txt'] = 'Default Webserver';
+$wb['default_dnsserver_txt'] = 'Default DNS Server';
+$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
+$wb['limit_backup_txt'] = 'Backupfunction available';
+$wb['default_dbserver_txt'] = 'Default Database Server';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_database_quota_txt'] = 'Database quota';
+$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['xmpp_limits_txt'] = 'XMPP Limits';
+$wb['xmpp_servers_txt'] = 'XMPP Servers';
+$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
+$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
+$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
+$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
+$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
+$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains';
+$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts';
+$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available';
+$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available';
+$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available';
+$wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
+$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
+$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
+$wb['limit_xmpp_status_txt'] = 'Status host available';
+$wb['dns_servers_txt'] = 'DNS servers';
+$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['db_servers_txt'] = 'Database servers';
+$wb['mail_servers_txt'] = 'Mailservers';
+?>
diff --git a/interface/web/client/lib/lang/dk_client_template_list.lng b/interface/web/client/lib/lang/dk_client_template_list.lng
new file mode 100644
index 0000000000..ca83656182
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_client_template_list.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['list_head_txt'] = 'Kunde og Forhandler Skabeloner';
+$wb['template_type_txt'] = 'Type';
+$wb['template_name_txt'] = 'Skabelon navn';
+$wb['template_id_txt'] = 'Skabelon ID';
+?>
diff --git a/interface/web/client/lib/lang/dk_clients_list.lng b/interface/web/client/lib/lang/dk_clients_list.lng
new file mode 100644
index 0000000000..69a1dbf1eb
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_clients_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['list_head_txt'] = 'Kunder';
+$wb['client_id_txt'] = 'ID';
+$wb['company_name_txt'] = 'Firma navn';
+$wb['contact_name_txt'] = 'Kontakt navn';
+$wb['username_txt'] = 'Brugernavn';
+$wb['city_txt'] = 'By';
+$wb['country_txt'] = 'Land';
+$wb['add_new_record_txt'] = 'Tilføj ny kunde';
+$wb['customer_no_txt'] = 'Kunde Nr.';
+?>
diff --git a/interface/web/client/lib/lang/dk_domain.lng b/interface/web/client/lib/lang/dk_domain.lng
new file mode 100644
index 0000000000..cd9c60de58
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_domain.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['domain_error_empty'] = 'Domæne-navn er tomt';
+$wb['domain_error_unique'] = 'Domænet findes allerede';
+$wb['domain_error_regex'] = 'Dette domæne-navn er ikke tilladt';
+$wb['Domain'] = 'Domæne';
+?>
diff --git a/interface/web/client/lib/lang/dk_domain_list.lng b/interface/web/client/lib/lang/dk_domain_list.lng
new file mode 100644
index 0000000000..b5d63fc70f
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_domain_list.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['list_head_txt'] = 'Domæner';
+$wb['add_new_record_txt'] = 'Tilføj nyt Domæne';
+$wb['domain_txt'] = 'Domæne';
+$wb['user_txt'] = 'Kunde';
+?>
diff --git a/interface/web/client/lib/lang/dk_reseller.lng b/interface/web/client/lib/lang/dk_reseller.lng
new file mode 100644
index 0000000000..dc14fe47e0
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_reseller.lng
@@ -0,0 +1,206 @@
+<?php
+$wb['limit_maildomain_txt'] = 'Max. antal af e-mail domæner';
+$wb['limit_mailmailinglist_txt'] = 'Max. antal af mail-lister';
+$wb['limit_mailbox_txt'] = 'Max. antal af mail-bokse';
+$wb['limit_mailalias_txt'] = 'Max. antal af e-mail aliaser';
+$wb['limit_mailaliasdomain_txt'] = 'Max. antal af domæne aliaser';
+$wb['limit_mailforward_txt'] = 'Max. antal af e-mail forwarders';
+$wb['limit_mailcatchall_txt'] = 'Max. antal af e-mail catchall konti';
+$wb['limit_mailrouting_txt'] = 'Max. antal af e-mail routes';
+$wb['limit_mailfilter_txt'] = 'Max. antal af e-mail filtere';
+$wb['limit_fetchmail_txt'] = 'Max. antal af fetchmail konti';
+$wb['limit_mailquota_txt'] = 'Postboks kvota';
+$wb['limit_spamfilter_wblist_txt'] = 'Max. antal af spamfilter white/blacklist filtere';
+$wb['limit_spamfilter_user_txt'] = 'Max. antal af spamfilter brugere';
+$wb['limit_spamfilter_policy_txt'] = 'Max. antal af spamfilter politikker';
+$wb['default_mailserver_txt'] = 'Standard Mailserver';
+$wb['company_name_txt'] = 'Firma navn';
+$wb['contact_name_txt'] = 'Kontakt navn';
+$wb['username_txt'] = 'Brugernavn';
+$wb['password_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['language_txt'] = 'Sprog';
+$wb['usertheme_txt'] = 'Tema';
+$wb['street_txt'] = 'Gade';
+$wb['zip_txt'] = 'Post nr.';
+$wb['city_txt'] = 'By';
+$wb['state_txt'] = 'Kommune';
+$wb['country_txt'] = 'Land';
+$wb['telephone_txt'] = 'Telefon';
+$wb['mobile_txt'] = 'Mobil';
+$wb['fax_txt'] = 'Fax';
+$wb['email_txt'] = 'E-mail';
+$wb['internet_txt'] = 'Internet';
+$wb['icq_txt'] = 'ICQ';
+$wb['notes_txt'] = 'Noter';
+$wb['company_txt'] = 'Firma';
+$wb['title_txt'] = 'Titel';
+$wb['firstname_txt'] = 'Fornavn';
+$wb['surname_txt'] = 'Efternavn';
+$wb['limit_domain_txt'] = 'limit_domain';
+$wb['limit_subdomain_txt'] = 'limit_subdomain';
+$wb['limit_webquota_txt'] = 'limit_webkvote';
+$wb['limit_database_txt'] = 'Max. antal af Databaser';
+$wb['limit_cron_txt'] = 'Max. antal af cron jobs';
+$wb['limit_cron_type_txt'] = 'Max. type of cron jobs (chrooted og full implies url)';
+$wb['limit_cron_frequency_txt'] = 'Min. forsinkelser mellem udførelser';
+$wb['ip_address_txt'] = 'ip_adresse';
+$wb['limit_client_error_notint'] = 'Sub-client grænse skal være et tal.';
+$wb['firstname_error_empty'] = 'Fornavn er tomt.';
+$wb['contact_error_empty'] = 'Kontakt navn er tomt.';
+$wb['default_webserver_txt'] = 'Standard Webserver';
+$wb['limit_web_domain_txt'] = 'Max. antal af web domæner';
+$wb['limit_web_aliasdomain_txt'] = 'Max. antal af web alias-domæner';
+$wb['limit_web_subdomain_txt'] = 'Max. antal af web sub-domæner';
+$wb['limit_ftp_user_txt'] = 'Max. antal af FTP brugere';
+$wb['default_dnsserver_txt'] = 'Standard DNS Server';
+$wb['limit_dns_zone_txt'] = 'Max. antal af DNS zoner';
+$wb['limit_dns_slave_zone_txt'] = 'Max. antal af sekundær DNS zoner';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS poster';
+$wb['limit_shell_user_txt'] = 'Max. antal af Shell brugere';
+$wb['limit_webdav_user_txt'] = 'Max. antal af Webdav brugere';
+$wb['limit_client_txt'] = 'Max. antal af Kunder';
+$wb['username_error_empty'] = 'Brugernavn er tomt.';
+$wb['username_error_unique'] = 'Brugernavne skal være unikke.';
+$wb['limit_maildomain_error_notint'] = 'E-mail domæne grænse skal være et tal.';
+$wb['limit_mailmailinglist_error_notint'] = 'Mail-liste post grænse skal være et tal.';
+$wb['limit_mailbox_error_notint'] = 'Mailboks grænse skal være et tal.';
+$wb['limit_mailalias_error_notint'] = 'E-mail alias grænse skal være et tal.';
+$wb['limit_mailforward_error_notint'] = 'E-mail forward grænse skal være et tal.';
+$wb['limit_mailcatchall_error_notint'] = 'E-mail catchall grænse skal være et tal.';
+$wb['limit_mailrouting_error_notint'] = 'E-mail routing grænse skal være et tal.';
+$wb['limit_mailfilter_error_notint'] = 'E-mail filter grænse skal være et tal.';
+$wb['limit_mailfetchmail_error_notint'] = 'Fetchmail grænse skal være et tal.';
+$wb['limit_mailquota_error_notint'] = 'E-mail kvote grænse skal være et tal.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'Spamfilter white/blacklist grænse skal være et tal.';
+$wb['limit_spamfilter_user_error_notint'] = 'Spamfilter bruger grænse skal være et tal.';
+$wb['limit_spamfilter_policy_error_notint'] = 'Spamfilter policy grænse skal være et tal.';
+$wb['limit_web_domain_error_notint'] = 'Webside grænse skal være et tal.';
+$wb['limit_web_aliasdomain_error_notint'] = 'Webside alias-domæne grænse skal være et tal.';
+$wb['limit_web_subdomain_error_notint'] = 'Webside sub-domæne grænse skal være et tal.';
+$wb['limit_ftp_user_error_notint'] = 'FTP bruger grænse skal være et tal.';
+$wb['limit_webdav_user_error_notint'] = 'Webdav bruger grænse skal være et tal.';
+$wb['limit_shell_user_error_notint'] = 'Shell bruger grænse skal være et tal.';
+$wb['limit_dns_zone_error_notint'] = 'DNS zone grænse skal være et tal.';
+$wb['limit_dns_slave_zone_error_notint'] = 'DNS slave zone grænse skal være et tal.';
+$wb['limit_dns_record_error_notint'] = 'DNS post grænse skal være et tal.';
+$wb['default_dbserver_txt'] = 'Standard Database Server';
+$wb['limit_database_error_notint'] = 'Database grænse skal være et tal.';
+$wb['limit_cron_error_notint'] = 'Crone grænse skal være et tal.';
+$wb['limit_cron_error_frequency'] = 'Crone frekvens grænse skal være et tal.';
+$wb['username_error_regex'] = 'Brugernavnet indeholder ugyldigt karaktere.';
+$wb['template_master_txt'] = 'Master skabelon';
+$wb['template_additional_txt'] = 'Tilføjelses skabelon';
+$wb['add_additional_template_txt'] = 'Tilføj yderligere skabelon';
+$wb['delete_additional_template_txt'] = 'Slet yderligere skabelon';
+$wb['ssh_chroot_txt'] = 'SSH-Chroot Indstillinger';
+$wb['web_php_options_txt'] = 'PHP Indstillinger';
+$wb['limit_cgi_txt'] = 'CGI tilgængelig';
+$wb['limit_ssi_txt'] = 'SSI tilgængelig';
+$wb['limit_perl_txt'] = 'Perl tilgængelig';
+$wb['limit_ruby_txt'] = 'Ruby tilgængelig';
+$wb['limit_python_txt'] = 'Python tilgængelig';
+$wb['force_suexec_txt'] = 'SuEXEC forced';
+$wb['limit_hterror_txt'] = 'Tilpasset fejl dokumter tilgængelig';
+$wb['limit_wildcard_txt'] = 'Wildcard sub-domæne tilgængelig';
+$wb['limit_ssl_txt'] = 'SSL tilgængelig';
+$wb['limit_client_error'] = 'Max. antal af kunder er nået.';
+$wb['limit_web_quota_txt'] = 'Web Kvote';
+$wb['limit_traffic_quota_txt'] = 'Trafik Kvote';
+$wb['limit_trafficquota_error_notint'] = 'Trafik Kvote skal være et tal.';
+$wb['customer_no_txt'] = 'Kunde Nr.';
+$wb['vat_id_txt'] = 'VAT ID';
+$wb['required_fields_txt'] = '* Krævede felter';
+$wb['limit_openvz_vm_txt'] = 'Max. antal af virtual servers';
+$wb['limit_openvz_vm_template_id_txt'] = 'Tving virtuelle server skabelon';
+$wb['limit_openvz_vm_error_notint'] = 'Virtuelle server grænse skal være et tal.';
+$wb['web_php_options_notempty'] = 'Ingen PHP mulighed(er) valgt. Vælg mindst en PHP mulighed.';
+$wb['ssh_chroot_notempty'] = 'Ingen SSH chroot mulighed valgt. Vælg mindst en SSH mulighed.';
+$wb['username_error_collision'] = 'Brugernavn må ikke starte med ordet -web- eller -web- efterfulgt af et tal.';
+$wb['web_limits_txt'] = 'Web Begrænsninger';
+$wb['email_limits_txt'] = 'E-mail Begrænsninger';
+$wb['database_limits_txt'] = 'Database Begrænsninger';
+$wb['cron_job_limits_txt'] = 'Cron Job Begrænsninger';
+$wb['dns_limits_txt'] = 'DNS Begrænsninger';
+$wb['virtualization_limits_txt'] = 'Virtualisering Begrænsninger';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['email_error_isemail'] = 'Angiv en gyldig e-mail adresse.';
+$wb['customer_no_error_unique'] = 'Kunde nr. skal være unikke (eller tomt).';
+$wb['paypal_email_error_isemail'] = 'Angiv en gyldig PayPal e-mail adresse.';
+$wb['paypal_email_txt'] = 'PayPal E-mail';
+$wb['company_id_txt'] = 'Firma/Entreprenør ID';
+$wb['bank_account_number_txt'] = 'Bank konto nr..';
+$wb['bank_account_owner_txt'] = 'Bank konto ejer';
+$wb['bank_code_txt'] = 'Bank kode';
+$wb['bank_name_txt'] = 'Bank navn';
+$wb['bank_account_iban_txt'] = 'IBAN';
+$wb['bank_account_swift_txt'] = 'BIC/Swift';
+$wb['aps_limits_txt'] = 'APS Installer Begrænsninger';
+$wb['limit_aps_txt'] = 'Max. antal af APS instances';
+$wb['limit_aps_error_notint'] = 'APS forekomst-grænse skal være et tal.';
+$wb['default_slave_dnsserver_txt'] = 'Standard Sekundær DNS Server';
+$wb['locked_txt'] = 'LÃ¥st';
+$wb['canceled_txt'] = 'Annulleret';
+$wb['gender_m_txt'] = 'Hr.';
+$wb['gender_f_txt'] = 'Fr.';
+$wb['gender_txt'] = 'Titel';
+$wb['customer_no_template_txt'] = 'Kunde Nr. skabelon';
+$wb['customer_no_template_error_regex_txt'] = 'Kunde Nr. skabelonen indeholder ugyldigt karaktere';
+$wb['customer_no_start_txt'] = 'Kunde Nr. start værdi';
+$wb['customer_no_counter_txt'] = 'Kunde Nr. tæller';
+$wb['added_by_txt'] = 'Tilføjet af';
+$wb['added_date_txt'] = 'Tilføjet d.';
+$wb['limit_domainmodule_error_notint'] = 'Domænemodul grænse skal være et tal.';
+$wb['limit_domainmodule_txt'] = 'Domænemodul Begrænsning';
+$wb['client_limits_txt'] = 'Kunde Begrænsninger';
+$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.';
+$wb['contact_firstname_txt'] = 'Contact firstname';
+$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['limit_database_user_txt'] = 'Max. Database users';
+$wb['limit_backup_txt'] = 'Backupfunction available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)';
+$wb['web_servers_txt'] = 'Webservers';
+$wb['web_servers_placeholder'] = 'Select Webservers';
+$wb['no_web_server_error'] = 'At least one webserver must be selected.';
+$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before to remove it.';
+$wb['dns_servers_txt'] = 'DNS Server';
+$wb['dns_servers_placeholder'] = 'Select DNS Servers';
+$wb['no_dns_server_error'] = 'At least one DNS server must be selected.';
+$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before to remove it.';
+$wb['db_servers_txt'] = 'Database Server';
+$wb['db_servers_placeholder'] = 'Select Database Servers';
+$wb['no_db_server_error'] = 'At least one Database server must be selected.';
+$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before to remove it.';
+$wb['mail_servers_txt'] = 'Mailservers';
+$wb['mail_servers_placeholder'] = 'Select Mailservers';
+$wb['no_mail_server_error'] = 'At least one Mailserver must be selected.';
+$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before to remove it.';
+$wb['xmpp_limits_txt'] = 'XMPP Limits';
+$wb['xmpp_servers_txt'] = 'XMPP Servers';
+$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
+$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
+$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
+$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
+$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
+$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains';
+$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts';
+$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available';
+$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available';
+$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available';
+$wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
+$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
+$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
+$wb['limit_xmpp_status_txt'] = 'Status host available';
+$wb['invalid_vat_id'] = 'The VAT ID is invalid.';
+$wb['btn_save_txt'] = 'Save';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['email_error_empty'] = 'Email is empty';
+$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
+$wb['limit_database_quota_txt'] = 'Database quota';
+$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+?>
diff --git a/interface/web/client/lib/lang/dk_resellers_list.lng b/interface/web/client/lib/lang/dk_resellers_list.lng
new file mode 100644
index 0000000000..fd73d0cc8e
--- /dev/null
+++ b/interface/web/client/lib/lang/dk_resellers_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['list_head_txt'] = 'Forhandlere';
+$wb['client_id_txt'] = 'ID';
+$wb['company_name_txt'] = 'Firma navn';
+$wb['contact_name_txt'] = 'Kontakt navn';
+$wb['city_txt'] = 'By';
+$wb['country_txt'] = 'Land';
+$wb['add_new_record_txt'] = 'Tilføj ny forhandler';
+$wb['customer_no_txt'] = 'Kunde Nr.';
+$wb['username_txt'] = 'Brugernavn';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk.lng b/interface/web/dashboard/lib/lang/dk.lng
new file mode 100644
index 0000000000..3701c791cc
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk.lng
@@ -0,0 +1,4 @@
+<?php
+$wb['welcome_user_txt'] = 'Velkommen %s';
+$wb['available_modules_txt'] = 'Tilgængelige Moduler';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_customer.lng b/interface/web/dashboard/lib/lang/dk_dashlet_customer.lng
new file mode 100644
index 0000000000..4fe6cb0ef7
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_customer.lng
@@ -0,0 +1,4 @@
+<?php
+$wb['customerdata_txt'] = 'My Data';
+$wb['edit_txt'] = 'Edit';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/dk_dashlet_databasequota.lng
new file mode 100644
index 0000000000..bd2402dbf6
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_databasequota.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['databasequota_txt'] = 'Database Quota';
+$wb['database_txt'] = 'Database Name';
+$wb['used_txt'] = 'Used Space';
+$wb['quota_txt'] = 'Quota';
+$wb['no_database_accounts_txt'] = 'No databases found.';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/dk_dashlet_invoice_client_settings.lng
new file mode 100644
index 0000000000..8cae3dfb4f
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_invoice_client_settings.lng
@@ -0,0 +1,4 @@
+<?php
+$wb['invoice_client_settings_txt'] = 'Invoice Client Settings';
+$wb['edit_txt'] = 'Edit';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng
new file mode 100644
index 0000000000..b085406e1d
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng
@@ -0,0 +1,18 @@
+<?php
+$wb['invoices_txt'] = "Invoices";
+$wb['invoice_no_txt'] = "Invoice No.";
+$wb['amount_txt'] = "Amount";
+$wb['date_txt'] = "Date";
+$wb['invoice_status_txt'] = "Status";
+$wb['no_invoices_txt'] = "No Invoices available.";
+$wb['paid_txt'] = "Paid";
+$wb['unpaid_txt'] = "Unpaid";
+$wb['paynow_txt'] = "pay now";
+$wb['proforma_txt'] = "Proforma";
+$wb['refunded_txt'] = "Refunded";
+$wb['not_refunded_txt'] = "Not refunded";
+$wb['invoice_type_invoice_txt'] = "Invoice";
+$wb['invoice_type_proforma_txt'] = "Proforma";
+$wb['invoice_type_refund_txt'] = "Refund";
+$wb['invoice_type_reminder_txt'] = "Reminder";
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_limits.lng b/interface/web/dashboard/lib/lang/dk_dashlet_limits.lng
new file mode 100644
index 0000000000..546245cdfe
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_limits.lng
@@ -0,0 +1,31 @@
+<?php
+$wb['limits_txt'] = 'Konto begrænsninger';
+$wb['of_txt'] = 'af';
+$wb['unlimited_txt'] = 'Ubegrænset';
+$wb['limit_maildomain_txt'] = 'Antal af e-mail domæner';
+$wb['limit_mailmailinglist_txt'] = 'Antal af mail-lister';
+$wb['limit_mailbox_txt'] = 'Antal af mail-bokse';
+$wb['limit_mailalias_txt'] = 'Antal af e-mail aliaser';
+$wb['limit_mailaliasdomain_txt'] = 'Antal af domæne aliaser';
+$wb['limit_mailforward_txt'] = 'Antal af e-mail forwarders';
+$wb['limit_mailcatchall_txt'] = 'Antal af e-mail catchall konti';
+$wb['limit_mailrouting_txt'] = 'Antal af e-mail routes';
+$wb['limit_mailfilter_txt'] = 'Antal af e-mail filtere';
+$wb['limit_fetchmail_txt'] = 'Antal af fetchmail konti';
+$wb['limit_spamfilter_wblist_txt'] = 'Antal af spamfilter white/blacklist filtere';
+$wb['limit_spamfilter_user_txt'] = 'Antal af spamfilter brugere';
+$wb['limit_spamfilter_policy_txt'] = 'Antal af spamfilter politikker';
+$wb['limit_cron_txt'] = 'Antal af cron jobs';
+$wb['limit_web_domain_txt'] = 'Antal af web domæner';
+$wb['limit_web_aliasdomain_txt'] = 'Antal af web alias-domæner';
+$wb['limit_web_subdomain_txt'] = 'Antal af web sub-domæner';
+$wb['limit_ftp_user_txt'] = 'Antal af FTP brugere';
+$wb['limit_dns_zone_txt'] = 'Antal af DNS zoner';
+$wb['limit_dns_slave_zone_txt'] = 'Antal af DNS slave zoner';
+$wb['limit_dns_record_txt'] = 'Antal DNS poster';
+$wb['limit_shell_user_txt'] = 'Antal af Shell brugere';
+$wb['limit_webdav_user_txt'] = 'Antal af Webdav brugere';
+$wb['limit_client_txt'] = 'Antal af Kunder';
+$wb['limit_database_txt'] = 'Antal af Databaser';
+$wb['limit_domain_txt'] = 'Antal af Domæner';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/dk_dashlet_mailquota.lng
new file mode 100644
index 0000000000..6ea0825bde
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_mailquota.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['mailquota_txt'] = 'Postkasse Kvote';
+$wb['email_txt'] = 'E-mail Adresse';
+$wb['name_txt'] = 'Navn';
+$wb['used_txt'] = 'Brugt Plads';
+$wb['quota_txt'] = 'Kvote';
+$wb['no_email_accounts_txt'] = 'Ingen e-mail konti fundet.';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_modules.lng b/interface/web/dashboard/lib/lang/dk_dashlet_modules.lng
new file mode 100644
index 0000000000..c3587f4f58
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_modules.lng
@@ -0,0 +1,4 @@
+<?php
+$wb['available_modules_txt'] = 'Tilgængelige Moduler';
+$wb['go_to_txt'] = 'Go to';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_products.lng b/interface/web/dashboard/lib/lang/dk_dashlet_products.lng
new file mode 100644
index 0000000000..a69b61d2fb
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_products.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['products_txt'] = 'My Products';
+$wb['name_txt'] = 'Name';
+$wb['price_txt'] = 'Price';
+$wb['next_payment_date_txt'] = 'Next Invoice';
+$wb['no_products_txt'] = 'No products found.';
+$wb['edit_txt'] = 'Edit';
+$wb['cancellation_date_txt'] = 'Cancelled by';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_quota.lng b/interface/web/dashboard/lib/lang/dk_dashlet_quota.lng
new file mode 100644
index 0000000000..4dcea26cf2
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_quota.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['quota_txt'] = 'Webside Harddisk Kvote';
+$wb['domain_txt'] = 'Domæne/Webside';
+$wb['used_txt'] = 'Brugt plads';
+$wb['hard_txt'] = 'Hard limit';
+$wb['soft_txt'] = 'Soft limit';
+$wb['no_sites_txt'] = 'Ingen web sider fundet.';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_shop.lng b/interface/web/dashboard/lib/lang/dk_dashlet_shop.lng
new file mode 100644
index 0000000000..1e0b5361d7
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_shop.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['shop_txt'] = 'Order';
+$wb['name_txt'] = 'Name';
+$wb['price_txt'] = 'Price';
+$wb['setup_fee_txt'] = 'Setup Fee';
+$wb['no_products_txt'] = 'No products found.';
+$wb['order_txt'] = 'Order';
+?>
diff --git a/interface/web/dns/lib/lang/dk.lng b/interface/web/dns/lib/lang/dk.lng
new file mode 100644
index 0000000000..4f3fd7c2e5
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk.lng
@@ -0,0 +1,22 @@
+<?php
+$wb['DNS'] = 'DNS';
+$wb['Zones'] = 'Zoner';
+$wb['DNS A'] = 'DNS A';
+$wb['DNS ALIAS'] = 'DNS ALIAS';
+$wb['DNS CNAME'] = 'DNS CNAME';
+$wb['DNS hinfo'] = 'DNS hinfo';
+$wb['DNS mx'] = 'DNS mx';
+$wb['DNS ns'] = 'DNS ns';
+$wb['DNS ptr'] = 'DNS ptr';
+$wb['DNS RP'] = 'DNS RP';
+$wb['DNS Zone'] = 'DNS Zone';
+$wb['Records'] = 'Poster';
+$wb['DNS SRV'] = 'DNS SRV';
+$wb['DNS TXT Record'] = 'DNS TXT Post';
+$wb['DNS TXT'] = 'DNS TXT';
+$wb['DNS Wizard'] = 'DNS-Guide';
+$wb['Add DNS Zone'] = 'Tilføj DNS-Zone';
+$wb['Templates'] = 'Skabeloner';
+$wb['Secondary Zones'] = 'Sekundær DNS-Zoner';
+$wb['Import Zone File'] = 'Zone-Fil Import';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_a.lng b/interface/web/dns/lib/lang/dk_dns_a.lng
new file mode 100644
index 0000000000..b10dae13ac
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_a.lng
@@ -0,0 +1,17 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'IP-Adresse';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'IP-Adressen er tom';
+$wb['data_error_duplicate'] = 'Dupliker A-Record eller CNAME-Record';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+$wb['ip_error_wrong'] = 'IP-Address format invalid';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_a_list.lng b/interface/web/dns/lib/lang/dk_dns_a_list.lng
new file mode 100644
index 0000000000..d69b9e27db
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_a_list.lng
@@ -0,0 +1,15 @@
+<?php
+$wb['list_head_txt'] = 'A-Record';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Navn';
+$wb['data_txt'] = 'Data';
+$wb['aux_txt'] = 'Prioritet';
+$wb['ttl_txt'] = 'TTL';
+$wb['type_txt'] = 'Type';
+$wb['add_new_record_txt'] = 'Tilføj ny DNS A-Record';
+$wb['page_txt'] = 'Side';
+$wb['page_of_txt'] = 'af';
+$wb['delete_confirmation'] = 'Vil du virkelig slette denne post?';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_aaaa.lng b/interface/web/dns/lib/lang/dk_dns_aaaa.lng
new file mode 100644
index 0000000000..664d63b41c
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_aaaa.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'IPv6-Adresse';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'IP-Adressen er tom';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+$wb['ip_error_wrong'] = 'IP-Address format invalid';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_alias.lng b/interface/web/dns/lib/lang/dk_dns_alias.lng
new file mode 100644
index 0000000000..ca21de01ec
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_alias.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Mål Værtsnavn';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har forkert format.';
+$wb['data_error_empty'] = 'Mål-værtsnavn er tom';
+$wb['data_error_regex'] = 'Mål-værtsnavn format er ugyldig';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_cname.lng b/interface/web/dns/lib/lang/dk_dns_cname.lng
new file mode 100644
index 0000000000..1957b5f82c
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_cname.lng
@@ -0,0 +1,17 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Mål Værtsnavn';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'Mål-værtsnavn er tom';
+$wb['data_error_regex'] = 'Mål-værtsnavn format er ugyldigt';
+$wb['data_error_duplicate'] = 'Duplikere A-Record eller CNAME-Record';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_dkim.lng b/interface/web/dns/lib/lang/dk_dns_dkim.lng
new file mode 100644
index 0000000000..b89f024ed2
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_dkim.lng
@@ -0,0 +1,11 @@
+<?php
+$wb["public_key_txt"] = 'Public-Key';
+$wb["ttl_txt"] = 'TTL';
+$wb["active_txt"] = 'Active';
+$wb["record_exists_txt"] = 'DNS-Record already exists';
+$wb["dkim_disabled_txt"] = 'DKIM disabled for this mail-domain';
+$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
+$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['selector_txt'] = 'DKIM-Selector';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_dmarc.lng b/interface/web/dns/lib/lang/dk_dns_dmarc.lng
new file mode 100644
index 0000000000..b00949bc98
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_dmarc.lng
@@ -0,0 +1,50 @@
+<?php
+$wb['data_txt'] = 'DMARC Record';
+$wb['domain_txt'] = 'Domain';
+$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
+$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
+$wb['dmarc_policy_none_txt'] = 'none';
+$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
+$wb['dmarc_policy_reject_txt'] = 'reject';
+$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
+$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
+$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
+$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
+$wb['dmarc_fo_txt'] = 'Forensic reporting options';
+$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
+$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
+$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
+$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
+$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_r_txt'] = 'relaxed';
+$wb['dmarc_adkim_s_txt'] = 'strict';
+$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
+$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_r_txt'] = 'relaxed';
+$wb['dmarc_aspf_s_txt'] = 'strict';
+$wb['dmarc_rf_txt'] = 'Report Format';
+$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
+$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
+$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
+$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
+$wb['dmarc_ri_txt'] = 'Reporting Interval';
+$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 represents 1 day).';
+$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
+$wb['dmarc_sp_same_txt'] = 'same as domain';
+$wb['dmarc_sp_none_txt'] = 'none';
+$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
+$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
+$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
+$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
+$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
+$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
+$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_ds.lng b/interface/web/dns/lib/lang/dk_dns_ds.lng
new file mode 100644
index 0000000000..3f9b447811
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_ds.lng
@@ -0,0 +1,18 @@
+<?php
+$wb["server_id_txt"] = 'Server';
+$wb["zone_txt"] = 'Zone';
+$wb["name_txt"] = 'Hostname';
+$wb["type_txt"] = 'type';
+$wb["data_txt"] = 'Data';
+$wb["ttl_txt"] = 'TTL';
+$wb["active_txt"] = 'Active';
+$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
+$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
+$wb["name_error_empty"] = 'The hostname is empty.';
+$wb["name_error_regex"] = 'The hostname has the wrong format.';
+$wb["data_error_empty"] = 'Text empty';
+$wb["data_error_regex"] = 'Text format invalid';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['invalid_type_ds'] = 'DS-Record has a wrong format.';
+
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_hinfo.lng b/interface/web/dns/lib/lang/dk_dns_hinfo.lng
new file mode 100644
index 0000000000..6880baf669
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_hinfo.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Værts Information';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'Værts information er tom';
+$wb['data_error_regex'] = 'Værts Information format er ugyldigt';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_import.lng b/interface/web/dns/lib/lang/dk_dns_import.lng
new file mode 100644
index 0000000000..9edbe20009
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_import.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['zone_file_import_txt'] = 'Zone Fil Import';
+$wb['server_id_txt'] = 'Server';
+$wb['client_txt'] = 'Kunde';
+$wb['btn_save_txt'] = 'Importer Zone fil';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['domain_txt'] = 'Domæne';
+$wb['zone_file_successfully_imported_txt'] = 'Zone filen er med succes blevet importeret!';
+$wb['error_no_valid_zone_file_txt'] = 'Dette er tilsyneladende ikke en gyldig zone fil!';
+$wb['zonefile_to_import_txt'] = 'Zone Fil';
+$wb['domain_field_desc_txt'] = 'Kan være tomt, hvis domænenavnet er i filnavnet eller indholdet af zone-filen.';
+$wb['title'] = 'Importer Zone Filer';
+$wb['no_file_uploaded_error'] = 'Ingen zone-fil overført';
+$wb['error_no_server_id'] = 'No server provided.';
+$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_loc.lng b/interface/web/dns/lib/lang/dk_dns_loc.lng
new file mode 100644
index 0000000000..a2e3322bb6
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_loc.lng
@@ -0,0 +1,16 @@
+<?php
+$wb["server_id_txt"] = 'Server';
+$wb["zone_txt"] = 'Zone';
+$wb["name_txt"] = 'Hostname';
+$wb["type_txt"] = 'type';
+$wb["data_txt"] = 'Data';
+$wb["ttl_txt"] = 'TTL';
+$wb["active_txt"] = 'Active';
+$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
+$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
+$wb["name_error_empty"] = 'The hostname is empty.';
+$wb["name_error_regex"] = 'The hostname has the wrong format.';
+$wb["data_error_empty"] = 'Text empty';
+$wb["data_error_regex"] = 'Text format invalid';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_mx.lng b/interface/web/dns/lib/lang/dk_dns_mx.lng
new file mode 100644
index 0000000000..3c3009a999
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_mx.lng
@@ -0,0 +1,18 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Mailserver værtsnavn';
+$wb['aux_txt'] = 'Prioritet';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'Mailserver værtsnavn er tom';
+$wb['data_error_regex'] = 'Mailserver værtsnavn format er ugyldigt';
+$wb['duplicate_mx_record_txt'] = 'Dupliker MX post.';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_ns.lng b/interface/web/dns/lib/lang/dk_dns_ns.lng
new file mode 100644
index 0000000000..26f04c7391
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_ns.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Zone';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Navneserver Værtsnavn';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Zonen er tom.';
+$wb['name_error_regex'] = 'Zonen har forkert format.';
+$wb['data_error_empty'] = 'Navneserver er tom';
+$wb['data_error_regex'] = 'Navneserver format er ugyldigt';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_ptr.lng b/interface/web/dns/lib/lang/dk_dns_ptr.lng
new file mode 100644
index 0000000000..b87513cee9
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_ptr.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Navn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Canonical Værtsnavn';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Navnet er tomt.';
+$wb['name_error_regex'] = 'Navnet har et forkert format.';
+$wb['data_error_empty'] = 'Canonical værtsnavn er tomt';
+$wb['data_error_regex'] = 'Canonical hostname format er ugyldigt';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_rp.lng b/interface/web/dns/lib/lang/dk_dns_rp.lng
new file mode 100644
index 0000000000..1d1aca602e
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_rp.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Ansvarlig Person';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'Ansvarlig person feltet, er tomt';
+$wb['data_error_regex'] = 'Ansvarlig person felt, formatet er ugyldigt';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_slave.lng b/interface/web/dns/lib/lang/dk_dns_slave.lng
new file mode 100644
index 0000000000..1414a94e9e
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_slave.lng
@@ -0,0 +1,17 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['origin_txt'] = 'DNS-Zone';
+$wb['secondary_zone_txt'] = 'Sekundære DNS Zone';
+$wb['ns_txt'] = 'NS (IP-adresse)';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_slave_zone_txt'] = 'Max. antal af sekundære DNS zoner for din konto er nået.';
+$wb['client_txt'] = 'Kunde';
+$wb['xfer_txt'] = 'Tillad zone overførsler til <br />disse IP-adresser (kommasepareret liste)';
+$wb['server_id_error_empty'] = 'Ingen server er valgt';
+$wb['origin_error_empty'] = 'Zone er tomt.';
+$wb['origin_error_unique'] = 'Der findes allerede en post for denne zone.';
+$wb['origin_error_regex'] = 'Zone har et ugyldigt format.';
+$wb['ns_error_regex'] = 'NS har et ugyldigt format.';
+$wb['eg_domain_tld'] = 'f.eks. domæne.tld.';
+$wb['ipv4_form_txt'] = 'IPv4 form - f.eks. 1.2.3.4';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/dk_dns_slave_admin_list.lng
new file mode 100644
index 0000000000..626961ceec
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_slave_admin_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb['list_head_txt'] = 'Sekundær DNS-Zoner';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['origin_txt'] = 'Zone';
+$wb['ns_txt'] = 'NS';
+$wb['add_new_record_txt'] = 'Tilføj ny Sekundær DNS-Zone';
+$wb['eg_domain_tld'] = 'f.eks. domæne.tld.';
+$wb['sys_groupid_txt'] = 'Kunde';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_slave_list.lng b/interface/web/dns/lib/lang/dk_dns_slave_list.lng
new file mode 100644
index 0000000000..734604d169
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_slave_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb["list_head_txt"] = 'Secondary DNS-Zones';
+$wb["active_txt"] = 'Active';
+$wb["server_id_txt"] = 'Server';
+$wb["origin_txt"] = 'Zone';
+$wb["ns_txt"] = 'NS';
+$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone';
+$wb['eg_domain_tld'] = 'e.g. domain.tld.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_soa.lng b/interface/web/dns/lib/lang/dk_dns_soa.lng
new file mode 100644
index 0000000000..78d8441900
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_soa.lng
@@ -0,0 +1,43 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['origin_txt'] = 'Zone (SOA)';
+$wb['ns_txt'] = 'NS';
+$wb['mbox_txt'] = 'E-mail';
+$wb['serial_txt'] = 'Serial';
+$wb['refresh_txt'] = 'Opfriske';
+$wb['retry_txt'] = 'Prøv igen';
+$wb['expire_txt'] = 'Udløber';
+$wb['minimum_txt'] = 'Minimum';
+$wb['ttl_txt'] = 'TTL';
+$wb['xfer_txt'] = 'Tillad zone overførsler til <br />disse IP-adresser (kommasepareret liste)';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_zone_txt'] = 'Max. antal af DNS zoner for din konto er nået.';
+$wb['client_txt'] = 'Kunde';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['server_id_error_empty'] = 'Ingen server er valgt';
+$wb['origin_error_empty'] = 'Zone er tom.';
+$wb['origin_error_unique'] = 'Der findes allerede en post for denne zone.';
+$wb['origin_error_regex'] = 'Zone har et ugyldigt format.';
+$wb['ns_error_regex'] = 'NS har et ugyldigt format.';
+$wb['mbox_error_empty'] = 'E-mail er tomt.';
+$wb['mbox_error_regex'] = 'E-mail format er ugyldigt.';
+$wb['also_notify_txt'] = 'Informer også';
+$wb['also_notify_error_regex'] = 'Informer også: Venligst brug en IP adresse.';
+$wb['xfer_error_regex'] = 'Xfer: Venligst brug en eller flere IP adresser, adskilt af komma, eller brug nøgleordet: any';
+$wb['update_acl_txt'] = 'Opdater ACL';
+$wb['seconds_txt'] = 'Sekunder';
+$wb['eg_domain_tld'] = 'f.eks. domæne.tld';
+$wb['eg_ns1_domain_tld'] = 'f.eks. ns1.domain.tld';
+$wb['eg_webmaster_domain_tld'] = 'f.eks. webmaster@domain.tld';
+$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'Domænet kan ikke ændres. Spørg din administrator, hvis du ønsker at ændre domænenavnet.';
+$wb['refresh_range_error'] = 'Min. Opfriske tid er 60 sekunder.';
+$wb['retry_range_error'] = 'Min. Prøv igen, tid er 60 sekunder.';
+$wb['expire_range_error'] = 'Min. Udløber tid er 60 sekunder.';
+$wb['minimum_range_error'] = 'Min. Minimum tid er 60 sekunder.';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+$wb['dnssec_info_txt'] = 'DNSSEC DS-Data for registry';
+$wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
+$wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
+$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
+$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng
new file mode 100644
index 0000000000..32728405bb
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_soa_admin_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['list_head_txt'] = 'DNS-Zoner';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['origin_txt'] = 'Zone';
+$wb['ns_txt'] = 'NS';
+$wb['mbox_txt'] = 'E-mail';
+$wb['add_new_record_wizard_txt'] = 'Tilføj ny DNS Zone med Guide';
+$wb['add_new_record_txt'] = 'Tilføj ny DNS Zone manuelt';
+$wb['sys_groupid_txt'] = 'Kunde';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_soa_list.lng b/interface/web/dns/lib/lang/dk_dns_soa_list.lng
new file mode 100644
index 0000000000..d1f906e884
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_soa_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['list_head_txt'] = 'DNS-Zoner';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['origin_txt'] = 'Zone';
+$wb['ns_txt'] = 'NS';
+$wb['mbox_txt'] = 'E-mail';
+$wb['add_new_record_wizard_txt'] = 'Tilføj ny DNS Zone med Guide';
+$wb['add_new_record_txt'] = 'Tilføj ny DNS Zone manuelt';
+$wb['import_zone_file_txt'] = 'Import Zone File';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_spf.lng b/interface/web/dns/lib/lang/dk_dns_spf.lng
new file mode 100644
index 0000000000..7ac24dd227
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_spf.lng
@@ -0,0 +1,28 @@
+
+
+<?php
+$wb['data_txt'] = 'SPF-Record';
+$wb['spf_mechanism_txt'] = 'SPF Mechanism';
+$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders';
+$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders';
+$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email';
+$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing';
+$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain';
+$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain';
+$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain';
+$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)';
+$wb['spf_invalid_ip_txt'] = 'Invalid IP-address';
+$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain';
+$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)';
+$wb['spf_invalid_hostname_txt'] = 'Invalid hostname';
+$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain';
+$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)';
+$wb['spf_invalid_domain_txt'] = 'Invalid domainname';
+$wb["ttl_txt"] = 'TTL';
+$wb["active_txt"] = 'Active';
+$wb["record_exists_txt"] = 'DNS-Record already exists';
+$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
+$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
+
diff --git a/interface/web/dns/lib/lang/dk_dns_srv.lng b/interface/web/dns/lib/lang/dk_dns_srv.lng
new file mode 100644
index 0000000000..4612d6ee99
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_srv.lng
@@ -0,0 +1,20 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['target_txt'] = 'MÃ¥l';
+$wb['weight_txt'] = 'Vægt';
+$wb['port_txt'] = 'Port';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['aux_txt'] = 'Prioritet';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'Server post er tom';
+$wb['data_error_regex'] = 'Server post format er ugyldigt';
+$wb['srv_error_regex'] = 'Ugyldigt server post format. Server post skal indeholde 3 tekststrenge adskilt af mellemrum.';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_template.lng b/interface/web/dns/lib/lang/dk_dns_template.lng
new file mode 100644
index 0000000000..c9e8e7b28b
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_template.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['name_txt'] = 'Navn';
+$wb['fields_txt'] = 'Felter';
+$wb['template_txt'] = 'Skabelon';
+$wb['visible_txt'] = 'Synlig';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_template_list.lng b/interface/web/dns/lib/lang/dk_dns_template_list.lng
new file mode 100644
index 0000000000..d2bf664005
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_template_list.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['list_head_txt'] = 'DNS-Guide Skabelon';
+$wb['visible_txt'] = 'Synlig';
+$wb['name_txt'] = 'Navn';
+$wb['add_new_record_txt'] = 'Tilføj ny post';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_tlsa.lng b/interface/web/dns/lib/lang/dk_dns_tlsa.lng
new file mode 100644
index 0000000000..dcfb3bfa33
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_tlsa.lng
@@ -0,0 +1,16 @@
+<?php
+$wb["server_id_txt"] = 'Server';
+$wb["zone_txt"] = 'Zone';
+$wb['name_txt'] = 'Service-Descriptor';
+$wb["type_txt"] = 'type';
+$wb["data_txt"] = 'TLSA-Data';
+$wb["ttl_txt"] = 'TTL';
+$wb["active_txt"] = 'Active';
+$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
+$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
+$wb["name_error_empty"] = 'The hostname is empty.';
+$wb["name_error_regex"] = 'The hostname has the wrong format. Correct: _&lt;port&gt;._(tcp|udp).&lt;hostname&gt;';
+$wb["data_error_empty"] = 'TLSA-Data empty';
+$wb["data_error_regex"] = 'TLSA dataformat is wrong. Correct: n n n HASH';
+$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+?>
\ No newline at end of file
diff --git a/interface/web/dns/lib/lang/dk_dns_txt.lng b/interface/web/dns/lib/lang/dk_dns_txt.lng
new file mode 100644
index 0000000000..fcb7d309fc
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_txt.lng
@@ -0,0 +1,19 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Værtsnavn';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Tekst';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_dns_record_txt'] = 'Max. antal DNS-poster for din konto er nået.';
+$wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne DNS zone.';
+$wb['name_error_empty'] = 'Værtsnavnet er tomt.';
+$wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
+$wb['data_error_empty'] = 'Teksten er tom';
+$wb['data_error_regex'] = 'Tekst format er ugyldigt';
+$wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
+$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button';
+$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button';
+$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.';
+?>
diff --git a/interface/web/dns/lib/lang/dk_dns_wizard.lng b/interface/web/dns/lib/lang/dk_dns_wizard.lng
new file mode 100644
index 0000000000..0448db2d8c
--- /dev/null
+++ b/interface/web/dns/lib/lang/dk_dns_wizard.lng
@@ -0,0 +1,45 @@
+<?php
+$wb['list_head_txt'] = 'DNS Zone Guide';
+$wb['list_desc_txt'] = 'Opret en DNS zone via en guide';
+$wb['dns_zone_txt'] = 'DNS Zone';
+$wb['template_id_txt'] = 'Skabelon';
+$wb['server_id_txt'] = 'Server';
+$wb['client_txt'] = 'Kunde';
+$wb['btn_save_txt'] = 'Create DNS-Record';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['domain_txt'] = 'Domæne';
+$wb['email_txt'] = 'E-mail';
+$wb['ns1_txt'] = 'NS 1';
+$wb['ns2_txt'] = 'NS 2';
+$wb['ip_txt'] = 'IP Adresse';
+$wb['error_origin_empty'] = 'Origin er tom.';
+$wb['error_ns_empty'] = 'NS er tom.';
+$wb['error_mbox_empty'] = 'Mbox er tom.';
+$wb['error_refresh_empty'] = 'Refresh tomt.';
+$wb['error_retry_empty'] = 'Prøv igen, er tom.';
+$wb['error_expire_empty'] = 'Udløber tomt.';
+$wb['error_minimum_empty'] = 'Minimum er tom.';
+$wb['error_ttl_empty'] = 'TTL er tom.';
+$wb['error_domain_empty'] = 'Domæne er tom';
+$wb['error_ip_empty'] = 'IP er tom.';
+$wb['error_ns1_empty'] = 'NS1 er tom.';
+$wb['error_ns2_empty'] = 'NS2 er tom.';
+$wb['error_email_empty'] = 'E-mail er tom.';
+$wb['error_domain_regex'] = 'Domæne indeholder ugyldigt karaktere.';
+$wb['error_ns1_regex'] = 'NS1 indeholder ugyldigt karaktere.';
+$wb['error_ns2_regex'] = 'NS2 indeholder ugyldigt karaktere.';
+$wb['error_email_regex'] = 'E-mail indeholder ikke en gyldig e-mail adresse.';
+$wb['globalsearch_resultslimit_of_txt'] = 'af';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultater';
+$wb['globalsearch_noresults_text_txt'] = 'Ingen resultater.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultater';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Søg';
+$wb['globalsearch_suggestions_text_txt'] = 'Forslag';
+$wb['dkim_txt'] = 'DKIM';
+$wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
+$wb['ipv6_txt'] = 'IPv6 Address';
+$wb['error_ipv6_empty'] = 'IPv6 empty.';
+$wb['error_no_server_id'] = 'No server provided.';
+$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
+$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
+?>
diff --git a/interface/web/help/lib/lang/dk.lng b/interface/web/help/lib/lang/dk.lng
new file mode 100644
index 0000000000..0bb450edbc
--- /dev/null
+++ b/interface/web/help/lib/lang/dk.lng
@@ -0,0 +1,14 @@
+<?php
+$wb['Support Message'] = 'Support Meddelelse';
+$wb['Message'] = 'Meddelelse';
+$wb['Send message'] = 'Send meddelelse';
+$wb['View messages'] = 'Se meddelelser';
+$wb['Support'] = 'Support';
+$wb['About ISPConfig'] = 'Om ISPConfig';
+$wb['Version'] = 'Version';
+$wb['Frequently Asked Questions'] = 'Ofte Stillede Spørgsmål';
+$wb['FAQ Sections'] = 'OSS Sektioner';
+$wb['Manage Sections'] = 'Administrer Sektioner';
+$wb['Add a Question & Answer Pair'] = 'Tilføj et Spørgsmål & Svar Par';
+$wb['Manage Questions'] = 'Administrer Spørgsmål';
+?>
diff --git a/interface/web/help/lib/lang/dk_faq_form.lng b/interface/web/help/lib/lang/dk_faq_form.lng
new file mode 100644
index 0000000000..c084161d21
--- /dev/null
+++ b/interface/web/help/lib/lang/dk_faq_form.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['faq_faq_txt'] = 'Ofte Stillede Spørgsmål';
+$wb['faq_question_txt'] = 'Spørgsmål';
+$wb['faq_answer_txt'] = 'Svar';
+$wb['faq_section_txt'] = 'Sektion';
+?>
diff --git a/interface/web/help/lib/lang/dk_faq_manage_questions_list.lng b/interface/web/help/lib/lang/dk_faq_manage_questions_list.lng
new file mode 100644
index 0000000000..90db2646bb
--- /dev/null
+++ b/interface/web/help/lib/lang/dk_faq_manage_questions_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['faq_question_txt'] = 'Spørgsmål';
+$wb['faq_section_name_txt'] = 'Sektion';
+$wb['faq_delete_txt'] = 'Slet';
+$wb['faq_edit_txt'] = 'Rediger';
+$wb['faq_sections_txt'] = 'Sektion';
+$wb['faq_faq_questions_txt'] = 'Ofte Stillede Spørgsmål';
+$wb['faq_new_question_txt'] = 'Tilføj et nyt spørgsmål & svar par';
+?>
diff --git a/interface/web/help/lib/lang/dk_faq_sections_form.lng b/interface/web/help/lib/lang/dk_faq_sections_form.lng
new file mode 100644
index 0000000000..3c16b812fe
--- /dev/null
+++ b/interface/web/help/lib/lang/dk_faq_sections_form.lng
@@ -0,0 +1,3 @@
+<?php
+$wb['faq_section_name_txt'] = 'Sektions Navn';
+?>
diff --git a/interface/web/help/lib/lang/dk_help_faq_list.lng b/interface/web/help/lib/lang/dk_help_faq_list.lng
new file mode 100644
index 0000000000..6a2977961e
--- /dev/null
+++ b/interface/web/help/lib/lang/dk_help_faq_list.lng
@@ -0,0 +1,3 @@
+<?php
+$wb['edit_txt'] = 'Rediger';
+?>
diff --git a/interface/web/help/lib/lang/dk_help_faq_sections_list.lng b/interface/web/help/lib/lang/dk_help_faq_sections_list.lng
new file mode 100644
index 0000000000..a32684269d
--- /dev/null
+++ b/interface/web/help/lib/lang/dk_help_faq_sections_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['faq_section_name_txt'] = 'Sektion Navn';
+$wb['faq_delete_txt'] = 'Slet';
+$wb['faq_edit_txt'] = 'Rediger';
+$wb['faq_sections_txt'] = 'Sektioner';
+$wb['faq_faq_sections_txt'] = 'OSS Sektioner';
+$wb['faq_new_section_txt'] = 'Tilføj et nyt afsnit';
+?>
diff --git a/interface/web/help/lib/lang/dk_support_message.lng b/interface/web/help/lib/lang/dk_support_message.lng
new file mode 100644
index 0000000000..0db8cf20cf
--- /dev/null
+++ b/interface/web/help/lib/lang/dk_support_message.lng
@@ -0,0 +1,15 @@
+<?php
+$wb['recipient_id_txt'] = 'Modtager ID';
+$wb['sender_id_txt'] = 'Afsender ID';
+$wb['subject_txt'] = 'Emne';
+$wb['message_txt'] = 'Meddelelse';
+$wb['tstamp_txt'] = 'Tidsstempel';
+$wb['reply_txt'] = 'Svar';
+$wb['date_txt'] = 'Dato';
+$wb['support_request_subject_txt'] = 'Support Anmodning';
+$wb['support_request_txt'] = 'Du har fået en anmodning om support. Venligst, besvare ikke denne e-mail, men behandle support anmodningen fra ISPConfig Kontrol Panelet.';
+$wb['answer_to_support_request_txt'] = 'Du har fået et svar på din support anmodning. Venligst, besvare ikke denne e-mail, men behandle support anmodningen fra ISPConfig Kontrol Panelet.';
+$wb['answer_to_support_request_sent_txt'] = 'Dit svar på support anmodningen er blevet sendt. Venligst, besvare ikke denne e-mail.';
+$wb['support_request_sent_txt'] = 'Din support anmodning er blevet sendt. Venligst, besvare ikke denne e-mail.';
+$wb['recipient_or_sender_email_address_not_valid_txt'] = 'Meddelelsen kunne ikke sendes, fordi modtageren og/eller afsenderens e-mail adresse ikke er gyldig.';
+?>
diff --git a/interface/web/help/lib/lang/dk_support_message_list.lng b/interface/web/help/lib/lang/dk_support_message_list.lng
new file mode 100644
index 0000000000..69a1e1acf8
--- /dev/null
+++ b/interface/web/help/lib/lang/dk_support_message_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Support Meddelelser';
+$wb['sender_id_txt'] = 'Afsender';
+$wb['subject_txt'] = 'Emne';
+$wb['add_new_record_txt'] = 'Opret ny support meddelelse';
+$wb['date_txt'] = 'Dato';
+?>
diff --git a/interface/web/login/lib/lang/dk.lng b/interface/web/login/lib/lang/dk.lng
new file mode 100644
index 0000000000..48e7885ec5
--- /dev/null
+++ b/interface/web/login/lib/lang/dk.lng
@@ -0,0 +1,34 @@
+<?php
+$wb['error_user_password_empty'] = 'Brugernavn eller Adgangskode er tomt.';
+$wb['error_user_password_incorrect'] = 'Brugernavn eller Adgangskode er forkert.';
+$wb['error_user_blocked'] = 'Brugeren er blokeret.';
+$wb['error_user_too_many_logins'] = 'Alt for mange forkerte Log Ind forsøg, Prøv venligst igen efter 15 minutter';
+$wb['pass_reset_txt'] = 'En ny adgangskode vil blive genereret og sendt til din e-mail adresse Hvis e-mail adressen indtastet nedenfor matcher email-adressen i dine klientindstillinger.';
+$wb['pw_reset'] = 'Adgangskoden er blevet nulstillet og sendt til din e-mail adresse.';
+$wb['pw_error'] = 'Brugernavn eller e-mail adresse matcher ikke.';
+$wb['pw_error_noinput'] = 'Indtast e-mail adresse og brugernavn.';
+$wb['pw_reset_mail_msg'] = 'Adgangskoden til din ISPConfig 3 kontrol panel konto er blevet nulstillet. Den nye adgangskode er: ';
+$wb['pw_reset_mail_title'] = 'ISPConfig 3 Kontrol panel adgangskode er blevet nulstillet.';
+$wb['user_regex_error'] = 'Brugernavn indeholder Ikke-tilladte karakterer eller er længer end 64 karaktere.';
+$wb['pw_error_length'] = 'Adgangskode længden er > 64 karaktere.';
+$wb['email_error'] = 'E-mail indeholder Ikke-tilladte karakterer eller har et ugyldigt format.';
+$wb['login_txt'] = 'Log ind';
+$wb['username_txt'] = 'Brugernavn';
+$wb['password_txt'] = 'Adgangskode';
+$wb['login_button_txt'] = 'Log ind';
+$wb['pw_lost_txt'] = 'Adgangskode mistet';
+$wb['pw_reset_txt'] = 'Adgangskode nulstille';
+$wb['pw_button_txt'] = 'Gensend adgangskode';
+$wb['email_txt'] = 'E-mail';
+$wb['back_txt'] = 'Tilbage';
+$wb['error_maintenance_mode'] = 'Denne ISPConfig installation er i øjeblikket under vedligeholdelse. Vi bør være tilbage snarest. Tak for din tålmodighed.';
+$wb['theme_not_compatible'] = 'Den valgte tema er ikke kompatibel med den aktuelle ISPConfig version. Kontroller for en ny version af temaet.<br />Standard tema er blevet aktiveret automatisk.';
+$wb['stay_logged_in_txt'] = 'Forbliv logget ind';
+$wb['pw_reset_act'] = 'You have been sent an activation link. Please visit the link to confirm your password request.';
+$wb['pw_reset_act_mail_title'] = 'Confirm ISPConfig 3 Control panel password reset';
+$wb['pw_reset_act_mail_msg'] = 'Please confirm that your want to reset your ISPConfig 3 control panel account password by visiting the following activation link: ';
+$wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.';
+$wb['lost_password_function_wait_txt'] = 'You cannot request a new password, yet. Please wait a few minutes.';
+$wb['lost_password_function_expired_txt'] = 'This activation link has expired. Please request a new one.';
+$wb['lost_password_function_denied_txt'] = 'This activation link is not valid.';
+?>
diff --git a/interface/web/login/lib/lang/dk_login_as.lng b/interface/web/login/lib/lang/dk_login_as.lng
new file mode 100644
index 0000000000..2897dea060
--- /dev/null
+++ b/interface/web/login/lib/lang/dk_login_as.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['login_1_txt'] = 'Vil du logge ind som bruger';
+$wb['login_2_txt'] = 'Hvis du gør det, kan du \"Gå tilbage\" ved at klikke på logout.';
+$wb['btn_yes_txt'] = 'Ja, log ind som Kunde';
+$wb['btn_back_txt'] = 'Nej, tilbage til listen';
+$wb['udp_port_help_txt'] = 'Adskilt af komma';
+$wb['active_txt'] = 'Aktiv';
+$wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.';
+$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i TCP port definition. Tilladt tegn er tal, \":\" og \",\".';
+$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i UDP port definition. Tilladt tegn er tal, \":\" og \",\".';
+?>
diff --git a/interface/web/mail/lib/lang/dk.lng b/interface/web/mail/lib/lang/dk.lng
new file mode 100644
index 0000000000..7330253c23
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk.lng
@@ -0,0 +1,48 @@
+<?php
+$wb['Email Alias'] = 'E-mail Alias';
+$wb['Email Blacklist'] = 'E-mail Blacklist';
+$wb['Blacklist'] = 'Blacklist';
+$wb['Mail Content Filter'] = 'Mail Indholds Filter';
+$wb['Filter'] = 'Filter';
+$wb['Mail Domain'] = 'Mail Domæne';
+$wb['Domain'] = 'Domæne';
+$wb['Email Catchall'] = 'E-mail Catchall';
+$wb['Email Forward'] = 'E-mail Forward';
+$wb['Get Email'] = 'Get E-mail';
+$wb['Spamfilter'] = 'Spamfilter';
+$wb['Email Routing'] = 'E-mail Routing';
+$wb['Email transport'] = 'E-mail transport';
+$wb['Mailbox'] = 'Postboks';
+$wb['Autoresponder'] = 'Autosvarer';
+$wb['Mail Filter'] = 'Mail Filter';
+$wb['Custom Rules'] = 'Brugerdefinerede Regler';
+$wb['Email filter'] = 'E-mail filter';
+$wb['Email Whitelist'] = 'E-mail Whitelist';
+$wb['Whitelist'] = 'Whitelist';
+$wb['Spamfilter blacklist'] = 'Spamfilter blacklist';
+$wb['Spamfilter Config'] = 'Spamfilter Konfig';
+$wb['Server'] = 'Server';
+$wb['Spamfilter policy'] = 'Spamfilter politik';
+$wb['Policy'] = 'Politik';
+$wb['Quarantine'] = 'Karantæne';
+$wb['Tag-Level'] = 'Tag-Level';
+$wb['Other'] = 'Andre';
+$wb['Spamfilter users'] = 'Spamfilter brugere';
+$wb['Users'] = 'Brugere';
+$wb['Spamfilter Whitelist'] = 'Spamfilter Whitelist';
+$wb['Email'] = 'E-mail';
+$wb['Email Mailbox'] = 'E-mail Postboks';
+$wb['Email Accounts'] = 'E-mail Konti';
+$wb['User / Domain'] = 'Bruger/Domæne';
+$wb['Server Settings'] = 'Server Indstillinger';
+$wb['Fetchmail'] = 'Fetchmail';
+$wb['Mailbox traffic'] = 'Postboks trafik';
+$wb['Statistics'] = 'Statistik';
+$wb['Postfix Whitelist'] = 'Postfix Whitelist';
+$wb['Postfix Blacklist'] = 'Postfix Blacklist';
+$wb['Content Filter'] = 'Indholds Filter';
+$wb['Global Filters'] = 'Global Filtere';
+$wb['Domain Alias'] = 'Domæne Alias';
+$wb['Relay Recipients'] = 'Relay Modtagere';
+$wb['Mailbox quota'] = 'Postboks kvota';
+?>
diff --git a/interface/web/mail/lib/lang/dk_backup_stats_list.lng b/interface/web/mail/lib/lang/dk_backup_stats_list.lng
new file mode 100644
index 0000000000..9ae9658257
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_backup_stats_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb["list_head_txt"]       = 'Backup Stats';
+$wb['active_txt']          = 'Active';
+$wb['domain_txt']          = 'Email';
+$wb['backup_count_txt']    = 'Backup count';
+$wb['backup_server_txt']   = 'Server';
+$wb['backup_interval_txt'] = 'Interval / cnt.';
+$wb['backup_size_txt'] = 'Backupsize';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_alias.lng b/interface/web/mail/lib/lang/dk_mail_alias.lng
new file mode 100644
index 0000000000..19b4112001
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_alias.lng
@@ -0,0 +1,17 @@
+<?php
+$wb['email_txt'] = 'E-mail';
+$wb['destination_txt'] = 'Destination';
+$wb['active_txt'] = 'Aktiv';
+$wb['email_error_isemail'] = 'E-mail adresse er ugyldigt.';
+$wb['email_error_unique'] = 'Dupliker E-mailadresse.';
+$wb['no_domain_perm'] = 'Du har ikke tilladelse til dette domæne.';
+$wb['destination_error_isemail'] = 'Bestemmelsessteds E-mail adresse er ugyldigt.';
+$wb['limit_mailalias_txt'] = 'Max. antallet af e-mail aliasser for din konto er nået.';
+$wb['duplicate_mailbox_txt'] = 'Der er allerede en mailboks med denne e-mail adresse.';
+$wb['domain_txt'] = 'Domæne';
+$wb['duplicate_email_alias_txt'] = 'Dette e-mail alias findes allerede.';
+$wb['source_txt'] = 'Alias';
+$wb['send_as_txt'] = 'Send as';
+$wb['send_as_exp'] = 'Allow target to send mail using this alias as origin';
+$wb['greylisting_txt'] = 'Enable greylisting';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_alias_list.lng b/interface/web/mail/lib/lang/dk_mail_alias_list.lng
new file mode 100644
index 0000000000..d7d4e2da2e
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_alias_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'E-mail Alias';
+$wb['active_txt'] = 'Aktiv';
+$wb['source_txt'] = 'kilde';
+$wb['destination_txt'] = 'Destination';
+$wb['email_txt'] = 'E-mail';
+$wb['add_new_record_txt'] = 'Tilføj nyt E-mail alias';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_aliasdomain.lng b/interface/web/mail/lib/lang/dk_mail_aliasdomain.lng
new file mode 100644
index 0000000000..0d08c92528
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_aliasdomain.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['source_txt'] = 'Kilde';
+$wb['destination_txt'] = 'Destination';
+$wb['active_txt'] = 'Aktiv';
+$wb['no_domain_perm'] = 'Du har ikke tilladelse til dette domæne.';
+$wb['limit_mailaliasdomain_txt'] = 'Max. antal af email alias domæner for din konto er nået.';
+$wb['source_destination_identical_txt'] = 'Kilde og mål Domæne er det samme.';
+$wb['source_error_empty'] = 'Kilde Domæne er tomt.';
+$wb['source_error_unique'] = 'Dupliker kilde Domæne.';
+$wb['source_error_regex'] = 'Ugyldigt kilde domæne navn.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/dk_mail_aliasdomain_list.lng
new file mode 100644
index 0000000000..293f3aba51
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_aliasdomain_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Domæne alias';
+$wb['active_txt'] = 'Aktiv';
+$wb['source_txt'] = 'Kilde';
+$wb['destination_txt'] = 'Destination';
+$wb['add_new_record_txt'] = 'Tilføj nyt Domæne alias';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_backup_list.lng b/interface/web/mail/lib/lang/dk_mail_backup_list.lng
new file mode 100644
index 0000000000..73286a0737
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_backup_list.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['list_head_txt'] = 'Existing backups';
+$wb['date_txt'] = 'Date';
+$wb['backup_type_txt'] = 'Type';
+$wb['filename_txt'] = 'Backup file';
+$wb['restore_backup_txt'] = 'Restore';
+$wb['restore_info_txt'] = 'Restore of the backup has been started. This action takes several minutes to be completed.';
+$wb['restore_confirm_txt'] = 'Restoring may overwrite existing files in your mailbox. Do you really want to restore this backup?';
+$wb['download_pending_txt'] = 'There is already a pending backup download job.';
+$wb['restore_pending_txt'] = 'There is already a pending backup restore job.';
+$wb['delete_backup_txt'] = 'Delete Backup';
+$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.';
+$wb['delete_confirm_txt'] = 'Really delete this backup?';
+$wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
+$wb['filesize_txt'] = 'Filesize';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_blacklist.lng b/interface/web/mail/lib/lang/dk_mail_blacklist.lng
new file mode 100644
index 0000000000..2830319b06
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_blacklist.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['source_txt'] = 'Blacklist Adresse';
+$wb['recipient_txt'] = 'Modtager';
+$wb['active_txt'] = 'Aktiv';
+$wb['source_error_notempty'] = 'Adresse er tom.';
+$wb['type_txt'] = 'Type';
+$wb['limit_mailfilter_txt'] = 'Max. antal af e-mail filtere for din konto er nået.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_blacklist_list.lng b/interface/web/mail/lib/lang/dk_mail_blacklist_list.lng
new file mode 100644
index 0000000000..94f96747b1
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_blacklist_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb['list_head_txt'] = 'E-mail Blacklist';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['source_txt'] = 'Blacklisted adresse';
+$wb['type_txt'] = 'Type';
+$wb['recipient_txt'] = 'Modtager';
+$wb['add_new_record_txt'] = 'Tilføj ny Blacklist post';
+$wb['access_txt'] = 'adgang';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_content_filter.lng b/interface/web/mail/lib/lang/dk_mail_content_filter.lng
new file mode 100644
index 0000000000..52316cadec
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_content_filter.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['type_txt'] = 'Filter';
+$wb['pattern_txt'] = 'Regexp. Mønster';
+$wb['data_txt'] = 'Data';
+$wb['action_txt'] = 'Handling';
+$wb['active_txt'] = 'Aktiv';
+$wb['pattern_error_empty'] = 'Mønster er tomt.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_content_filter_list.lng b/interface/web/mail/lib/lang/dk_mail_content_filter_list.lng
new file mode 100644
index 0000000000..1854148e81
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_content_filter_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Postfix Header og Body Checks';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['pattern_txt'] = 'Mønster';
+$wb['action_txt'] = 'Handling';
+$wb['add_new_record_txt'] = 'Tilføj nyt Indholds Filter';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_domain.lng b/interface/web/mail/lib/lang/dk_mail_domain.lng
new file mode 100644
index 0000000000..f37b81d65e
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_domain.lng
@@ -0,0 +1,23 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['type_txt'] = 'Type';
+$wb['active_txt'] = 'Aktiv';
+$wb['domain_error_empty'] = 'Domæne er tomt.';
+$wb['domain_error_unique'] = 'Dupliker Domæne.';
+$wb['domain_error_regex'] = 'Ugyldigt domæne navn.';
+$wb['client_txt'] = 'Kunde';
+$wb['limit_maildomain_txt'] = 'Max. antal af e-mail domæner for din konto er nået.';
+$wb['policy_txt'] = 'Spamfilter';
+$wb['no_policy'] = '- ikke aktiveret -';
+$wb['dkim_txt'] = 'enable DKIM';
+$wb['dkim_private_txt'] = 'DKIM Private-key';
+$wb['dkim_public_txt'] = 'DKIM Public-key\nfor information only';
+$wb['dkim_generate_txt'] = 'Generate DKIM Private-key';
+$wb['dkim_dns_txt'] = 'DNS-Record';
+$wb['dkim_private_key_error'] = 'Invalid DKIM-Private key';
+$wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)';
+$wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.';
+$wb['dkim_selector_txt'] = 'DKIM-Selector';
+$wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/dk_mail_domain_admin_list.lng
new file mode 100644
index 0000000000..cdf5d9b9c1
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_domain_admin_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'E-mail Domæne';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['add_new_record_txt'] = 'Tilføj nyt Domæne';
+$wb['active_txt'] = 'Aktiv';
+$wb['sys_groupid_txt'] = 'Kunde';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng b/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng
new file mode 100644
index 0000000000..0cdcad2098
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['domain_txt'] = 'Domæne';
+$wb['destination_txt'] = 'Destination E-mail';
+$wb['active_txt'] = 'Aktiv';
+$wb['domain_error_unique'] = 'Der er allerede en catchall post for dette domæne.';
+$wb['no_domain_perm'] = 'Du har ikke tilladelse til dette domæne.';
+$wb['domain_error_regex'] = 'Ugyldigt domæne navn eller domæne, indeholder ugyldigt karaktere.';
+$wb['limit_mailcatchall_txt'] = 'Max. antal af e-mail catchall konti for din konto er nået.';
+$wb['source_txt'] = 'Kilde';
+$wb['destination_error_isemail'] = 'Destinationen er ikke en gyldig e-mail adresse.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/dk_mail_domain_catchall_list.lng
new file mode 100644
index 0000000000..c26bfd794f
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_domain_catchall_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'E-mail Catchall';
+$wb['active_txt'] = 'Aktiv';
+$wb['source_txt'] = 'kilde';
+$wb['destination_txt'] = 'Destination email adresse';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['add_new_record_txt'] = 'Tilføj ny Catchall';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_domain_list.lng b/interface/web/mail/lib/lang/dk_mail_domain_list.lng
new file mode 100644
index 0000000000..2d164acd73
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_domain_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'E-mail Domæne';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['add_new_record_txt'] = 'Tilføj nyt Domæne';
+$wb['active_txt'] = 'Aktiv';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_forward.lng b/interface/web/mail/lib/lang/dk_mail_forward.lng
new file mode 100644
index 0000000000..144435b7be
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_forward.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['email_txt'] = 'E-mail';
+$wb['destination_txt'] = 'Destination E-mail';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_mailforward_txt'] = 'Max. antal af e-mail forwarders for din konto er nået.';
+$wb['duplicate_mailbox_txt'] = 'Der er allerede en mailboks med denne e-mail adresse';
+$wb['domain_txt'] = 'Domæne';
+$wb['source_txt'] = 'Kilde E-mail';
+$wb['email_error_isemail'] = 'Please enter a valid email address.';
+$wb['send_as_txt'] = 'Send as';
+$wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
+$wb['greylisting_txt'] = 'Enable greylisting';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_forward_list.lng b/interface/web/mail/lib/lang/dk_mail_forward_list.lng
new file mode 100644
index 0000000000..bca8e67ea2
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_forward_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Mail Forward';
+$wb['active_txt'] = 'Aktiv';
+$wb['source_txt'] = 'kilde';
+$wb['destination_txt'] = 'Destination';
+$wb['email_txt'] = 'E-mail';
+$wb['add_new_record_txt'] = 'Tilføj ny E-mail forward';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_get.lng b/interface/web/mail/lib/lang/dk_mail_get.lng
new file mode 100644
index 0000000000..dc0b7455ac
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_get.lng
@@ -0,0 +1,19 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['type_txt'] = 'Type';
+$wb['source_server_txt'] = 'Pop3/Imap Server';
+$wb['source_username_txt'] = 'Brugernavn';
+$wb['source_password_txt'] = 'Adgangskode';
+$wb['source_delete_txt'] = 'Slet e-mails efter hentning';
+$wb['source_delete_note_txt'] = 'Kontroller først, om e-mail hentning fungerer, før du aktiverer denne valgmulighed.';
+$wb['source_read_all_txt'] = 'Hent alle e-mails (inkl. Læste mails)';
+$wb['destination_txt'] = 'Destination';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_fetchmail_txt'] = 'Max. antal af Fetchmail poster for din konto er nået.';
+$wb['source_server_error_isempty'] = 'Server er tom.';
+$wb['source_username_error_isempty'] = 'Brugernavn er tom.';
+$wb['source_password_error_isempty'] = 'Adgangskode er tom.';
+$wb['destination_error_isemail'] = 'Ingen destination er valgt.';
+$wb['source_server_error_regex'] = 'Pop3/Imap Server er ikke et gyldigt domænenavn.';
+$wb['error_delete_read_all_combination'] = 'Ulovlig kombination af muligheder. Du kan ikke bruge \"Slet e-mails efter hentning\" = nej sammen med \"Hent alle e-mails\" = ja';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_get_list.lng b/interface/web/mail/lib/lang/dk_mail_get_list.lng
new file mode 100644
index 0000000000..f3e9813344
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_get_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Hent e-mails fra eksterne POP3/IMAP servere';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['source_server_txt'] = 'Ekstern Server';
+$wb['source_username_txt'] = 'Brugernavn';
+$wb['destination_txt'] = 'Destination';
+$wb['add_new_record_txt'] = 'Tilføj ny Konto';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_mailinglist.lng b/interface/web/mail/lib/lang/dk_mail_mailinglist.lng
new file mode 100644
index 0000000000..0868d38e6e
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_mailinglist.lng
@@ -0,0 +1,22 @@
+<?php
+$wb['mailinglist_txt'] = 'Mailing list';
+$wb['limit_mailmailinglist_txt'] = 'Begrænsninger nået';
+$wb['domain_error_empty'] = 'Domæne er tom.';
+$wb['listname_error_empty'] = 'Listenavn er tom.';
+$wb['domain_error_regex'] = 'Ugyldigt domæne name.';
+$wb['email_in_use_txt'] = 'E-mail er i brug';
+$wb['no_domain_perm'] = 'Du har ikke tilladelse til dette domæne.';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['listname_txt'] = 'Listenavn';
+$wb['client_txt'] = 'Kunde';
+$wb['email_txt'] = 'E-mail';
+$wb['password_txt'] = 'Adgangskode';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['listname_error_unique'] = 'Der er allerede en mailingliste med navn på serveren. Vælg et anden liste navn.';
+$wb['email_error_isemail'] = 'E-mail adressen er ugyldigt.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/dk_mail_mailinglist_list.lng
new file mode 100644
index 0000000000..1a0612274d
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_mailinglist_list.lng
@@ -0,0 +1,5 @@
+<?php
+$wb['list_head_txt'] = 'Mailing Liste';
+$wb['domain_txt'] = 'Domæne';
+$wb['listname_txt'] = 'Listenavn';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_relay_recipient.lng b/interface/web/mail/lib/lang/dk_mail_relay_recipient.lng
new file mode 100644
index 0000000000..e21e311f13
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_relay_recipient.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['source_txt'] = 'Relay modtager';
+$wb['recipient_txt'] = 'Modtager';
+$wb['active_txt'] = 'Aktiv';
+$wb['source_error_notempty'] = 'Adresse er tom.';
+$wb['type_txt'] = 'Type';
+$wb['limit_mailfilter_txt'] = 'Max. antal af e-mail filtere for din konto er nået.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/dk_mail_relay_recipient_list.lng
new file mode 100644
index 0000000000..d2221c0371
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_relay_recipient_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Relay modtagere';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['source_txt'] = 'Modtager adresse';
+$wb['recipient_txt'] = 'Modtager';
+$wb['add_new_record_txt'] = 'Tilføj ny relay modtager';
+$wb['access_txt'] = 'adgang';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_spamfilter.lng b/interface/web/mail/lib/lang/dk_mail_spamfilter.lng
new file mode 100644
index 0000000000..b9f3cd7d03
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_spamfilter.lng
@@ -0,0 +1,17 @@
+<?php
+$wb['email_txt'] = 'E-mail';
+$wb['spam_rewrite_score_int_txt'] = 'Omskriv score';
+$wb['spam_redirect_score_int_txt'] = 'Omdiriger score';
+$wb['spam_delete_score_int_txt'] = 'Slet score';
+$wb['spam_rewrite_subject_txt'] = 'Omskriv emne';
+$wb['spam_redirect_maildir_txt'] = 'Omdiriger postboks';
+$wb['active_txt'] = 'Aktiv';
+$wb['spam_rewrite_txt'] = 'Omskriv e-mail emne over denne score.';
+$wb['spam_redirect_txt'] = 'Omdiriger e-mail over denne score til den valgte postkasse.';
+$wb['spam_delete_txt'] = 'Slet e-mail over denne score.';
+$wb['disable_txt'] = 'Tip: Hvis du vil deaktivere en filtrerings mulighed, skal du indstille score til 0.00.';
+$wb['email_error_isemail'] = 'E-mail adresse er ugyldigt.';
+$wb['email_error_unique'] = 'Der er allerede en spamfilter post for denne e-mail adresse.';
+$wb['spam_redirect_maildir_purge_txt'] = 'Rens Maildir efter';
+$wb['days_txt'] = 'Dage.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/dk_mail_spamfilter_list.lng
new file mode 100644
index 0000000000..e06cc1671f
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_spamfilter_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Spamfilter';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['server_name_txt'] = 'server_navn';
+$wb['email_txt'] = 'E-mail';
+$wb['add_new_record_txt'] = 'Tilføj ny Spamfilter post';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_transport.lng b/interface/web/mail/lib/lang/dk_mail_transport.lng
new file mode 100644
index 0000000000..df2131cde4
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_transport.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['destination_txt'] = 'Destination';
+$wb['type_txt'] = 'Type';
+$wb['mx_txt'] = 'Ingen MX lookup';
+$wb['sort_order_txt'] = 'Sort by';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_mailrouting_txt'] = 'Max. antal af ruter for din konto er nået.';
+$wb['transport_txt'] = 'Transport';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_transport_list.lng b/interface/web/mail/lib/lang/dk_mail_transport_list.lng
new file mode 100644
index 0000000000..e39bf16ec0
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_transport_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Avanceret E-mail Routing';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['transport_txt'] = 'Transport';
+$wb['sort_order_txt'] = 'Sorter efter';
+$wb['add_new_record_txt'] = 'Tilføj ny transport';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_user.lng b/interface/web/mail/lib/lang/dk_mail_user.lng
new file mode 100644
index 0000000000..437e4bbc43
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_user.lng
@@ -0,0 +1,65 @@
+<?php
+$wb['custom_mailfilter_txt'] = 'Tilpasset mailfilter';
+$wb['email_txt'] = 'E-mail';
+$wb['cryptpwd_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['active_txt'] = 'Aktiv';
+$wb['email_error_isemail'] = 'E-mail adresse er ugyldigt.';
+$wb['email_error_unique'] = 'Dupliker E-mail adresse.';
+$wb['autoresponder_subject_txt'] = 'E-mail Emne';
+$wb['autoresponder_subject'] = 'Ude af kontoret, svar';
+$wb['autoresponder_text_txt'] = 'Tekst';
+$wb['autoresponder_txt'] = 'Aktiv';
+$wb['autoresponder_start_date_txt'] = 'Start d.';
+$wb['autoresponder_start_date_ispast'] = 'Start dato kan ikke være i fortid.';
+$wb['autoresponder_end_date_txt'] = 'Slut d.';
+$wb['autoresponder_end_date_isgreater'] = 'Slut dato skal vælges og være senere end start dato.';
+$wb['no_domain_perm'] = 'Du har ikke tilladelse til dette domæne.';
+$wb['error_no_pwd'] = 'Adgangskode er tom.';
+$wb['quota_error_isint'] = 'Postboks størrelse skal være et tal.';
+$wb['quota_txt'] = 'Kvote (0 for ubegrænset)';
+$wb['server_id_txt'] = 'Server ID';
+$wb['password_txt'] = 'Adgangskode';
+$wb['maildir_txt'] = 'Mailmappe';
+$wb['postfix_txt'] = 'Aktiver modtagelse';
+$wb['access_txt'] = 'Aktiver adgang';
+$wb['policy_txt'] = 'Spamfilter';
+$wb['no_policy'] = '- ikke aktiveret -';
+$wb['limit_mailbox_txt'] = 'Max. antal af mailbokse for din konto er nået.';
+$wb['limit_mailquota_txt'] = 'Max. plads for postkasser er nået. Max. tilgængelig plads i MB er';
+$wb['disablesmtp_txt'] = 'Deaktiver SMTP (afsending)';
+$wb['disableimap_txt'] = 'Deaktiver IMAP';
+$wb['disablepop3_txt'] = 'Deaktiver POP3';
+$wb['duplicate_alias_or_forward_txt'] = 'Der er allerede et alias eller forward for denne e-mail adresse.';
+$wb['quota_error_value'] = 'Ugyldig kvote værdi. Tilladte værdier er: 0 for ubegrænset eller tal > 1';
+$wb['move_junk_txt'] = 'Flyt Spam E-mails til Junk mappe.';
+$wb['name_txt'] = 'Navn';
+$wb['name_optional_txt'] = '(Valgfri)';
+$wb['autoresponder_active'] = 'Aktiver autosvarer';
+$wb['cc_txt'] = 'Send kopi til';
+$wb['cc_error_isemail'] = '-Send kopi til- felt indeholder ikke en gyldig e-mail adresse';
+$wb['domain_txt'] = 'Domæne';
+$wb['now_txt'] = 'Nu';
+$wb['login_error_unique'] = 'Log ind er allerede taget.';
+$wb['login_error_regex'] = 'Gyldige tegn er A-Z, a-z, 0-9, ., _ og -.';
+$wb['login_txt'] = 'Log ind';
+$wb['error_login_email_txt'] = 'Dette log ind er ikke tilladt. Indtast venligst et andet log ind eller benyt mail-adresse som log ind.';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['email_error_isascii'] = 'Undlad venligst at bruge specielle Unicode-tegn for din adgangskode Dette kan føre til problemer med din mail-klient.';
+$wb['cc_note_txt'] = '(Adskil flere e-mail adresser med kommaer)';
+$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.';
+$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['greylisting_txt'] = 'Enable greylisting';
+$wb['sender_cc_txt'] = 'Send outgoing copy to';
+$wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
+$wb['backup_interval_txt'] = 'Backup interval';
+$wb['backup_copies_txt'] = 'Number of backup copies';
+$wb['no_backup_txt'] = 'No backup';
+$wb['daily_backup_txt'] = 'Daily';
+$wb['weekly_backup_txt'] = 'Weekly';
+$wb['monthly_backup_txt'] = 'Monthly';
+$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_user_filter.lng b/interface/web/mail/lib/lang/dk_mail_user_filter.lng
new file mode 100644
index 0000000000..d43af17ffb
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_user_filter.lng
@@ -0,0 +1,29 @@
+<?php
+$wb['rulename_txt'] = 'Navn';
+$wb['action_txt'] = 'Handling';
+$wb['target_txt'] = 'Mappe';
+$wb['active_txt'] = 'Aktiv';
+$wb['rulename_error_empty'] = 'Navn er tomt.';
+$wb['searchterm_is_empty'] = 'Søgetermer er tomme.';
+$wb['source_txt'] = 'Kilde';
+$wb['target_error_regex'] = 'Målet må kun indeholde disse tegn: a-z, 0-9, -, ., _, og {space}';
+$wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nået.';
+$wb['subject_txt'] = 'Emne';
+$wb['from_txt'] = 'Fra';
+$wb['to_txt'] = 'Til';
+$wb['contains_txt'] = 'Indeholder';
+$wb['is_txt'] = 'Er';
+$wb['begins_with_txt'] = 'Begynder med';
+$wb['ends_with_txt'] = 'Slutter med';
+$wb['move_stop_txt'] = 'Flyt til';
+$wb['delete_txt'] = 'Slet';
+$wb['header_txt'] = 'Hoved';
+$wb['size_over_txt'] = 'E-mail størrelse over (KB)';
+$wb['size_under_txt'] = 'E-mail størrelse under (KB)';
+$wb['localpart_txt'] = 'Lokale del';
+$wb['domain_txt'] = 'Domæne';
+$wb['keep_txt'] = 'Behold';
+$wb['reject_txt'] = 'Afvis';
+$wb['stop_txt'] = 'Stop';
+$wb['move_to_txt'] = 'Move to';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_user_filter_list.lng b/interface/web/mail/lib/lang/dk_mail_user_filter_list.lng
new file mode 100644
index 0000000000..274d21dd9b
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_user_filter_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['rulename_txt'] = 'Navn';
+$wb['add_new_record_txt'] = 'Tilføj nyt Filter';
+$wb['page_txt'] = 'Side';
+$wb['page_of_txt'] = 'af';
+$wb['delete_confirmation'] = 'Ønsker du virkelig at slette mailfilteret?';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_user_list.lng b/interface/web/mail/lib/lang/dk_mail_user_list.lng
new file mode 100644
index 0000000000..ac07bb92b3
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_user_list.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['list_head_txt'] = 'Postboks';
+$wb['email_txt'] = 'E-mail';
+$wb['autoresponder_txt'] = 'Autosvarer';
+$wb['add_new_record_txt'] = 'Tilføj ny Postboks';
+$wb['name_txt'] = 'Navn';
+$wb['login_txt'] = 'Log ind';
+$wb['postfix_txt'] = 'Receiving';
+$wb['disablesmtp_txt'] = 'SMTP (sending)';
+$wb['disableimap_txt'] = 'IMAP';
+$wb['disablepop3_txt'] = 'POP3';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_user_stats_list.lng b/interface/web/mail/lib/lang/dk_mail_user_stats_list.lng
new file mode 100644
index 0000000000..e86bc8d0bd
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_user_stats_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Mail trafik';
+$wb['email_txt'] = 'E-mail';
+$wb['this_month_txt'] = 'Denne måned';
+$wb['last_month_txt'] = 'Forrige måned';
+$wb['this_year_txt'] = 'Dette år';
+$wb['last_year_txt'] = 'Forrige år';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_whitelist.lng b/interface/web/mail/lib/lang/dk_mail_whitelist.lng
new file mode 100644
index 0000000000..a05c234f94
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_whitelist.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['source_txt'] = 'Whitelist Adresse';
+$wb['recipient_txt'] = 'Modtager';
+$wb['active_txt'] = 'Aktiv';
+$wb['source_error_notempty'] = 'Adresse er tom.';
+$wb['type_txt'] = 'Type';
+$wb['limit_mailfilter_txt'] = 'Max. antal af email filtere for din konto er nået.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_mail_whitelist_list.lng b/interface/web/mail/lib/lang/dk_mail_whitelist_list.lng
new file mode 100644
index 0000000000..23b0aa80bb
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_mail_whitelist_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb['list_head_txt'] = 'E-mail Whitelist';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['source_txt'] = 'Whitelisted adresse';
+$wb['type_txt'] = 'Type';
+$wb['recipient_txt'] = 'Modtager';
+$wb['add_new_record_txt'] = 'Tilføj ny Whitelist post';
+$wb['access_txt'] = 'adgang';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/dk_spamfilter_blacklist.lng
new file mode 100644
index 0000000000..c68e653dd3
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_blacklist.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['wb_txt'] = 'wb';
+$wb['rid_txt'] = 'Bruger';
+$wb['email_txt'] = 'E-mail';
+$wb['priority_txt'] = 'Prioritet';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_spamfilter_wblist_txt'] = 'Max. antal af White- eller Blacklist poster for din konto er nået.';
+$wb['10 - highest'] = '10 - højeste';
+$wb['5 - medium'] = '5 - medium';
+$wb['1 - lowest'] = '1 - laveste';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/dk_spamfilter_blacklist_list.lng
new file mode 100644
index 0000000000..b695e409b5
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_blacklist_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Spamfilter Blacklist';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['priority_txt'] = 'Prioritet';
+$wb['rid_txt'] = 'Bruger';
+$wb['email_txt'] = 'Blacklisted E-mail';
+$wb['add_new_record_txt'] = 'Tilføj Blacklist post';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_config.lng b/interface/web/mail/lib/lang/dk_spamfilter_config.lng
new file mode 100644
index 0000000000..39956179fb
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_config.lng
@@ -0,0 +1,20 @@
+<?php
+$wb['getmail_config_dir_txt'] = 'Getmail Config Path';
+$wb['ip_address_txt'] = 'IP-Adresse';
+$wb['netmask_txt'] = 'Netmask';
+$wb['gateway_txt'] = 'Gateway';
+$wb['hostname_txt'] = 'Værtsnavn';
+$wb['nameservers_txt'] = 'Navneservere';
+$wb['module_txt'] = 'Server Modul';
+$wb['maildir_path_txt'] = 'Maildir Path';
+$wb['homedir_path_txt'] = 'Homedir Path';
+$wb['mailuser_uid_txt'] = 'Mailuser UID';
+$wb['mailuser_gid_txt'] = 'Mailbruger GID';
+$wb['mailuser_name_txt'] = 'Mailbruger Navn';
+$wb['mailuser_group_txt'] = 'Mailbruger Gruppe';
+$wb['relayhost_txt'] = 'Relayhost';
+$wb['relayhost_user_txt'] = 'Relayhost Bruger';
+$wb['relayhost_password_txt'] = 'Relayhost Adgangskode';
+$wb['mailbox_size_limit_txt'] = 'Postboks Størrelse Begrænsninger';
+$wb['message_size_limit_txt'] = 'Meddelelse Størrelse Begrænsninger';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_config_list.lng b/interface/web/mail/lib/lang/dk_spamfilter_config_list.lng
new file mode 100644
index 0000000000..f31020a4a5
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_config_list.lng
@@ -0,0 +1,5 @@
+<?php
+$wb['list_head_txt'] = 'Server Konfiguration';
+$wb['server_name_txt'] = 'Server';
+$wb['server_id_txt'] = 'server_id';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_policy.lng b/interface/web/mail/lib/lang/dk_spamfilter_policy.lng
new file mode 100644
index 0000000000..b225eb48ac
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_policy.lng
@@ -0,0 +1,38 @@
+<?php
+$wb['policy_name_txt'] = 'Politik Navn';
+$wb['virus_lover_txt'] = 'Virus lover';
+$wb['spam_lover_txt'] = 'SPAM lover';
+$wb['banned_files_lover_txt'] = 'Banned files lover';
+$wb['bad_header_lover_txt'] = 'Bad header lover';
+$wb['bypass_virus_checks_txt'] = 'Bypass virus checks';
+$wb['bypass_banned_checks_txt'] = 'Bypass banned checks';
+$wb['bypass_header_checks_txt'] = 'Bypass header checks';
+$wb['virus_quarantine_to_txt'] = 'Forward virus til e-mail';
+$wb['spam_quarantine_to_txt'] = 'Forward spam til e-mail';
+$wb['banned_quarantine_to_txt'] = 'Forward banned til e-mail';
+$wb['bad_header_quarantine_to_txt'] = 'Forward bad header til e-mail';
+$wb['clean_quarantine_to_txt'] = 'Forward clean til e-mail';
+$wb['other_quarantine_to_txt'] = 'Forward other til e-mail';
+$wb['spam_tag_level_txt'] = 'SPAM tag level';
+$wb['spam_tag2_level_txt'] = 'SPAM tag2 level';
+$wb['spam_kill_level_txt'] = 'SPAM kill level';
+$wb['spam_dsn_cutoff_level_txt'] = 'SPAM dsn cutoff level';
+$wb['spam_quarantine_cutoff_level_txt'] = 'SPAM quarantine cutoff level';
+$wb['spam_modifies_subj_txt'] = 'SPAM modifies subject';
+$wb['spam_subject_tag_txt'] = 'SPAM subject tag';
+$wb['spam_subject_tag2_txt'] = 'SPAM subject tag2';
+$wb['addr_extension_virus_txt'] = 'Addr. extension virus';
+$wb['addr_extension_spam_txt'] = 'Addr. extension SPAM';
+$wb['addr_extension_banned_txt'] = 'Addr. extension banned';
+$wb['addr_extension_bad_header_txt'] = 'Addr extension bad header';
+$wb['warnvirusrecip_txt'] = 'Warn virus recip.';
+$wb['warnbannedrecip_txt'] = 'Warn banned recip.';
+$wb['warnbadhrecip_txt'] = 'Warn bad header recip.';
+$wb['newvirus_admin_txt'] = 'Newvirus admin';
+$wb['virus_admin_txt'] = 'Virus admin';
+$wb['banned_admin_txt'] = 'Bandlyst admin';
+$wb['bad_header_admin_txt'] = 'Bad header admin';
+$wb['spam_admin_txt'] = 'SPAM admin';
+$wb['message_size_limit_txt'] = 'Meddelelses størrelse grænse';
+$wb['banned_rulenames_txt'] = 'Bandlyste reglnavne';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/dk_spamfilter_policy_list.lng
new file mode 100644
index 0000000000..6675f665d5
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_policy_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Spamfilter Politik';
+$wb['policy_name_txt'] = 'Navn';
+$wb['virus_lover_txt'] = 'Virus lover';
+$wb['spam_lover_txt'] = 'Spam lover';
+$wb['banned_files_lover_txt'] = 'Bandlyst Files lover';
+$wb['bad_header_lover_txt'] = 'Bad Header lover';
+$wb['add_new_record_txt'] = 'Tilføj Politik post';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_users.lng b/interface/web/mail/lib/lang/dk_spamfilter_users.lng
new file mode 100644
index 0000000000..5b132bc774
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_users.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['priority_txt'] = 'Prioritet';
+$wb['policy_id_txt'] = 'Politik';
+$wb['email_txt'] = 'E-mail (Mønster)';
+$wb['fullname_txt'] = 'Navn';
+$wb['local_txt'] = 'Lokal';
+$wb['email_error_notempty'] = 'E-mail adressen må ikke være tom.';
+$wb['fullname_error_notempty'] = 'Navn må ikke være tomt.';
+$wb['10 - highest'] = '10 - højeste';
+$wb['5 - medium'] = '5 - medium';
+$wb['1 - lowest'] = '1 - laveste';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_users_list.lng b/interface/web/mail/lib/lang/dk_spamfilter_users_list.lng
new file mode 100644
index 0000000000..2e8c6dd2f0
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_users_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb['list_head_txt'] = 'Spamfilter Brugere';
+$wb['local_txt'] = 'Lokal';
+$wb['server_id_txt'] = 'Server';
+$wb['priority_txt'] = 'Prioritet';
+$wb['policy_id_txt'] = 'Politik';
+$wb['fullname_txt'] = 'Navn';
+$wb['email_txt'] = 'E-mail';
+$wb['add_new_record_txt'] = 'Tilføj Spamfilter Bruger';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/dk_spamfilter_whitelist.lng
new file mode 100644
index 0000000000..c68e653dd3
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_whitelist.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['wb_txt'] = 'wb';
+$wb['rid_txt'] = 'Bruger';
+$wb['email_txt'] = 'E-mail';
+$wb['priority_txt'] = 'Prioritet';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_spamfilter_wblist_txt'] = 'Max. antal af White- eller Blacklist poster for din konto er nået.';
+$wb['10 - highest'] = '10 - højeste';
+$wb['5 - medium'] = '5 - medium';
+$wb['1 - lowest'] = '1 - laveste';
+?>
diff --git a/interface/web/mail/lib/lang/dk_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/dk_spamfilter_whitelist_list.lng
new file mode 100644
index 0000000000..59f50490d4
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_spamfilter_whitelist_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Spamfilter Whitelist';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['priority_txt'] = 'Prioritet';
+$wb['rid_txt'] = 'Bruger';
+$wb['email_txt'] = 'Whitelisted E-mail';
+$wb['add_new_record_txt'] = 'Tilføj Whitelist post';
+?>
diff --git a/interface/web/mail/lib/lang/dk_user_quota_stats_list.lng b/interface/web/mail/lib/lang/dk_user_quota_stats_list.lng
new file mode 100644
index 0000000000..56a202ab34
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_user_quota_stats_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Postboks kvote';
+$wb['quota_txt'] = 'Kvote';
+$wb['name_txt'] = 'Navn';
+$wb['email_txt'] = 'E-mail Adresse';
+$wb['used_txt'] = 'Brugt plads';
+$wb['percentage_txt'] = 'Brugt %';
+?>
diff --git a/interface/web/mail/lib/lang/dk_xmpp_domain.lng b/interface/web/mail/lib/lang/dk_xmpp_domain.lng
new file mode 100644
index 0000000000..f1da77ba29
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_xmpp_domain.lng
@@ -0,0 +1,62 @@
+<?php
+$wb["server_id_txt"] = 'Server';
+$wb["client_group_id_txt"] = 'Client';
+$wb["domain_txt"] = 'Domain';
+$wb["type_txt"] = 'Type';
+$wb["active_txt"] = 'Active';
+$wb["client_txt"] = 'Client';
+$wb["management_method_txt"] = 'Management of user accounts';
+$wb["public_registration_txt"] = 'Enable public registration';
+$wb["registration_url_txt"] = 'Registration URL';
+$wb["registration_message_txt"] = 'Registration Message';
+$wb["domain_admins_txt"] = 'Domain Admins (JIDs)';
+$wb["use_pubsub_txt"] = 'Enable Pubsub';
+$wb["use_proxy_txt"] = 'Enable Bytestream Proxy';
+$wb["use_anon_host_txt"] = 'Enable Anonymous Host';
+$wb["use_vjud_txt"] = 'Enable VJUD User Directory';
+$wb["vjud_opt_mode_txt"] = 'VJUD Opt Mode';
+$wb["use_muc_host_txt"] = 'Enable Multi User Chatrooms';
+$wb["muc_name_txt"] = 'Name in MUC Service Discovery';
+$wb["muc_restrict_room_creation_txt"] = 'Permission to create chatrooms';
+$wb["muc_admins_txt"] = 'MUC Admins (JIDs)';
+$wb["use_pastebin_txt"] = 'Enable Pastebin';
+$wb["pastebin_expire_after_txt"] = 'Pastes expire after (hours)';
+$wb["pastebin_trigger_txt"] = 'Pastebin trigger';
+$wb["use_http_archive_txt"] = 'Enable HTTP chatroom archive';
+$wb["http_archive_show_join_txt"] = 'Show join messages in archive';
+$wb["http_archive_show_status_txt"] = 'Show status changes in archive';
+$wb["use_status_host_txt"] = 'Enable XML Status host';
+$wb["cant_change_domainname_txt"] = 'The Domain name of existing XMPP domain cannot be changed.';
+$wb["about_registration_url_txt"] = 'Link to your registration form.';
+$wb["about_registration_message_txt"] = 'Description about your account registration process.';
+$wb["no_corresponding_maildomain_txt"] = 'Corresponding mail domain for user management not found. Please create the mail domain first.';
+$wb['ssl_state_txt'] = 'State';
+$wb['ssl_locality_txt'] = 'Locality';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
+$wb['ssl_country_txt'] = 'Country';
+$wb['ssl_key_txt'] = 'SSL Key';
+$wb['ssl_request_txt'] = 'SSL Request';
+$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Action';
+$wb['ssl_email_txt'] = 'Email Address';
+$wb['ssl_txt'] = 'SSL';
+$wb['error_ssl_state_empty'] = 'SSL State is empty.';
+$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
+$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
+$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
+$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
+$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
+$wb['none_txt'] = 'None';
+$wb['save_certificate_txt'] = 'Save certificate';
+$wb['create_certificate_txt'] = 'Create certificate';
+$wb['delete_certificate_txt'] = 'Delete certificate';
+$wb['ssl_error_isemail'] = 'Please enter a valid email adress for generation of the SSL certificate';
+$wb["limit_xmppdomain_txt"] = 'The max. number of XMPP domains for your account is reached.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng
new file mode 100644
index 0000000000..a3d1736d7b
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb["list_head_txt"] = 'XMPP Domain';
+$wb["server_id_txt"] = 'Server';
+$wb["domain_txt"] = 'Domain';
+$wb["add_new_record_txt"] = 'Add new Domain';
+$wb["active_txt"] = 'Active';
+$wb["sys_groupid_txt"] = 'Client';
+?>
\ No newline at end of file
diff --git a/interface/web/mail/lib/lang/dk_xmpp_domain_list.lng b/interface/web/mail/lib/lang/dk_xmpp_domain_list.lng
new file mode 100644
index 0000000000..f8c2fb9b8e
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_xmpp_domain_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb["list_head_txt"] = 'XMPP Domain';
+$wb["server_id_txt"] = 'Server';
+$wb["domain_txt"] = 'Domain';
+$wb["add_new_record_txt"] = 'Add new Domain';
+$wb["active_txt"] = 'Active';
+?>
\ No newline at end of file
diff --git a/interface/web/mail/lib/lang/dk_xmpp_user.lng b/interface/web/mail/lib/lang/dk_xmpp_user.lng
new file mode 100644
index 0000000000..1cc852e3cf
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_xmpp_user.lng
@@ -0,0 +1,15 @@
+<?php
+$wb["list_head_txt"] = 'XMPP User Accounts';
+$wb["jid_txt"] = 'Jabber ID';
+$wb["active_txt"] = 'Active';
+$wb["cryptpwd_txt"] = 'Password';
+$wb["password_strength_txt"] = 'Password strength';
+$wb["error_no_pwd"] = 'Password is empty.';
+$wb["password_txt"] = 'Password';
+$wb['generate_password_txt'] = 'Generate Password';
+$wb['repeat_password_txt'] = 'Repeat Password';
+$wb['password_mismatch_txt'] = 'The passwords do not match.';
+$wb['password_match_txt'] = 'The passwords do match.';
+$wb["no_domain_perm"] = 'You have no permission for this domain.';
+$wb["limit_xmpp_user_txt"] = 'The max. number of xmpp accounts for your account is reached.';
+?>
\ No newline at end of file
diff --git a/interface/web/mail/lib/lang/dk_xmpp_user_list.lng b/interface/web/mail/lib/lang/dk_xmpp_user_list.lng
new file mode 100644
index 0000000000..db88b0d7e3
--- /dev/null
+++ b/interface/web/mail/lib/lang/dk_xmpp_user_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb["list_head_txt"] = 'XMPP User Accounts';
+$wb["jid_txt"] = 'Jabber ID';
+$wb["is_domain_admin_txt"] = 'Domain admin';
+$wb["is_muc_admin_txt"] = 'MUC admin';
+$wb["add_new_record_txt"] = 'Add new user';
+$wb["active_txt"] = 'Active';
+?>
\ No newline at end of file
diff --git a/interface/web/mailuser/lib/lang/dk.lng b/interface/web/mailuser/lib/lang/dk.lng
new file mode 100644
index 0000000000..f42499ef39
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['Email Account'] = 'E-mail Konto';
+$wb['Overview'] = 'Oversigt';
+$wb['Password'] = 'Adgangskode';
+$wb['Autoresponder'] = 'Autosvarer';
+$wb['Send copy'] = 'Send kopi';
+$wb['Spamfilter'] = 'Spamfilter';
+$wb['Email Filters'] = 'E-mail Filters';
+?>
diff --git a/interface/web/mailuser/lib/lang/dk_index.lng b/interface/web/mailuser/lib/lang/dk_index.lng
new file mode 100644
index 0000000000..cc57500a09
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk_index.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['page_head_txt'] = 'Postboks indstillinger';
+$wb['page_desc_txt'] = 'Her kan du redigere indstillingerne for e-mail kontoen.';
+$wb['email_txt'] = 'E-mail adresse';
+$wb['login_txt'] = 'Log ind';
+$wb['server_address_txt'] = 'Postserver adresse';
+$wb['cc_txt'] = 'Send kopi til (CC)';
+$wb['quota_txt'] = 'Postboks størrelse';
+$wb['unlimited_txt'] = 'Ubegrænset';
+$wb['mb_txt'] = 'MB';
+$wb['none_txt'] = 'Ingen';
+?>
diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng
new file mode 100644
index 0000000000..81bee87afb
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['mailbox_autoresponder_txt'] = 'Autosvarer';
+$wb['autoresponder_subject'] = 'Ude af kontoret, svar';
+$wb['autoresponder_text_txt'] = 'Tekst';
+$wb['autoresponder_txt'] = 'Aktiv';
+$wb['autoresponder_start_date_txt'] = 'Start d.';
+$wb['autoresponder_start_date_isfuture'] = 'Start dato kan ikke være i fortid.';
+$wb['autoresponder_end_date_txt'] = 'Slut d.';
+$wb['autoresponder_end_date_isgreater'] = 'Slut dato skal indtastes og være senere end start dato.';
+$wb['autoresponder_active'] = 'Aktiver autosvarer';
+$wb['now_txt'] = 'Nu';
+$wb['autoresponder_subject_txt'] = 'Emne';
+?>
diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_cc.lng b/interface/web/mailuser/lib/lang/dk_mail_user_cc.lng
new file mode 100644
index 0000000000..8fafd94e5a
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk_mail_user_cc.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['mailbox_cc_txt'] = 'Send kopi til e-mail adresse';
+$wb['cc_txt'] = 'Send kopi til';
+$wb['email_txt'] = 'E-mail';
+$wb['cc_error_isemail'] = 'E-mail adresse ugyldig i -Send kopi til- feltet';
+$wb['email_is_cc_error'] = 'E-mail adresse og send kopi til adressen kan ikke være det samme.';
+$wb['name_optional_txt'] = '(Valgfri)';
+$wb['cc_note_txt'] = '(Adskil flere e-mail adresser med kommaer)';
+?>
diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng
new file mode 100644
index 0000000000..e164d54bb2
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng
@@ -0,0 +1,21 @@
+<?php
+$wb['rulename_txt'] = 'Navn';
+$wb['action_txt'] = 'Handling';
+$wb['target_txt'] = 'Mappe';
+$wb['active_txt'] = 'Aktiv';
+$wb['rulename_error_empty'] = 'Navn er tomt.';
+$wb['searchterm_is_empty'] = 'Søgetermer er tomt.';
+$wb['source_txt'] = 'Kilde';
+$wb['target_error_regex'] = 'Målet må kun indeholde disse tegn: a-z, 0-9, -, ., _, og {space}';
+$wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nået.';
+$wb['subject_txt'] = 'Emne';
+$wb['from_txt'] = 'Fra';
+$wb['to_txt'] = 'Til';
+$wb['contains_txt'] = 'Indeholder';
+$wb['is_txt'] = 'Er';
+$wb['begins_with_txt'] = 'Begynder med';
+$wb['ends_with_txt'] = 'Slutter med';
+$wb['move_to_txt'] = 'Flyt til';
+$wb['delete_txt'] = 'Slet';
+$wb['mailbox_filter_txt'] = 'Mailbox filter';
+?>
diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/dk_mail_user_filter_list.lng
new file mode 100644
index 0000000000..d403e4720d
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk_mail_user_filter_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'E-mail filter rules';
+$wb['rulename_txt'] = 'Navn';
+$wb['add_new_record_txt'] = 'Tilføj nyt Filter';
+$wb['page_txt'] = 'Side';
+$wb['page_of_txt'] = 'af';
+$wb['delete_confirmation'] = 'Vil du virkelig slette dette mailfilter?';
+?>
diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_password.lng b/interface/web/mailuser/lib/lang/dk_mail_user_password.lng
new file mode 100644
index 0000000000..8898692a46
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk_mail_user_password.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['mailbox_password_txt'] = 'Postboks adgangskode';
+$wb['password_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['email_txt'] = 'E-mail';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['password_click_to_set_txt'] = 'Click to set';
+?>
diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng
new file mode 100644
index 0000000000..f43190d492
--- /dev/null
+++ b/interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['mailbox_spamfilter_txt'] = 'Spamfilter';
+$wb['spamfilter_txt'] = 'Spamfilter';
+$wb['email_txt'] = 'E-mail';
+$wb['no_policy'] = '- ikke aktiveret -';
+$wb['policy_txt'] = 'Politik';
+?>
diff --git a/interface/web/monitor/lib/lang/dk.lng b/interface/web/monitor/lib/lang/dk.lng
new file mode 100644
index 0000000000..da8aa1122c
--- /dev/null
+++ b/interface/web/monitor/lib/lang/dk.lng
@@ -0,0 +1,163 @@
+<?php
+$wb['Server online since'] = 'Server online siden';
+$wb['Users online'] = 'Brugere Online';
+$wb['System load 1 minute'] = 'System load 1 minut';
+$wb['System load 5 minutes'] = 'System load 5 minutter';
+$wb['System load 15 minutes'] = 'System load 15 minutter';
+$wb['Server Load'] = 'Server Load';
+$wb['Disk usage'] = 'Disk Forbrug';
+$wb['Memory usage'] = 'Memory Forbrug';
+$wb['no_data_serverload_txt'] = 'Ingen data om the server load tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_memusage_txt'] = 'Ingen data om the memory usage tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_diskusage_txt'] = 'Ingen data om the disk usage tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_cpuinfo_txt'] = 'Ingen data om the CPU tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_services_txt'] = 'Ingen data om the services tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_updates_txt'] = 'Ingen data om opdateringer tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_raid_txt'] = 'Ingen data om RAID tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_rkhunter_txt'] = 'Ingen data om RKHunter tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_data_mailq_txt'] = 'Ingen data Mailqueue tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['no_logdata_txt'] = 'Ingen log data tilgængelig i øjeblikket. Kontroller igen senere.';
+$wb['Monitoring'] = 'Overvågning';
+$wb['Server to Monitor'] = 'Server at Overvåge';
+$wb['Logfiles'] = 'Logfiler';
+$wb['Status of services'] = 'Services Status';
+$wb['No Refresh'] = 'Ingen Genopfriskning';
+$wb['minutes'] = 'minutter';
+$wb['Show Overview'] = 'Vis Oversigt';
+$wb['System State (All Servers)'] = 'System Status (Alle Servere)';
+$wb['Hardware-Information'] = 'Hardware Information';
+$wb['Show CPU info'] = 'Vis CPU Info';
+$wb['Server State'] = 'Server Status';
+$wb['Show Update State'] = 'Vis Opdater Status';
+$wb['Show RAID state'] = 'Vis RAID Status';
+$wb['Show Server load'] = 'Vis Server Load';
+$wb['Show Disk usage'] = 'Vis Disk Forbrug';
+$wb['Show Memory usage'] = 'Vis Hukommelses Forbrug';
+$wb['Show Services'] = 'Vis Services';
+$wb['Show Mail-Queue'] = 'Vis Mail Kø';
+$wb['Show Mail-Log'] = 'Vis Mail Log';
+$wb['Show Mail warn-Log'] = 'Vis Mail Advarsel-Log';
+$wb['Show Mail err-Log'] = 'Vis Mail Fejl-Log';
+$wb['Show System-Log'] = 'Vis System-Log';
+$wb['Show ISPC Cron-Log'] = 'Vis ISPC Cron-Log';
+$wb['Show Freshclam-Log'] = 'Vis Freshclam-Log';
+$wb['Show Clamav-Log'] = 'Vis Clamav-Log';
+$wb['Show ISPConfig-Log'] = 'Vis ISPConfig-Log';
+$wb['Show RKHunter-Log'] = 'Vis RKHunter-Log';
+$wb['Show Jobqueue'] = 'Vis Jobkø';
+$wb['Show fail2ban-Log'] = 'Vis fail2ban-Log';
+$wb['Show IPTables'] = 'Vis IPTables';
+$wb['Show OpenVz VE BeanCounter'] = 'Vis OpenVz VE BeanCounter';
+$wb['monitor_general_serverstate_txt'] = 'Server Status';
+$wb['monitor_general_systemstate_txt'] = 'System Status';
+$wb['monitor_diskusage_filesystem_txt'] = 'Filesystem';
+$wb['monitor_diskusage_type_txt'] = 'Type';
+$wb['monitor_diskusage_size_txt'] = 'Størrelse';
+$wb['monitor_diskusage_used_txt'] = 'Brugt';
+$wb['monitor_diskusage_available_txt'] = 'Tilgængelig';
+$wb['monitor_diskusage_usage_txt'] = 'Brug%';
+$wb['monitor_diskusage_mounted_txt'] = 'Monteret på';
+$wb['monitor_logs_mail_txt'] = 'Mail - Log';
+$wb['monitor_logs_mailwarn_txt'] = 'Mail-Advarsel - Log';
+$wb['monitor_logs_mailerr_txt'] = 'Mail-Fejl - Log';
+$wb['monitor_logs_messages_txt'] = 'System Meddelelser - Log';
+$wb['monitor_logs_ispccron_txt'] = 'ISPConfig Cron - Log';
+$wb['monitor_logs_freshclam_txt'] = 'Freshclam - Log';
+$wb['monitor_logs_clamav_txt'] = 'ClamAV - Log';
+$wb['monitor_logs_ispc_txt'] = 'ISPConfig - Log';
+$wb['monitor_nosupportedraid1_txt'] = 'I øjeblikket støtter vi \'mdadm\' eller \'mpt-status\' til overvågning af RAID.<br>Vi kan ikke finde nogen af dem på din server.<br><br>Det betyder, at vi ikke kan støtte din RAID endnu.';
+$wb['monitor_norkhunter_txt'] = 'RKHunter er ikke installeret, så der er ingen log data';
+$wb['monitor_serverstate_server_txt'] = 'Server';
+$wb['monitor_serverstate_state_txt'] = 'Status';
+$wb['monitor_serverstate_unknown_txt'] = 'ukendt';
+$wb['monitor_serverstate_info_txt'] = 'info';
+$wb['monitor_serverstate_warning_txt'] = 'advarsel';
+$wb['monitor_serverstate_critical_txt'] = 'kritisk';
+$wb['monitor_serverstate_error_txt'] = 'fejl';
+$wb['monitor_serverstate_moreinfo_txt'] = 'Mere information...';
+$wb['monitor_serverstate_more_txt'] = 'Mere...';
+$wb['monitor_serverstate_fclamok_txt'] = 'Din virusbeskyttelse er ok';
+$wb['monitor_serverstate_fclamoutdated_txt'] = 'Din virusbeskyttelse er forældet!';
+$wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!';
+$wb['monitor_serverstate_hdok_txt'] = 'Tilstanden af din plads på harddisken er ok';
+$wb['monitor_serverstate_hdgoingfull_txt'] = 'Din plads på harddisken er på vej til fuld';
+$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Din plads på harddisken er næsten fuld';
+$wb['monitor_serverstate_hdveryfull_txt'] = 'Din plads på harddisken er meget fyldt';
+$wb['monitor_serverstate_hdfull_txt'] = 'Din Hard-Disk har ikke mere plads tilbage';
+$wb['monitor_serverstate_hdunknown_txt'] = 'Hard-Disk: ???';
+$wb['monitor_serverstate_listok_txt'] = 'ok';
+$wb['monitor_serverstate_listinfo_txt'] = 'info';
+$wb['monitor_serverstate_listwarning_txt'] = 'advarsel';
+$wb['monitor_serverstate_listcritical_txt'] = 'kritisk';
+$wb['monitor_serverstate_listerror_txt'] = 'fejl';
+$wb['monitor_serverstate_listunknown_txt'] = 'ukendt';
+$wb['monitor_serverstate_loadok_txt'] = 'Din Server load er ok';
+$wb['monitor_serverstate_loadheavy_txt'] = 'Din server er under kraftig belastning';
+$wb['monitor_serverstate_loadhigh_txt'] = 'Din server er under høj belastning';
+$wb['monitor_serverstate_loaghigher_txt'] = 'Din server er under højere belastning';
+$wb['monitor_serverstate_loadhighest_txt'] = 'Din server er under højeste belastning';
+$wb['monitor_serverstate_loadunknown_txt'] = 'Server Belastning: ???';
+$wb['monitor_serverstate_mailqok_txt'] = 'Din Mail kø-belastning er ok';
+$wb['monitor_serverstate_mailqheavy_txt'] = 'Din Mail kø er under kraftig belastning';
+$wb['monitor_serverstate_mailqhigh_txt'] = 'Din Mail kø er under høj belastning';
+$wb['monitor_serverstate_mailqhigher_txt'] = 'Din Mail kø er under højere belastning';
+$wb['monitor_serverstate_mailqhighest_txt'] = 'Din Mail kø er under højeste belastning';
+$wb['monitor_serverstate_mailqunknown_txt'] = 'Mail kø: ???';
+$wb['monitor_serverstate_raidok_txt'] = 'Din RAID er ok';
+$wb['monitor_serverstate_raidresync_txt'] = 'Din RAID er i RESYNC mode';
+$wb['monitor_serverstate_raidfault_txt'] = 'Din RAID har en FAULTY disk. Udskift hurtigst muligt!';
+$wb['monitor_serverstate_raiderror_txt'] = 'Din RAID virker ikke mere';
+$wb['monitor_serverstate_raidunknown_txt'] = 'RAID state: ???';
+$wb['monitor_serverstate_servicesonline_txt'] = 'Alle nødvendige services er online';
+$wb['monitor_serverstate_servicesoffline_txt'] = 'En eller flere nødvendige tjenester er offline';
+$wb['monitor_serverstate_servicesunknown_txt'] = 'Services: ???';
+$wb['monitor_serverstate_syslogok_txt'] = 'System Loggen er O.K.';
+$wb['monitor_serverstate_syslogwarning_txt'] = 'Der er nogle advarsler i din system log';
+$wb['monitor_serverstate_syslogerror_txt'] = 'Der er fejl i din system log';
+$wb['monitor_serverstate_syslogunknown_txt'] = 'System log: ???';
+$wb['monitor_serverstate_updatesok_txt'] = 'Dit system er upto-date.';
+$wb['monitor_serverstate_updatesneeded_txt'] = 'En eller flere komponenter behøver en opdatering';
+$wb['monitor_serverstate_updatesunknown_txt'] = 'System Opdater: ???';
+$wb['monitor_serverstate_beancounterok_txt'] = 'Beancounteren er ok';
+$wb['monitor_serverstate_beancounterinfo_txt'] = 'Der er ny fejl i beancounter';
+$wb['monitor_serverstate_beancounterwarning_txt'] = 'Der er nogle fejl i beancounter';
+$wb['monitor_serverstate_beancountercritical_txt'] = 'Der er mange fejl i beancounter';
+$wb['monitor_serverstate_beancountererror_txt'] = 'Der er for mange fejl i beancounter';
+$wb['monitor_services_online_txt'] = 'Online';
+$wb['monitor_services_offline_txt'] = 'Offline';
+$wb['monitor_services_web_txt'] = 'Web-Server:';
+$wb['monitor_services_ftp_txt'] = 'FTP-Server:';
+$wb['monitor_services_smtp_txt'] = 'SMTP-Server:';
+$wb['monitor_services_pop_txt'] = 'POP3-Server:';
+$wb['monitor_services_imap_txt'] = 'IMAP-Server:';
+$wb['monitor_services_mydns_txt'] = 'DNS-Server:';
+$wb['monitor_services_mysql_txt'] = 'mySQL-Server:';
+$wb['monitor_settings_datafromdate_txt'] = 'Data fra: ';
+$wb['monitor_settings_datetimeformat_txt'] = 'Y-m-d H:i';
+$wb['monitor_settings_refreshsq_txt'] = 'Genopfrisknings Sekvens:';
+$wb['monitor_settings_server_txt'] = 'Server';
+$wb['monitor_title_cpuinfo_txt'] = 'CPU Info';
+$wb['monitor_title_updatestate_txt'] = 'Opdater Status';
+$wb['monitor_title_mailq_txt'] = 'Mail Kø';
+$wb['monitor_title_raidstate_txt'] = 'RAID Status';
+$wb['monitor_title_rkhunterlog_txt'] = 'RKHunter Log';
+$wb['monitor_title_fail2ban_txt'] = 'Fail2Ban Log';
+$wb['monitor_title_iptables_txt'] = 'IPTables Regler';
+$wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter';
+$wb['monitor_updates_nosupport_txt'] = 'Din distribution er ikke understøttet for denne overvågning';
+$wb['monitor_beancounter_nosupport_txt'] = 'Denne server er ikke en OpenVz VE og har ingen beancounter information';
+$wb['Show Monit'] = 'Vis Monit';
+$wb['no_monit_url_defined_txt'] = 'Ingen Monit URL definered.';
+$wb['no_permissions_to_view_monit_txt'] = 'Du har ikke adgangs tilladelse til Monit.';
+$wb['Show Munin'] = 'Vis Munin';
+$wb['no_munin_url_defined_txt'] = 'Ingen Munin URL definered.';
+$wb['no_permissions_to_view_munin_txt'] = 'Du har ikke adgangs tilladelse til Munin.';
+$wb['no_data_database_size_txt'] = 'No data about the database usage available at the moment. Please check again later.';
+$wb['Show MongoDB-Log'] = 'Show MongoDB-Log';
+$wb['monitor_database_name_txt'] = 'Database';
+$wb['monitor_database_size_txt'] = 'Size';
+$wb['monitor_database_client_txt'] = 'Client';
+$wb['monitor_database_domain_txt'] = 'Domain';
+$wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:';
+$wb['monitor_title_mongodb_txt'] = 'MongoDB Log';
+?>
diff --git a/interface/web/monitor/lib/lang/dk_datalog_list.lng b/interface/web/monitor/lib/lang/dk_datalog_list.lng
new file mode 100644
index 0000000000..970dce2cd3
--- /dev/null
+++ b/interface/web/monitor/lib/lang/dk_datalog_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Jobkø';
+$wb['tstamp_txt'] = 'Dato';
+$wb['server_id_txt'] = 'Server';
+$wb['dbtable_txt'] = 'DB Table';
+$wb['action_txt'] = 'Handling';
+$wb['status_txt'] = 'Status';
+?>
diff --git a/interface/web/monitor/lib/lang/dk_syslog_list.lng b/interface/web/monitor/lib/lang/dk_syslog_list.lng
new file mode 100644
index 0000000000..e1b067bfe3
--- /dev/null
+++ b/interface/web/monitor/lib/lang/dk_syslog_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'ISPConfig Log';
+$wb['tstamp_txt'] = 'Dato';
+$wb['server_id_txt'] = 'Server';
+$wb['loglevel_txt'] = 'Loglevel';
+$wb['message_txt'] = 'Meddelelse';
+?>
diff --git a/interface/web/sites/lib/lang/dk.lng b/interface/web/sites/lib/lang/dk.lng
new file mode 100644
index 0000000000..a99760a66e
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk.lng
@@ -0,0 +1,35 @@
+<?php
+$wb['Websites'] = 'Websider';
+$wb['Website'] = 'Webside';
+$wb['Subdomain'] = 'Sub-domæne for webside';
+$wb['Aliasdomain'] = 'Alias-domæne for webside';
+$wb['Database'] = 'Databaser';
+$wb['Database User'] = 'Database Brugere';
+$wb['Web Access'] = 'Web Adgang';
+$wb['FTP-User'] = 'FTP-Konti';
+$wb['Webdav-User'] = 'WebDAV-Brugere';
+$wb['Folder'] = 'Beskyttede mapper';
+$wb['Folder users'] = 'Beskyttede mappe Brugere';
+$wb['Command Line'] = 'Command Line';
+$wb['Shell-User'] = 'Shell-Bruger';
+$wb['Cron Jobs'] = 'Cron Jobs';
+$wb['Statistics'] = 'Statistik';
+$wb['Web traffic'] = 'Web trafik';
+$wb['Website quota (Harddisk)'] = 'Webside kvote (Harddisk)';
+$wb['Cron'] = 'Cron';
+$wb['Stats'] = 'Statistik';
+$wb['Shell'] = 'Shell';
+$wb['Webdav'] = 'WebDAV';
+$wb['FTP'] = 'FTP';
+$wb['Options'] = 'Indstillinger';
+$wb['Domain'] = 'Domæne';
+$wb['Redirect'] = 'Omdiriger';
+$wb['SSL'] = 'SSL';
+$wb['Sites'] = 'Sider';
+$wb['APS Installer'] = 'APS Installer';
+$wb['Available packages'] = 'Tilgængelig pakker';
+$wb['Installed packages'] = 'Installeret pakker';
+$wb['Update Packagelist'] = 'Opdater Pakkeliste';
+$wb['Subdomain (Vhost)'] = 'Sub-domæne (Vhost)';
+$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_aps.lng b/interface/web/sites/lib/lang/dk_aps.lng
new file mode 100644
index 0000000000..4a192ab286
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_aps.lng
@@ -0,0 +1,58 @@
+<?php
+$wb['overview_txt'] = 'Oversigt';
+$wb['administration_txt'] = 'Administration';
+$wb['available_packages_txt'] = 'Tilgængelig pakker';
+$wb['installed_packages_txt'] = 'Installeret pakker';
+$wb['yes_txt'] = 'Ja';
+$wb['no_txt'] = 'Nej';
+$wb['invalid_id_txt'] = 'Ingen valid ID has been provided.';
+$wb['details_txt'] = 'Details';
+$wb['version_txt'] = 'Version';
+$wb['category_txt'] = 'Kategori';
+$wb['homepage_txt'] = 'Webside';
+$wb['supported_languages_txt'] = 'Supported languages';
+$wb['description_txt'] = 'Beskrivelse';
+$wb['config_script_txt'] = 'Konfigurations script';
+$wb['installed_size_txt'] = 'Størrelse efter installation';
+$wb['license_txt'] = 'Licens';
+$wb['screenshots_txt'] = 'Screenshots';
+$wb['changelog_txt'] = 'Ændringslog';
+$wb['server_requirements_txt'] = 'Server requirements';
+$wb['php_extensions_txt'] = 'PHP extensions';
+$wb['php_settings_txt'] = 'PHP indstillinger';
+$wb['supported_php_versions_txt'] = 'Supported PHP versions';
+$wb['database_txt'] = 'Database';
+$wb['settings_txt'] = 'Indstillinger';
+$wb['install_package_txt'] = 'Installer denne pakke';
+$wb['installation_txt'] = 'Installation';
+$wb['install_location_txt'] = 'Installations lokation';
+$wb['btn_install_txt'] = 'Installer';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['acceptance_txt'] = 'Accepter';
+$wb['acceptance_text_txt'] = 'Ja, Jeg har læst licensen og accepter.';
+$wb['install_language_txt'] = 'Grænseflade sprog';
+$wb['new_database_password_txt'] = 'Ny database adgangskode';
+$wb['basic_settings_txt'] = 'Basis indstillinger';
+$wb['package_settings_txt'] = 'Pakke indstillinger';
+$wb['error_main_domain'] = 'Domænet for installations stien er ugyldig.';
+$wb['error_no_main_location'] = 'Du har ikke oplyst en gyldig installations sti.';
+$wb['error_inv_main_location'] = 'Den oplyste installations mappe er ugyldig.';
+$wb['error_license_agreement'] = 'For at fortsætte skal du acceptere licensaftalen.';
+$wb['error_no_database_pw'] = 'Du har ikke oplyst en database adgangskode.';
+$wb['error_short_database_pw'] = 'Vælg en længer database adgangskode.';
+$wb['error_no_value_for'] = 'Feltet \"%s\" må ikke være tomt.';
+$wb['error_short_value_for'] = 'Feltet \"%s\" kræver en længere indtastnings værdi.';
+$wb['error_long_value_for'] = 'Feltet \"%s\" kræver en kortere indtastnings værdi.';
+$wb['error_inv_value_for'] = 'Du har indtastet en ugyldig værdi for feltet \"%s\".';
+$wb['error_inv_email_for'] = 'Du har indtastet en ugyldig mail adresse for feltet \"%s\".';
+$wb['error_inv_domain_for'] = 'Du har indtastet et ugyldigt domæne for feltet \"%s\".';
+$wb['error_inv_integer_for'] = 'Du har indtastet et ugyldigt tal for feltet \"%s\".';
+$wb['error_inv_float_for'] = 'Du har indtastet et ugyldigt floating point tal for feltet \"%s\".';
+$wb['error_used_location'] = 'Installations stien indeholder allerede en pakke installation.';
+$wb['installation_task_txt'] = 'Installation planlagt';
+$wb['installation_error_txt'] = 'Installations fejl';
+$wb['installation_success_txt'] = 'Installeret';
+$wb['installation_remove_txt'] = 'Fjernelse planlagt';
+$wb['packagelist_update_finished_txt'] = 'APS Pakke Liste opdatering er færdig.';
+$wb['limit_aps_txt'] = 'Max. antal af APS forekomster for din konto er nået.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_aps_instances_list.lng b/interface/web/sites/lib/lang/dk_aps_instances_list.lng
new file mode 100644
index 0000000000..6a9b27a150
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_aps_instances_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['list_head_txt'] = 'Installeret pakker';
+$wb['name_txt'] = 'Navn';
+$wb['version_txt'] = 'Version';
+$wb['customer_txt'] = 'Kunde';
+$wb['status_txt'] = 'Status';
+$wb['install_location_txt'] = 'Install lokation';
+$wb['pkg_delete_confirmation'] = 'Do you really want til delete this installation?';
+$wb['filter_txt'] = 'Søg';
+$wb['delete_txt'] = 'Slet';
+?>
diff --git a/interface/web/sites/lib/lang/dk_aps_packages_list.lng b/interface/web/sites/lib/lang/dk_aps_packages_list.lng
new file mode 100644
index 0000000000..3c452fb591
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_aps_packages_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Tilgængelig pakker';
+$wb['name_txt'] = 'Navn';
+$wb['version_txt'] = 'Version';
+$wb['category_txt'] = 'Kategori';
+$wb['status_txt'] = 'Unlocked';
+$wb['filter_txt'] = 'Søg';
+?>
diff --git a/interface/web/sites/lib/lang/dk_aps_update_packagelist.lng b/interface/web/sites/lib/lang/dk_aps_update_packagelist.lng
new file mode 100644
index 0000000000..91f7d993ef
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_aps_update_packagelist.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['head_txt'] = 'Opdater Pakkeliste';
+$wb['list_desc_txt'] = '?';
+$wb['btn_start_txt'] = 'Opdater Pakkeliste';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['legend_txt'] = 'Her kan du opdatere listen over tilgængelig pakker. Bemærk, at dette kan tage op til fem minutter. Du kan forlade denne side, hvis du har lyst, processen vil fortsætte i baggrunden.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_backup_stats_list.lng b/interface/web/sites/lib/lang/dk_backup_stats_list.lng
new file mode 100644
index 0000000000..0f3803f56a
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_backup_stats_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb["list_head_txt"]       = 'Backup Stats';
+$wb["database_name_txt"]   = '';
+$wb['active_txt']          = 'Active';
+$wb['domain_txt']          = 'Domain';
+$wb['backup_count_txt']    = 'Backup count';
+$wb['backup_server_txt']   = 'Server';
+$wb['backup_interval_txt'] = 'Interval / cnt.';
+$wb['backup_size_txt'] = 'Backupsize';
+?>
diff --git a/interface/web/sites/lib/lang/dk_cron.lng b/interface/web/sites/lib/lang/dk_cron.lng
new file mode 100644
index 0000000000..b1aa23fa69
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_cron.lng
@@ -0,0 +1,26 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Parent website';
+$wb['active_txt'] = 'Aktiv';
+$wb['client_txt'] = 'Kunde';
+$wb['run_min_txt'] = 'Minutes';
+$wb['run_hour_txt'] = 'Hours';
+$wb['run_mday_txt'] = 'Days of month';
+$wb['run_month_txt'] = 'Months';
+$wb['run_wday_txt'] = 'Days of week';
+$wb['command_txt'] = 'Command til run (commands are executed via sh, urls via wget)';
+$wb['limit_cron_txt'] = 'Maximum antal of allowed cron jobs was reached.';
+$wb['limit_cron_frequency_txt'] = 'Cron job frekvensen overskrider den tilladte grænse.';
+$wb['run_min_error_format'] = 'Ugyldigt format for minutes.';
+$wb['run_hour_error_format'] = 'Ugyldigt format for hours.';
+$wb['run_mday_error_format'] = 'Ugyldigt format for days of month.';
+$wb['run_month_error_format'] = 'Ugyldigt format for months.';
+$wb['run_wday_error_format'] = 'Ugyldigt format for days of the week.';
+$wb['command_error_format'] = 'Ugyldigt command format. Please note that in case of an url call only http/https is allowed.';
+$wb['unknown_fieldtype_error'] = 'An unknown field type has been used.';
+$wb['server_id_error_empty'] = 'The server ID er tomt.';
+$wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with http:// as cron command.';
+$wb['command_error_empty'] = 'Command er tom.';
+$wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
+$wb['log_output_txt'] = 'Log output';
+?>
diff --git a/interface/web/sites/lib/lang/dk_cron_list.lng b/interface/web/sites/lib/lang/dk_cron_list.lng
new file mode 100644
index 0000000000..e9f5dc99ff
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_cron_list.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['list_head_txt'] = 'Cron Jobs';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['run_min_txt'] = 'Minute';
+$wb['run_hour_txt'] = 'Hour';
+$wb['run_mday_txt'] = 'Day of month';
+$wb['run_month_txt'] = 'Month';
+$wb['run_wday_txt'] = 'Day of week';
+$wb['command_txt'] = 'Command';
+$wb['add_new_cron_txt'] = 'Tilføj nyt Cron job';
+$wb['parent_domain_id_txt'] = 'Webside';
+?>
diff --git a/interface/web/sites/lib/lang/dk_database.lng b/interface/web/sites/lib/lang/dk_database.lng
new file mode 100644
index 0000000000..e788a05687
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_database.lng
@@ -0,0 +1,49 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['type_txt'] = 'Type';
+$wb['database_name_txt'] = 'Database navn';
+$wb['database_user_txt'] = 'Database bruger';
+$wb['database_ro_user_txt'] = 'Read-only database bruger';
+$wb['optional_txt'] = 'valgfri';
+$wb['database_password_txt'] = 'Database adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['database_charset_txt'] = 'Database charset';
+$wb['select_dbuser_txt'] = 'Vælg database bruger';
+$wb['no_dbuser_txt'] = 'Ingen';
+$wb['remote_access_txt'] = 'Fjernadgang';
+$wb['remote_ips_txt'] = 'Fjernadgang IPs (separate af komma eller leave blank for <i>any</i>)';
+$wb['database_remote_error_ips'] = 'Mindst én af de indtastede ip adresser is ugyldigt.';
+$wb['client_txt'] = 'Kunde';
+$wb['active_txt'] = 'Aktiv';
+$wb['database_client_differs_txt'] = 'The client of the parent web og the database do not match.';
+$wb['database_name_error_empty'] = 'Database navn er tom.';
+$wb['database_name_error_unique'] = 'There is already a database with this name on the server. To get a unique name, e.g. prepend your domæne name til the database name.';
+$wb['database_name_error_regex'] = 'Ugyldigt database name. The database name may contain these characters: a-z, A-Z, 0-9 og the underscore. Length: 2 - 64 characters.';
+$wb['database_user_error_empty'] = 'Database bruger er tom.';
+$wb['database_user_error_unique'] = 'There is already a database bruger with this name on the server. To get a unique name, e.g. prepend your domæne name til the brugername.';
+$wb['database_user_error_regex'] = 'Ugyldigt database bruger name. Brugernavne may contain these characters: a-z, A-Z, 0-9 og the underscore. Length: 2 - 64 characters.';
+$wb['limit_database_txt'] = 'Max. antal of databases is reached.';
+$wb['database_name_change_txt'] = 'The database name can not be changed';
+$wb['database_user_missing_txt'] = 'Vælg en database bruger for denne database.';
+$wb['database_charset_change_txt'] = 'The database charset can not be changed';
+$wb['database_name_error_len'] = 'Database navn - {db} - too long. Max. database name length incl. prefix is 64 chars.';
+$wb['database_user_error_len'] = 'Database brugername - {user} - too long. Max. database brugername length incl. prefix is 16 chars.';
+$wb['parent_domain_id_txt'] = 'Side';
+$wb['database_site_error_empty'] = 'Vælg the site til which the database belongs.';
+$wb['select_site_txt'] = '- Vælg Side -';
+$wb['btn_save_txt'] = 'Gem';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['globalsearch_resultslimit_of_txt'] = 'af';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultater';
+$wb['globalsearch_noresults_text_txt'] = 'Ingen resultater.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultater';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Søg';
+$wb['globalsearch_suggestions_text_txt'] = 'Forslag';
+$wb['limit_database_quota_txt'] = 'Database quota';
+$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
+$wb['limit_database_quota_free_txt'] = 'Max. available DB quota ';
+?>
diff --git a/interface/web/sites/lib/lang/dk_database_admin_list.lng b/interface/web/sites/lib/lang/dk_database_admin_list.lng
new file mode 100644
index 0000000000..145b47f7b2
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_database_admin_list.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['list_head_txt'] = 'Database';
+$wb['active_txt'] = 'Aktiv';
+$wb['remote_access_txt'] = 'Fjernadgang';
+$wb['server_id_txt'] = 'Server';
+$wb['database_user_txt'] = 'Database bruger';
+$wb['database_name_txt'] = 'Database navn';
+$wb['add_new_record_txt'] = 'Tilføj ny Database';
+$wb['sys_groupid_txt'] = 'Kunde';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['type_txt'] = 'Type';
+?>
diff --git a/interface/web/sites/lib/lang/dk_database_list.lng b/interface/web/sites/lib/lang/dk_database_list.lng
new file mode 100644
index 0000000000..08ce180170
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_database_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['list_head_txt'] = 'Database';
+$wb['active_txt'] = 'Aktiv';
+$wb['remote_access_txt'] = 'Fjernadgang';
+$wb['server_id_txt'] = 'Server';
+$wb['database_user_txt'] = 'Database bruger';
+$wb['database_name_txt'] = 'Database navn';
+$wb['add_new_record_txt'] = 'Tilføj ny Database';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['type_txt'] = 'Type';
+?>
diff --git a/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng b/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
new file mode 100644
index 0000000000..e1de70accf
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb["database_txt"] = 'Database';
+$wb["server_name_txt"] = 'Server';
+$wb["client_txt"] = 'Client';
+$wb["used_txt"] = 'Used space';
+$wb["quota_txt"] = 'Quota';
+$wb["percentage_txt"] = 'Used in %';
+?>
diff --git a/interface/web/sites/lib/lang/dk_database_user.lng b/interface/web/sites/lib/lang/dk_database_user.lng
new file mode 100644
index 0000000000..51110c772c
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_database_user.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['database_user_txt'] = 'Database bruger';
+$wb['database_password_txt'] = 'Database adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['client_txt'] = 'Kunde';
+$wb['active_txt'] = 'Aktiv';
+$wb['database_user_error_empty'] = 'Database bruger er tom.';
+$wb['database_user_error_unique'] = 'There is already a database bruger with this name on the server. To get a unique name, e.g. prepend your domain name til the brugername.';
+$wb['database_user_error_regex'] = 'Ugyldigt database bruger name. Brugernavne may contain these characters: a-z, A-Z, 0-9 og the underscore. Length: 2 - 64 characters.';
+$wb['database_user_error_len'] = 'Database brugername - {user} - too long. Max. database brugername length incl. prefix is 16 chars.';
+$wb['btn_save_txt'] = 'Gem';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['globalsearch_resultslimit_of_txt'] = 'af';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultater';
+$wb['globalsearch_noresults_text_txt'] = 'Ingen resultater.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultater';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Søg';
+$wb['globalsearch_suggestions_text_txt'] = 'Forslag';
+$wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_database_user_admin_list.lng b/interface/web/sites/lib/lang/dk_database_user_admin_list.lng
new file mode 100644
index 0000000000..3b640c4d31
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_database_user_admin_list.lng
@@ -0,0 +1,6 @@
+<?php
+$wb['list_head_txt'] = 'Database Bruger';
+$wb['database_user_txt'] = 'Database bruger';
+$wb['add_new_record_txt'] = 'Tilføj ny Bruger';
+$wb['sys_groupid_txt'] = 'Kunde';
+?>
diff --git a/interface/web/sites/lib/lang/dk_database_user_list.lng b/interface/web/sites/lib/lang/dk_database_user_list.lng
new file mode 100644
index 0000000000..50f113408b
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_database_user_list.lng
@@ -0,0 +1,5 @@
+<?php
+$wb['list_head_txt'] = 'Database bruger';
+$wb['database_user_txt'] = 'Database bruger';
+$wb['add_new_record_txt'] = 'Tilføj ny bruger';
+?>
diff --git a/interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng
new file mode 100644
index 0000000000..03894607db
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb["list_head_txt"] = 'FTP traffic';
+$wb["domain_txt"] = 'Domain';
+$wb["this_month_txt"] = 'This month';
+$wb["last_month_txt"] = 'Last month';
+$wb["this_year_txt"] = 'This year';
+$wb["last_year_txt"] = 'Last year';
+$wb["sum_txt"] = 'Sum (Download + Upload)';
+$wb["in_out_txt"] = 'DL/UL';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/dk_ftp_user.lng b/interface/web/sites/lib/lang/dk_ftp_user.lng
new file mode 100644
index 0000000000..a5943cdff7
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_ftp_user.lng
@@ -0,0 +1,35 @@
+<?php
+$wb['uid_txt'] = 'Bruger identifier (UID)';
+$wb['gid_txt'] = 'Gruppe identifier (GID)';
+$wb['dir_txt'] = 'Mappe';
+$wb['quota_files_txt'] = 'Filekvote';
+$wb['quota_files_unity_txt'] = 'Files';
+$wb['ul_ratio_txt'] = 'Uploadratio';
+$wb['dl_ratio_txt'] = 'Downloadratio';
+$wb['ul_bandwidth_txt'] = 'Uploadbandwidth';
+$wb['dl_bandwidth_txt'] = 'Downloadbandwidth';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['username_txt'] = 'Brugernavn';
+$wb['password_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['quota_size_txt'] = 'Harddisk-Kvote';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_ftp_user_txt'] = 'Max. antal of FTP brugere for din konto er nået.';
+$wb['username_error_empty'] = 'Brugernavn er tomt.';
+$wb['username_error_unique'] = 'Brugernavne skal være unikke.';
+$wb['username_error_regex'] = 'Brugernavne contains charachters that are not allowed.';
+$wb['quota_size_error_empty'] = 'Kvote er tomt.';
+$wb['uid_error_empty'] = 'GID er tom.';
+$wb['directory_error_empty'] = 'Mappe er tom.';
+$wb['directory_error_notinweb'] = 'Mappe not inside of web root mappe.';
+$wb['parent_domain_id_error_empty'] = 'Ingen website selected.';
+$wb['quota_size_error_regex'] = 'Kvote: indtast -1 for ubegrænset eller et tal > 0';
+$wb['dir_dot_error'] = 'Ingen .. in path allowed.';
+$wb['dir_slashdot_error'] = 'Ingen ./ i stien er tilladt.';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['expires_txt'] = 'Expire at';
+?>
diff --git a/interface/web/sites/lib/lang/dk_ftp_user_list.lng b/interface/web/sites/lib/lang/dk_ftp_user_list.lng
new file mode 100644
index 0000000000..9c6b192fe8
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_ftp_user_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'FTP-Bruger';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['username_txt'] = 'Brugernavn';
+$wb['add_new_record_txt'] = 'Tilføj ny FTP-Bruger';
+?>
diff --git a/interface/web/sites/lib/lang/dk_shell_user.lng b/interface/web/sites/lib/lang/dk_shell_user.lng
new file mode 100644
index 0000000000..0cbc138fc7
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_shell_user.lng
@@ -0,0 +1,36 @@
+<?php
+$wb['puser_txt'] = 'Web Brugernavn';
+$wb['pgroup_txt'] = 'Web Gruppe';
+$wb['shell_txt'] = 'Shell';
+$wb['dir_txt'] = 'Base Dir';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Side';
+$wb['username_txt'] = 'Brugernavn';
+$wb['password_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['chroot_txt'] = 'Chroot Shell';
+$wb['quota_size_txt'] = 'Kvote';
+$wb['active_txt'] = 'Aktiv';
+$wb['username_error_empty'] = 'Brugernavn er er tom.';
+$wb['username_error_unique'] = 'Brugernavne skal være unikke.';
+$wb['username_error_regex'] = 'Brugernavne contains characters that are not allowed.';
+$wb['quota_size_error_empty'] = 'Kvote er er tom.';
+$wb['uid_error_empty'] = 'GID er tom.';
+$wb['directory_error_empty'] = 'Mappe er tom.';
+$wb['limit_shell_user_txt'] = 'Max antal of shell brugere is reached.';
+$wb['parent_domain_id_error_empty'] = 'Ingen website selected.';
+$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
+$wb['dir_dot_error'] = 'Ingen .. in path allowed.';
+$wb['dir_slashdot_error'] = 'Ingen ./ in path allowed.';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['username_must_not_exceed_32_chars_txt'] = 'Brugernavne must not exceed 32 characters.';
+$wb['username_not_allowed_txt'] = 'Brugernavne is not allowed.';
+$wb['invalid_system_user_or_group_txt'] = 'Ugyldigt system bruger eller gruppe';
+$wb['directory_error_regex'] = 'Ugyldigt mappe';
+$wb['shell_error_regex'] = 'Ugyldigt shell';
+$wb['invalid_username_txt'] = 'Ugyldigt Brugernavn';
+$wb['directory_error_notinweb'] = 'The mappe has til be inside the web root.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_shell_user_list.lng b/interface/web/sites/lib/lang/dk_shell_user_list.lng
new file mode 100644
index 0000000000..d2f57f59e8
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_shell_user_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Shell Bruger';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Side';
+$wb['username_txt'] = 'Brugernavn';
+$wb['add_new_record_txt'] = 'Tilføj ny Shell-Bruger';
+?>
diff --git a/interface/web/sites/lib/lang/dk_user_quota_stats_list.lng b/interface/web/sites/lib/lang/dk_user_quota_stats_list.lng
new file mode 100644
index 0000000000..d0dde4c3dd
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_user_quota_stats_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Webside harddisk kvote';
+$wb['domain_txt'] = 'Domæne/Webside';
+$wb['system_user_txt'] = 'Linux bruger';
+$wb['used_txt'] = 'Brugt plads';
+$wb['hard_txt'] = 'Hard grænse';
+$wb['soft_txt'] = 'Soft grænse';
+$wb['files_txt'] = 'Enkelte filer';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_aliasdomain.lng b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng
new file mode 100644
index 0000000000..98b7e4d898
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng
@@ -0,0 +1,115 @@
+<?php
+$wb['domain_txt'] = 'Alias-domæne';
+$wb['backup_interval_txt'] = 'Backup interval';
+$wb['backup_copies_txt'] = 'Antal af backup kopier';
+$wb['ssl_state_txt'] = 'Status';
+$wb['ssl_locality_txt'] = 'Lokalitet';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Enhed';
+$wb['ssl_country_txt'] = 'Land';
+$wb['ssl_key_txt'] = 'SSL Key';
+$wb['ssl_request_txt'] = 'SSL Anmodning';
+$wb['ssl_cert_txt'] = 'SSL Certifikat';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Handling';
+$wb['ssl_domain_txt'] = 'SSL Domæne';
+$wb['server_id_txt'] = 'Server';
+$wb['web_folder_error_regex'] = 'Ugyldig mappe indtastet. Indtast ikke en skråstreg.';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Øvre Webside';
+$wb['redirect_type_txt'] = 'Omdiriger Type';
+$wb['redirect_path_txt'] = 'Omdiriger Sti';
+$wb['active_txt'] = 'Aktiv';
+$wb['document_root_txt'] = 'Dokumentrod';
+$wb['system_user_txt'] = 'Linux Bruger';
+$wb['system_group_txt'] = 'Linux Gruppe';
+$wb['ip_address_txt'] = 'IPv4-Adresse';
+$wb['ipv6_address_txt'] = 'IPv6-Adresse';
+$wb['vhost_type_txt'] = 'VHost Type';
+$wb['hd_quota_txt'] = 'Harddisk Kvote';
+$wb['traffic_quota_txt'] = 'Trafik Kvote';
+$wb['cgi_txt'] = 'CGI';
+$wb['ssi_txt'] = 'SSI';
+$wb['errordocs_txt'] = 'Ejer Fejl-Dokumenter';
+$wb['subdomain_txt'] = 'Auto Sub-domæne';
+$wb['ssl_txt'] = 'SSL';
+$wb['suexec_txt'] = 'SuEXEC';
+$wb['php_txt'] = 'PHP';
+$wb['client_txt'] = 'Kunde';
+$wb['limit_web_domain_txt'] = 'Max. antal af web domæner for din konto er nået.';
+$wb['limit_web_aliasdomain_txt'] = 'Max. antal af aliasdomains for din konto er nået.';
+$wb['limit_web_subdomain_txt'] = 'Max. antal af web sub-domæner for din konto er nået.';
+$wb['apache_directives_txt'] = 'Apache Directives';
+$wb['domain_error_empty'] = 'Domæne er tomt.';
+$wb['domain_error_unique'] = 'Der er allerede en webside eller sub/aliasdomæne med dette domænenavn.';
+$wb['domain_error_regex'] = 'Domæne navn er ugyldigt.';
+$wb['domain_error_autosub'] = 'Der er allerede et subdomæne med disse indstillinger.';
+$wb['hd_quota_error_empty'] = 'Harddisk kvote er 0 eller tom.';
+$wb['traffic_quota_error_empty'] = 'Trafik kvote er tomt.';
+$wb['error_ssl_state_empty'] = 'SSL Status er tomt.';
+$wb['error_ssl_locality_empty'] = 'SSL Lokalitet er tomt.';
+$wb['error_ssl_organisation_empty'] = 'SSL Organisation er tomt.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Enhed er tomt.';
+$wb['error_ssl_country_empty'] = 'SSL Land er tomt.';
+$wb['error_ssl_cert_empty'] = 'SSL Certifikat felt er tomt';
+$wb['client_group_id_txt'] = 'Kunde';
+$wb['stats_password_txt'] = 'Sæt Webstatistik adgangskode';
+$wb['allow_override_txt'] = 'Apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Max. tilgængelig Harddisk Kvote';
+$wb['ssl_state_error_regex'] = 'Ugyldigt SSL Status. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_locality_error_regex'] = 'Ugyldigt SSL Locality. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_organisation_error_regex'] = 'Ugyldigt SSL Organisation. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_organistaion_unit_error_regex'] = 'Ugyldigt SSL Organisation Unit. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_country_error_regex'] = 'Ugyldigt SSL Land. Gyldige tegn er: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Max. tilgængelig Trafik Kvote';
+$wb['redirect_error_regex'] = 'Ugyldigt redirect path. Valid redirects are for example: /test/ eller http://www.domain.tld/test/';
+$wb['php_open_basedir_txt'] = 'PHP open_basedir';
+$wb['traffic_quota_exceeded_txt'] = 'Trafik kvote exceeded';
+$wb['ruby_txt'] = 'Ruby';
+$wb['stats_user_txt'] = 'Webstatistik brugername';
+$wb['stats_type_txt'] = 'Webstatistik program';
+$wb['custom_php_ini_txt'] = 'Custom php.ini indstillinger';
+$wb['none_txt'] = 'Ingen';
+$wb['disabled_txt'] = 'Deaktiveret';
+$wb['no_redirect_txt'] = 'Ingen redirect';
+$wb['no_flag_txt'] = 'Ingen flag';
+$wb['save_certificate_txt'] = 'Gem certificate';
+$wb['create_certificate_txt'] = 'Create certificate';
+$wb['delete_certificate_txt'] = 'Slet certificate';
+$wb['nginx_directives_txt'] = 'nginx Directives';
+$wb['seo_redirect_txt'] = 'SEO Omdiriger';
+$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
+$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP adresse.';
+$wb['python_txt'] = 'Python';
+$wb['perl_txt'] = 'Perl';
+$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm indstillinger must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
+$wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.';
+$wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.';
+$wb['fastcgi_php_version_txt'] = 'PHP Version';
+$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order til use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['available_php_directive_snippets_txt'] = 'Tilgængelig PHP Direktiv Kodestykker:';
+$wb['available_apache_directive_snippets_txt'] = 'Tilgængelig Apache Direktiv Kodestykker:';
+$wb['available_nginx_directive_snippets_txt'] = 'Tilgængelig nginx Direktiv Kodestykker:';
+$wb['proxy_directives_txt'] = 'Proxy Directives';
+$wb['available_proxy_directive_snippets_txt'] = 'Tilgængelig Proxy Direktiv Kodestykker:';
+$wb['Domain'] = 'Alias-domæne';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/dk_web_aliasdomain_list.lng
new file mode 100644
index 0000000000..d8669bdb9a
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_aliasdomain_list.lng
@@ -0,0 +1,14 @@
+<?php
+$wb['list_head_txt'] = 'Alias-domæne';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['domain_txt'] = 'Alias-domæne';
+$wb['add_new_record_txt'] = 'Tilføj nyt aliasdomain';
+$wb['domain_error_empty'] = 'Domæne er er tom.';
+$wb['domain_error_unique'] = 'Domæne skal være unikke.';
+$wb['domain_error_regex'] = 'Domæne name ugyldigt.';
+$wb['no_redirect_txt'] = 'Ingen redirect';
+$wb['no_flag_txt'] = 'Ingen flag';
+$wb['none_txt'] = 'Ingen';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_backup_list.lng b/interface/web/sites/lib/lang/dk_web_backup_list.lng
new file mode 100644
index 0000000000..eb45c4e89b
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_backup_list.lng
@@ -0,0 +1,21 @@
+<?php
+$wb['list_head_txt'] = 'Existing backups';
+$wb['date_txt'] = 'Dato';
+$wb['backup_type_txt'] = 'Type';
+$wb['filename_txt'] = 'Backup file';
+$wb['restore_backup_txt'] = 'Restore';
+$wb['download_backup_txt'] = 'Download';
+$wb['download_info_txt'] = 'The backup file will be tilgængelig for download in the backup folder of the website in a few minutes.';
+$wb['restore_info_txt'] = 'Restore of the backup has been started. This action takes several minutes til be completed.';
+$wb['restore_confirm_txt'] = 'Restoring will overwrite existing files in your website. Do you really want til restore this backup?';
+$wb['download_pending_txt'] = 'There is already a pending backup download job.';
+$wb['restore_pending_txt'] = 'There is already a pending backup restore job.';
+$wb['backup_type_mysql'] = 'MySQL Database';
+$wb['backup_type_web'] = 'Webside files';
+$wb['filesize_txt'] = 'Filesize';
+$wb['delete_backup_txt'] = 'Delete Backup';
+$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.';
+$wb['delete_confirm_txt'] = 'Really delete this backup?';
+$wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
+$wb['backup_type_mongodb'] = 'MongoDB Database';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng
new file mode 100644
index 0000000000..cd033ae573
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng
@@ -0,0 +1,118 @@
+<?php
+$wb['ssl_state_txt'] = 'State';
+$wb['ssl_locality_txt'] = 'Locality';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
+$wb['ssl_country_txt'] = 'Country';
+$wb['ssl_request_txt'] = 'SSL Request';
+$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Action';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domain';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Parent Website';
+$wb['redirect_type_txt'] = 'Redirect Type';
+$wb['redirect_path_txt'] = 'Redirect Path';
+$wb['active_txt'] = 'Active';
+$wb['document_root_txt'] = 'Documentroot';
+$wb['system_user_txt'] = 'Linux User';
+$wb['system_group_txt'] = 'Linux Group';
+$wb['ip_address_txt'] = 'IP-Address';
+$wb['vhost_type_txt'] = 'VHost Type';
+$wb['hd_quota_txt'] = 'Harddisk Quota';
+$wb['traffic_quota_txt'] = 'Traffic Quaota';
+$wb['cgi_txt'] = 'CGI';
+$wb['ssi_txt'] = 'SSI';
+$wb['ssl_txt'] = 'SSL';
+$wb['suexec_txt'] = 'SuEXEC';
+$wb['php_txt'] = 'PHP';
+$wb['client_txt'] = 'Client';
+$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.';
+$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.';
+$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.';
+$wb['apache_directives_txt'] = 'Apache directives';
+$wb['domain_error_empty'] = 'Domain is empty.';
+$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.';
+$wb['domain_error_regex'] = 'Domain name invalid.';
+$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
+$wb['host_txt'] = 'Host';
+$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/';
+$wb['no_redirect_txt'] = 'No redirect';
+$wb['no_flag_txt'] = 'No flag';
+$wb['proxy_directives_txt'] = 'Proxy Directives';
+$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
+$wb['error_proxy_requires_url'] = 'Redirect Type "proxy" requires a URL as the redirect path.';
+$wb['backup_interval_txt'] = 'Backup interval';
+$wb['backup_copies_txt'] = 'Number of backup copies';
+$wb['ssl_key_txt'] = 'SSL Key';
+$wb['ssl_domain_txt'] = 'SSL Domain';
+$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
+$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['errordocs_txt'] = 'Own Error-Documents';
+$wb['subdomain_txt'] = 'Auto-Subdomain';
+$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
+$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
+$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
+$wb['error_ssl_state_empty'] = 'SSL State is empty.';
+$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
+$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
+$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
+$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
+$wb['client_group_id_txt'] = 'Client';
+$wb['stats_password_txt'] = 'Set Webstatistics password';
+$wb['allow_override_txt'] = 'Apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota';
+$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_';
+$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_';
+$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_';
+$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_';
+$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota';
+$wb['php_open_basedir_txt'] = 'PHP open_basedir';
+$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['ruby_txt'] = 'Ruby';
+$wb['stats_user_txt'] = 'Webstatistics username';
+$wb['stats_type_txt'] = 'Webstatistics program';
+$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
+$wb['none_txt'] = 'None';
+$wb['disabled_txt'] = 'Disabled';
+$wb['save_certificate_txt'] = 'Save certificate';
+$wb['create_certificate_txt'] = 'Create certificate';
+$wb['delete_certificate_txt'] = 'Delete certificate';
+$wb['nginx_directives_txt'] = 'nginx Directives';
+$wb['seo_redirect_txt'] = 'SEO Redirect';
+$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
+$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['python_txt'] = 'Python';
+$wb['perl_txt'] = 'Perl';
+$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
+$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
+$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
+$wb['fastcgi_php_version_txt'] = 'PHP Version';
+$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
+$wb['generate_password_txt'] = 'Generate Password';
+$wb['repeat_password_txt'] = 'Repeat Password';
+$wb['password_mismatch_txt'] = 'The passwords do not match.';
+$wb['password_match_txt'] = 'The passwords do match.';
+$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
+$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
+$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
+$wb['Domain'] = 'Aliasdomain';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_childdomain_list.lng b/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
new file mode 100644
index 0000000000..db6924956e
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['list_head_txt'] = 'Subdomains';
+$wb['active_txt'] = 'Active';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Website';
+$wb['domain_txt'] = 'Subdomain';
+$wb['add_new_subdomain_txt'] = 'Add new Subdomain';
+$wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['domain_error_empty'] = 'Domain is empty.';
+$wb['domain_error_unique'] = 'Domain must be unique.';
+$wb['domain_error_regex'] = 'Domain name invalid.';
+$wb['no_redirect_txt'] = 'No redirect';
+$wb['no_flag_txt'] = 'No flag';
+$wb['none_txt'] = 'None';
+?>
+
diff --git a/interface/web/sites/lib/lang/dk_web_directive_snippets.lng b/interface/web/sites/lib/lang/dk_web_directive_snippets.lng
new file mode 100644
index 0000000000..fc74e4cf0c
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_directive_snippets.lng
@@ -0,0 +1,3 @@
+<?php
+$wb['directive_snippets_id_txt'] = 'Desired configuration';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/dk_web_domain.lng b/interface/web/sites/lib/lang/dk_web_domain.lng
new file mode 100644
index 0000000000..6124ee0676
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_domain.lng
@@ -0,0 +1,136 @@
+<?php
+$wb['backup_interval_txt'] = 'Backup interval';
+$wb['backup_copies_txt'] = 'Antal af backup kopier';
+$wb['ssl_state_txt'] = 'Kommune';
+$wb['ssl_locality_txt'] = 'Lokalitet';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Enhed';
+$wb['ssl_country_txt'] = 'Land';
+$wb['ssl_key_txt'] = 'SSL Key';
+$wb['ssl_request_txt'] = 'SSL Anmodning';
+$wb['ssl_cert_txt'] = 'SSL Certifikat';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Handling';
+$wb['ssl_domain_txt'] = 'SSL Domæne';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['web_folder_error_regex'] = 'Ugyldigt folder entered. Please do not enter a slash.';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Parent Webside';
+$wb['redirect_type_txt'] = 'Omdiriger Type';
+$wb['redirect_path_txt'] = 'Omdiriger Path';
+$wb['active_txt'] = 'Aktiv';
+$wb['document_root_txt'] = 'Documentroot';
+$wb['system_user_txt'] = 'Linux Bruger';
+$wb['system_group_txt'] = 'Linux Gruppe';
+$wb['ip_address_txt'] = 'IPv4-Adresse';
+$wb['ipv6_address_txt'] = 'IPv6-Adresse';
+$wb['vhost_type_txt'] = 'VHost Type';
+$wb['hd_quota_txt'] = 'Harddisk Kvote';
+$wb['traffic_quota_txt'] = 'Trafik Kvote';
+$wb['cgi_txt'] = 'CGI';
+$wb['ssi_txt'] = 'SSI';
+$wb['errordocs_txt'] = 'Own Error-Documents';
+$wb['subdomain_txt'] = 'Auto-Sub-domæne';
+$wb['ssl_txt'] = 'SSL';
+$wb['suexec_txt'] = 'SuEXEC';
+$wb['php_txt'] = 'PHP';
+$wb['client_txt'] = 'Kunde';
+$wb['limit_web_domain_txt'] = 'Max. antal of web domæner for din konto er nået.';
+$wb['limit_web_aliasdomain_txt'] = 'Max. antal of aliasdomains for din konto er nået.';
+$wb['limit_web_subdomain_txt'] = 'Max. antal of web sub-domæner for din konto er nået.';
+$wb['apache_directives_txt'] = 'Apache Directives';
+$wb['domain_error_empty'] = 'Domæne er tomt.';
+$wb['domain_error_unique'] = 'There is already a website eller sub / aliasdomain with this domain name.';
+$wb['domain_error_regex'] = 'Domæne name ugyldigt.';
+$wb['domain_error_autosub'] = 'There is already a subdomain with these indstillinger.';
+$wb['hd_quota_error_empty'] = 'Harddisk kvote is 0 eller tom.';
+$wb['traffic_quota_error_empty'] = 'Trafik kvote er tomt.';
+$wb['error_ssl_state_empty'] = 'SSL Kommune er tomt.';
+$wb['error_ssl_locality_empty'] = 'SSL Locality er tomt.';
+$wb['error_ssl_organisation_empty'] = 'SSL Organisation er tomt.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit er tomt.';
+$wb['error_ssl_country_empty'] = 'SSL Land er tomt.';
+$wb['error_ssl_cert_empty'] = 'SSL Certificate field er tomt';
+$wb['client_group_id_txt'] = 'Kunde';
+$wb['stats_password_txt'] = 'Sæt Webstatistik adgangskode';
+$wb['allow_override_txt'] = 'Apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Max. tilgængelig Harddisk Kvote';
+$wb['ssl_state_error_regex'] = 'Ugyldigt SSL Kommune. Gyldige tegn er: a-z, 0-9 og .,-_&äöüÄÖÜ';
+$wb['ssl_locality_error_regex'] = 'Ugyldigt SSL Locality. Gyldige tegn er: a-z, 0-9 og .,-_&äöüÄÖÜ';
+$wb['ssl_organisation_error_regex'] = 'Ugyldigt SSL Organisation. Gyldige tegn er: a-z, 0-9 og .,-_&äöüÄÖÜ';
+$wb['ssl_organistaion_unit_error_regex'] = 'Ugyldigt SSL Organisation Unit. Gyldige tegn er: a-z, 0-9 og .,-_&äöüÄÖÜ';
+$wb['ssl_country_error_regex'] = 'Ugyldigt SSL Land. Gyldige tegn er: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Max. tilgængelig Trafik Kvote';
+$wb['redirect_error_regex'] = 'Ugyldigt redirect path. Valid redirects are for example: /test/ eller http://www.domain.tld/test/';
+$wb['php_open_basedir_txt'] = 'PHP open_basedir';
+$wb['traffic_quota_exceeded_txt'] = 'Trafik kvote exceeded';
+$wb['ruby_txt'] = 'Ruby';
+$wb['stats_user_txt'] = 'Webstatistik brugername';
+$wb['stats_type_txt'] = 'Webstatistik program';
+$wb['custom_php_ini_txt'] = 'Custom php.ini indstillinger';
+$wb['none_txt'] = 'Ingen';
+$wb['disabled_txt'] = 'Deaktiveret';
+$wb['no_redirect_txt'] = 'Ingen redirect';
+$wb['no_flag_txt'] = 'Ingen flag';
+$wb['save_certificate_txt'] = 'Gem certificate';
+$wb['create_certificate_txt'] = 'Create certificate';
+$wb['delete_certificate_txt'] = 'Slet certificate';
+$wb['nginx_directives_txt'] = 'nginx Directives';
+$wb['seo_redirect_txt'] = 'SEO Omdiriger';
+$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Brug Socket For PHP-FPM';
+$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP adresse.';
+$wb['python_txt'] = 'Python';
+$wb['perl_txt'] = 'Perl';
+$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm indstillinger must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
+$wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.';
+$wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.';
+$wb['fastcgi_php_version_txt'] = 'PHP Version';
+$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['available_php_directive_snippets_txt'] = 'Tilgængelig PHP Direktiv Kodestykker:';
+$wb['available_apache_directive_snippets_txt'] = 'Tilgængelig Apache Direktiv Kodestykker:';
+$wb['available_nginx_directive_snippets_txt'] = 'Tilgængelig nginx Direktiv Kodestykker:';
+$wb['proxy_directives_txt'] = 'Proxy Directives';
+$wb['available_proxy_directive_snippets_txt'] = 'Tilgængelig Proxy Direktiv Kodestykker:';
+$wb['no_server_error'] = 'Ingen server er valgt.';
+$wb['no_backup_txt'] = 'Ingen backup';
+$wb['daily_backup_txt'] = 'Daily';
+$wb['weekly_backup_txt'] = 'Weekly';
+$wb['monthly_backup_txt'] = 'Monthly';
+$wb['rewrite_rules_txt'] = 'Rewrite Rules';
+$wb['invalid_rewrite_rules_txt'] = 'Ugyldigt Rewrite Rules';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
+$wb['configuration_error_txt'] = 'KONFIGURATION FEJL';
+$wb['variables_txt'] = 'Variables';
+$wb['added_by_txt'] = 'Tilføjet af';
+$wb['added_date_txt'] = 'Tilføjet d.';
+$wb['backup_excludes_txt'] = 'Excluded Directories';
+$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'The excluded directories contain ugyldigt characters.';
+$wb['invalid_custom_php_ini_settings_txt'] = 'Ugyldigt php.ini indstillinger';
+$wb['invalid_system_user_or_group_txt'] = 'Ugyldigt system bruger eller gruppe';
+$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security indstillinger:';
+$wb['http_port_txt'] = 'HTTP Port';
+$wb['https_port_txt'] = 'HTTPS Port';
+$wb['http_port_error_regex'] = 'HTTP Port invalid.';
+$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_domain_admin_list.lng b/interface/web/sites/lib/lang/dk_web_domain_admin_list.lng
new file mode 100644
index 0000000000..72c2752497
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_domain_admin_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['sys_groupid_txt'] = 'Kunde';
+$wb['list_head_txt'] = 'Websider';
+$wb['domain_id_txt'] = 'ID';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['add_new_record_txt'] = 'Tilføj ny website';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_domain_list.lng b/interface/web/sites/lib/lang/dk_web_domain_list.lng
new file mode 100644
index 0000000000..d3c4fbe333
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_domain_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Websider';
+$wb['domain_id_txt'] = 'ID';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['add_new_record_txt'] = 'Tilføj ny website';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_folder.lng b/interface/web/sites/lib/lang/dk_web_folder.lng
new file mode 100644
index 0000000000..04f86bf31e
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_folder.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['path_txt'] = 'Path';
+$wb['active_txt'] = 'Aktiv';
+$wb['path_error_regex'] = 'Ugyldigt folder path.';
+$wb['error_folder_already_protected_txt'] = 'There is already a post for this folder.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_folder_list.lng b/interface/web/sites/lib/lang/dk_web_folder_list.lng
new file mode 100644
index 0000000000..8c7ed3434c
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_folder_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Mappe';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['path_txt'] = 'Path';
+$wb['add_new_record_txt'] = 'Tilføj ny Mappe';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_folder_user.lng b/interface/web/sites/lib/lang/dk_web_folder_user.lng
new file mode 100644
index 0000000000..1a176bdf1e
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_folder_user.lng
@@ -0,0 +1,14 @@
+<?php
+$wb['web_folder_id_txt'] = 'Mappe';
+$wb['username_txt'] = 'Brugernavn';
+$wb['password_txt'] = 'Adgangskode';
+$wb['active_txt'] = 'Aktiv';
+$wb['folder_error_empty'] = 'Ingen web folder selected.';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['no_folder_perm'] = 'You have no permission for this folder.';
+$wb['error_user_exists_already_txt'] = 'There is already a post for this bruger.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_folder_user_list.lng b/interface/web/sites/lib/lang/dk_web_folder_user_list.lng
new file mode 100644
index 0000000000..1ba2d75e6a
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_folder_user_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Mappe Bruger';
+$wb['active_txt'] = 'Aktiv';
+$wb['web_folder_id_txt'] = 'Mappe';
+$wb['username_txt'] = 'Brugernavn';
+$wb['add_new_record_txt'] = 'Tilføj ny Mappe Bruger';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_sites_stats_list.lng b/interface/web/sites/lib/lang/dk_web_sites_stats_list.lng
new file mode 100644
index 0000000000..7d5e6c0dbb
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_sites_stats_list.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['list_head_txt'] = 'Web trafik';
+$wb['domain_txt'] = 'Domæne';
+$wb['this_month_txt'] = 'Denne måned';
+$wb['last_month_txt'] = 'Forrige måned';
+$wb['this_year_txt'] = 'Dette år';
+$wb['last_year_txt'] = 'Forrige år';
+$wb['sum_txt'] = 'Sum';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_subdomain.lng b/interface/web/sites/lib/lang/dk_web_subdomain.lng
new file mode 100644
index 0000000000..4fffd59365
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_subdomain.lng
@@ -0,0 +1,50 @@
+<?php
+$wb['ssl_state_txt'] = 'Kommune';
+$wb['ssl_locality_txt'] = 'Locality';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
+$wb['ssl_country_txt'] = 'Land';
+$wb['ssl_request_txt'] = 'SSL Anmodning';
+$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Handling';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Parent Webside';
+$wb['redirect_type_txt'] = 'Omdiriger Type';
+$wb['redirect_path_txt'] = 'Omdiriger Path';
+$wb['active_txt'] = 'Aktiv';
+$wb['document_root_txt'] = 'Documentroot';
+$wb['system_user_txt'] = 'Linux Bruger';
+$wb['system_group_txt'] = 'Linux Gruppe';
+$wb['ip_address_txt'] = 'IP-Adresse';
+$wb['vhost_type_txt'] = 'VHost Type';
+$wb['hd_quota_txt'] = 'Harddisk Kvote';
+$wb['traffic_quota_txt'] = 'Trafik Quaota';
+$wb['cgi_txt'] = 'CGI';
+$wb['ssi_txt'] = 'SSI';
+$wb['ssl_txt'] = 'SSL';
+$wb['suexec_txt'] = 'SuEXEC';
+$wb['php_txt'] = 'PHP';
+$wb['client_txt'] = 'Kunde';
+$wb['limit_web_domain_txt'] = 'Max. antal of web domæner for din konto er nået.';
+$wb['limit_web_aliasdomain_txt'] = 'Max. antal of aliasdomains for din konto er nået.';
+$wb['limit_web_subdomain_txt'] = 'Max. antal of web sub-domæner for din konto er nået.';
+$wb['apache_directives_txt'] = 'Apache directives';
+$wb['domain_error_empty'] = 'Domæne er tomt.';
+$wb['domain_error_unique'] = 'There is already a website eller sub / aliasdomain with this domain name.';
+$wb['domain_error_regex'] = 'Domæne name ugyldigt.';
+$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
+$wb['host_txt'] = 'Host';
+$wb['redirect_error_regex'] = 'Ugyldigt redirect path. Valid redirects are for example: /test/ eller http://www.domain.tld/test/';
+$wb['no_redirect_txt'] = 'Ingen redirect';
+$wb['no_flag_txt'] = 'Ingen flag';
+$wb['proxy_directives_txt'] = 'Proxy Directives';
+$wb['available_proxy_directive_snippets_txt'] = 'Tilgængelig Proxy Direktiv Kodestykker:';
+$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.';
+$wb['http_port_txt'] = 'HTTP Port';
+$wb['https_port_txt'] = 'HTTPS Port';
+$wb['http_port_error_regex'] = 'HTTP Port invalid.';
+$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_subdomain_list.lng b/interface/web/sites/lib/lang/dk_web_subdomain_list.lng
new file mode 100644
index 0000000000..a54e344971
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_subdomain_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Sub-domæner';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['domain_txt'] = 'Sub-domæne';
+$wb['add_new_record_txt'] = 'Tilføj nyt sub-domæne';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
new file mode 100644
index 0000000000..7e77d429a4
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
@@ -0,0 +1,155 @@
+<?php
+$wb['backup_interval_txt'] = 'Backup interval';
+$wb['backup_copies_txt'] = 'Number of backup copies';
+$wb['ssl_state_txt'] = 'State';
+$wb['ssl_locality_txt'] = 'Locality';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
+$wb['ssl_country_txt'] = 'Country';
+$wb['ssl_key_txt'] = 'SSL Key';
+$wb['ssl_request_txt'] = 'SSL Request';
+$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Action';
+$wb['ssl_domain_txt'] = 'SSL Domain';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domain';
+$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Parent Website';
+$wb['redirect_type_txt'] = 'Redirect Type';
+$wb['redirect_path_txt'] = 'Redirect Path';
+$wb['active_txt'] = 'Active';
+$wb['document_root_txt'] = 'Documentroot';
+$wb['system_user_txt'] = 'Linux User';
+$wb['system_group_txt'] = 'Linux Group';
+$wb['ip_address_txt'] = 'IPv4-Address';
+$wb['ipv6_address_txt'] = 'IPv6-Address';
+$wb['vhost_type_txt'] = 'VHost Type';
+$wb['hd_quota_txt'] = 'Harddisk Quota';
+$wb['traffic_quota_txt'] = 'Traffic Quota';
+$wb['cgi_txt'] = 'CGI';
+$wb['ssi_txt'] = 'SSI';
+$wb['errordocs_txt'] = 'Own Error-Documents';
+$wb['subdomain_txt'] = 'Auto-Subdomain';
+$wb['ssl_txt'] = 'SSL';
+$wb['suexec_txt'] = 'SuEXEC';
+$wb['php_txt'] = 'PHP';
+$wb['client_txt'] = 'Client';
+$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.';
+$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.';
+$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.';
+$wb['apache_directives_txt'] = 'Apache Directives';
+$wb['domain_error_empty'] = 'Domain is empty.';
+$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.';
+$wb['domain_error_regex'] = 'Domain name invalid.';
+$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
+$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
+$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
+$wb['error_ssl_state_empty'] = 'SSL State is empty.';
+$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
+$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
+$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
+$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
+$wb['client_group_id_txt'] = 'Client';
+$wb['stats_password_txt'] = 'Set Webstatistics password';
+$wb['allow_override_txt'] = 'Apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota';
+$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
+$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota';
+$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/';
+$wb['php_open_basedir_txt'] = 'PHP open_basedir';
+$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['ruby_txt'] = 'Ruby';
+$wb['stats_user_txt'] = 'Webstatistics username';
+$wb['stats_type_txt'] = 'Webstatistics program';
+$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
+$wb['none_txt'] = 'None';
+$wb['disabled_txt'] = 'Disabled';
+$wb['no_redirect_txt'] = 'No redirect';
+$wb['no_flag_txt'] = 'No flag';
+$wb['save_certificate_txt'] = 'Save certificate';
+$wb['create_certificate_txt'] = 'Create certificate';
+$wb['delete_certificate_txt'] = 'Delete certificate';
+$wb['nginx_directives_txt'] = 'nginx Directives';
+$wb['seo_redirect_txt'] = 'SEO Redirect';
+$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
+$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['python_txt'] = 'Python';
+$wb['perl_txt'] = 'Perl';
+$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
+$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
+$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
+$wb['fastcgi_php_version_txt'] = 'PHP Version';
+$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
+$wb['generate_password_txt'] = 'Generate Password';
+$wb['repeat_password_txt'] = 'Repeat Password';
+$wb['password_mismatch_txt'] = 'The passwords do not match.';
+$wb['password_match_txt'] = 'The passwords do match.';
+$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
+$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
+$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
+$wb['proxy_directives_txt'] = 'Proxy Directives';
+$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
+$wb['no_server_error'] = 'No server selected.';
+$wb['no_backup_txt'] = 'No backup';
+$wb['daily_backup_txt'] = 'Daily';
+$wb['weekly_backup_txt'] = 'Weekly';
+$wb['monthly_backup_txt'] = 'Monthly';
+$wb['rewrite_rules_txt'] = 'Rewrite Rules';
+$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
+$wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.';
+$wb['variables_txt'] = 'Variables';
+$wb['added_by_txt'] = 'Added by';
+$wb['added_date_txt'] = 'Added date';
+$wb['backup_excludes_txt'] = 'Excluded Directories';
+$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
+$wb['web_folder_txt'] = 'Web folder';
+$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.';
+$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
+$wb['host_txt'] = 'Hostname';
+$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
+$wb['variables_txt'] = 'Variables';
+$wb['backup_excludes_txt'] = 'Excluded Directories';
+$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
+$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
+$wb['btn_save_txt'] = "Save";
+$wb['btn_cancel_txt'] = "Cancel";
+$wb['enable_spdy_txt'] = 'Enable SPDY';
+$wb['load_client_data_txt'] = 'Load client details';
+$wb['load_my_data_txt'] = 'Load my contact details';
+$wb['reset_client_data_txt'] = 'Reset data';
+$wb["document_root_txt"] = "Document Root";
+$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL';
+$wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS';
+$wb['password_strength_txt'] = 'Password strength';
+$wb['directive_snippets_id_txt'] = 'Web server config';
+$wb['http_port_txt'] = 'HTTP Port';
+$wb['https_port_txt'] = 'HTTPS Port';
+$wb['http_port_error_regex'] = 'HTTP Port invalid.';
+$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
new file mode 100644
index 0000000000..0b3a969700
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb["sys_groupid_txt"] = 'Client';
+$wb["list_head_txt"] = 'Websites';
+$wb["domain_id_txt"] = 'ID';
+$wb["active_txt"] = 'Active';
+$wb["server_id_txt"] = 'Server';
+$wb["domain_txt"] = 'Domain';
+$wb["add_new_record_txt"] = 'Add new website';
+$wb['add_new_subdomain_txt'] = 'Add new subdomain';
+$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
new file mode 100644
index 0000000000..6477c9e1e6
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['list_head_txt'] = 'Websites';
+$wb['domain_id_txt'] = 'ID';
+$wb['active_txt'] = 'Active';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domain';
+$wb['add_new_record_txt'] = 'Add new website';
+$wb['add_new_subdomain_txt'] = 'Add new subdomain';
+$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['parent_domain_id_txt'] = 'Website';
+
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng
new file mode 100644
index 0000000000..ba7aad0403
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng
@@ -0,0 +1,131 @@
+<?php
+$wb['parent_domain_id_txt'] = 'Parent Webside';
+$wb['web_folder_txt'] = 'Web folder';
+$wb['web_folder_invalid_txt'] = 'The web folder is ugyldigt, please choose a different one.';
+$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
+$wb['backup_interval_txt'] = 'Backup interval';
+$wb['backup_copies_txt'] = 'Antal af backup copies';
+$wb['ssl_state_txt'] = 'Kommune';
+$wb['ssl_locality_txt'] = 'Locality';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
+$wb['ssl_country_txt'] = 'Land';
+$wb['ssl_key_txt'] = 'SSL Key';
+$wb['ssl_request_txt'] = 'SSL Anmodning';
+$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'SSL Handling';
+$wb['ssl_domain_txt'] = 'SSL Domæne';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domæne';
+$wb['host_txt'] = 'Værtsnavn';
+$wb['web_folder_error_regex'] = 'Ugyldigt folder entered. Please do not enter a slash.';
+$wb['type_txt'] = 'Type';
+$wb['redirect_type_txt'] = 'Omdiriger Type';
+$wb['redirect_path_txt'] = 'Omdiriger Path';
+$wb['active_txt'] = 'Aktiv';
+$wb['document_root_txt'] = 'Documentroot';
+$wb['system_user_txt'] = 'Linux Bruger';
+$wb['system_group_txt'] = 'Linux Gruppe';
+$wb['ip_address_txt'] = 'IPv4-Adresse';
+$wb['ipv6_address_txt'] = 'IPv6-Adresse';
+$wb['vhost_type_txt'] = 'VHost Type';
+$wb['hd_quota_txt'] = 'Harddisk Kvote';
+$wb['traffic_quota_txt'] = 'Trafik Kvote';
+$wb['cgi_txt'] = 'CGI';
+$wb['ssi_txt'] = 'SSI';
+$wb['errordocs_txt'] = 'Own Error-Documents';
+$wb['subdomain_txt'] = 'Auto-Sub-domæne';
+$wb['ssl_txt'] = 'SSL';
+$wb['suexec_txt'] = 'SuEXEC';
+$wb['php_txt'] = 'PHP';
+$wb['client_txt'] = 'Kunde';
+$wb['limit_web_domain_txt'] = 'Max. antal of web domæner for din konto er nået.';
+$wb['limit_web_aliasdomain_txt'] = 'Max. antal of aliasdomains for din konto er nået.';
+$wb['limit_web_subdomain_txt'] = 'Max. antal of web sub-domæner for din konto er nået.';
+$wb['apache_directives_txt'] = 'Apache Directives';
+$wb['domain_error_empty'] = 'Domæne er tomt.';
+$wb['domain_error_unique'] = 'There is already a website eller sub / aliasdomain with this domain name.';
+$wb['domain_error_regex'] = 'Domæne name ugyldigt.';
+$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
+$wb['hd_quota_error_empty'] = 'Harddisk kvote is 0 eller tom.';
+$wb['traffic_quota_error_empty'] = 'Trafik kvote er tomt.';
+$wb['error_ssl_state_empty'] = 'SSL Kommune er tomt.';
+$wb['error_ssl_locality_empty'] = 'SSL Locality er tomt.';
+$wb['error_ssl_organisation_empty'] = 'SSL Organisation er tomt.';
+$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit er tomt.';
+$wb['error_ssl_country_empty'] = 'SSL Land er tomt.';
+$wb['error_ssl_cert_empty'] = 'SSL Certificate field er tomt';
+$wb['client_group_id_txt'] = 'Kunde';
+$wb['stats_password_txt'] = 'Sæt Webstatistik adgangskode';
+$wb['allow_override_txt'] = 'Apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Max. tilgængelig Harddisk Kvote';
+$wb['ssl_state_error_regex'] = 'Ugyldigt SSL Kommune. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_locality_error_regex'] = 'Ugyldigt SSL Locality. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_organisation_error_regex'] = 'Ugyldigt SSL Organisation. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_organistaion_unit_error_regex'] = 'Ugyldigt SSL Organisation Unit. Gyldige tegn er: a-z, 0-9 og .,-_';
+$wb['ssl_country_error_regex'] = 'Ugyldigt SSL Land. Gyldige tegn er: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Max. tilgængelig Trafik Kvote';
+$wb['redirect_error_regex'] = 'Ugyldigt redirect path. Valid redirects are for example: /test/ eller http://www.domain.tld/test/';
+$wb['php_open_basedir_txt'] = 'PHP open_basedir';
+$wb['traffic_quota_exceeded_txt'] = 'Trafik kvote exceeded';
+$wb['ruby_txt'] = 'Ruby';
+$wb['stats_user_txt'] = 'Webstatistik brugername';
+$wb['stats_type_txt'] = 'Webstatistik program';
+$wb['custom_php_ini_txt'] = 'Custom php.ini indstillinger';
+$wb['none_txt'] = 'Ingen';
+$wb['disabled_txt'] = 'Deaktiveret';
+$wb['no_redirect_txt'] = 'Ingen redirect';
+$wb['no_flag_txt'] = 'Ingen flag';
+$wb['save_certificate_txt'] = 'Gem certificate';
+$wb['create_certificate_txt'] = 'Create certificate';
+$wb['delete_certificate_txt'] = 'Slet certificate';
+$wb['nginx_directives_txt'] = 'nginx Directives';
+$wb['seo_redirect_txt'] = 'SEO Omdiriger';
+$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
+$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP adresse.';
+$wb['python_txt'] = 'Python';
+$wb['perl_txt'] = 'Perl';
+$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm indstillinger must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
+$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
+$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
+$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
+$wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.';
+$wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.';
+$wb['fastcgi_php_version_txt'] = 'PHP Version';
+$wb['pm_txt'] = 'PHP-FPM Process Manager';
+$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
+$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order til use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['available_php_directive_snippets_txt'] = 'Tilgængelig PHP Direktiv Kodestykker:';
+$wb['available_apache_directive_snippets_txt'] = 'Tilgængelig Apache Direktiv Kodestykker:';
+$wb['available_nginx_directive_snippets_txt'] = 'Tilgængelig nginx Direktiv Kodestykker:';
+$wb['proxy_directives_txt'] = 'Proxy Directives';
+$wb['available_proxy_directive_snippets_txt'] = 'Tilgængelig Proxy Direktiv Kodestykker:';
+$wb['rewrite_rules_txt'] = 'Rewrite Rules';
+$wb['invalid_rewrite_rules_txt'] = 'Ugyldigt Rewrite Rules';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
+$wb['configuration_error_txt'] = 'KONFIGURATION FEJL';
+$wb['variables_txt'] = 'Variables';
+$wb['backup_excludes_txt'] = 'Excluded Directories';
+$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'The excluded directories contain ugyldigt characters.';
+$wb['subdomain_error_empty'] = 'The subdommain field er tomt eller indeholder ugyldigt karaktere.';
+$wb['http_port_txt'] = 'HTTP Port';
+$wb['https_port_txt'] = 'HTTPS Port';
+$wb['http_port_error_regex'] = 'HTTP Port invalid.';
+$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/dk_web_vhost_subdomain_list.lng
new file mode 100644
index 0000000000..53b5fd5c00
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_web_vhost_subdomain_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Sub-domæner';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['domain_txt'] = 'Sub-domæne';
+$wb['add_new_record_txt'] = 'Tilføj nyt subdomain';
+?>
diff --git a/interface/web/sites/lib/lang/dk_webdav_user.lng b/interface/web/sites/lib/lang/dk_webdav_user.lng
new file mode 100644
index 0000000000..e292f44698
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_webdav_user.lng
@@ -0,0 +1,21 @@
+<?php
+$wb['dir_txt'] = 'Mappe';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['username_txt'] = 'Brugernavn';
+$wb['password_txt'] = 'Adgangskode';
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['active_txt'] = 'Aktiv';
+$wb['limit_webdav_user_txt'] = 'Max. antal af webdav brugere for din konto er nået.';
+$wb['username_error_empty'] = 'Brugernavn er tom.';
+$wb['username_error_unique'] = 'Brugernavne skal være unikke.';
+$wb['username_error_regex'] = 'Brugernavne indeholder tegn, der ikke er tilladt.';
+$wb['directory_error_empty'] = 'Mappe er tom.';
+$wb['parent_domain_id_error_empty'] = 'Ingen webside er valgt.';
+$wb['dir_dot_error'] = 'Ingen .. i stien er tilladt.';
+$wb['dir_slashdot_error'] = 'Ingen ./ i stien er tilladt.';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+?>
diff --git a/interface/web/sites/lib/lang/dk_webdav_user_list.lng b/interface/web/sites/lib/lang/dk_webdav_user_list.lng
new file mode 100644
index 0000000000..e06c2a0f50
--- /dev/null
+++ b/interface/web/sites/lib/lang/dk_webdav_user_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'Webdav-Bruger';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Server';
+$wb['parent_domain_id_txt'] = 'Webside';
+$wb['username_txt'] = 'Brugernavn';
+$wb['add_new_record_txt'] = 'Tilføj ny Webdav-Bruger';
+?>
diff --git a/interface/web/strengthmeter/lib/lang/dk_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/dk_strengthmeter.lng
new file mode 100644
index 0000000000..e203f03e01
--- /dev/null
+++ b/interface/web/strengthmeter/lib/lang/dk_strengthmeter.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['password_strength_0_txt'] = 'For kort';
+$wb['password_strength_1_txt'] = 'Svag';
+$wb['password_strength_2_txt'] = 'Nogenlunde';
+$wb['password_strength_3_txt'] = 'God';
+$wb['password_strength_4_txt'] = 'Stærk';
+$wb['password_strength_5_txt'] = 'Meget stærk';
+?>
diff --git a/interface/web/tools/lib/lang/dk.lng b/interface/web/tools/lib/lang/dk.lng
new file mode 100644
index 0000000000..7aedd12c01
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['User Settings'] = 'Bruger Indstillinger';
+$wb['Settings'] = 'Indstillinger';
+$wb['ISPConfig Tools'] = 'ISPConfig Værktøjer';
+$wb['Interface'] = 'Grænseflade';
+$wb['Password and Language'] = 'Adgangskode og Sprog';
+$wb['ispconfig_tools_note'] = 'Dette modul tillader dig at ændre adgangskode og sprog, og at starte en resync af DNS-posterne.';
+$wb['Sync Tools'] = 'Sync Værktøjer';
+$wb['Resync'] = 'Resync';
+$wb['Import'] = 'Importer';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
+?>
diff --git a/interface/web/tools/lib/lang/dk_import_ispconfig.lng b/interface/web/tools/lib/lang/dk_import_ispconfig.lng
new file mode 100644
index 0000000000..12ec4b5602
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk_import_ispconfig.lng
@@ -0,0 +1,23 @@
+<?php
+$wb['head_txt'] = 'Importer e-mail konfiguration fra ISPConfig 3';
+$wb['legend_txt'] = 'Fjernserver tilslutnings detaljer';
+$wb['legend2_txt'] = 'Importer e-mail domæne';
+$wb['resync_sites_txt'] = 'Resync Websider';
+$wb['resync_ftp_txt'] = 'Resync FTP brugere';
+$wb['resync_shell_txt'] = 'Resync Shell brugere';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Postbokse';
+$wb['resync_dns_txt'] = 'Resync DNS-poster';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Tilslut til fjern-server';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['client_group_id_txt'] = 'Lokal klient';
+$wb['mail_domain_txt'] = 'Remote e-mail domæne';
+$wb['import_mailbox_txt'] = 'Importer mailboks';
+$wb['import_aliasdomain_txt'] = 'Importer alias domæne';
+$wb['import_alias_txt'] = 'Importer e-mail alias';
+$wb['import_forward_txt'] = 'Importer forward';
+$wb['import_user_filter_txt'] = 'Importer bruger filter';
+$wb['import_spamfilter_txt'] = 'Importer spamfilter';
+?>
diff --git a/interface/web/tools/lib/lang/dk_import_vpopmail.lng b/interface/web/tools/lib/lang/dk_import_vpopmail.lng
new file mode 100644
index 0000000000..1e4dd281f7
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk_import_vpopmail.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from Vpopmail';
+$wb['legend_txt'] = 'Remote database server connection details';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+
+?>
diff --git a/interface/web/tools/lib/lang/dk_index.lng b/interface/web/tools/lib/lang/dk_index.lng
new file mode 100644
index 0000000000..557c4e8501
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk_index.lng
@@ -0,0 +1,4 @@
+<?php
+$wb['page_head_txt'] = 'ISPConfig Værktøjer';
+$wb['page_desc_txt'] = 'Ændre bruger indstillinger';
+?>
diff --git a/interface/web/tools/lib/lang/dk_interface.lng b/interface/web/tools/lib/lang/dk_interface.lng
new file mode 100644
index 0000000000..cc17dd2f5c
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk_interface.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['interface_head_txt'] = 'Interface Indstillinger';
+$wb['interface_desc_txt'] = 'Ændre din grænseflade';
+$wb['language_txt'] = 'Sprog';
+$wb['startmodule_txt'] = 'Startmodule';
+$wb['app_theme_txt'] = 'Design';
+?>
diff --git a/interface/web/tools/lib/lang/dk_resync.lng b/interface/web/tools/lib/lang/dk_resync.lng
new file mode 100644
index 0000000000..291bbc120a
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk_resync.lng
@@ -0,0 +1,49 @@
+<?php
+$wb['head_txt'] = 'Resync Værktøj';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websider';
+$wb['resync_ftp_txt'] = 'Resync FTP brugere';
+$wb['resync_shell_txt'] = 'Resync Shell brugere';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Postbokse';
+$wb['resync_dns_txt'] = 'Resync DNS poster';
+$wb['resync_client_txt'] = 'Resync Kunde poster';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['resync_all_txt'] = 'All services';
+$wb['resync_webdav_txt'] = 'WebDAV-Users';
+$wb['resync_mail_txt'] = 'Maildomains';
+$wb['resync_mailfilter_txt'] = 'Mailfilter';
+$wb['resync_mailinglist_txt'] = 'Mailinglist';
+$wb['resync_vserver_txt'] = 'vServer';
+$wb['all_active_txt'] = 'All active server';
+$wb['all_active_mail_txt'] = 'All active Mail-Server';
+$wb['all_active_web_txt'] = 'All active Web-Server';
+$wb['all_active_dns_txt'] = 'All active DNS-Server';
+$wb['all_active_file_txt'] = 'All active File-Server';
+$wb['all_active_db_txt'] = 'All active Database-Server';
+$wb['all_active_vserver_txt'] = 'All active vServer';
+$wb['do_sites_txt'] = 'Resynced Website';
+$wb['do_ftp_txt'] = 'Resynced FTP user';
+$wb['do_webdav_txt'] = 'Resynced WebDav user';
+$wb['do_shell_txt'] = 'Resynced Shell user';
+$wb['do_cron_txt'] = 'Resynced Cronjob';
+$wb['do_db_user_txt'] = 'Resynced Database User';
+$wb['do_db_txt'] = 'Resynced Database';
+$wb['do_mail_txt'] = 'Resynced Maildomain';
+$wb['do_mailbox_txt'] = 'Resynced Mailbox';
+$wb['do_mail_alias_txt'] = 'Resynced Alias';
+$wb['do_mail_access_txt'] = 'Resynced Mail access';
+$wb['do_mail_contentfilter_txt'] = 'Resynced Content Filter';
+$wb['do_mail_userfilter_txt'] = 'Resynced Mail User Filter';
+$wb['do_mailinglist_txt'] = 'Resynced Mailinglist';
+$wb['do_dns_txt'] = 'Resynced DNS zone';
+$wb['do_vserver_txt'] = 'Resynced vServer';
+$wb['do_clients_txt'] = 'Resynced clients and reseller';
+$wb['no_results_txt'] = 'Nothing found';
+$wb['do_mail_spamfilter_policy_txt'] = 'Resynced Spamfilter Policies';
+$wb['do_mail_spamfilter_txt'] = 'Resynced Spamfilter';
+$wb['do_mailget_txt'] = 'Resynced Fetchmail';
+$wb['resync_mailget_txt'] = 'Fetchmail';
+?>
diff --git a/interface/web/tools/lib/lang/dk_tpl_default.lng b/interface/web/tools/lib/lang/dk_tpl_default.lng
new file mode 100644
index 0000000000..2ed3abf137
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk_tpl_default.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'Standard tema-indstillinger';
+$wb['list_desc_txt'] = 'Ændre standard-tema specifikke indstillinger';
+$wb['no_settings_txt'] = 'Der er ingen indstillinger til standard temaet.';
+$wb['btn_start_txt'] = 'Gem';
+$wb['btn_cancel_txt'] = 'Tilbage';
+?>
diff --git a/interface/web/tools/lib/lang/dk_usersettings.lng b/interface/web/tools/lib/lang/dk_usersettings.lng
new file mode 100644
index 0000000000..9398f2626a
--- /dev/null
+++ b/interface/web/tools/lib/lang/dk_usersettings.lng
@@ -0,0 +1,12 @@
+<?php
+$wb['password_strength_txt'] = 'Adgangskode styrke';
+$wb['language_txt'] = 'Sprog';
+$wb['password_mismatch'] = 'Adgangskoden i det andet adgangskode felt matcher ikke den første adgangskode.';
+$wb['Form to edit the user password and language.'] = 'Formular for at rediger brugers adgangskode og sprog.';
+$wb['Settings'] = 'Indstillinger';
+$wb['generate_password_txt'] = 'Generer Adgangskode';
+$wb['repeat_password_txt'] = 'Gentage Adgangskode';
+$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
+$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
+$wb['password_txt'] = 'Password';
+?>
diff --git a/interface/web/vm/lib/lang/dk.lng b/interface/web/vm/lib/lang/dk.lng
new file mode 100644
index 0000000000..6a7764588e
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['Virtual Servers'] = 'Virtuelle Servere';
+$wb['OS Templates'] = 'OS Skabeloner';
+$wb['VM Templates'] = 'VM Skabeloner';
+$wb['IP addresses'] = 'IP adresser';
+$wb['OpenVZ'] = 'OpenVZ';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_action.lng b/interface/web/vm/lib/lang/dk_openvz_action.lng
new file mode 100644
index 0000000000..ec4b1c4663
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_action.lng
@@ -0,0 +1,16 @@
+<?php
+$wb['head_txt'] = 'Virtuel server actions for VM:';
+$wb['start_txt'] = 'Start virtuel server';
+$wb['stop_txt'] = 'Stop virtuel server';
+$wb['restart_txt'] = 'Genstart virtuel server';
+$wb['ostemplate_txt'] = 'Opret OS-Skabelon';
+$wb['ostemplate_desc_txt'] = '(f.eks.: debian-6.0-i386-custom)';
+$wb['btn_save_txt'] = 'Kør valgte handling';
+$wb['btn_cancel_txt'] = 'Annullere';
+$wb['start_exec_txt'] = 'Start kommandoen er sendt til VM værtsserveren. Det kan tage et minut, indtil VM er startet.';
+$wb['stop_exec_txt'] = 'Stop kommandoen er sendt til VM værtsserveren. Det kan tage et minut, indtil VM er stoppet.';
+$wb['restart_exec_txt'] = 'Genstart kommando er blevet sendt til VM værtsserver. Det kan tage et minut, indtil VM genstartes.';
+$wb['ostemplate_name_error'] = 'OS-Skabelonens navn indeholder Ikke-tilladte karakterer.';
+$wb['ostemplate_name_unique_error'] = 'Der er allerede en OS-Skabelon med dette navn.';
+$wb['ostemplate_exec_txt'] = 'Kommandoen for at skabe en OS-Skabelon er sendt til værts serveren. Det vil tage flere minutter, indtil OS-Skabelonen er oprettet.';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_ip.lng b/interface/web/vm/lib/lang/dk_openvz_ip.lng
new file mode 100644
index 0000000000..0ad41f87a3
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_ip.lng
@@ -0,0 +1,9 @@
+<?php
+$wb['server_id_txt'] = 'Værtsserver';
+$wb['ip_address_txt'] = 'IP adresse';
+$wb['vm_id_txt'] = 'Virtuel server';
+$wb['reserved_txt'] = 'Reserveret';
+$wb['ip_error_wrong'] = 'Udfyld venligst et gyldigt IPv4 adresse.';
+$wb['ip_error_unique'] = 'Denne IP adresse findes allerede.';
+$wb['IP address'] = 'IP adresse';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_ip_list.lng b/interface/web/vm/lib/lang/dk_openvz_ip_list.lng
new file mode 100644
index 0000000000..2467d5c0b8
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_ip_list.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['list_head_txt'] = 'OpenVZ IP adresser';
+$wb['server_id_txt'] = 'Server';
+$wb['vm_id_txt'] = 'VM';
+$wb['ip_address_txt'] = 'IP adresse';
+$wb['reserved_txt'] = 'Reserveret';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_ostemplate.lng b/interface/web/vm/lib/lang/dk_openvz_ostemplate.lng
new file mode 100644
index 0000000000..5b71160eb1
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_ostemplate.lng
@@ -0,0 +1,11 @@
+<?php
+$wb['template_name_txt'] = 'Skabelon navn';
+$wb['template_file_txt'] = 'Skabelon filnavn';
+$wb['server_id_txt'] = 'Server';
+$wb['allservers_txt'] = 'Findes på alle servere';
+$wb['active_txt'] = 'Aktiv';
+$wb['description_txt'] = 'Beskrivelse';
+$wb['template_name_error_empty'] = 'Skabelon navn er tomt.';
+$wb['template_file_error_empty'] = 'Skabelon filnavn er tomt.';
+$wb['Template'] = 'Skabelon';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/dk_openvz_ostemplate_list.lng
new file mode 100644
index 0000000000..94a5ccc18e
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_ostemplate_list.lng
@@ -0,0 +1,8 @@
+<?php
+$wb['list_head_txt'] = 'OpenVZ OSSkabelon';
+$wb['active_txt'] = 'Aktiv';
+$wb['template_name_txt'] = 'Skabelon navn';
+$wb['server_id_txt'] = 'Server';
+$wb['allservers_txt'] = 'Findes på alle servere';
+$wb['ostemplate_id_txt'] = 'ID';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_template.lng b/interface/web/vm/lib/lang/dk_openvz_template.lng
new file mode 100644
index 0000000000..7016f41a67
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_template.lng
@@ -0,0 +1,97 @@
+<?php
+$wb['numproc_txt'] = 'Numproc';
+$wb['numtcpsock_txt'] = 'Numtcpsock';
+$wb['numothersock_txt'] = 'Numothersock';
+$wb['vmguarpages_txt'] = 'Vmguarpages';
+$wb['kmemsize_txt'] = 'Kmemsize';
+$wb['tcpsndbuf_txt'] = 'Tcpsndbuf';
+$wb['tcprcvbuf_txt'] = 'Tcprcvbuf';
+$wb['othersockbuf_txt'] = 'Othersockbuf';
+$wb['dgramrcvbuf_txt'] = 'Dgramrcvbuf';
+$wb['oomguarpages_txt'] = 'Oomguarpages';
+$wb['privvmpages_txt'] = 'Privvmpages';
+$wb['lockedpages_txt'] = 'Lockedpages';
+$wb['shmpages_txt'] = 'Shmpages';
+$wb['physpages_txt'] = 'Physpages';
+$wb['numfile_txt'] = 'Numfile';
+$wb['avnumproc_txt'] = 'Avnumproc';
+$wb['numflock_txt'] = 'Numflock';
+$wb['numpty_txt'] = 'Numpty';
+$wb['numsiginfo_txt'] = 'Numsiginfo';
+$wb['dcachesize_txt'] = 'Dcachesize';
+$wb['numiptent_txt'] = 'Numiptent';
+$wb['swappages_txt'] = 'Swappages';
+$wb['hostname_txt'] = 'Værtsnavn';
+$wb['nameserver_txt'] = 'Navneserver(e)';
+$wb['nameserver_desc_txt'] = '(adskilt af mellemrum)';
+$wb['capability_txt'] = 'Evne';
+$wb['template_name_txt'] = 'Skabelon navn';
+$wb['diskspace_txt'] = 'Disksplads';
+$wb['ram_txt'] = 'RAM (garanteret)';
+$wb['ram_burst_txt'] = 'RAM (burst)';
+$wb['cpu_units_txt'] = 'CPU enheder';
+$wb['cpu_num_txt'] = 'CPU antal';
+$wb['cpu_limit_txt'] = 'CPU limit %';
+$wb['io_priority_txt'] = 'I/O priority';
+$wb['active_txt'] = 'Aktiv';
+$wb['description_txt'] = 'Beskrivelse';
+$wb['numproc_desc_txt'] = 'Antal af processer og tråde.';
+$wb['numtcpsock_desc_txt'] = 'Antal af TCP sokler.';
+$wb['numothersock_desc_txt'] = 'Antal af sokler andre end TCP.';
+$wb['vmguarpages_desc_txt'] = 'Hukommelse tildeling garanti, i sider.';
+$wb['kmemsize_desc_txt'] = 'Størrelse af ikke swappable kernehukommelse, afsat til processer i denne beholder.';
+$wb['tcpsndbuf_desc_txt'] = 'Total størrelse af TCP send buffere.';
+$wb['tcprcvbuf_desc_txt'] = 'Total størrelse af TCP modtage buffere.';
+$wb['othersockbuf_desc_txt'] = 'Total størrelse af UNIX-domæne sokel buffere, UDP og andre datagram protokoller send buffere.';
+$wb['dgramrcvbuf_desc_txt'] = 'Modtage buffere af UDP og andre datagram protokoller.';
+$wb['oomguarpages_desc_txt'] = 'Den garanterede mængde hukommelse for det tilfælde hukommelsen er \"over-booked\" (out-of-memory kill guarantee), i sider.';
+$wb['privvmpages_desc_txt'] = 'Hukommelses grænse tildeling, i sider.';
+$wb['lockedpages_desc_txt'] = 'Proces-sider uden tiladelse til at blive byttet ud (pages locked by mlock(2)).';
+$wb['shmpages_desc_txt'] = 'Total størrelse af delt hukommelse (IPC, delt anonyme afbildninger og tmpfs objekter), i sider.';
+$wb['physpages_desc_txt'] = 'Total antal af RAM sider, der bruges ved processer.';
+$wb['numfile_desc_txt'] = 'Antal af åbne filer.';
+$wb['numflock_desc_txt'] = 'Antal af fil-låse.';
+$wb['numpty_desc_txt'] = 'Antal af pseudo-terminals.';
+$wb['numsiginfo_desc_txt'] = 'Antal af siginfo structures.';
+$wb['dcachesize_desc_txt'] = 'Total størrelse of dentry og inode structures locked in memory.';
+$wb['numiptent_desc_txt'] = 'Antal af NETFILTER (IP packet filtering) entries.';
+$wb['swappages_desc_txt'] = 'Amount of swap space to show in container.';
+$wb['create_dns_txt'] = 'Create DNS for hostname';
+$wb['template_name_error_empty'] = 'Skabelon navn er tomt.';
+$wb['diskspace_error_empty'] = 'Disksplads er tomt.';
+$wb['ram_error_empty'] = 'RAM (guaranteed) er tomt.';
+$wb['ram_burst_error_empty'] = 'RAM (burst) er tomt.';
+$wb['cpu_units_error_empty'] = 'CPU units er tomt.';
+$wb['cpu_num_error_empty'] = 'CPU cores er tomt.';
+$wb['cpu_limit_error_empty'] = 'CPU limit % er tomt.';
+$wb['io_priority_error_empty'] = 'I/O priority er tomt.';
+$wb['template_nameserver_error_empty'] = 'Navneserver(e) er tomt.';
+$wb['numproc_error_empty'] = 'Numproc er tomt.';
+$wb['numtcpsock_error_empty'] = 'Numtcpsock er tomt.';
+$wb['numothersock_error_empty'] = 'Numothersock er tomt.';
+$wb['vmguarpages_error_empty'] = 'Vmguarpages er tomt.';
+$wb['kmemsize_error_empty'] = 'Kmemsize er tomt.';
+$wb['tcpsndbuf_error_empty'] = 'Tcpsndbuf er tomt.';
+$wb['tcprcvbuf_error_empty'] = 'Tcprcvbuf er tomt.';
+$wb['othersockbuf_error_empty'] = 'Othersockbuf er tomt.';
+$wb['dgramrcvbuf_error_empty'] = 'Dgramrcvbuf er tomt.';
+$wb['oomguarpages_error_empty'] = 'Oomguarpages er tomt.';
+$wb['privvmpages_error_empty'] = 'Privvmpages er tomt.';
+$wb['lockedpages_error_empty'] = 'Lockedpages er tomt.';
+$wb['shmpages_error_empty'] = 'Shmpages er tomt.';
+$wb['physpages_error_empty'] = 'Physpages er tomt.';
+$wb['numfile_error_empty'] = 'Numfile er tomt.';
+$wb['avnumproc_error_empty'] = 'Avnumproc er tomt.';
+$wb['numflock_error_empty'] = 'Numflock er tomt.';
+$wb['numpty_error_empty'] = 'Numpty er tomt.';
+$wb['numsiginfo_error_empty'] = 'Numsiginfo er tomt.';
+$wb['dcachesize_error_empty'] = 'Dcachesize er tomt.';
+$wb['numiptent_error_empty'] = 'Numiptent er tomt.';
+$wb['swappages_error_empty'] = 'Swappages er tomt.';
+$wb['Template'] = 'Skabelon';
+$wb['Advanced'] = 'Avanceret';
+$wb['features_txt'] = 'Features';
+$wb['iptables_txt'] = 'IP Tables';
+$wb['custom_txt'] = 'Custom settings';
+$wb['custom_error'] = 'Not allowed in Custom settings: ';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_template_list.lng b/interface/web/vm/lib/lang/dk_openvz_template_list.lng
new file mode 100644
index 0000000000..0d0d574c20
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_template_list.lng
@@ -0,0 +1,5 @@
+<?php
+$wb['list_head_txt'] = 'OpenVZ Virtual Machine Skabelon';
+$wb['active_txt'] = 'Aktiv';
+$wb['template_name_txt'] = 'Skabelon navn';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_vm.lng b/interface/web/vm/lib/lang/dk_openvz_vm.lng
new file mode 100644
index 0000000000..b4b2a5ad90
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_vm.lng
@@ -0,0 +1,45 @@
+<?php
+$wb['diskspace_txt'] = 'Disksplads';
+$wb['ram_txt'] = 'RAM (guaranteed)';
+$wb['ram_burst_txt'] = 'RAM (burst)';
+$wb['cpu_units_txt'] = 'CPU units';
+$wb['cpu_num_txt'] = 'CPU antal';
+$wb['cpu_limit_txt'] = 'CPU limit %';
+$wb['io_priority_txt'] = 'I/O priority';
+$wb['nameserver_txt'] = 'Navneserver(e)';
+$wb['nameserver_desc_txt'] = '(separated by whitespace)';
+$wb['capability_txt'] = 'Capability';
+$wb['server_id_txt'] = 'Værtsserver';
+$wb['ostemplate_id_txt'] = 'OSSkabelon';
+$wb['template_id_txt'] = 'Skabelon';
+$wb['ip_address_txt'] = 'IP adresse';
+$wb['hostname_txt'] = 'Værtsnavn';
+$wb['vm_password_txt'] = 'VM Adgangskode';
+$wb['start_boot_txt'] = 'Start at boot';
+$wb['active_txt'] = 'Aktiv';
+$wb['description_txt'] = 'Beskrivelse';
+$wb['client_group_id_txt'] = 'Kunde';
+$wb['veid_txt'] = 'VEID';
+$wb['create_dns_txt'] = 'Create DNS for hostname';
+$wb['active_until_date_txt'] = 'Aktiv until date';
+$wb['ip_address_error_empty'] = 'IP adresse er tomt.';
+$wb['hostname_error_empty'] = 'Værtsnavn er tomt.';
+$wb['vm_password_error_empty'] = 'VM Adgangskode er tomt.';
+$wb['veid_error_empty'] = 'VEID er tomt.';
+$wb['veid_error_unique'] = 'VEID findes allerede.';
+$wb['diskspace_error_empty'] = 'Disksplads er tomt.';
+$wb['ram_error_empty'] = 'RAM (guaranteed) er tomt.';
+$wb['ram_burst_error_empty'] = 'RAM (burst) er tomt.';
+$wb['cpu_units_error_empty'] = 'CPU units er tomt.';
+$wb['cpu_num_error_empty'] = 'CPU antal er tomt.';
+$wb['cpu_limit_error_empty'] = 'CPU limit er tomt.';
+$wb['io_priority_error_empty'] = 'I/O priority er tomt.';
+$wb['template_nameserver_error_empty'] = 'Navneserver(e) er tomt.';
+$wb['Virtual server'] = 'Virtual server';
+$wb['Advanced'] = 'Avanceret';
+$wb['features_txt'] = 'Features';
+$wb['iptables_txt'] = 'IP Tables';
+$wb['custom_txt'] = 'Custom settings';
+$wb['bootorder_txt'] = 'Boot order priority';
+$wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boot order priority';
+?>
diff --git a/interface/web/vm/lib/lang/dk_openvz_vm_list.lng b/interface/web/vm/lib/lang/dk_openvz_vm_list.lng
new file mode 100644
index 0000000000..1d684a1adc
--- /dev/null
+++ b/interface/web/vm/lib/lang/dk_openvz_vm_list.lng
@@ -0,0 +1,10 @@
+<?php
+$wb['list_head_txt'] = 'Virtuel server';
+$wb['active_txt'] = 'Aktiv';
+$wb['server_id_txt'] = 'Værtsserver';
+$wb['ostemplate_id_txt'] = 'OS-Skabelon';
+$wb['template_id_txt'] = 'Skabelon';
+$wb['hostname_txt'] = 'Værtsnavn';
+$wb['ip_address_txt'] = 'IP adresse';
+$wb['veid_txt'] = 'VEID';
+?>
-- 
GitLab


From 4d69c674429fdc8e0c4c444aaf8c9e0d7703f925 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 16 Aug 2016 09:54:42 +0200
Subject: [PATCH 170/313] Datalogstatus notification implementation (as
 discussed: https://www.howtoforge.com/community/threads/datalogstatus.73719/)

---
 interface/lib/classes/db_mysql.inc.php        |  3 +-
 interface/web/datalogstatus.php               | 43 +++++++++++++++++++
 .../default/assets/javascripts/ispconfig.js   | 32 +++++++++++++-
 .../assets/javascripts/ispconfig.min.js       |  2 +-
 .../default/assets/stylesheets/ispconfig.css  | 40 +++++++++++++++++
 .../assets/stylesheets/ispconfig.min.css      |  6 ++-
 .../web/themes/default/templates/main.tpl.htm | 27 +++++++++++-
 7 files changed, 147 insertions(+), 6 deletions(-)
 create mode 100644 interface/web/datalogstatus.php

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index c74e6e0e9c..b7aaed4e44 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -740,7 +740,8 @@ class db extends mysqli
 		global $app;
 
 		$return = array('count' => 0, 'entries' => array());
-		if($_SESSION['s']['user']['typ'] == 'admin') return $return; // these information should not be displayed to admin users
+		//if($_SESSION['s']['user']['typ'] == 'admin') return $return; // these information should not be displayed to admin users
+		// removed in favor of new non intrusive datalogstatus notification header
 
 		if($login == '' && isset($_SESSION['s']['user'])) {
 			$login = $_SESSION['s']['user']['username'];
diff --git a/interface/web/datalogstatus.php b/interface/web/datalogstatus.php
new file mode 100644
index 0000000000..0263605d97
--- /dev/null
+++ b/interface/web/datalogstatus.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+error_reporting(E_ALL|E_STRICT);
+
+require_once '../lib/config.inc.php';
+require_once '../lib/app.inc.php';
+
+// Check if we have an active users ession and redirect to login if thats not the case.
+if($_SESSION['s']['user']['active'] != 1) {
+	header('Location: /login/');
+	die();
+}
+$datalogstatus = json_encode($app->db->datalogStatus());
+echo ($datalogstatus);
+?>
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index c20685fe06..6db423ba23 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -346,6 +346,7 @@ var ISPConfig = {
 		
 		ISPConfig.loadMenus();
 		ISPConfig.keepalive();
+		ISPConfig.datalognotification();
 		setTimeout(function() {
 			try {
 				$('form#pageForm').find('input[name="username"]').focus();
@@ -493,7 +494,34 @@ var ISPConfig = {
 			}
 		});
 	},
-	
+	datalognotification: function() {
+	    var notificationContent = $.ajax({
+			type: "GET",
+			url: "datalogstatus.php",
+			dataType: "json",
+			success: function(data, textStatus, jqXHR) {
+				var dataLogItems = [];
+				$.each( data['entries'], function( key, val ) {
+						dataLogItems.push('<li><strong>' + val['text'] + ':</strong> ' + val['count'] + '</li>');
+				});
+				if(data['count'] > 0) {
+					$('.modal-body').html(dataLogItems.join(""));
+					$('.notification_text').text(data['count']);
+					$('.notification').css('display','');
+					setTimeout( function() { ISPConfig.datalognotification(); }, 2000 );
+				} else {
+					$('.notification').css('display','none');
+					$('.modal-body').html('');
+					setTimeout( function() { ISPConfig.datalognotification(); }, 5000 );
+				}
+			},
+			error: function() {
+				ISPConfig.reportError('Notification not loading, aborting.');
+				$('.notification').css('display','none');
+			}
+		});
+	},
+
 	addAdditionalTemplate: function(){
 		var tpl_add = $('#template_additional').val();
 		var addTemplate = $('#tpl_add_select').val().split('|',2);
@@ -701,7 +729,6 @@ $(document).on("click", "[data-uncheck-fields] > input[type='checkbox']", functi
 	}
 });
 
-
 $(document).on('ready', function () {
 	$.fn.extend({
 		insertAtCaret: function(myValue){
@@ -779,3 +806,4 @@ $(document).on('ready', function () {
 		return iCaretPos;
 	};
 });
+
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.min.js b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
index 0dd4a563be..45cea0ec31 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.min.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
@@ -1 +1 @@
-var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"></a>').attr("class","button icons16 icoDelete").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
+var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),ISPConfig.datalognotification(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},datalognotification:function(){$.ajax({type:"GET",url:"datalogstatus.php",dataType:"json",success:function(a){var d=[];$.each(a.entries,function(a,b){d.push("<li><strong>"+b.text+":</strong> "+b.count+"</li>")}),a.count>0?($(".modal-body").html(d.join("")),$(".notification_text").text(a.count),$(".notification").css("display",""),setTimeout(function(){ISPConfig.datalognotification()},2e3)):($(".notification").css("display","none"),$(".modal-body").html(""),setTimeout(function(){ISPConfig.datalognotification()},5e3))},error:function(){ISPConfig.reportError("Notification not loading, aborting."),$(".notification").css("display","none")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr("class","btn btn-danger btn-xs").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+ISPConfig.new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index ea3a367650..463c141705 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -722,4 +722,44 @@ input[type="password"].form-control[readonly] {
 }
 .tooltip-inner {
     max-width: 100%;
+<<<<<<< HEAD
+}
+.notification {
+    width: 35px;
+    height: 35px;
+    background: #c70f19;
+    border-radius: 50%;
+    display: inline-flex;
+    margin-right: 15px;
+    margin-top: 15px;
+    cursor: pointer;
+}
+.notification {
+	animation: pulse 2s infinite;
+}
+@keyframes pulse {
+	0% {
+		background: #ff000e;
+	}
+	50% {
+		background: #c70f19;
+	}
+	100% {
+		background: #ff000e;
+	}
+}
+.systemmonitor-state.state-info {
+    display: none;
+}
+
+span.notification_text {
+    display: block;
+    margin-left: auto;
+    margin-right: auto;
+    margin-top: auto;
+    margin-bottom: auto;
+    font-family: inherit;
+    color: white;
+=======
+>>>>>>> 89391e179a7677045efd1f15df091696b5f55e7e
 }
\ No newline at end of file
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 4350486b32..5806c5bca4 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1,5 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}
\ No newline at end of file
+<<<<<<< HEAD
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:inline-flex;margin-right:15px;margin-top:15px;cursor:pointer;animation:pulse 2s infinite}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
+=======
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}
+>>>>>>> 89391e179a7677045efd1f15df091696b5f55e7e
diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm
index 24a84c5065..ace93b7ce4 100644
--- a/interface/web/themes/default/templates/main.tpl.htm
+++ b/interface/web/themes/default/templates/main.tpl.htm
@@ -61,6 +61,31 @@
             </tmpl_if>
           </div>
         </div>
+		<div class="notification" data-toggle="modal" data-target="#myModal" style="display: none;">
+			<span class="notification_text">{tmpl_var name="datalog_changes_count"}</span>
+		</div>
+		<!-- Datalogstatus Modal -->
+		<div id="myModal" class="modal fade" role="dialog">
+		  <div class="modal-dialog">
+		    <div class="modal-content">
+		      <div class="modal-header">
+		        <button type="button" class="close" data-dismiss="modal">&times;</button>
+		        <h4 class="modal-title">{tmpl_var name="datalog_changes_txt"}</h4>
+		      </div>
+		      <div class="modal-body">
+		        <ul>
+			    <tmpl_loop name="datalog_changes">
+			        <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li>
+			    </tmpl_loop>
+			    </ul>
+		      </div>
+		      <div class="modal-footer">
+		        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+		      </div>
+		    </div>
+		  </div>
+		</div>
+		<!-- END Datalogstatus Modal -->
 		<tmpl_if name='logged_in' value='y'><div id='topnav-container'>
 		</div></tmpl_if>
 		<div class='clear'>
@@ -122,4 +147,4 @@
   </script>
 </body>
 
-</html>
+</html>
\ No newline at end of file
-- 
GitLab


From bdfd7571acc4fe59c672dcfd0f747572dd000939 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 16 Aug 2016 09:57:41 +0200
Subject: [PATCH 171/313] Merge error local branch

---
 interface/web/themes/default/assets/stylesheets/ispconfig.css | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index 463c141705..25b012ebce 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -722,7 +722,6 @@ input[type="password"].form-control[readonly] {
 }
 .tooltip-inner {
     max-width: 100%;
-<<<<<<< HEAD
 }
 .notification {
     width: 35px;
@@ -760,6 +759,4 @@ span.notification_text {
     margin-bottom: auto;
     font-family: inherit;
     color: white;
-=======
->>>>>>> 89391e179a7677045efd1f15df091696b5f55e7e
 }
\ No newline at end of file
-- 
GitLab


From afd394f9ca670e118334932f7389c49f661c9146 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 16 Aug 2016 10:00:30 +0200
Subject: [PATCH 172/313] Local branch merge errors

---
 .../web/themes/default/assets/stylesheets/ispconfig.min.css | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 5806c5bca4..bdada628a1 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1,5 +1 @@
-<<<<<<< HEAD
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:inline-flex;margin-right:15px;margin-top:15px;cursor:pointer;animation:pulse 2s infinite}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
-=======
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}
->>>>>>> 89391e179a7677045efd1f15df091696b5f55e7e
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:inline-flex;margin-right:15px;margin-top:15px;cursor:pointer;animation:pulse 2s infinite}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
\ No newline at end of file
-- 
GitLab


From 4101db63649285f1157bc6c1b86808a353095a57 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Tue, 16 Aug 2016 14:43:49 +0200
Subject: [PATCH 173/313] Fixes #4084 - Mail user cant delete created mail
 forwarding

---
 interface/web/mailuser/form/mail_user_cc.tform.php | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/interface/web/mailuser/form/mail_user_cc.tform.php b/interface/web/mailuser/form/mail_user_cc.tform.php
index 6c200b9beb..5f5e13a9d8 100644
--- a/interface/web/mailuser/form/mail_user_cc.tform.php
+++ b/interface/web/mailuser/form/mail_user_cc.tform.php
@@ -69,7 +69,9 @@ $form["tabs"]['mailuser'] = array (
 					'type' => 'TOLOWER')
 			),
 			'validators' => array (
-				0 => array ( 'type' => 'ISEMAIL', 'errmsg'=> 'cc_error_isemail'),
+				0 => array ( 'type' => 'REGEX', 
+					'regex' => '/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,}$/i',
+					'errmsg'=> 'cc_error_isemail'),
 			),
 			'default' => '',
 			'value'  => '',
-- 
GitLab


From ae44ffd89a0735a77d653ff6fe170888aab9e1d7 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Tue, 16 Aug 2016 14:47:20 +0200
Subject: [PATCH 174/313] Fixes #4085 - firewall record list on mirrored dns
 server (cosmetic?)

---
 interface/web/admin/list/firewall.list.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/admin/list/firewall.list.php b/interface/web/admin/list/firewall.list.php
index 659dc002af..786b7b848a 100644
--- a/interface/web/admin/list/firewall.list.php
+++ b/interface/web/admin/list/firewall.list.php
@@ -63,7 +63,7 @@ $liste["item"][] = array( 'field'  => "server_id",
 	'prefix' => "%",
 	'suffix' => "%",
 	'datasource' => array (  'type' => 'SQL',
-		'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND mirror_server_id = 0 ORDER BY server_name',
+		'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
 		'keyfield'=> 'server_id',
 		'valuefield'=> 'server_name'
 	),
-- 
GitLab


From 03e4ab6726395ad043d8f312c8749b5eefa8e74c Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Tue, 16 Aug 2016 14:48:48 +0200
Subject: [PATCH 175/313] hide database-type from db-list (not needed without
 mongo-db-support)

---
 interface/web/sites/templates/database_admin_list.htm | 8 +++++++-
 interface/web/sites/templates/database_list.htm       | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm
index efec228556..aad56db337 100644
--- a/interface/web/sites/templates/database_admin_list.htm
+++ b/interface/web/sites/templates/database_admin_list.htm
@@ -17,7 +17,9 @@
                     <tr>
                         <th class="tiny-col" data-column="active"><tmpl_var name="active_txt"></th>
                         <th class="tiny-col" data-column="remote_access"><tmpl_var name="remote_access_txt"></th>
+<!--
                         <th data-column="type"><tmpl_var name="type_txt"></th>
+-->
                         <th data-column="sys_groupid"><tmpl_var name="sys_groupid_txt"></th>
                         <th data-column="server_id"><tmpl_var name="server_id_txt"></th>
 						<th data-column="parent_domain_id"><tmpl_var name="parent_domain_id_txt"></th>
@@ -28,7 +30,9 @@
                     <tr>
                         <td><select class="form-control" name="search_active">{tmpl_var name='search_active'}</select></td>
                         <td><select class="form-control" name="search_remote_access">{tmpl_var name='search_remote_access'}</select></td>
+<!--
                         <td><select class="form-control" name="search_type">{tmpl_var name='search_type'}</select></td>
+-->
                         <td><select class="form-control" name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td>
                         <td><select class="form-control" name="search_server_id">{tmpl_var name='search_server_id'}</select></td>
 						<td><select class="form-control" name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td>
@@ -44,7 +48,9 @@
                         <tr>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="remote_access"}</a></td>
+<!--
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="type"}</a></td>
+-->
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
 							<td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='parent_domain_id'}">{tmpl_var name="parent_domain_id"}</a></td>
@@ -67,7 +73,7 @@
                 </tbody>
                 <tfoot>
                     <tr>
-                        <td colspan="9"><tmpl_var name="paging"></td>
+                        <td colspan="8"><tmpl_var name="paging"></td>
                     </tr>
                 </tfoot>
             </table>
diff --git a/interface/web/sites/templates/database_list.htm b/interface/web/sites/templates/database_list.htm
index 4d9f91a7c1..1795d453f4 100644
--- a/interface/web/sites/templates/database_list.htm
+++ b/interface/web/sites/templates/database_list.htm
@@ -34,7 +34,9 @@
                     <tr>
                         <th class="tiny-col" data-column="active"><tmpl_var name="active_txt"></th>
                         <th class="tiny-col" data-column="remote_access"><tmpl_var name="remote_access_txt"></th>
+<!--
                         <th data-column="type"><tmpl_var name="type_txt"></th>
+-->
                         <th data-column="server_id"><tmpl_var name="server_id_txt"></th>
 						<th data-column="parent_domain_id"><tmpl_var name="parent_domain_id_txt"></th>
                         <th data-column="database_user"><tmpl_var name="database_user_txt"></th>
@@ -44,7 +46,9 @@
                     <tr>
                         <td><select class="form-control" name="search_active">{tmpl_var name='search_active'}</select></td>
                         <td><select class="form-control" name="search_remote_access">{tmpl_var name='search_remote_access'}</select></td>
+<!--
                         <td><select class="form-control" name="search_type">{tmpl_var name='search_type'}</select></td>
+-->
                         <td><select class="form-control" name="search_server_id">{tmpl_var name='search_server_id'}</select></td>
 						<td><select class="form-control" name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td>
                         <td><select class="form-control" name="search_database_user_id">{tmpl_var name='search_database_user_id'}</select></td>
@@ -59,7 +63,9 @@
                         <tr>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="remote_access"}</a></td>
+<!--
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}">{tmpl_var name="type"}</a></td>
+-->
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='server_id'}">{tmpl_var name="server_id"}</a></td>
 							<td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='parent_domain_id'}">{tmpl_var name="parent_domain_id"}</a></td>
                             <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='id'}" data-toggle="tooltip" data-placement="bottom" title="{tmpl_var name='database_user_id'}">{tmpl_var name="database_user_id"}</a></td>
@@ -81,7 +87,7 @@
                 </tbody>
                 <tfoot>
                     <tr>
-                        <td colspan="8"><tmpl_var name="paging"></td>
+                        <td colspan="7"><tmpl_var name="paging"></td>
                     </tr>
                 </tfoot>
             </table>
-- 
GitLab


From 38170353ec2e5b49f9305c4ad660bb01b1ed3921 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 16 Aug 2016 21:22:05 +0200
Subject: [PATCH 176/313] Local deletions

---
 .../web/admin/form/system_config.tform.php    | 638 ------------------
 1 file changed, 638 deletions(-)
 delete mode 100644 interface/web/admin/form/system_config.tform.php

diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php
deleted file mode 100644
index 7261865796..0000000000
--- a/interface/web/admin/form/system_config.tform.php
+++ /dev/null
@@ -1,638 +0,0 @@
-<?php
-
-/*
-	Form Definition
-
-	Tabledefinition
-
-	Datatypes:
-	- INTEGER (Forces the input to Int)
-	- DOUBLE
-	- CURRENCY (Formats the values to currency notation)
-	- VARCHAR (no format check, maxlength: 255)
-	- TEXT (no format check)
-	- DATE (Dateformat, automatic conversion to timestamps)
-
-	Formtype:
-	- TEXT (Textfield)
-	- TEXTAREA (Textarea)
-	- PASSWORD (Password textfield, input is not shown when edited)
-	- SELECT (Select option field)
-	- RADIO
-	- CHECKBOX
-	- CHECKBOXARRAY
-	- FILE
-
-	VALUE:
-	- Wert oder Array
-
-	Hint:
-	The ID field of the database table is not part of the datafield definition.
-	The ID field must be always auto incement (int or bigint).
-
-
-*/
-
-$form["title"]   = "System Config";
-$form["description"]  = "system_config_desc_txt";
-$form["name"]   = "system_config";
-$form["action"]  = "system_config_edit.php";
-$form["db_table"] = "sys_ini";
-$form["db_table_idx"] = "sysini_id";
-$form["db_history"] = "yes";
-$form["tab_default"] = "sites";
-$form["list_default"] = "server_list.php";
-$form["auth"]  = 'yes'; // yes / no
-
-$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 0 id must match with id of current user
-$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
-$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
-$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
-$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
-
-$form["tabs"]['sites'] = array (
-	'title'  => "Sites",
-	'width'  => 70,
-	'template'  => "templates/system_config_sites_edit.htm",
-	'fields'  => array (
-		//#################################
-		// Begin Datatable fields
-		//#################################
-		'dbname_prefix' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
-					'errmsg'=> 'dbname_prefix_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'dbuser_prefix' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
-					'errmsg'=> 'dbuser_prefix_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'ftpuser_prefix' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
-					'errmsg'=> 'ftpuser_prefix_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'shelluser_prefix' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
-					'errmsg'=> 'shelluser_prefix_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'webdavuser_prefix' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
-					'errmsg'=> 'webdavuser_prefix_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'dblist_phpmyadmin_link' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'phpmyadmin_url' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[0-9a-zA-Z\:\/\-\.\_\[\]\?\=\&]{0,255}$/',
-					'errmsg'=> 'phpmyadmin_url_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'webftp_url' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/',
-					'errmsg'=> 'webftp_url_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'vhost_subdomains' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'vhost_aliasdomains' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'client_username_web_check_disabled' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'backups_include_into_web_quota' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'reseller_can_use_options' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'default_webserver' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'SELECT',
-			'default' => '1',
-			'datasource' => array (  'type' => 'CUSTOM',
-				'class'=> 'custom_datasource',
-				'function'=> 'client_servers'
-			),
-			'value'  => '',
-			'name'  => 'default_webserver'
-		),
-		'default_dbserver' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'SELECT',
-			'default' => '1',
-			'datasource' => array (  'type' => 'CUSTOM',
-				'class'=> 'custom_datasource',
-				'function'=> 'client_servers'
-			),
-			'value'  => '',
-			'name'  => 'default_dbserver'
-		),
-		//#################################
-		// ENDE Datatable fields
-		//#################################
-	)
-);
-
-$form["tabs"]['mail'] = array (
-	'title'  => "Mail",
-	'width'  => 70,
-	'template'  => "templates/system_config_mail_edit.htm",
-	'fields'  => array (
-		//#################################
-		// Begin Datatable fields
-		//#################################
-		'enable_custom_login' => array(
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value' => array(0 => 'n', 1 => 'y')
-		),
-		'mailbox_show_autoresponder_tab' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default'  => 'y',
-			'value'    => array(0 => 'n', 1 => 'y')
-		),
-		'mailbox_show_mail_filter_tab' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default'  => 'y',
-			'value'    => array(0 => 'n', 1 => 'y')
-		),
-		'mailbox_show_custom_rules_tab' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default'  => 'y',
-			'value'    => array(0 => 'n', 1 => 'y')
-		),
-		'mailboxlist_webmail_link' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'webmail_url' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					/*'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}(\?.+)?$/',*/
-					'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/',
-					'errmsg'=> 'webmail_url_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'mailmailinglist_link' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'mailmailinglist_url' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/',
-					'errmsg'=> 'mailinglist_url_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'admin_mail' => array (
-			'datatype' => 'VARCHAR',
-			'filters'   => array( 0 => array( 'event' => 'SAVE',
-					'type' => 'IDNTOASCII'),
-				1 => array( 'event' => 'SHOW',
-					'type' => 'IDNTOUTF8'),
-				2 => array( 'event' => 'SAVE',
-					'type' => 'TOLOWER')
-			),
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'admin_name' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'smtp_enabled' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'smtp_host' => array (
-			'datatype' => 'VARCHAR',
-			'filters'   => array( 0 => array( 'event' => 'SAVE',
-					'type' => 'IDNTOASCII'),
-				1 => array( 'event' => 'SHOW',
-					'type' => 'IDNTOUTF8'),
-				2 => array( 'event' => 'SAVE',
-					'type' => 'TOLOWER')
-			),
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'smtp_port' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '25',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'smtp_user' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'smtp_pass' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'smtp_crypt' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'SELECT',
-			'default' => '',
-			'value'  => array('' => 'No', 'ssl' => 'SSL', 'tls' => 'STARTTLS')
-		),
-		'default_mailserver' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'SELECT',
-			'default' => '1',
-			'datasource' => array (  'type' => 'CUSTOM',
-				'class'=> 'custom_datasource',
-				'function'=> 'client_servers'
-			),
-			'value'  => '',
-			'name'  => 'default_mailserver'
-		),
-		//#################################
-		// ENDE Datatable fields
-		//#################################
-	)
-);
-
-$form["tabs"]['dns'] = array (
-	'title'  => "DNS",
-	'width'  => 70,
-	'template'  => "templates/system_config_dns_edit.htm",
-	'fields'  => array (
-		//#################################
-		// Begin Datatable fields
-		//#################################
-		'default_dnsserver' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'SELECT',
-			'default' => '1',
-			'datasource' => array (  'type' => 'CUSTOM',
-				'class'=> 'custom_datasource',
-				'function'=> 'client_servers'
-			),
-			'value'  => '',
-			'name'  => 'default_dnsserver'
-		),
-		'default_slave_dnsserver' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'SELECT',
-			'default' => '1',
-			'datasource' => array (  'type' => 'CUSTOM',
-				'class'=> 'custom_datasource',
-				'function'=> 'client_servers'
-			),
-			'value'  => '',
-			'name'  => 'default_slave_dnsserver'
-		),
-		//#################################
-		// ENDE Datatable fields
-		//#################################
-	)
-);
-
-$form["tabs"]['domains'] = array (
-	'title'  => "Domains",
-	'width'  => 70,
-	'template'  => "templates/system_config_domains_edit.htm",
-	'fields'  => array (
-		//#################################
-		// Begin Datatable fields
-		//#################################
-		'use_domain_module' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'new_domain_html' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		//#################################
-		// ENDE Datatable fields
-		//#################################
-	)
-);
-
-/* TODO_ BEGIN: Branding
-
-$form["tabs"]['domains'] = array (
-	'title' 	=> "Branding",
-	'width' 	=> 70,
-	'template' 	=> "templates/system_config_branding_edit.htm",
-	'fields' 	=> array (
-	##################################
-	# Begin Datatable fields
-	##################################
-                'allow_themechange' => array (
-                        'datatype'	=> 'VARCHAR',
-                        'formtype'	=> 'CHECKBOX',
-                        'default'	=> 'N',
-                        'value'         => array(0 => 'n',1 => 'y')
-                ),
-	##################################
-	# ENDE Datatable fields
-	##################################
-	)
-);
-
-
- END: Branding */
-$form["tabs"]['misc'] = array (
-	'title'  => "Misc",
-	'width'  => 70,
-	'template'  => "templates/system_config_misc_edit.htm",
-	'fields'  => array (
-		//#################################
-		// Begin Datatable fields
-		//#################################
-		'company_name' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'custom_login_text' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'custom_login_link' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-				'regex' => '/^(http|https):\\/\\/.*|^$/',
-				'errmsg'=> 'login_link_error_regex'),
-			)
-		),
-		'dashboard_atom_url_admin' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => 'http://www.ispconfig.org/atom',
-			'value'  => ''
-		),
-		'dashboard_atom_url_reseller' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => 'http://www.ispconfig.org/atom',
-			'value'  => ''
-		),
-		'dashboard_atom_url_client' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => 'http://www.ispconfig.org/atom',
-			'value'  => ''
-		),
-		'monitor_key' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'tab_change_discard' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'tab_change_warning' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'use_loadindicator' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'y',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'use_combobox' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'y',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'maintenance_mode' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'admin_dashlets_left' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'admin_dashlets_right' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'reseller_dashlets_left' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'reseller_dashlets_right' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'client_dashlets_left' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'client_dashlets_right' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => ''
-		),
-		'customer_no_template' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'TEXT',
-			'validators' => array ( 0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
-					'errmsg'=> 'customer_no_template_error_regex'),
-			),
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'customer_no_start' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'customer_no_counter' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'session_timeout' => array (
-			'datatype' => 'INTEGER',
-			'formtype' => 'TEXT',
-			'default' => '',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'session_allow_endless' => array (
-			'datatype' => 'VARCHAR',
-			'formtype' => 'CHECKBOX',
-			'default' => 'n',
-			'value'  => array(0 => 'n', 1 => 'y')
-		),
-		'min_password_length' => array(
-			'datatype' => 'INTEGER',
-			'formtype' => 'TEXT',
-			'default' => '5',
-			'value'  => '',
-			'width'  => '30',
-			'maxlength' => '255'
-		),
-		'min_password_strength' => array(
-			'datatype' => 'VARCHAR',
-			'formtype' => 'SELECT',
-			'default' => '',
-			'value'  => array('' => 'None', '1' => 'strength_1', '2' => 'strength_2', '3' => 'strength_3', '4' => 'strength_4', '5' => 'strength_5')
-		)
-		//#################################
-		// ENDE Datatable fields
-		//#################################
-	)
-);
-
-
-?>
-- 
GitLab


From 086c5b0050c144fd5679a8aea1c74e1c2b34948d Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 16 Aug 2016 21:32:11 +0200
Subject: [PATCH 177/313] Revert "Local deletions"

This reverts commit 38170353ec2e5b49f9305c4ad660bb01b1ed3921
---
 .../web/admin/form/system_config.tform.php    | 638 ++++++++++++++++++
 1 file changed, 638 insertions(+)
 create mode 100644 interface/web/admin/form/system_config.tform.php

diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php
new file mode 100644
index 0000000000..7261865796
--- /dev/null
+++ b/interface/web/admin/form/system_config.tform.php
@@ -0,0 +1,638 @@
+<?php
+
+/*
+	Form Definition
+
+	Tabledefinition
+
+	Datatypes:
+	- INTEGER (Forces the input to Int)
+	- DOUBLE
+	- CURRENCY (Formats the values to currency notation)
+	- VARCHAR (no format check, maxlength: 255)
+	- TEXT (no format check)
+	- DATE (Dateformat, automatic conversion to timestamps)
+
+	Formtype:
+	- TEXT (Textfield)
+	- TEXTAREA (Textarea)
+	- PASSWORD (Password textfield, input is not shown when edited)
+	- SELECT (Select option field)
+	- RADIO
+	- CHECKBOX
+	- CHECKBOXARRAY
+	- FILE
+
+	VALUE:
+	- Wert oder Array
+
+	Hint:
+	The ID field of the database table is not part of the datafield definition.
+	The ID field must be always auto incement (int or bigint).
+
+
+*/
+
+$form["title"]   = "System Config";
+$form["description"]  = "system_config_desc_txt";
+$form["name"]   = "system_config";
+$form["action"]  = "system_config_edit.php";
+$form["db_table"] = "sys_ini";
+$form["db_table_idx"] = "sysini_id";
+$form["db_history"] = "yes";
+$form["tab_default"] = "sites";
+$form["list_default"] = "server_list.php";
+$form["auth"]  = 'yes'; // yes / no
+
+$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+$form["tabs"]['sites'] = array (
+	'title'  => "Sites",
+	'width'  => 70,
+	'template'  => "templates/system_config_sites_edit.htm",
+	'fields'  => array (
+		//#################################
+		// Begin Datatable fields
+		//#################################
+		'dbname_prefix' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
+					'errmsg'=> 'dbname_prefix_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'dbuser_prefix' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
+					'errmsg'=> 'dbuser_prefix_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'ftpuser_prefix' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
+					'errmsg'=> 'ftpuser_prefix_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'shelluser_prefix' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
+					'errmsg'=> 'shelluser_prefix_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'webdavuser_prefix' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
+					'errmsg'=> 'webdavuser_prefix_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'dblist_phpmyadmin_link' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'phpmyadmin_url' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[0-9a-zA-Z\:\/\-\.\_\[\]\?\=\&]{0,255}$/',
+					'errmsg'=> 'phpmyadmin_url_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'webftp_url' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/',
+					'errmsg'=> 'webftp_url_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'vhost_subdomains' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'vhost_aliasdomains' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'client_username_web_check_disabled' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'backups_include_into_web_quota' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'reseller_can_use_options' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'default_webserver' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'SELECT',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'default_webserver'
+		),
+		'default_dbserver' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'SELECT',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'default_dbserver'
+		),
+		//#################################
+		// ENDE Datatable fields
+		//#################################
+	)
+);
+
+$form["tabs"]['mail'] = array (
+	'title'  => "Mail",
+	'width'  => 70,
+	'template'  => "templates/system_config_mail_edit.htm",
+	'fields'  => array (
+		//#################################
+		// Begin Datatable fields
+		//#################################
+		'enable_custom_login' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
+		'mailbox_show_autoresponder_tab' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default'  => 'y',
+			'value'    => array(0 => 'n', 1 => 'y')
+		),
+		'mailbox_show_mail_filter_tab' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default'  => 'y',
+			'value'    => array(0 => 'n', 1 => 'y')
+		),
+		'mailbox_show_custom_rules_tab' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default'  => 'y',
+			'value'    => array(0 => 'n', 1 => 'y')
+		),
+		'mailboxlist_webmail_link' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'webmail_url' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					/*'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}(\?.+)?$/',*/
+					'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/',
+					'errmsg'=> 'webmail_url_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'mailmailinglist_link' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'mailmailinglist_url' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/',
+					'errmsg'=> 'mailinglist_url_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'admin_mail' => array (
+			'datatype' => 'VARCHAR',
+			'filters'   => array( 0 => array( 'event' => 'SAVE',
+					'type' => 'IDNTOASCII'),
+				1 => array( 'event' => 'SHOW',
+					'type' => 'IDNTOUTF8'),
+				2 => array( 'event' => 'SAVE',
+					'type' => 'TOLOWER')
+			),
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'admin_name' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'smtp_enabled' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'smtp_host' => array (
+			'datatype' => 'VARCHAR',
+			'filters'   => array( 0 => array( 'event' => 'SAVE',
+					'type' => 'IDNTOASCII'),
+				1 => array( 'event' => 'SHOW',
+					'type' => 'IDNTOUTF8'),
+				2 => array( 'event' => 'SAVE',
+					'type' => 'TOLOWER')
+			),
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'smtp_port' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '25',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'smtp_user' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'smtp_pass' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'smtp_crypt' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'SELECT',
+			'default' => '',
+			'value'  => array('' => 'No', 'ssl' => 'SSL', 'tls' => 'STARTTLS')
+		),
+		'default_mailserver' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'SELECT',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'default_mailserver'
+		),
+		//#################################
+		// ENDE Datatable fields
+		//#################################
+	)
+);
+
+$form["tabs"]['dns'] = array (
+	'title'  => "DNS",
+	'width'  => 70,
+	'template'  => "templates/system_config_dns_edit.htm",
+	'fields'  => array (
+		//#################################
+		// Begin Datatable fields
+		//#################################
+		'default_dnsserver' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'SELECT',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'default_dnsserver'
+		),
+		'default_slave_dnsserver' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'SELECT',
+			'default' => '1',
+			'datasource' => array (  'type' => 'CUSTOM',
+				'class'=> 'custom_datasource',
+				'function'=> 'client_servers'
+			),
+			'value'  => '',
+			'name'  => 'default_slave_dnsserver'
+		),
+		//#################################
+		// ENDE Datatable fields
+		//#################################
+	)
+);
+
+$form["tabs"]['domains'] = array (
+	'title'  => "Domains",
+	'width'  => 70,
+	'template'  => "templates/system_config_domains_edit.htm",
+	'fields'  => array (
+		//#################################
+		// Begin Datatable fields
+		//#################################
+		'use_domain_module' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'new_domain_html' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		//#################################
+		// ENDE Datatable fields
+		//#################################
+	)
+);
+
+/* TODO_ BEGIN: Branding
+
+$form["tabs"]['domains'] = array (
+	'title' 	=> "Branding",
+	'width' 	=> 70,
+	'template' 	=> "templates/system_config_branding_edit.htm",
+	'fields' 	=> array (
+	##################################
+	# Begin Datatable fields
+	##################################
+                'allow_themechange' => array (
+                        'datatype'	=> 'VARCHAR',
+                        'formtype'	=> 'CHECKBOX',
+                        'default'	=> 'N',
+                        'value'         => array(0 => 'n',1 => 'y')
+                ),
+	##################################
+	# ENDE Datatable fields
+	##################################
+	)
+);
+
+
+ END: Branding */
+$form["tabs"]['misc'] = array (
+	'title'  => "Misc",
+	'width'  => 70,
+	'template'  => "templates/system_config_misc_edit.htm",
+	'fields'  => array (
+		//#################################
+		// Begin Datatable fields
+		//#################################
+		'company_name' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'custom_login_text' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'custom_login_link' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+				'regex' => '/^(http|https):\\/\\/.*|^$/',
+				'errmsg'=> 'login_link_error_regex'),
+			)
+		),
+		'dashboard_atom_url_admin' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => 'http://www.ispconfig.org/atom',
+			'value'  => ''
+		),
+		'dashboard_atom_url_reseller' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => 'http://www.ispconfig.org/atom',
+			'value'  => ''
+		),
+		'dashboard_atom_url_client' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => 'http://www.ispconfig.org/atom',
+			'value'  => ''
+		),
+		'monitor_key' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'tab_change_discard' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'tab_change_warning' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'use_loadindicator' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'use_combobox' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'maintenance_mode' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'admin_dashlets_left' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'admin_dashlets_right' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'reseller_dashlets_left' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'reseller_dashlets_right' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'client_dashlets_left' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'client_dashlets_right' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => ''
+		),
+		'customer_no_template' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'validators' => array ( 0 => array ( 'type' => 'REGEX',
+					'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/',
+					'errmsg'=> 'customer_no_template_error_regex'),
+			),
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'customer_no_start' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'customer_no_counter' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'session_timeout' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'session_allow_endless' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
+		'min_password_length' => array(
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'default' => '5',
+			'value'  => '',
+			'width'  => '30',
+			'maxlength' => '255'
+		),
+		'min_password_strength' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'SELECT',
+			'default' => '',
+			'value'  => array('' => 'None', '1' => 'strength_1', '2' => 'strength_2', '3' => 'strength_3', '4' => 'strength_4', '5' => 'strength_5')
+		)
+		//#################################
+		// ENDE Datatable fields
+		//#################################
+	)
+);
+
+
+?>
-- 
GitLab


From 655cfd8e8ec132d8d64ede28d3c068d565eae094 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 16 Aug 2016 22:45:32 +0200
Subject: [PATCH 178/313] Modification of header in subnavigation (fixes:
 #4108)

---
 interface/web/themes/default/assets/stylesheets/ispconfig.css   | 2 +-
 .../web/themes/default/assets/stylesheets/ispconfig.min.css     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index 25b012ebce..d2d06206f4 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -140,7 +140,7 @@ body {
   #sidebar header {
     margin: 1px;
     padding: 0 10px;
-    height: 40px;
+    min-height: 40px;
     line-height: 40px;
     font-weight: bold;
     border-top-left-radius: 2px;
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index bdada628a1..6a7a04ad31 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:inline-flex;margin-right:15px;margin-top:15px;cursor:pointer;animation:pulse 2s infinite}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;min-height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:inline-flex;margin-right:15px;margin-top:15px;cursor:pointer;animation:pulse 2s infinite}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
\ No newline at end of file
-- 
GitLab


From e0280fdea2752e8b60320109aee2e260abb5515c Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Wed, 17 Aug 2016 00:19:10 +0200
Subject: [PATCH 179/313] Only show rewrite http->https when SSL is enabled and
 active

---
 interface/web/sites/templates/web_vhost_domain_redirect.htm | 3 ++-
 interface/web/sites/web_vhost_domain_edit.php               | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/interface/web/sites/templates/web_vhost_domain_redirect.htm b/interface/web/sites/templates/web_vhost_domain_redirect.htm
index 1cd3ce87c5..6b4a2a528f 100644
--- a/interface/web/sites/templates/web_vhost_domain_redirect.htm
+++ b/interface/web/sites/templates/web_vhost_domain_redirect.htm
@@ -34,13 +34,14 @@
                 <div class="col-sm-9"><textarea class="form-control" name="rewrite_rules" id="rewrite_rules" rows='10' cols='50'>{tmpl_var name='rewrite_rules'}</textarea>
 				<b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b>&nbsp;break&nbsp;if&nbsp;return&nbsp;rewrite&nbsp;set<br />&nbsp;<a href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a></div>
             </div>
+			<tmpl_if name="is_ssl_enabled" op="==" value="y">
 			<div class="form-group">
 				<label class="col-sm-3 control-label">{tmpl_var name='rewrite_to_https_txt'}</label>
 				<div class="col-sm-9">
 					{tmpl_var name="rewrite_to_https"}
 				</div>
 			</div>
-        
+			</tmpl_if>
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 10dde97a49..27d3e534ce 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -835,6 +835,7 @@ class page_action extends tform_actions {
 			$tmp_sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", intval($tmp_web['sys_groupid']));
 			if(intval($tmp_sys_group['client_id']) > 0) $tmp_client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", intval($tmp_sys_group['client_id']));
 			if(is_array($tmp_client) && !empty($tmp_client) && trim($this->dataRecord['ssl_organisation']) == '' && trim($this->dataRecord['ssl_locality']) == '' && trim($this->dataRecord['ssl_state']) == '' && trim($this->dataRecord['ssl_organisation_unit']) == '') $app->tpl->setVar("show_helper_links", true);
+			$app->tpl->setVar('is_ssl_enabled', $tmp_web['ssl']);
 		}
 
 		$sys_config = $app->getconf->get_global_config('misc');
-- 
GitLab


From a636a1774766cc8f343c2a5c8b3699f3732885c4 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 17 Aug 2016 10:24:34 +0200
Subject: [PATCH 180/313] Update SSL Domain field with Domain name (Fixes:
 #4089)

---
 .../lib/plugins/sites_web_vhost_domain_plugin.inc.php      | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
index b6f0777511..cb55eadfbd 100644
--- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
+++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php
@@ -198,6 +198,13 @@ class sites_web_vhost_domain_plugin {
 
 				//* If the domain name has been changed, we will have to change all subdomains + APS instances
 				if(!empty($page_form->dataRecord["domain"]) && !empty($page_form->oldDataRecord["domain"]) && $page_form->dataRecord["domain"] != $page_form->oldDataRecord["domain"]) {
+					//* Change SSL Domain
+					$tmp=$app->db->queryOneRecord("SELECT ssl_domain FROM web_domain WHERE domain_id = ?", $page_form->id);
+					if($tmp['ssl_domain'] != '') {
+						$plain=str_replace($page_form->oldDataRecord["domain"], $page_form->dataRecord["domain"], $tmp);
+						$app->db->query("UPDATE web_domain SET ssl_domain = ? WHERE domain_id = ?", $plain, $page_form->id);
+					}
+
 					$records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE (type = 'subdomain' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND domain LIKE ?", "%." . $page_form->oldDataRecord["domain"]);
 					foreach($records as $rec) {
 						$subdomain = str_replace($page_form->oldDataRecord["domain"], $page_form->dataRecord["domain"], $rec['domain']);
-- 
GitLab


From 39df2236d697362f307dcfc45fed308616e68f5b Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 17 Aug 2016 18:18:46 +0200
Subject: [PATCH 181/313] fixed placeholder in server-templates

---
 interface/web/admin/templates/server_config_server_edit.htm | 4 ++--
 interface/web/admin/templates/server_config_web_edit.htm    | 2 +-
 interface/web/admin/templates/system_config_mail_edit.htm   | 2 +-
 interface/web/admin/templates/system_config_sites_edit.htm  | 2 +-
 interface/web/client/lib/lang/de_client.lng                 | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/interface/web/admin/templates/server_config_server_edit.htm b/interface/web/admin/templates/server_config_server_edit.htm
index d8724fc527..3156ca797a 100644
--- a/interface/web/admin/templates/server_config_server_edit.htm
+++ b/interface/web/admin/templates/server_config_server_edit.htm
@@ -77,7 +77,7 @@
             </div>
 			<div class="form-group">
                 <label for="monit_url" class="col-sm-3 control-label">{tmpl_var name='monit_url_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="monit_url" id="monit_url" value="{tmpl_var name='monit_url'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;{tmpl_var name='monit_url_note_txt'} </div><a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a>
+                <div class="col-sm-6"><input type="text" name="monit_url" id="monit_url" value="{tmpl_var name='monit_url'}" class="form-control" />&nbsp;{tmpl_var name='monit_url_note_txt'} <a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a></div>
             </div>
 			<div class="form-group">
                 <label for="monit_user" class="col-sm-3 control-label">{tmpl_var name='monit_user_txt'}</label>
@@ -87,7 +87,7 @@
                 <div class="col-sm-9"><input type="text" name="monit_password" id="monit_password" value="{tmpl_var name='monit_password'}" class="form-control" /></div></div>
 			<div class="form-group">
                 <label for="munin_url" class="col-sm-3 control-label">{tmpl_var name='munin_url_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="munin_url" id="munin_url" value="{tmpl_var name='munin_url'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;{tmpl_var name='munin_url_note_txt'} </div><a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a>
+                <div class="col-sm-6"><input type="text" name="munin_url" id="munin_url" value="{tmpl_var name='munin_url'}" class="form-control" />&nbsp;{tmpl_var name='munin_url_note_txt'} <a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a></div>
             </div>
 			<div class="form-group">
                 <label for="munin_user" class="col-sm-3 control-label">{tmpl_var name='munin_user_txt'}</label>
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 372a75241a..d34776aa54 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -46,7 +46,7 @@
             </div>
             <div class="form-group">
                 <label for="website_autoalias" class="col-sm-3 control-label">{tmpl_var name='website_autoalias_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="website_autoalias" id="website_autoalias" value="{tmpl_var name='website_autoalias'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;{tmpl_var name='website_autoalias_note_txt'} </div><a href="javascript:void(0);" class="addPlaceholder">[client_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[client_username]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_domain]</a>
+                <div class="col-sm-6"><input type="text" name="website_autoalias" id="website_autoalias" value="{tmpl_var name='website_autoalias'}" class="form-control" /> &nbsp;{tmpl_var name='website_autoalias_note_txt'} <a href="javascript:void(0);" class="addPlaceholder">[client_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[client_username]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_domain]</a></div>
             </div>
 		<div class="form-group apache">
 			<label for="vhost_rewrite_v6" class="col-sm-3 control-label">{tmpl_var name='vhost_rewrite_v6_txt'}</label>
diff --git a/interface/web/admin/templates/system_config_mail_edit.htm b/interface/web/admin/templates/system_config_mail_edit.htm
index f0460b3bbc..526da2502a 100644
--- a/interface/web/admin/templates/system_config_mail_edit.htm
+++ b/interface/web/admin/templates/system_config_mail_edit.htm
@@ -37,7 +37,7 @@
             </div>
             <div class="form-group">
                 <label for="webmail_url" class="col-sm-3 control-label">{tmpl_var name='webmail_url_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="webmail_url" id="webmail_url" value="{tmpl_var name='webmail_url'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;{tmpl_var name='webmail_url_note_txt'} </div><a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a>
+                <div class="col-sm-6"><input type="text" name="webmail_url" id="webmail_url" value="{tmpl_var name='webmail_url'}" class="form-control" />&nbsp;{tmpl_var name='webmail_url_note_txt'} <a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a></div>
             </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='mailmailinglist_link_txt'}</label>
diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm
index 711d4333b0..1c4c5c6f9a 100644
--- a/interface/web/admin/templates/system_config_sites_edit.htm
+++ b/interface/web/admin/templates/system_config_sites_edit.htm
@@ -28,7 +28,7 @@
             </div>
             <div class="form-group">
                 <label for="phpmyadmin_url" class="col-sm-3 control-label">{tmpl_var name='phpmyadmin_url_txt'}</label>
-                <div class="col-sm-6"><input type="text" name="phpmyadmin_url" id="phpmyadmin_url" value="{tmpl_var name='phpmyadmin_url'}" class="form-control" /></div><div class="col-sm-3 input-sm">&nbsp;{tmpl_var name='phpmyadmin_url_note_txt'} </div><a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a>, <a href="javascript:void(0);" class="addPlaceholder">[DATABASENAME]</a>
+                <div class="col-sm-6"><input type="text" name="phpmyadmin_url" id="phpmyadmin_url" value="{tmpl_var name='phpmyadmin_url'}" class="form-control" />&nbsp;{tmpl_var name='phpmyadmin_url_note_txt'}<a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a>, <a href="javascript:void(0);" class="addPlaceholder">[DATABASENAME]</a></div>
             </div>
             <div class="form-group">
                 <label for="webftp_url" class="col-sm-3 control-label">{tmpl_var name='webftp_url_txt'}</label>
diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng
index 80c8fbaff9..a4e0d0456a 100644
--- a/interface/web/client/lib/lang/de_client.lng
+++ b/interface/web/client/lib/lang/de_client.lng
@@ -84,7 +84,7 @@ $wb['username_error_regex'] = 'Der Benutzername enthält ungültige Zeichen.';
 $wb['password_strength_txt'] = 'Passwortkomplexität';
 $wb['template_master_txt'] = 'Mastervorlage';
 $wb['template_additional_txt'] = 'Erweiterte Vorlage';
-$wb['active_template_additional_txt'] = 'Aktive erweiterte Vorlage';
+$wb['active_template_additional_txt'] = 'Aktive erweiterte Vorlage(n)';
 $wb['add_additional_template_txt'] = 'Zusätzliches Template hinzufügen';
 $wb['delete_additional_template_txt'] = 'Zusätzliches Template löschen';
 $wb['ssh_chroot_txt'] = 'SSH Chroot Optionen';
-- 
GitLab


From 68c4830afe25ba1dc1369e57e31f49f50789154f Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 17 Aug 2016 19:36:43 +0200
Subject: [PATCH 182/313] hide GET /datalogstatus.php in apache access-logs
 (does not affect other_vhosts_access.log)

---
 install/tpl/apache_ispconfig.conf.master | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master
index 852cb39e0b..0dac415df2 100644
--- a/install/tpl/apache_ispconfig.conf.master
+++ b/install/tpl/apache_ispconfig.conf.master
@@ -3,8 +3,10 @@
 # ISPConfig Logfile configuration for vlogger
 ################################################
 
+SetEnvIf Request_URI "^/datalogstatus.php$" dontlog
+
 LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig
-CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig
+CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig env=!dontlog
 
 <Directory /var/www/clients>
     AllowOverride None
-- 
GitLab


From b8d71e5d7157deeb9eb1a85276de03b4ebfdc43b Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 18 Aug 2016 10:59:01 +0200
Subject: [PATCH 183/313] new class to check client-servers - Fixes: #4093

---
 interface/lib/classes/system.inc.php   | 59 ++++++++++++++++++++++++++
 interface/web/mail/lib/module.conf.php |  6 +--
 2 files changed, 62 insertions(+), 3 deletions(-)
 create mode 100644 interface/lib/classes/system.inc.php

diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php
new file mode 100644
index 0000000000..e9b6639109
--- /dev/null
+++ b/interface/lib/classes/system.inc.php
@@ -0,0 +1,59 @@
+<?php
+
+/*
+Copyright (c) 2016, Florian Schaal, schaal @it
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+class system {
+
+	var $client_service = null;
+
+	public function has_service($userid, $service) {
+		global $app;
+
+		if(!preg_match('/^[a-z]+$/', $service)) $app->error('Invalid service '.$service);
+
+		if($userid == 1) return true; //* We do not check admin-users
+
+		// simple query cache
+		if($this->client_service===null)
+			$this->client_service =  $app->db->queryOneRecord("SELECT client.* FROM sys_user, client WHERE sys_user.userid = ? AND sys_user.client_id = client.client_id", $userid);
+
+		// isn't service
+		if(!$this->client_service) return false;
+
+		if($this->client_service['default_'.$service.'server'] > 0 || $this->client_service[$service.'_servers'] != '') {
+			return true;
+		} else {
+			return false;
+		}
+	}
+} //* End Class
+
+?>
+
+
diff --git a/interface/web/mail/lib/module.conf.php b/interface/web/mail/lib/module.conf.php
index ca7d177860..6466f614c6 100644
--- a/interface/web/mail/lib/module.conf.php
+++ b/interface/web/mail/lib/module.conf.php
@@ -69,7 +69,7 @@ if($app->auth->get_client_limit($userid, 'mailrouting') != 0)
 		'html_id' => 'mail_transport_list');
 }
 
-if(count($items))
+if(count($items) && $app->system->has_service($userid, 'mail'))
 {
 	$module['nav'][] = array( 'title' => 'Email Accounts',
 		'open'  => 1,
@@ -87,7 +87,7 @@ if($app->auth->get_client_limit($userid, 'mailmailinglist') != 0)
 		'html_id' => 'mail_mailinglist_list');
 }
 
-if(count($items))
+if(count($items) && $app->system->has_service($userid, 'mail'))
 {
 	$module['nav'][] = array( 'title' => 'Mailing List',
 		'open'  => 1,
@@ -168,7 +168,7 @@ if($app->auth->get_client_limit($userid, 'xmpp_user') != 0)
         'html_id' => 'xmpp_user_list');
 }
 
-if(count($items))
+if(count($items) && $app->system->has_service($userid, 'xmpp'))
     $module['nav'][] = array( 'title' => 'Jabber / XMPP',
         'open'  => 1,
         'items' => $items);
-- 
GitLab


From af8b7a9cd2cd7c9da931a759dba65597a4f717ab Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 18 Aug 2016 13:16:20 +0200
Subject: [PATCH 184/313] Modification for datalog notification header (uniform
 naming / stability when losing connection)

---
 .../default/assets/javascripts/ispconfig.js   | 20 +++++---
 .../assets/javascripts/ispconfig.min.js       |  2 +-
 .../web/themes/default/templates/main.tpl.htm | 50 +++++++++----------
 3 files changed, 40 insertions(+), 32 deletions(-)

diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index 6db423ba23..70f4d77e60 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -8,6 +8,7 @@ var ISPConfig = {
 	indicatorCompleted: false,
 	registeredHooks: new Array(),
 	new_tpl_add_id: 0,
+	dataLogTimer: 0,
 	
 	options: {
 		useLoadIndicator: false,
@@ -175,6 +176,8 @@ var ISPConfig = {
 						ISPConfig.onAfterContentLoad(target, $('#'+formname).serialize());
 						ISPConfig.pageFormChanged = false;
 					}
+					clearTimeout(dataLogTimer);
+					ISPConfig.dataLogNotification();
 					ISPConfig.hideLoadIndicator();
 				},
 				error: function(jqXHR, textStatus, errorThrown) {
@@ -282,6 +285,8 @@ var ISPConfig = {
 					ISPConfig.onAfterContentLoad(pagename, (params ? params : null));
 					ISPConfig.pageFormChanged = false;
 				}
+				clearTimeout(dataLogTimer); // clear running dataLogTimer
+				ISPConfig.dataLogNotification();
 				ISPConfig.hideLoadIndicator();
 			},
 			error: function() {
@@ -346,7 +351,7 @@ var ISPConfig = {
 		
 		ISPConfig.loadMenus();
 		ISPConfig.keepalive();
-		ISPConfig.datalognotification();
+		ISPConfig.dataLogNotification();
 		setTimeout(function() {
 			try {
 				$('form#pageForm').find('input[name="username"]').focus();
@@ -487,6 +492,7 @@ var ISPConfig = {
 			url: "keepalive.php",
 			dataType: "html",
 			success: function(data, textStatus, jqXHR) {
+				//alert(textStatus);
 				setTimeout( function() { ISPConfig.keepalive(); }, 1000000 );
 			},
 			error: function() {
@@ -494,7 +500,8 @@ var ISPConfig = {
 			}
 		});
 	},
-	datalognotification: function() {
+	dataLogNotification: function() {
+		console.log(ISPConfig.options);
 	    var notificationContent = $.ajax({
 			type: "GET",
 			url: "datalogstatus.php",
@@ -502,17 +509,18 @@ var ISPConfig = {
 			success: function(data, textStatus, jqXHR) {
 				var dataLogItems = [];
 				$.each( data['entries'], function( key, val ) {
-						dataLogItems.push('<li><strong>' + val['text'] + ':</strong> ' + val['count'] + '</li>');
+					dataLogItems.push('<li><strong>' + val['text'] + ':</strong> ' + val['count'] + '</li>');
 				});
 				if(data['count'] > 0) {
 					$('.modal-body').html(dataLogItems.join(""));
 					$('.notification_text').text(data['count']);
 					$('.notification').css('display','');
-					setTimeout( function() { ISPConfig.datalognotification(); }, 2000 );
+					dataLogTimer = setTimeout( function() { ISPConfig.dataLogNotification(); }, 2000 );
 				} else {
 					$('.notification').css('display','none');
 					$('.modal-body').html('');
-					setTimeout( function() { ISPConfig.datalognotification(); }, 5000 );
+					$('#datalogModal').modal('hide');
+					dataLogTimer = setTimeout( function() { ISPConfig.dataLogNotification(); }, 5000 );
 				}
 			},
 			error: function() {
@@ -530,7 +538,7 @@ var ISPConfig = {
 		if(addTplId > 0) {
 			var newVal = tpl_add.split('/');
 			ISPConfig.new_tpl_add_id += 1;
-			var delbtn = $('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
+			var delbtn = $('&nbsp;<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
 				e.preventDefault();
 				ISPConfig.delAdditionalTemplate($(this).parent().attr('rel'));
 			});
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.min.js b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
index 45cea0ec31..3e9989b155 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.min.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
@@ -1 +1 @@
-var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),ISPConfig.datalognotification(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},datalognotification:function(){$.ajax({type:"GET",url:"datalogstatus.php",dataType:"json",success:function(a){var d=[];$.each(a.entries,function(a,b){d.push("<li><strong>"+b.text+":</strong> "+b.count+"</li>")}),a.count>0?($(".modal-body").html(d.join("")),$(".notification_text").text(a.count),$(".notification").css("display",""),setTimeout(function(){ISPConfig.datalognotification()},2e3)):($(".notification").css("display","none"),$(".modal-body").html(""),setTimeout(function(){ISPConfig.datalognotification()},5e3))},error:function(){ISPConfig.reportError("Notification not loading, aborting."),$(".notification").css("display","none")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr("class","btn btn-danger btn-xs").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+ISPConfig.new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
+var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,dataLogTimer:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),ISPConfig.dataLogNotification(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},dataLogNotification:function(){console.log(ISPConfig.options);$.ajax({type:"GET",url:"datalogstatus.php",dataType:"json",success:function(a){var d=[];$.each(a.entries,function(a,b){d.push("<li><strong>"+b.text+":</strong> "+b.count+"</li>")}),a.count>0?($(".modal-body").html(d.join("")),$(".notification_text").text(a.count),$(".notification").css("display",""),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},2e3)):($(".notification").css("display","none"),$(".modal-body").html(""),$("#datalogModal").modal("hide"),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},5e3))},error:function(){ISPConfig.reportError("Notification not loading, aborting."),$(".notification").css("display","none")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('&nbsp;<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr("class","btn btn-danger btn-xs").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+ISPConfig.new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm
index ace93b7ce4..22e4542cba 100644
--- a/interface/web/themes/default/templates/main.tpl.htm
+++ b/interface/web/themes/default/templates/main.tpl.htm
@@ -61,31 +61,31 @@
             </tmpl_if>
           </div>
         </div>
-		<div class="notification" data-toggle="modal" data-target="#myModal" style="display: none;">
-			<span class="notification_text">{tmpl_var name="datalog_changes_count"}</span>
-		</div>
-		<!-- Datalogstatus Modal -->
-		<div id="myModal" class="modal fade" role="dialog">
-		  <div class="modal-dialog">
-		    <div class="modal-content">
-		      <div class="modal-header">
-		        <button type="button" class="close" data-dismiss="modal">&times;</button>
-		        <h4 class="modal-title">{tmpl_var name="datalog_changes_txt"}</h4>
-		      </div>
-		      <div class="modal-body">
-		        <ul>
-			    <tmpl_loop name="datalog_changes">
-			        <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li>
-			    </tmpl_loop>
-			    </ul>
-		      </div>
-		      <div class="modal-footer">
-		        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
-		      </div>
-		    </div>
-		  </div>
-		</div>
-		<!-- END Datalogstatus Modal -->
+		<div class="notification" data-toggle="modal" data-target="#datalogModal" style="display: none;">
+	            <span class="notification_text">{tmpl_var name="datalog_changes_count"}</span>
+            </div>
+			<!-- Datalogstatus Modal -->
+			<div id="datalogModal" class="modal fade" role="dialog">
+			  <div class="modal-dialog">
+			    <div class="modal-content">
+			      <div class="modal-header">
+			        <button type="button" class="close" data-dismiss="modal">&times;</button>
+			        <h4 class="modal-title">{tmpl_var name="datalog_changes_txt"}</h4>
+			      </div>
+			      <div class="modal-body">
+			        <ul>
+				    <tmpl_loop name="datalog_changes">
+				        <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li>
+				    </tmpl_loop>
+				    </ul>
+			      </div>
+			      <div class="modal-footer">
+			        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+			      </div>
+			    </div>
+			  </div>
+			</div>
+			<!-- END Datalogstatus Modal -->
 		<tmpl_if name='logged_in' value='y'><div id='topnav-container'>
 		</div></tmpl_if>
 		<div class='clear'>
-- 
GitLab


From d7cfdddfb3946b571d52ea04edd3ef836cba9c2f Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 18 Aug 2016 13:32:38 +0200
Subject: [PATCH 185/313] Notification header alligment fix for all other
 except Chrome

---
 .../default/assets/stylesheets/ispconfig.css  | 24 ++++++++++++-------
 .../assets/stylesheets/ispconfig.min.css      |  2 +-
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index d2d06206f4..28217cab19 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -724,18 +724,26 @@ input[type="password"].form-control[readonly] {
     max-width: 100%;
 }
 .notification {
-    width: 35px;
-    height: 35px;
-    background: #c70f19;
-    border-radius: 50%;
-    display: inline-flex;
-    margin-right: 15px;
-    margin-top: 15px;
-    cursor: pointer;
+	width: 35px;
+	height: 35px;
+	background: #c70f19;
+	border-radius: 50%;
+	display: flex;
+	position: absolute;
+	margin-top: 15px;
+	cursor: pointer;
+	margin-right: 15px;
 }
 .notification {
 	animation: pulse 2s infinite;
 }
+@media (max-width: 600px) {
+	.notification {
+		margin-top: 0px;
+		margin-right: 0px;
+		margin-left: 230px;
+	}
+}
 @keyframes pulse {
 	0% {
 		background: #ff000e;
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 6a7a04ad31..b1e43bd642 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;min-height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:inline-flex;margin-right:15px;margin-top:15px;cursor:pointer;animation:pulse 2s infinite}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;min-height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:flex;position:absolute;margin-top:15px;cursor:pointer;margin-right:15px;animation:pulse 2s infinite}@media (max-width: 600px){.notification{margin-top:0;margin-right:0;margin-left:230px}}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
\ No newline at end of file
-- 
GitLab


From 7e254331fb8333d07847b824f3cb5ea292aa38f2 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 18 Aug 2016 13:39:23 +0200
Subject: [PATCH 186/313] Removed debug leftover

---
 interface/web/themes/default/assets/javascripts/ispconfig.js | 1 -
 1 file changed, 1 deletion(-)

diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index 70f4d77e60..5a79869dcb 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -492,7 +492,6 @@ var ISPConfig = {
 			url: "keepalive.php",
 			dataType: "html",
 			success: function(data, textStatus, jqXHR) {
-				//alert(textStatus);
 				setTimeout( function() { ISPConfig.keepalive(); }, 1000000 );
 			},
 			error: function() {
-- 
GitLab


From 792fbb85f2d1aabe49d7cfb2b9017d5fbd4967f4 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 18 Aug 2016 13:40:37 +0200
Subject: [PATCH 187/313] Regression in .js need to update ;)

---
 interface/web/themes/default/assets/javascripts/ispconfig.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index 5a79869dcb..cccaf07aca 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -537,7 +537,7 @@ var ISPConfig = {
 		if(addTplId > 0) {
 			var newVal = tpl_add.split('/');
 			ISPConfig.new_tpl_add_id += 1;
-			var delbtn = $('&nbsp;<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
+			var delbtn = $('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr('class', 'btn btn-danger btn-xs').click(function(e) {
 				e.preventDefault();
 				ISPConfig.delAdditionalTemplate($(this).parent().attr('rel'));
 			});
-- 
GitLab


From 4adec2eeeae74853fcfefde2c9539bc23af8bd0a Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Thu, 18 Aug 2016 13:42:00 +0200
Subject: [PATCH 188/313] Regression need to update local git repo

---
 .../web/themes/default/assets/javascripts/ispconfig.min.js      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.min.js b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
index 3e9989b155..76af49d1dc 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.min.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.min.js
@@ -1 +1 @@
-var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,dataLogTimer:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),ISPConfig.dataLogNotification(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},dataLogNotification:function(){console.log(ISPConfig.options);$.ajax({type:"GET",url:"datalogstatus.php",dataType:"json",success:function(a){var d=[];$.each(a.entries,function(a,b){d.push("<li><strong>"+b.text+":</strong> "+b.count+"</li>")}),a.count>0?($(".modal-body").html(d.join("")),$(".notification_text").text(a.count),$(".notification").css("display",""),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},2e3)):($(".notification").css("display","none"),$(".modal-body").html(""),$("#datalogModal").modal("hide"),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},5e3))},error:function(){ISPConfig.reportError("Notification not loading, aborting."),$(".notification").css("display","none")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('&nbsp;<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr("class","btn btn-danger btn-xs").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+ISPConfig.new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
+var ISPConfig={pageFormChanged:!1,tabChangeWarningTxt:"",tabChangeDiscardTxt:"",tabChangeWarning:!1,tabChangeDiscard:!1,requestsRunning:0,indicatorCompleted:!1,registeredHooks:new Array,new_tpl_add_id:0,dataLogTimer:0,options:{useLoadIndicator:!1,useComboBox:!1},setOption:function(a,b){ISPConfig.options[a]=b},setOptions:function(a){$.extend(ISPConfig.options,a)},reportError:function(){},registerHook:function(a,b){ISPConfig.registeredHooks[a]||(ISPConfig.registeredHooks[a]=new Array);var c=ISPConfig.registeredHooks[a].length;ISPConfig.registeredHooks[a][c]=b},callHook:function(a,b){if(ISPConfig.registeredHooks[a])for(var c=0;c<ISPConfig.registeredHooks[a].length;c++){var d=ISPConfig.registeredHooks[a][c];d(a,b)}},resetFormChanged:function(){ISPConfig.pageFormChanged=!1},showLoadIndicator:function(){if(document.body.style.cursor="wait",1==ISPConfig.options.useLoadIndicator&&(ISPConfig.requestsRunning+=1,ISPConfig.requestsRunning<2)){var a=$("#ajaxloader");a.length<1&&(a=$('<div id="ajaxloader" style="display: none;"></div>'),a.appendTo("body"));var b=$("#content");if(b.length<1)return;ISPConfig.indicatorCompleted=!1;var c=b.offset().left+150,d=b.offset().top+150;a.css({left:c,top:d}).fadeIn("fast",function(){ISPConfig.indicatorCompleted=!0,ISPConfig.requestsRunning<1&&$(this).fadeOut("fast",function(){$(this).hide()})})}},hideLoadIndicator:function(){document.body.style.cursor="",ISPConfig.requestsRunning-=1,ISPConfig.requestsRunning<1&&(ISPConfig.requestsRunning=0,1==ISPConfig.indicatorCompleted&&$("#ajaxloader").fadeOut("fast",function(){$("#ajaxloader").hide()}))},onAfterSideNavLoaded:function(){1==ISPConfig.options.useComboBox&&$("#sidebar").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0})},onAfterContentLoad:function(a,b){b=b?"&"+b:"",1==ISPConfig.options.useComboBox&&$("#pageContent").find("select:not(.chosen-select)").select2({placeholder:"",width:"element",selectOnBlur:!0,allowClear:!0,formatResult:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text},formatSelection:function(a){return a.id&&$(a.element).parent().hasClass("flags")?'<span class="flags flag-'+a.id.toLowerCase()+'">'+a.text+"</span>":a.text}}).on("change",function(){$("#pageForm .table #Filter").length>0&&$("#pageForm .table #Filter").trigger("click")}),$('input[data-input-element="date"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0,minView:"month"}),$('input[data-input-element="datetime"]').datetimepicker({language:"en",todayHighlight:!0,todayBtn:"linked",bootcssVer:3,fontAwesome:!0,autoclose:!0}),$('[data-toggle="tooltip"]').tooltip({}),$('input[type="password"]').each(function(){$(this).prop("readonly",!0).tooltip({title:"Click to set",placement:"left"})}),$('input[type="password"]').on("click focus",function(){$(this).prop("readonly",!1),$(this).tooltip("destroy")}),ISPConfig.callHook("onAfterContentLoad",{url:a,data:b})},submitForm:function(a,b,c){var d=arguments[3];if(c||(c=!1),!c||window.confirm(c)){$.ajax({type:"POST",url:b,data:$("#"+a).serialize(),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,e,f){if(d&&alert(d),f.responseText.indexOf("HEADER_REDIRECT:")>-1){var g=f.responseText.split(":");ISPConfig.loadContent(g[1])}else f.responseText.indexOf("LOGIN_REDIRECT:")>-1?document.location.href="/index.php":($("#pageContent").html(f.responseText),ISPConfig.onAfterContentLoad(b,$("#"+a).serialize()),ISPConfig.pageFormChanged=!1);clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(a){ISPConfig.hideLoadIndicator();a.responseText.split(":");ISPConfig.reportError("Ajax Request was not successful. 111")}})}},submitUploadForm:function(a,b){var c=function(a){var b,c=a.contentWindow.document.body.innerHTML;try{b=JSON.parse(c)}catch(d){b=c}var e=$("<div></div>").html(b),f="",g=e.find("#OKMsg").html();g&&(f='<div id="OKMsg">'+g+"</div>");var h=e.find("#errorMsg").html();h&&(f=f+'<div id="errorMsg">'+h+"</div>");var i=e.find('input[name="_csrf_key"]').val(),j=e.find('input[name="_csrf_id"]').val();return f=f+'<input type="hidden" name="_csrf_id" value="'+j+'" /><input type="hidden" name="_csrf_key" value="'+i+'" />'},d="ajaxUploader-iframe-"+Math.round((new Date).getTime()/1e3);$("body").append('<iframe width="0" height="0" style="display:none;" name="'+d+'" id="'+d+'"/>'),$("#"+d).load(function(){var a=c(this);$("#errorMsg").remove(),$("#OKMsg").remove(),$('input[name="_csrf_key"]').remove(),$('input[name="_csrf_id"]').remove(),$('input[name="id"]').before(a),$(this).remove()}),$('input[type="file"]').closest("form").attr({target:d,action:b}).submit()},capp:function(a,b){$.ajax({type:"GET",url:"capp.php",data:"mod="+a+(void 0!=b?"&redirect="+b:""),dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(""!=c.responseText)if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else if(c.responseText.indexOf("URL_REDIRECT:")>-1){var e=c.responseText.substr(c.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=e}ISPConfig.loadMenus(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})},loadContent:function(a){{var b=arguments[1];$.ajax({type:"GET",url:a,data:b?b:null,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(c,d,e){if(e.responseText.indexOf("HEADER_REDIRECT:")>-1){var f=e.responseText.split(":");ISPConfig.loadContent(f[1])}else if(e.responseText.indexOf("URL_REDIRECT:")>-1){var g=e.responseText.substr(e.responseText.indexOf("URL_REDIRECT:")+"URL_REDIRECT:".length);document.location.href=g}else $("#pageContent").html(e.responseText),ISPConfig.onAfterContentLoad(a,b?b:null),ISPConfig.pageFormChanged=!1;clearTimeout(dataLogTimer),ISPConfig.dataLogNotification(),ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 113")}})}},loadContentRefresh:function(a){if($("#refreshinterval").val()>0){{$.ajax({type:"GET",url:a,data:"refresh="+document.getElementById("refreshinterval").value,dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(b,c,d){ISPConfig.hideLoadIndicator(),$("#pageContent").html(d.responseText),ISPConfig.onAfterContentLoad(a,"refresh="+document.getElementById("refreshinterval").value),ISPConfig.pageFormChanged=!1},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful."+a)}})}setTimeout("ISPConfig.loadContentRefresh('"+a+"&refresh="+document.getElementById("refreshinterval").value+"')",1e3*document.getElementById("refreshinterval").value*60)}},loadInitContent:function(){var a=$("#pageContent").attr("data-startpage");a||(a="dashboard/dashboard.php");$.ajax({type:"GET",url:a,data:"",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){if(c.responseText.indexOf("HEADER_REDIRECT:")>-1){var d=c.responseText.split(":");ISPConfig.loadContent(d[1])}else $("#pageContent").html(c.responseText),ISPConfig.onAfterContentLoad("dashboard/dashboard.php",""),ISPConfig.pageFormChanged=!1;ISPConfig.hideLoadIndicator()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 114")}});ISPConfig.loadMenus(),ISPConfig.keepalive(),ISPConfig.dataLogNotification(),setTimeout(function(){try{$("form#pageForm").find('input[name="username"]').focus()}catch(a){}},1e3)},loadMenus:function(){$.ajax({type:"GET",url:"nav.php",data:"nav=side",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#sidebar").html(c.responseText),ISPConfig.onAfterSideNavLoaded(),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 115")}}),$.ajax({type:"GET",url:"nav.php",data:"nav=top",dataType:"html",beforeSend:function(){ISPConfig.showLoadIndicator()},success:function(a,b,c){ISPConfig.hideLoadIndicator(),$("#topnav-container").html(c.responseText),ISPConfig.loadPushyMenu()},error:function(){ISPConfig.hideLoadIndicator(),ISPConfig.reportError("Ajax Request was not successful. 116")}})},changeTab:function(a,b,c){if(ISPConfig.requestsRunning>0)return console.log("tab change interrupted, request still running."),!1;document.pageForm.next_tab.value=a;var d=$("form#pageForm").find('[name="id"]'),e=null;if(d.length>0&&(e=d.val()),"y"!=ISPConfig.tabChangeDiscard||c)if(e&&"y"==ISPConfig.tabChangeWarning&&1==ISPConfig.pageFormChanged)if(window.confirm(ISPConfig.tabChangeWarningTxt))ISPConfig.submitForm("pageForm",b);else{var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}else ISPConfig.submitForm("pageForm",b);else{if(!(d.length<1||e)||0!=ISPConfig.pageFormChanged&&!window.confirm(ISPConfig.tabChangeDiscardTxt))return!1;var f=a;e?ISPConfig.loadContent(b,{next_tab:f,id:e}):ISPConfig.loadContent(b,{next_tab:f})}},confirm_action:function(a,b){window.confirm(b)&&ISPConfig.loadContent(a)},loadContentInto:function(a,b){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(b,c,d){$("#"+a).html(d.responseText)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 118")}})},loadOptionInto:function(a,b,c){$.ajax({type:"GET",url:b,dataType:"html",beforeSend:function(){},success:function(d,e,f){var g=f.responseText,h=g.split("#");el=document.getElementById(a),el.innerHTML="";for(var i=0;i<h.length;++i){var j=document.createElement("option");j.appendChild(document.createTextNode(h[i])),j.value=h[i],el.appendChild(j)}"undefined"!=typeof c&&c(a,b)},error:function(){ISPConfig.reportError("Ajax Request was not successful. 119")}})},keepalive:function(){$.ajax({type:"GET",url:"keepalive.php",dataType:"html",success:function(){setTimeout(function(){ISPConfig.keepalive()},1e6)},error:function(){ISPConfig.reportError("Session expired. Please login again.")}})},dataLogNotification:function(){console.log(ISPConfig.options);$.ajax({type:"GET",url:"datalogstatus.php",dataType:"json",success:function(a){var d=[];$.each(a.entries,function(a,b){d.push("<li><strong>"+b.text+":</strong> "+b.count+"</li>")}),a.count>0?($(".modal-body").html(d.join("")),$(".notification_text").text(a.count),$(".notification").css("display",""),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},2e3)):($(".notification").css("display","none"),$(".modal-body").html(""),$("#datalogModal").modal("hide"),dataLogTimer=setTimeout(function(){ISPConfig.dataLogNotification()},5e3))},error:function(){ISPConfig.reportError("Notification not loading, aborting."),$(".notification").css("display","none")}})},addAdditionalTemplate:function(){var a=$("#template_additional").val(),b=$("#tpl_add_select").val().split("|",2),c=b[0],d=b[1];if(c>0){var e=a.split("/");ISPConfig.new_tpl_add_id+=1;var f=$('<a href="#"><span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></a>').attr("class","btn btn-danger btn-xs").click(function(a){a.preventDefault(),ISPConfig.delAdditionalTemplate($(this).parent().attr("rel"))});e[e.length]="n"+ISPConfig.new_tpl_add_id+":"+c,$("<li>"+d+"</li>").attr("rel","n"+ISPConfig.new_tpl_add_id).append(f).appendTo("#template_additional_list ul"),$("#template_additional").val(e.join("/")),alert("additional template "+d+" added to customer")}else alert("no additional template selcted")},delAdditionalTemplate:function(a){var b=$("#template_additional").val();if(a){var c=$("#template_additional_list ul").find('li[rel="'+a+'"]').eq(0),d=c.text();c.remove();for(var e=b.split("/"),f=new Array,g=0;g<e.length;g++){var h=e[g].split(":",2);(2!=h.length||h[0]!=a)&&(f[f.length]=e[g])}$("#template_additional").val(f.join("/")),alert("additional template "+d+" deleted from customer")}else if(""!=b){var i=document.getElementById("tpl_add_select").value.split("|",2),j=i[0],d=i[1];$("#template_additional_list ul").find("li:not([rel])").each(function(){var a=$(this).text();return a==d?($(this).remove(),!1):this});var f=b,k=new RegExp("(^|/)"+j+"(/|$)");f=f.replace(k,""),f=f.replace("//","/"),$("#template_additional").val(f),alert("additional template "+d+" deleted from customer")}else alert("no additional template selcted")}};$(document).on("change",function(a){var b=a.target.localName;$("#pageForm .table #Filter").length>0&&"select"==b&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),("select"==b||"input"==b||"textarea"==b)&&0==$(a.target).hasClass("no-page-form-change")&&(ISPConfig.pageFormChanged=!0)});var $page=$("html, body");$(document).on("click","a[data-load-content],button[data-load-content]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-load-content");return b?void ISPConfig.loadContent(b):this}),$(document).on("click","a[data-capp],button[data-capp]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this).attr("data-capp");return b?void ISPConfig.capp(b):this}),$(document).on("click","a[data-submit-form],button[data-submit-form]",function(a){if(a.preventDefault(),ISPConfig.requestsRunning>0)return void console.log("preventing click because there is still a request running.");$page.on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()}),$page.animate({scrollTop:0},1e3,function(){$page.off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove",function(){$page.stop()})});var b=$(this),c=b.attr("data-form-action"),d=b.attr("data-submit-form");"true"==b.attr("data-form-upload")?ISPConfig.submitUploadForm(d,c):ISPConfig.submitForm(d,c)}),$(document).bind("keypress",function(a){"13"==a.which&&$("#pageForm .table #Filter").length>0&&0==$(a.target).hasClass("ui-autocomplete-input")&&(a.preventDefault(),$("#pageForm .table #Filter").trigger("click")),"13"==a.which&&$(".tab-content button.formbutton-success").length>0&&"textarea"!=a.target.localName&&$(a.target).is(":input")&&(a.preventDefault(),$(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger("click"))}),$(document).on("click","th[data-column]",function(){var b=$(this),c=b.attr("data-column");if(!c)return this;if($("#pageForm .table #Filter").length>0&&"false"!=b.attr("data-sortable")){var d=$("#Filter"),e=d.attr("data-form-action"),f=d.attr("data-submit-form"),g=b.attr("data-ordered"),h="?";e.indexOf("?")>=0&&(h="&"),e=e+h+"orderby="+c,ISPConfig.submitForm(f,e),$(document).ajaxComplete(function(){var a=$('#pageForm .table th[data-column="'+c+'"]');a.parent().children("th[data-column]").removeAttr("data-ordered"),g&&"asc"==g?a.attr("data-ordered","desc"):a.attr("data-ordered","asc")})}}),$(document).on("click",".addPlaceholder",function(){var a=$(this).text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click",".addPlaceholderContent",function(){var a=$(this).find(".addPlaceholderContent").text(),b=$(this).siblings(":input");b.insertAtCaret(a)}),$(document).on("click","[data-check-fields] > input[type='checkbox']",function(){if($(this).is(":checked"))for(var a=$(this).parent().attr("data-check-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!0)}}),$(document).on("click","[data-uncheck-fields] > input[type='checkbox']",function(){if(0==$(this).is(":checked"))for(var a=$(this).parent().attr("data-uncheck-fields"),b=a.split(/,/),c=0;c<b.length;c++){var d=b[c];$('input[type="checkbox"][name="'+d+'"]').prop("checked",!1)}}),$(document).on("ready",function(){$.fn.extend({insertAtCaret:function(a){return this.each(function(){if(document.selection)this.focus(),sel=document.selection.createRange(),sel.text=a,this.focus();else if(this.selectionStart||"0"==this.selectionStart){var c=this.selectionStart,d=this.selectionEnd,e=this.scrollTop;this.value=this.value.substring(0,c)+a+this.value.substring(d,this.value.length),this.focus(),this.selectionStart=c+a.length,this.selectionEnd=c+a.length,this.scrollTop=e}else this.value+=a,this.focus()})}}),$(".progress .progress-bar").css("width",function(){return $(this).attr("aria-valuenow")+"%"}),ISPConfig.loadInitContent(),$("#searchform").submit(function(a){a.preventDefault()}),$("#pageForm").submit(function(a){$("#pageForm .table #Filter").length>0&&a.preventDefault()}),$.fn.setCursorPosition=function(a){var b=$(this).get(0);if(b.setSelectionRange)b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();c.collapse(!0),a<0&&(a=$(this).val().length+a),c.moveEnd("character",a),c.moveStart("character",a),c.select()}},$.fn.getCursorPosition=function(){var a=0,b=$(this).get(0);if("number"===typeof b.selectionStart)a="backward"==b.selectionDirection?b.selectionStart:b.selectionEnd;else if(document.selection){this.focus();var c=document.selection.createRange();c.moveStart("character",-b.value.length),a=c.text.length}return a}});
\ No newline at end of file
-- 
GitLab


From 184501497e67c093c72379a8593e8167c5c9aed5 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 18 Aug 2016 14:20:31 +0200
Subject: [PATCH 189/313] Fixes #4092

---
 interface/web/mail/mail_user_edit.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php
index a79d8f8ff9..79d45bf05a 100644
--- a/interface/web/mail/mail_user_edit.php
+++ b/interface/web/mail/mail_user_edit.php
@@ -93,6 +93,7 @@ class page_action extends tform_actions {
 
 		// Get the spamfilter policys for the user
 		$tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = ?", $this->dataRecord["email"]);
+		if (isset($_POST['policy'])) $tmp_user['policy_id'] = intval($_POST['policy']);
 		$sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r') . " ORDER BY policy_name";
 		$policys = $app->db->queryAllRecords($sql);
 		$policy_select = "<option value='0'>".$app->tform->lng("no_policy")."</option>";
-- 
GitLab


From 4a258fa5e11b0c392a7faebbca8914f8c9a86b4c Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 18 Aug 2016 14:25:26 +0200
Subject: [PATCH 190/313] - added missing remoting function
 (server_get_app_version)

---
 interface/lib/classes/remote.d/server.inc.php | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/interface/lib/classes/remote.d/server.inc.php b/interface/lib/classes/remote.d/server.inc.php
index eb4a8b9846..fec9b72614 100644
--- a/interface/lib/classes/remote.d/server.inc.php
+++ b/interface/lib/classes/remote.d/server.inc.php
@@ -208,6 +208,20 @@ class remoting_server extends remoting {
 		}
 	}
 
+	public function server_get_app_version($session_id)
+    {
+		global $app;
+		if(!$this->checkPerm($session_id, 'server_get')) {
+			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+		if (!empty($session_id)) {
+			$ispc_app_version = array('ispc_app_version' => ISPC_APP_VERSION);
+			return $ispc_app_version;
+		} else {
+			return false;
+		}
+	}
 }
 
 ?>
-- 
GitLab


From 7ae982fd76f4c1bbc914268829afca626a470cfe Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 18 Aug 2016 15:08:07 +0200
Subject: [PATCH 191/313] - invalid function calls in API

---
 interface/lib/classes/remote.d/admin.inc.php  | 10 ++--
 interface/lib/classes/remote.d/aps.inc.php    | 52 +++++++++----------
 interface/lib/classes/remote.d/client.inc.php | 28 +++++-----
 interface/lib/classes/remote.d/mail.inc.php   | 20 +++----
 interface/lib/classes/remote.d/server.inc.php | 12 ++---
 interface/lib/classes/remote.d/sites.inc.php  | 18 +++----
 6 files changed, 70 insertions(+), 70 deletions(-)

diff --git a/interface/lib/classes/remote.d/admin.inc.php b/interface/lib/classes/remote.d/admin.inc.php
index 2541ca5c19..33063d6542 100644
--- a/interface/lib/classes/remote.d/admin.inc.php
+++ b/interface/lib/classes/remote.d/admin.inc.php
@@ -52,7 +52,7 @@ class remoting_admin extends remoting {
 		global $app;
 		
 		if(!$this->checkPerm($session_id, 'admin_record_permissions')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		
@@ -62,7 +62,7 @@ class remoting_admin extends remoting {
 					// check if userid is valid
 					$check = $app->db->queryOneRecord('SELECT userid FROM sys_user WHERE userid = ?', $app->functions->intval($value));
 					if(!$check || !$check['userid']) {
-						$this->server->fault('invalid parameters', $value . ' is no valid sys_userid.');
+						throw new SoapFault('invalid parameters', $value . ' is no valid sys_userid.');
 						return false;
 					}
 					$permissions[$key] = $app->functions->intval($value);
@@ -71,7 +71,7 @@ class remoting_admin extends remoting {
 					// check if groupid is valid
 					$check = $app->db->queryOneRecord('SELECT groupid FROM sys_group WHERE groupid = ?', $app->functions->intval($value));
 					if(!$check || !$check['groupid']) {
-						$this->server->fault('invalid parameters', $value . ' is no valid sys_groupid.');
+						throw new SoapFault('invalid parameters', $value . ' is no valid sys_groupid.');
 						return false;
 					}
 					$permissions[$key] = $app->functions->intval($value);
@@ -81,7 +81,7 @@ class remoting_admin extends remoting {
 					// check if permissions are valid
 					$value = strtolower($value);
 					if(!preg_match('/^[riud]+$/', $value)) {
-						$this->server->fault('invalid parameters', $value . ' is no valid permission string.');
+						throw new SoapFault('invalid parameters', $value . ' is no valid permission string.');
 						return false;
 					}
 					
@@ -95,7 +95,7 @@ class remoting_admin extends remoting {
 					
 					break;
 				default:
-					$this->server->fault('invalid parameters', 'Only sys_userid, sys_groupid, sys_perm_user and sys_perm_group parameters can be changed with this function.');
+					throw new SoapFault('invalid parameters', 'Only sys_userid, sys_groupid, sys_perm_user and sys_perm_group parameters can be changed with this function.');
 					break;
 			}
 		}
diff --git a/interface/lib/classes/remote.d/aps.inc.php b/interface/lib/classes/remote.d/aps.inc.php
index 4db5f78809..50dda48255 100644
--- a/interface/lib/classes/remote.d/aps.inc.php
+++ b/interface/lib/classes/remote.d/aps.inc.php
@@ -40,7 +40,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_update_package_list')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		
@@ -60,7 +60,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_available_packages_list')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -82,7 +82,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_get_package_details')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -98,14 +98,14 @@ class remoting_aps extends remoting {
 	
 		// Make sure an integer ID is given
 		if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag
-			$this->server->fault('package_error', 'The given Package ID is not valid.');
+			throw new SoapFault('package_error', 'The given Package ID is not valid.');
 			return false;
 		}
 	
 		// Get package details
 		$details = $gui->getPackageDetails($primary_id);
 		if (isset($details['error'])) {
-			$this->server->fault('package_error', $details['error']);
+			throw new SoapFault('package_error', $details['error']);
 			return false;
 		}
 	
@@ -121,7 +121,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_get_package_file')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -137,14 +137,14 @@ class remoting_aps extends remoting {
 	
 		// Make sure an integer ID is given
 		if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag
-			$this->server->fault('package_error', 'The given Package ID is not valid.');
+			throw new SoapFault('package_error', 'The given Package ID is not valid.');
 			return false;
 		}
 	
 		// Get package details
 		$details = $gui->getPackageDetails($primary_id);
 		if (isset($details['error'])) {
-			$this->server->fault('package_error', $details['error']);
+			throw new SoapFault('package_error', $details['error']);
 			return false;
 		}
 	
@@ -155,7 +155,7 @@ class remoting_aps extends remoting {
 		foreach ($details['Screenshots'] as $screen) { if (basename($screen['ScreenPath']) == $filename) { $found = true; break; } }
 	
 		if (!$found) {
-			$this->server->fault('package_error', 'File not found in package.');
+			throw new SoapFault('package_error', 'File not found in package.');
 			return false;
 		}
 	
@@ -167,7 +167,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_get_package_details')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -183,14 +183,14 @@ class remoting_aps extends remoting {
 	
 		// Make sure an integer ID is given
 		if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag
-			$this->server->fault('package_error', 'The given Package ID is not valid.');
+			throw new SoapFault('package_error', 'The given Package ID is not valid.');
 			return false;
 		}
 	
 		// Get package settings
 		$settings = $gui->getPackageSettings($primary_id);
 		if (isset($settings['error'])) {
-			$this->server->fault('package_error', $settings['error']);
+			throw new SoapFault('package_error', $settings['error']);
 			return false;
 		}
 	
@@ -205,7 +205,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_change_package_status')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		
@@ -215,12 +215,12 @@ class remoting_aps extends remoting {
 		
 		// Make sure an integer ID is given
 		if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag
-			$this->server->fault('package_error', 'The given Package ID is not valid.');
+			throw new SoapFault('package_error', 'The given Package ID is not valid.');
 			return false;
 		}
 		
 		if(!isset($params['package_status']) || (($params['package_status'] != PACKAGE_ENABLED) && ($params['package_status'] != PACKAGE_LOCKED))) {
-			$this->server->fault('package_error', 'Wrong new status: '.$params['package_status']);
+			throw new SoapFault('package_error', 'Wrong new status: '.$params['package_status']);
 			return false;
 		}
 		
@@ -235,7 +235,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_install_package')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -251,25 +251,25 @@ class remoting_aps extends remoting {
 	
 		// Make sure an integer ID is given
 		if (!isset($primary_id) || !$gui->isValidPackageID($primary_id, true)) {// always adminflag
-			$this->server->fault('package_error', 'The given Package ID is not valid.');
+			throw new SoapFault('package_error', 'The given Package ID is not valid.');
 			return false;
 		}
 	
 		// Get package details
 		$details = $gui->getPackageDetails($primary_id);
 		if (isset($details['error'])) {
-			$this->server->fault('package_error', $details['error']);
+			throw new SoapFault('package_error', $details['error']);
 			return false;
 		}
 		$settings = $gui->getPackageSettings($primary_id);
 		if (isset($settings['error'])) {
-			$this->server->fault('package_error', $settings['error']);
+			throw new SoapFault('package_error', $settings['error']);
 			return false;
 		}
 	
 		// Check given Site/VHostDomain
 		if (!isset($params['main_domain'])) {
-			$this->server->fault('invalid parameters', 'No valid domain given.');
+			throw new SoapFault('invalid parameters', 'No valid domain given.');
 			return false;
 		}
 	
@@ -284,7 +284,7 @@ class remoting_aps extends remoting {
 		}
 	
 		if (!$domain) {
-			$this->server->fault('invalid parameters', 'No valid domain given.');
+			throw new SoapFault('invalid parameters', 'No valid domain given.');
 			return false;
 		}
 	
@@ -295,7 +295,7 @@ class remoting_aps extends remoting {
 			return $gui->createPackageInstance($result['input'], $primary_id);
 		}
 		
-		$this->server->fault('invalid parameters', implode('<br />', $result['error']));
+		throw new SoapFault('invalid parameters', implode('<br />', $result['error']));
 		return false;
 	}
 	
@@ -304,7 +304,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_instance_get')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -318,7 +318,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_instance_get')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -332,7 +332,7 @@ class remoting_aps extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_aps_instance_delete')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -344,7 +344,7 @@ class remoting_aps extends remoting {
 		$result = $app->db->queryOneRecord($sql, $primary_id);
 	
 		if (!$result) {
-			$this->server->fault('instance_error', 'No valid instance id given.');
+			throw new SoapFault('instance_error', 'No valid instance id given.');
 			return false;
 		}
 	
diff --git a/interface/lib/classes/remote.d/client.inc.php b/interface/lib/classes/remote.d/client.inc.php
index c9441f5200..7d2b0d58ff 100644
--- a/interface/lib/classes/remote.d/client.inc.php
+++ b/interface/lib/classes/remote.d/client.inc.php
@@ -171,12 +171,12 @@ class remoting_client extends remoting {
 			// check if this one is reseller
 			$check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ?', intval($params['parent_client_id']));
 			if($check['limit_client'] == 0) {
-				$this->server->fault('Invalid reseller', 'Selected client is not a reseller.');
+				throw new SoapFault('Invalid reseller', 'Selected client is not a reseller.');
 				return false;
 			}
 
 			if(isset($params['limit_client']) && $params['limit_client'] != 0) {
-				$this->server->fault('Invalid reseller', 'Reseller cannot be client of another reseller.');
+				throw new SoapFault('Invalid reseller', 'Reseller cannot be client of another reseller.');
 				return false;
 			}
 		}
@@ -210,12 +210,12 @@ class remoting_client extends remoting {
 			// check if this one is reseller
 			$check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ?', intval($params['parent_client_id']));
 			if($check['limit_client'] == 0) {
-				$this->server->fault('Invalid reseller', 'Selected client is not a reseller.');
+				throw new SoapFault('Invalid reseller', 'Selected client is not a reseller.');
 				return false;
 			}
 
 			if(isset($params['limit_client']) && $params['limit_client'] != 0) {
-				$this->server->fault('Invalid reseller', 'Reseller cannot be client of another reseller.');
+				throw new SoapFault('Invalid reseller', 'Reseller cannot be client of another reseller.');
 				return false;
 			}
 		}
@@ -253,7 +253,7 @@ class remoting_client extends remoting {
 		global $app;
 
 		if(!$this->checkPerm($session_id, 'client_get')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 
@@ -261,7 +261,7 @@ class remoting_client extends remoting {
 			$sql = "SELECT * FROM `client_template_assigned` WHERE `client_id` = ?";
 			return $app->db->queryOneRecord($sql, $client_id);
 		} else {
-			$this->server->fault('The ID must be an integer.');
+			throw new SoapFault('The ID must be an integer.');
 			return array();
 		}
 	}
@@ -291,7 +291,7 @@ class remoting_client extends remoting {
 		global $app;
 
 		if(!$this->checkPerm($session_id, 'client_update')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 
@@ -299,13 +299,13 @@ class remoting_client extends remoting {
 			// check if client exists
 			$check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ?', $client_id);
 			if(!$check) {
-				$this->server->fault('Invalid client');
+				throw new SoapFault('Invalid client');
 				return false;
 			}
 			// check if template exists
 			$check = $app->db->queryOneRecord('SELECT `template_id` FROM `client_template` WHERE `template_id` = ?', $template_id);
 			if(!$check) {
-				$this->server->fault('Invalid template');
+				throw new SoapFault('Invalid template');
 				return false;
 			}
 
@@ -320,7 +320,7 @@ class remoting_client extends remoting {
 
 			return $insert_id;
 		} else {
-			$this->server->fault('The IDs must be of type integer.');
+			throw new SoapFault('The IDs must be of type integer.');
 			return false;
 		}
 	}
@@ -329,7 +329,7 @@ class remoting_client extends remoting {
 		global $app;
 
 		if(!$this->checkPerm($session_id, 'client_update')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 
@@ -337,13 +337,13 @@ class remoting_client extends remoting {
 			// check if client exists
 			$check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ?', $client_id);
 			if(!$check) {
-				$this->server->fault('Invalid client');
+				throw new SoapFault('Invalid client');
 				return false;
 			}
 			// check if template exists
 			$check = $app->db->queryOneRecord('SELECT `assigned_template_id` FROM `client_template_assigned` WHERE `assigned_template_id` = ?', $assigned_template_id);
 			if(!$check) {
-				$this->server->fault('Invalid template');
+				throw new SoapFault('Invalid template');
 				return false;
 			}
 
@@ -358,7 +358,7 @@ class remoting_client extends remoting {
 
 			return $affected_rows;
 		} else {
-			$this->server->fault('The IDs must be of type integer.');
+			throw new SoapFault('The IDs must be of type integer.');
 			return false;
 		}
 	}
diff --git a/interface/lib/classes/remote.d/mail.inc.php b/interface/lib/classes/remote.d/mail.inc.php
index 9229899e57..75c2165298 100644
--- a/interface/lib/classes/remote.d/mail.inc.php
+++ b/interface/lib/classes/remote.d/mail.inc.php
@@ -316,7 +316,7 @@ class remoting_mail extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'mail_user_backup')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -339,7 +339,7 @@ class remoting_mail extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'mail_user_backup')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -353,19 +353,19 @@ class remoting_mail extends remoting {
 	
 		//* Basic validation of variables
 		if ($server_id <= 0) {
-			$this->server->fault('invalid_backup_id', "Invalid or non existant backup_id $primary_id");
+			throw new SoapFault('invalid_backup_id', "Invalid or non existant backup_id $primary_id");
 			return false;
 		}
 	
 		if (/*$action_type != 'backup_download_mail' and*/ $action_type != 'backup_restore_mail' and $action_type != 'backup_delete_mail') {
-			$this->server->fault('invalid_action', "Invalid action_type $action_type");
+			throw new SoapFault('invalid_action', "Invalid action_type $action_type");
 			return false;
 		}
 	
 		//* Validate instance
 		$instance_record        =       $app->db->queryOneRecord("SELECT * FROM `sys_remoteaction` WHERE `action_param`=? and `action_type`=? and `action_state`='pending'", $primary_id, $action_type);
 		if ($instance_record['action_id'] >= 1) {
-			$this->server->fault('duplicate_action', "There is already a pending $action_type action");
+			throw new SoapFault('duplicate_action', "There is already a pending $action_type action");
 			return false;
 		}
 	
@@ -600,7 +600,7 @@ class remoting_mail extends remoting {
 		global $app;
 
 		if(!$this->checkPerm($session_id, 'mail_relay_get')) {
-				$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+				throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 				return false;
 		}
 		$app->uses('remoting_lib');
@@ -614,7 +614,7 @@ class remoting_mail extends remoting {
 	{
 		if (!$this->checkPerm($session_id, 'mail_relay_add'))
 		{
-			$this->server->fault('permission_denied','You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied','You do not have the permissions to access this function.');
 			return false;
 		}
 		$affected_rows = $this->insertQuery('../mail/form/mail_relay_recipient.tform.php', $client_id, $params);
@@ -626,7 +626,7 @@ class remoting_mail extends remoting {
 	{
 		if (!$this->checkPerm($session_id, 'mail_relay_update'))
 		{
-			$this->server->fault('permission_denied','You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied','You do not have the permissions to access this function.');
 			return false;
 		}
 		$affected_rows = $this->updateQuery('../mail/form/mail_relay_recipient.tform.php', $client_id, $primary_id, $params);
@@ -638,7 +638,7 @@ class remoting_mail extends remoting {
 	{
 		if (!$this->checkPerm($session_id, 'mail_relay_delete'))
 		{
-			$this->server->fault('permission_denied','You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied','You do not have the permissions to access this function.');
 			return false;
 		}
 		$affected_rows = $this->deleteQuery('../mail/form/mail_relay_recipient.tform.php', $primary_id);
@@ -1097,7 +1097,7 @@ class remoting_mail extends remoting {
 		$app->uses('quota_lib');
 		
 		if(!$this->checkPerm($session_id, 'mailquota_get_by_user')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		
diff --git a/interface/lib/classes/remote.d/server.inc.php b/interface/lib/classes/remote.d/server.inc.php
index fec9b72614..a150ec3d5d 100644
--- a/interface/lib/classes/remote.d/server.inc.php
+++ b/interface/lib/classes/remote.d/server.inc.php
@@ -66,7 +66,7 @@ class remoting_server extends remoting {
 		global $app;
 
 		if(!$this->checkPerm($session_id, 'server_ip_get')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		$app->uses('remoting_lib');
@@ -118,7 +118,7 @@ class remoting_server extends remoting {
 	public function server_get($session_id, $server_id = null, $section ='') {
 			global $app;
 			if(!$this->checkPerm($session_id, 'server_get')) {
-					$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+					throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 					return false;
 			}
 			if (!empty($session_id)) {
@@ -152,7 +152,7 @@ class remoting_server extends remoting {
 	{
 		global $app;
 		if(!$this->checkPerm($session_id, 'server_get')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		if (!empty($session_id)) {
@@ -174,7 +174,7 @@ class remoting_server extends remoting {
     {
         global $app;
 		if(!$this->checkPerm($session_id, 'server_get')) {
-        	$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+        	throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
             return false;
 		}
 		if (!empty($session_id) && !empty($server_name)) {
@@ -196,7 +196,7 @@ class remoting_server extends remoting {
     {
         global $app;
 		if(!$this->checkPerm($session_id, 'server_get')) {
-        	$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+        	throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
             return false;
 		}
 		if (!empty($session_id) && !empty($server_id)) { 
@@ -212,7 +212,7 @@ class remoting_server extends remoting {
     {
 		global $app;
 		if(!$this->checkPerm($session_id, 'server_get')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		if (!empty($session_id)) {
diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php
index 7c7279c398..95be8634c2 100644
--- a/interface/lib/classes/remote.d/sites.inc.php
+++ b/interface/lib/classes/remote.d/sites.inc.php
@@ -899,7 +899,7 @@ class remoting_sites extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_web_domain_backup')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		
@@ -913,7 +913,7 @@ class remoting_sites extends remoting {
 		global $app;
 	
 		if(!$this->checkPerm($session_id, 'sites_web_domain_backup')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -927,19 +927,19 @@ class remoting_sites extends remoting {
 	
 		//* Basic validation of variables
 		if ($server_id <= 0) {
-			$this->server->fault('invalid_backup_id', "Invalid or non existant backup_id $primary_id");
+			throw new SoapFault('invalid_backup_id', "Invalid or non existant backup_id $primary_id");
 			return false;
 		}
 	
 		if ($action_type != 'backup_download' and $action_type != 'backup_restore' and $action_type != 'backup_delete') {
-			$this->server->fault('invalid_action', "Invalid action_type $action_type");
+			throw new SoapFault('invalid_action', "Invalid action_type $action_type");
 			return false;
 		}
 	
 		//* Validate instance
 		$instance_record = $app->db->queryOneRecord("SELECT * FROM `sys_remoteaction` WHERE `action_param`= ? and `action_type`= ? and `action_state`= ?", $primary_id, $action_type, 'pending');
 		if ($instance_record['action_id'] >= 1) {
-			$this->server->fault('duplicate_action', "There is already a pending $action_type action");
+			throw new SoapFault('duplicate_action', "There is already a pending $action_type action");
 			return false;
 		}
 	
@@ -958,7 +958,7 @@ class remoting_sites extends remoting {
 		$app->uses('quota_lib');
 	
 		if(!$this->checkPerm($session_id, 'quota_get_by_user')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
@@ -971,7 +971,7 @@ class remoting_sites extends remoting {
 		$app->uses('quota_lib');
 		
 		if(!$this->checkPerm($session_id, 'trafficquota_get_by_user')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		if ($client_id != null)
@@ -986,7 +986,7 @@ class remoting_sites extends remoting {
 		$app->uses('quota_lib');
 		
 		if(!$this->checkPerm($session_id, 'trafficquota_get_by_user')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		if ($client_id != null)
@@ -1001,7 +1001,7 @@ class remoting_sites extends remoting {
 		$app->uses('quota_lib');
 	
 		if(!$this->checkPerm($session_id, 'databasequota_get_by_user')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 	
-- 
GitLab


From 4a34e61e441a2893b63b56f8e8c8f43ece8bd5ee Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 18 Aug 2016 15:18:23 +0200
Subject: [PATCH 192/313] - handle insertion of client with invalid parent id

---
 interface/lib/classes/remote.d/client.inc.php | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/interface/lib/classes/remote.d/client.inc.php b/interface/lib/classes/remote.d/client.inc.php
index 7d2b0d58ff..6857133fe8 100644
--- a/interface/lib/classes/remote.d/client.inc.php
+++ b/interface/lib/classes/remote.d/client.inc.php
@@ -171,11 +171,9 @@ class remoting_client extends remoting {
 			// check if this one is reseller
 			$check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ?', intval($params['parent_client_id']));
 			if($check['limit_client'] == 0) {
-				throw new SoapFault('Invalid reseller', 'Selected client is not a reseller.');
-				return false;
-			}
-
-			if(isset($params['limit_client']) && $params['limit_client'] != 0) {
+				throw new SoapFault('Invalid reseller', 'Selected client is not a reseller. REMOVING PARENT_CLIENT_ID!!!');
+				$params['parent_client_id'] = 0;
+			} elseif(isset($params['limit_client']) && $params['limit_client'] != 0) {
 				throw new SoapFault('Invalid reseller', 'Reseller cannot be client of another reseller.');
 				return false;
 			}
-- 
GitLab


From adb537c3f8adf2716ec5d6a51870251ab6e4491d Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 18 Aug 2016 15:20:13 +0200
Subject: [PATCH 193/313] - fix from previous commit

---
 interface/lib/classes/remote.d/client.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/remote.d/client.inc.php b/interface/lib/classes/remote.d/client.inc.php
index 6857133fe8..2099089f09 100644
--- a/interface/lib/classes/remote.d/client.inc.php
+++ b/interface/lib/classes/remote.d/client.inc.php
@@ -171,7 +171,7 @@ class remoting_client extends remoting {
 			// check if this one is reseller
 			$check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ?', intval($params['parent_client_id']));
 			if($check['limit_client'] == 0) {
-				throw new SoapFault('Invalid reseller', 'Selected client is not a reseller. REMOVING PARENT_CLIENT_ID!!!');
+				// Selected client is not a reseller. REMOVING PARENT_CLIENT_ID!!!
 				$params['parent_client_id'] = 0;
 			} elseif(isset($params['limit_client']) && $params['limit_client'] != 0) {
 				throw new SoapFault('Invalid reseller', 'Reseller cannot be client of another reseller.');
-- 
GitLab


From d0fc52e1b37025f6fc42833bd607568655405364 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 18 Aug 2016 16:21:42 +0200
Subject: [PATCH 194/313] - Changed date format for api

---
 interface/lib/classes/remoting_lib.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index 8547ff3690..a3c744fa83 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -97,8 +97,8 @@ class remoting_lib extends tform_base {
 		}
 		unset($form);
 
-		$this->dateformat = $app->lng('conf_format_dateshort');
-		$this->datetimeformat = $app->lng('conf_format_datetime');
+		$this->dateformat = 'Y-m-d'; //$app->lng('conf_format_dateshort');
+		$this->datetimeformat = 'Y-m-d H:i:s'; //$app->lng('conf_format_datetime');
 
 		return true;
 	}
-- 
GitLab


From 1d2231fa4871715da13073d0a02594a36657bcf7 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Fri, 19 Aug 2016 12:21:21 +0200
Subject: [PATCH 195/313] Datalog notification changes fixes for all browsers

---
 .../default/assets/stylesheets/ispconfig.css  | 20 ++++++--
 .../assets/stylesheets/ispconfig.min.css      |  2 +-
 .../web/themes/default/templates/main.tpl.htm | 50 +++++++++----------
 3 files changed, 41 insertions(+), 31 deletions(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index d2d06206f4..038d133693 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -73,7 +73,8 @@ body {
     height: 100%; }
 
 #headerbar {
-  float: right; }
+  float: right;
+  }
 
 #searchform {
   float: right;
@@ -724,18 +725,27 @@ input[type="password"].form-control[readonly] {
     max-width: 100%;
 }
 .notification {
-    width: 35px;
+	width: 35px;
     height: 35px;
     background: #c70f19;
     border-radius: 50%;
-    display: inline-flex;
-    margin-right: 15px;
+    display: flex;
     margin-top: 15px;
     cursor: pointer;
+    margin-right: 5px;
+    float: right;
 }
 .notification {
 	animation: pulse 2s infinite;
 }
+@media (max-width: 600px) {
+	.notification {
+		margin-top: 0px;
+		margin-right: 0px;
+		margin-left: 230px;
+		position: relative;
+	}
+}
 @keyframes pulse {
 	0% {
 		background: #ff000e;
@@ -747,7 +757,7 @@ input[type="password"].form-control[readonly] {
 		background: #ff000e;
 	}
 }
-.systemmonitor-state.state-info {
+.systemmonitor-state.state-info .statusMsg {
     display: none;
 }
 
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
index 6a7a04ad31..3a0ae0da78 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
@@ -1 +1 @@
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;min-height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:inline-flex;margin-right:15px;margin-top:15px;cursor:pointer;animation:pulse 2s infinite}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
\ No newline at end of file
+body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;min-height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:flex;margin-top:15px;cursor:pointer;margin-right:5px;float:right;animation:pulse 2s infinite}@media (max-width: 600px){.notification{margin-top:0;margin-right:0;margin-left:230px;position:relative}}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info .statusMsg{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
\ No newline at end of file
diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm
index ace93b7ce4..7faf69171c 100644
--- a/interface/web/themes/default/templates/main.tpl.htm
+++ b/interface/web/themes/default/templates/main.tpl.htm
@@ -60,32 +60,32 @@
 				</tmpl_if>
             </tmpl_if>
           </div>
+                    <div class="notification" data-toggle="modal" data-target="#datalogModal" style="display: none;">
+	            <span class="notification_text">{tmpl_var name="datalog_changes_count"}</span>
+            </div>
+			<!-- Datalogstatus Modal -->
+			<div id="datalogModal" class="modal fade" role="dialog">
+			  <div class="modal-dialog">
+			    <div class="modal-content">
+			      <div class="modal-header">
+			        <button type="button" class="close" data-dismiss="modal">&times;</button>
+			        <h4 class="modal-title">{tmpl_var name="datalog_changes_txt"}</h4>
+			      </div>
+			      <div class="modal-body">
+			        <ul>
+				    <tmpl_loop name="datalog_changes">
+				        <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li>
+				    </tmpl_loop>
+				    </ul>
+			      </div>
+			      <div class="modal-footer">
+			        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+			      </div>
+			    </div>
+			  </div>
+			</div>
+			<!-- END Datalogstatus Modal -->
         </div>
-		<div class="notification" data-toggle="modal" data-target="#myModal" style="display: none;">
-			<span class="notification_text">{tmpl_var name="datalog_changes_count"}</span>
-		</div>
-		<!-- Datalogstatus Modal -->
-		<div id="myModal" class="modal fade" role="dialog">
-		  <div class="modal-dialog">
-		    <div class="modal-content">
-		      <div class="modal-header">
-		        <button type="button" class="close" data-dismiss="modal">&times;</button>
-		        <h4 class="modal-title">{tmpl_var name="datalog_changes_txt"}</h4>
-		      </div>
-		      <div class="modal-body">
-		        <ul>
-			    <tmpl_loop name="datalog_changes">
-			        <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li>
-			    </tmpl_loop>
-			    </ul>
-		      </div>
-		      <div class="modal-footer">
-		        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
-		      </div>
-		    </div>
-		  </div>
-		</div>
-		<!-- END Datalogstatus Modal -->
 		<tmpl_if name='logged_in' value='y'><div id='topnav-container'>
 		</div></tmpl_if>
 		<div class='clear'>
-- 
GitLab


From 86bfbd4a5d453db47247aaea8fb7eebd37ef0284 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 19 Aug 2016 13:02:38 +0200
Subject: [PATCH 196/313] - replace minified css by non-minified

---
 .../web/themes/default/assets/stylesheets/ispconfig.min.css  | 5 -----
 interface/web/themes/default/templates/main.tpl.htm          | 2 +-
 interface/web/themes/default/templates/main_login.tpl.htm    | 2 +-
 3 files changed, 2 insertions(+), 7 deletions(-)
 delete mode 100644 interface/web/themes/default/assets/stylesheets/ispconfig.min.css

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css b/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
deleted file mode 100644
index ef3727cd09..0000000000
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-<<<<<<< HEAD
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;min-height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:flex;position:absolute;margin-top:15px;cursor:pointer;margin-right:15px;animation:pulse 2s infinite}@media (max-width: 600px){.notification{margin-top:0;margin-right:0;margin-left:230px}}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
-=======
-body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:400}.control-label:after{content:":"}.formbutton-default{padding:6px 10px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:700;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform > div{position:relative;display:table}#searchform > div > div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:700}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar > div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;min-height:40px;line-height:40px;font-weight:700;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:700;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:700}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:700;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:700;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.table-auto{table-layout:auto}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs > li > a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:none;font-weight:700;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:400}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:700;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:700;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:400}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:700}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url(../images/flags_sprite.png);background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){#logo{background-image:url(../images/logo@2x.png);background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0}#ajaxloader{position:absolute;width:325px;height:150px;background:#fff url(../images/ajax-loader.gif) no-repeat center center;border:solid 2px #e1e1e1;border-radius:10px;padding:20px;text-align:center;z-index:100}input[type="password"].form-control[readonly]{cursor:text}.tooltip-inner{max-width:100%}.notification{width:35px;height:35px;background:#c70f19;border-radius:50%;display:flex;margin-top:15px;cursor:pointer;margin-right:5px;float:right;animation:pulse 2s infinite}@media (max-width: 600px){.notification{margin-top:0;margin-right:0;margin-left:230px;position:relative}}@keyframes pulse{0%{background:#ff000e}50%{background:#c70f19}100%{background:#ff000e}}.systemmonitor-state.state-info .statusMsg{display:none}span.notification_text{display:block;font-family:inherit;color:#fff;margin:auto}
->>>>>>> pdreissen/ispconfig3-datalogstatus-responsive-fixes-browser-fixes
diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm
index 7faf69171c..3b58c049f5 100644
--- a/interface/web/themes/default/templates/main.tpl.htm
+++ b/interface/web/themes/default/templates/main.tpl.htm
@@ -12,7 +12,7 @@
 
   <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/bootstrap.min.css' />
   <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/fonts.min.css' />
-  <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/ispconfig.min.css' />
+  <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/ispconfig.css' />
   <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/pushy.min.css' />
   <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/bootstrap-datetimepicker.min.css' />
   <link rel='stylesheet' href='themes/<tmpl_var name='current_theme'>/assets/stylesheets/responsive.min.css' />
diff --git a/interface/web/themes/default/templates/main_login.tpl.htm b/interface/web/themes/default/templates/main_login.tpl.htm
index 129633ed6f..11042f02af 100644
--- a/interface/web/themes/default/templates/main_login.tpl.htm
+++ b/interface/web/themes/default/templates/main_login.tpl.htm
@@ -12,7 +12,7 @@
 
   <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/bootstrap.min.css' />
   <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/fonts.min.css' />
-  <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/ispconfig.min.css' />
+  <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/ispconfig.css' />
   <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/pushy.min.css' />
   <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/bootstrap-datetimepicker.min.css' />
   <link rel='stylesheet' href='../themes/<tmpl_var name='current_theme'>/assets/stylesheets/responsive.min.css' />
-- 
GitLab


From 7be3c952693e2a9df1084b78844b09ef92c590a2 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 19 Aug 2016 15:00:03 +0200
Subject: [PATCH 197/313] Hide Databases menu if no db-server is defined #4128

---
 interface/web/sites/lib/module.conf.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php
index 94c5ba0593..c37f3b7437 100644
--- a/interface/web/sites/lib/module.conf.php
+++ b/interface/web/sites/lib/module.conf.php
@@ -64,7 +64,7 @@ if(count($items))
 }
 
 // Databases menu
-if($app->auth->get_client_limit($userid, 'database') != 0)
+if($app->auth->get_client_limit($userid, 'database') != 0 && $app->system->has_service($userid, 'db'))
 {
 	$items=array();
 
-- 
GitLab


From ef73dc16d1e5b789d7efa4308b19c37d80d00a42 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 19 Aug 2016 15:25:07 +0200
Subject: [PATCH 198/313] hide existing dns-zones from dropdown when adding a
 new domain - #4124

---
 interface/web/dns/dns_wizard.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php
index f6ddb974e7..68b30a8074 100644
--- a/interface/web/dns/dns_wizard.php
+++ b/interface/web/dns/dns_wizard.php
@@ -194,7 +194,7 @@ if ($domains_settings['use_domain_module'] == 'y') {
 	/*
 	 * The domain-module is in use.
 	*/
-	$domains = $app->tools_sites->getDomainModuleDomains("dns_soa");
+	$domains = $app->tools_sites->getDomainModuleDomains("dns_soa", 'domain');
 	$domain_select = '';
 	if(is_array($domains) && sizeof($domains) > 0) {
 		/* We have domains in the list, so create the drop-down-list */
-- 
GitLab


From 9e6aa5d04d66d90365a06a209aa51ff7079e2a63 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 19 Aug 2016 16:53:18 +0200
Subject: [PATCH 199/313] Fix for #4100 Wrong domain displayed in Domain field
 once selected

---
 interface/web/sites/web_vhost_domain_edit.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 27d3e534ce..91f790e6de 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -775,7 +775,7 @@ class page_action extends tform_actions {
 			/*
 			 * The domain-module is in use.
 			*/
-			$domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain", $this->dataRecord["domain"]);
+			$domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain");
 			$domain_select = '';
 			$selected_domain = '';
 			if(is_array($domains) && sizeof($domains) > 0) {
-- 
GitLab


From 9683d304b34ab0248ac9156650e8d4d8cdf17b1e Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Sat, 20 Aug 2016 10:37:37 +0200
Subject: [PATCH 200/313] Fixes #4121 - [3.1rc1] User can not view submitted
 Support Messages

---
 interface/web/help/support_message_list.php          |  3 ++-
 .../web/help/templates/support_message_list.htm      | 12 ++++++------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/interface/web/help/support_message_list.php b/interface/web/help/support_message_list.php
index 02b50aaec4..dd9fd1183f 100644
--- a/interface/web/help/support_message_list.php
+++ b/interface/web/help/support_message_list.php
@@ -12,7 +12,8 @@ $app->auth->check_module_permissions('help');
 $app->uses('listform_actions');
 
 //* Optional limit
-$app->listform_actions->SQLExtWhere = "support_message.recipient_id = ".$app->functions->intval($_SESSION['s']['user']['userid']);
+$userid=$app->functions->intval($_SESSION['s']['user']['userid']);
+$app->listform_actions->SQLExtWhere = "support_message.recipient_id = $userid OR support_message.sender_id = $userid";
 
 //* Start the form rendering and action ahndling
 $app->listform_actions->onLoad();
diff --git a/interface/web/help/templates/support_message_list.htm b/interface/web/help/templates/support_message_list.htm
index 1695cccd77..3094b96728 100644
--- a/interface/web/help/templates/support_message_list.htm
+++ b/interface/web/help/templates/support_message_list.htm
@@ -16,13 +16,13 @@
 <table class="table">
                 <thead class="dark form-group-sm">
                     <tr>
-                        <th data-column="sender_id"><tmpl_var name="sender_id_txt"></th>
+                        <tmpl_if name="is_admin"><th data-column="sender_id"><tmpl_var name="sender_id_txt"></th></tmpl_if>
                         <th data-column="subject"><tmpl_var name="subject_txt"></th>
 						<th data-column="date"><tmpl_var name="date_txt"></th>
                         <th class="small-col text-right">{tmpl_var name='search_limit'}</th>
                     </tr>
                     <tr>
-                        <td><select class="form-control" name="search_sender_id">{tmpl_var name='search_sender_id'}</select></td>
+                        <tmpl_if name="is_admin"><td><select class="form-control" name="search_sender_id">{tmpl_var name='search_sender_id'}</select></td></tmpl_if>
                         <td><input class="form-control" type="text" name="search_subject" value="{tmpl_var name='search_subject'}" /></td>
 						<td>&nbsp;</td>
                         <td class="text-right">
@@ -33,7 +33,7 @@
                 <tbody>
                     <tmpl_loop name="records">
                         <tr>
-                            <td><a href="#" data-load-content="help/support_message_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sender_id"}</a></td>
+                            <tmpl_if name="is_admin"><td><a href="#" data-load-content="help/support_message_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sender_id"}</a></td></tmpl_if>
                             <td><a href="#" data-load-content="help/support_message_edit.php?id={tmpl_var name='id'}">{tmpl_var name="subject"}</a></td>
 							<td><a href="#" data-load-content="help/support_message_edit.php?id={tmpl_var name='id'}">{tmpl_var name="tstamp"}</a></td>
                             <td class="text-right">
@@ -43,16 +43,16 @@
                     </tmpl_loop>
                     <tmpl_unless name="records">
                         <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
-                            <td colspan="4">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
+							<tmpl_if name="is_admin"><td colspan="4"><tmpl_else><td colspan="3"></tmpl_if>{tmpl_var name='globalsearch_noresults_text_txt'}</td>
                         </tr>
                     </tmpl_unless>
                 </tbody>
                 <tfoot>
                     <tr>
-                        <td colspan="4"><tmpl_var name="paging"></td>
+                        <tmpl_if name="is_admin"><td colspan="4"><tmpl_else><td colspan="3"></tmpl_if><tmpl_var name="paging"></td>
                     </tr>
                 </tfoot>
             </table>
 </div>
         
-    
\ No newline at end of file
+    
-- 
GitLab


From 98323f1b0510043956df64b26b094a73188b873c Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Sat, 20 Aug 2016 10:46:19 +0200
Subject: [PATCH 201/313] add missing lng-string (Fixes: 4120)

---
 interface/web/help/lib/lang/ar_support_message.lng | 1 +
 interface/web/help/lib/lang/bg_support_message.lng | 1 +
 interface/web/help/lib/lang/br_support_message.lng | 1 +
 interface/web/help/lib/lang/ca_support_message.lng | 1 +
 interface/web/help/lib/lang/cz_support_message.lng | 4 +---
 interface/web/help/lib/lang/de_support_message.lng | 1 +
 interface/web/help/lib/lang/dk_support_message.lng | 1 +
 interface/web/help/lib/lang/el_support_message.lng | 1 +
 interface/web/help/lib/lang/en_support_message.lng | 1 +
 interface/web/help/lib/lang/es_support_message.lng | 1 +
 interface/web/help/lib/lang/fi_support_message.lng | 1 +
 interface/web/help/lib/lang/fr_support_message.lng | 1 +
 interface/web/help/lib/lang/hr_support_message.lng | 1 +
 interface/web/help/lib/lang/hu_support_message.lng | 1 +
 interface/web/help/lib/lang/id_support_message.lng | 1 +
 interface/web/help/lib/lang/it_support_message.lng | 1 +
 interface/web/help/lib/lang/ja_support_message.lng | 1 +
 interface/web/help/lib/lang/nl_support_message.lng | 1 +
 interface/web/help/lib/lang/pl_support_message.lng | 1 +
 interface/web/help/lib/lang/pt_support_message.lng | 1 +
 interface/web/help/lib/lang/ro_support_message.lng | 1 +
 interface/web/help/lib/lang/ru_support_message.lng | 1 +
 interface/web/help/lib/lang/se_support_message.lng | 1 +
 interface/web/help/lib/lang/sk_support_message.lng | 1 +
 interface/web/help/lib/lang/tr_support_message.lng | 1 +
 25 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/interface/web/help/lib/lang/ar_support_message.lng b/interface/web/help/lib/lang/ar_support_message.lng
index bcc50ac465..d8d1da4315 100644
--- a/interface/web/help/lib/lang/ar_support_message.lng
+++ b/interface/web/help/lib/lang/ar_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/bg_support_message.lng b/interface/web/help/lib/lang/bg_support_message.lng
index fb109257e5..bf1a1b3b7a 100644
--- a/interface/web/help/lib/lang/bg_support_message.lng
+++ b/interface/web/help/lib/lang/bg_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng
index 84a60d8991..6b6b1e92b1 100644
--- a/interface/web/help/lib/lang/br_support_message.lng
+++ b/interface/web/help/lib/lang/br_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/ca_support_message.lng b/interface/web/help/lib/lang/ca_support_message.lng
index d0d289a43f..c7cb13975b 100644
--- a/interface/web/help/lib/lang/ca_support_message.lng
+++ b/interface/web/help/lib/lang/ca_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Vous avez une réponse à votre demande
 $wb['answer_to_support_request_sent_txt'] = 'VOtre message à été envoyé au support.';
 $wb['support_request_sent_txt'] = 'Votre réponse à la demande d\'assistance a été envoyée. Merci de ne pas répondre à cet courriel.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Le message n\'a pas pu être envoyé parce que l\'adresse courriel du destinataire et/ou de l\'émetteur est invalide.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/cz_support_message.lng b/interface/web/help/lib/lang/cz_support_message.lng
index 579d663bba..e2b2f4072c 100644
--- a/interface/web/help/lib/lang/cz_support_message.lng
+++ b/interface/web/help/lib/lang/cz_support_message.lng
@@ -12,7 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Zprávu nelze odeslat, protože e-mailová adresa příjemce a/nebo odesílatele není platná.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
-
-
-
diff --git a/interface/web/help/lib/lang/de_support_message.lng b/interface/web/help/lib/lang/de_support_message.lng
index 881b271440..dc9c924045 100644
--- a/interface/web/help/lib/lang/de_support_message.lng
+++ b/interface/web/help/lib/lang/de_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Sie haben eine Antwort auf Ihre Supporta
 $wb['answer_to_support_request_sent_txt'] = 'Ihre Antwort auf die Supportanfrage ist verschickt worden. Bitte antworten Sie nicht auf diese E-Mail.';
 $wb['support_request_sent_txt'] = 'Ihre Supportanfrage ist verschickt worden. Bitte antworten Sie nicht auf diese E-Mail.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Die Nachricht konnte nicht verschickt werden, da die Empfänger- und/oder die Sender E-Mail-Adresse nicht gültig ist.';
+$wb['subject_is_empty'] = 'Betreff darf nicht leer sein.';
 ?>
diff --git a/interface/web/help/lib/lang/dk_support_message.lng b/interface/web/help/lib/lang/dk_support_message.lng
index 0db8cf20cf..60494bf7de 100644
--- a/interface/web/help/lib/lang/dk_support_message.lng
+++ b/interface/web/help/lib/lang/dk_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Du har fået et svar på din support anm
 $wb['answer_to_support_request_sent_txt'] = 'Dit svar på support anmodningen er blevet sendt. Venligst, besvare ikke denne e-mail.';
 $wb['support_request_sent_txt'] = 'Din support anmodning er blevet sendt. Venligst, besvare ikke denne e-mail.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Meddelelsen kunne ikke sendes, fordi modtageren og/eller afsenderens e-mail adresse ikke er gyldig.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/el_support_message.lng b/interface/web/help/lib/lang/el_support_message.lng
index 1c277cac81..385988b49b 100644
--- a/interface/web/help/lib/lang/el_support_message.lng
+++ b/interface/web/help/lib/lang/el_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/en_support_message.lng b/interface/web/help/lib/lang/en_support_message.lng
index bcc50ac465..d8d1da4315 100644
--- a/interface/web/help/lib/lang/en_support_message.lng
+++ b/interface/web/help/lib/lang/en_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/es_support_message.lng b/interface/web/help/lib/lang/es_support_message.lng
index 0ff20ae4cb..beb2f49e9d 100755
--- a/interface/web/help/lib/lang/es_support_message.lng
+++ b/interface/web/help/lib/lang/es_support_message.lng
@@ -12,4 +12,5 @@ $wb['support_request_sent_txt'] = 'Su petición de soporte ha sido enviada. Por
 $wb['support_request_subject_txt'] = 'Petición de soporte';
 $wb['support_request_txt'] = 'Usted ha recibido una petición de soporte. Por favor no responda a este correo, puede comprobar la petición en el panel de control ISPConfig.';
 $wb['tstamp_txt'] = 'Marca de tiempo';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/fi_support_message.lng b/interface/web/help/lib/lang/fi_support_message.lng
index 0e0c517f22..1ae96377ae 100755
--- a/interface/web/help/lib/lang/fi_support_message.lng
+++ b/interface/web/help/lib/lang/fi_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/fr_support_message.lng b/interface/web/help/lib/lang/fr_support_message.lng
index 826a121ad4..17cc6d273e 100644
--- a/interface/web/help/lib/lang/fr_support_message.lng
+++ b/interface/web/help/lib/lang/fr_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Vous avez une réponse à votre demande
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don’t reply to this e-mail.';
 $wb['support_request_sent_txt'] = 'Votre réponse à la demande d’assistance a été envoyée. Merci de ne pas répondre à cet e-mail.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Le message n’a pas pu être envoyé parce que l’adresse e-mail du destinataire et/ou de l’émetteur est invalide.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/hr_support_message.lng b/interface/web/help/lib/lang/hr_support_message.lng
index fca139b995..b653d46aeb 100644
--- a/interface/web/help/lib/lang/hr_support_message.lng
+++ b/interface/web/help/lib/lang/hr_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/hu_support_message.lng b/interface/web/help/lib/lang/hu_support_message.lng
index b0d1d7176b..e2945f35cb 100644
--- a/interface/web/help/lib/lang/hu_support_message.lng
+++ b/interface/web/help/lib/lang/hu_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/id_support_message.lng b/interface/web/help/lib/lang/id_support_message.lng
index 645f40eb77..18dc600409 100644
--- a/interface/web/help/lib/lang/id_support_message.lng
+++ b/interface/web/help/lib/lang/id_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/it_support_message.lng b/interface/web/help/lib/lang/it_support_message.lng
index 5024411b12..e4e18aa3ee 100644
--- a/interface/web/help/lib/lang/it_support_message.lng
+++ b/interface/web/help/lib/lang/it_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Hai una risposta alla richiesta di suppo
 $wb['answer_to_support_request_sent_txt'] = 'La tua richiesta di supporto è stata trasmessa. Non rispondere a questa email.';
 $wb['support_request_sent_txt'] = 'La tua richiesta di supporto è stata trasmessa. Non rispondere a questa email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Impossibile trasmettere il messaggio. Destinatario non valido.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/ja_support_message.lng b/interface/web/help/lib/lang/ja_support_message.lng
index 346497ea0a..f05d3d1ba3 100644
--- a/interface/web/help/lib/lang/ja_support_message.lng
+++ b/interface/web/help/lib/lang/ja_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/nl_support_message.lng b/interface/web/help/lib/lang/nl_support_message.lng
index d886887148..7e6d54ff84 100644
--- a/interface/web/help/lib/lang/nl_support_message.lng
+++ b/interface/web/help/lib/lang/nl_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/pl_support_message.lng b/interface/web/help/lib/lang/pl_support_message.lng
index 0584d30bee..f43ecc682b 100644
--- a/interface/web/help/lib/lang/pl_support_message.lng
+++ b/interface/web/help/lib/lang/pl_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/pt_support_message.lng b/interface/web/help/lib/lang/pt_support_message.lng
index 54428b77ae..633494cbbb 100644
--- a/interface/web/help/lib/lang/pt_support_message.lng
+++ b/interface/web/help/lib/lang/pt_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/ro_support_message.lng b/interface/web/help/lib/lang/ro_support_message.lng
index 39c42da806..ae3cc37c85 100644
--- a/interface/web/help/lib/lang/ro_support_message.lng
+++ b/interface/web/help/lib/lang/ro_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/ru_support_message.lng b/interface/web/help/lib/lang/ru_support_message.lng
index 3c2b2cdc3e..fc1320b745 100644
--- a/interface/web/help/lib/lang/ru_support_message.lng
+++ b/interface/web/help/lib/lang/ru_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/se_support_message.lng b/interface/web/help/lib/lang/se_support_message.lng
index b3cefaa1a0..d5084b1a1d 100644
--- a/interface/web/help/lib/lang/se_support_message.lng
+++ b/interface/web/help/lib/lang/se_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/sk_support_message.lng b/interface/web/help/lib/lang/sk_support_message.lng
index 4c8c5a9b1c..4ebe21fa78 100644
--- a/interface/web/help/lib/lang/sk_support_message.lng
+++ b/interface/web/help/lib/lang/sk_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'You have got a reply to your support req
 $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
 $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
diff --git a/interface/web/help/lib/lang/tr_support_message.lng b/interface/web/help/lib/lang/tr_support_message.lng
index 76a788e2b6..fcd785e627 100644
--- a/interface/web/help/lib/lang/tr_support_message.lng
+++ b/interface/web/help/lib/lang/tr_support_message.lng
@@ -12,4 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Destek isteğiniz yanıtlandı. Lütfen
 $wb['answer_to_support_request_sent_txt'] = 'Destek isteğinize yazdığınız yanıt gönderildi. Lütfen bu e-potayı yanıtlamayın.';
 $wb['support_request_sent_txt'] = 'Destek isteğiniz gönderildi. Lütfen bu e-postayı yanıtlamayın.';
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Gönderen ya da alıcı adresi geçersiz olduğundan bu ileti gönderilemedi.';
+$wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
-- 
GitLab


From d1b62a663dd5b11b192d9b78511a8d9cf294c11f Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Sat, 20 Aug 2016 14:37:37 +0200
Subject: [PATCH 202/313] use prior dns-zone if the new zone fails (# 4107)

---
 interface/web/dns/dns_soa_edit.php           |  9 +++++++++
 interface/web/dns/lib/lang/ar_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/bg_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/br_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/ca_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/cz_dns_soa.lng    |  4 +---
 interface/web/dns/lib/lang/de_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/dk_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/el_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/en_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/es_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/fi_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/fr_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/hr_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/hu_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/id_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/it_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/ja_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/nl_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/pl_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/pt_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/ro_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/ru_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/se_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/sk_dns_soa.lng    |  1 +
 interface/web/dns/lib/lang/tr_dns_soa.lng    |  1 +
 interface/web/dns/templates/dns_soa_edit.htm |  6 ++++++
 server/plugins-available/bind_plugin.inc.php | 17 +++++++++++++----
 28 files changed, 53 insertions(+), 7 deletions(-)

diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php
index 172a04140f..8997146bb6 100644
--- a/interface/web/dns/dns_soa_edit.php
+++ b/interface/web/dns/dns_soa_edit.php
@@ -215,6 +215,15 @@ class page_action extends tform_actions {
 		//* we are editing a existing record
 		$app->tpl->setVar("edit_disabled", 1);
 		$app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]);
+
+		$datalog = $app->db->queryOneRecord("SELECT sys_datalog.error, sys_log.tstamp FROM sys_datalog, sys_log WHERE sys_datalog.dbtable = 'dns_soa' AND sys_datalog.dbidx = ? AND sys_datalog.datalog_id = sys_log.datalog_id AND sys_log.message = CONCAT('Processed datalog_id ',sys_log.datalog_id) ORDER BY sys_datalog.tstamp DESC", 'id:' . $this->id);
+		if(is_array($datalog) && !empty($datalog)){
+			if(trim($datalog['error']) != ''){
+				$app->tpl->setVar("config_error_msg", nl2br(htmlentities($datalog['error'])));
+				$app->tpl->setVar("config_error_tstamp", date($app->lng('conf_format_datetime'), $datalog['tstamp']));
+			}
+		}
+
 	} else {
 		$app->tpl->setVar("edit_disabled", 0);
 	}
diff --git a/interface/web/dns/lib/lang/ar_dns_soa.lng b/interface/web/dns/lib/lang/ar_dns_soa.lng
index 572349d085..98b79d5861 100644
--- a/interface/web/dns/lib/lang/ar_dns_soa.lng
+++ b/interface/web/dns/lib/lang/ar_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/bg_dns_soa.lng b/interface/web/dns/lib/lang/bg_dns_soa.lng
index 0838d133bd..fa08521196 100644
--- a/interface/web/dns/lib/lang/bg_dns_soa.lng
+++ b/interface/web/dns/lib/lang/bg_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_soa.lng b/interface/web/dns/lib/lang/br_dns_soa.lng
index 6149be5fe4..cf3bd7c6ae 100644
--- a/interface/web/dns/lib/lang/br_dns_soa.lng
+++ b/interface/web/dns/lib/lang/br_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/ca_dns_soa.lng b/interface/web/dns/lib/lang/ca_dns_soa.lng
index 277948a297..6ecc2762a3 100644
--- a/interface/web/dns/lib/lang/ca_dns_soa.lng
+++ b/interface/web/dns/lib/lang/ca_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/cz_dns_soa.lng b/interface/web/dns/lib/lang/cz_dns_soa.lng
index 39fc5a0c4f..af93a3e1b3 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa.lng
@@ -40,7 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Podepsat zónu (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/de_dns_soa.lng b/interface/web/dns/lib/lang/de_dns_soa.lng
index 76d825be05..719162e201 100644
--- a/interface/web/dns/lib/lang/de_dns_soa.lng
+++ b/interface/web/dns/lib/lang/de_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['ttl_range_error'] = 'Min. TTL ist 60 Sekunden.';
 $wb['xfer_error_regex'] = 'Zonentransfer: Verwenden Sie eine oder mehrere durch Komma getrennte IP Adressen oder das Wort: any.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_soa.lng b/interface/web/dns/lib/lang/dk_dns_soa.lng
index 78d8441900..193dc9f4a2 100644
--- a/interface/web/dns/lib/lang/dk_dns_soa.lng
+++ b/interface/web/dns/lib/lang/dk_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/el_dns_soa.lng b/interface/web/dns/lib/lang/el_dns_soa.lng
index f5f008f089..773d25ab66 100644
--- a/interface/web/dns/lib/lang/el_dns_soa.lng
+++ b/interface/web/dns/lib/lang/el_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng
index 9dae178002..af1f3db565 100644
--- a/interface/web/dns/lib/lang/en_dns_soa.lng
+++ b/interface/web/dns/lib/lang/en_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/es_dns_soa.lng b/interface/web/dns/lib/lang/es_dns_soa.lng
index 2e1cf6dcfa..189f8f5adf 100755
--- a/interface/web/dns/lib/lang/es_dns_soa.lng
+++ b/interface/web/dns/lib/lang/es_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['ttl_txt'] = 'TTL';
 $wb['update_acl_txt'] = 'Actualizar ACL';
 $wb['xfer_error_regex'] = 'Notificar también a: Por favor, usa una dirección IP.';
 $wb['xfer_txt'] = 'Permitir transferencia de zonas a<br />estas IP (lista separada por comas)';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/fi_dns_soa.lng b/interface/web/dns/lib/lang/fi_dns_soa.lng
index 1c75c596f1..a33b593e91 100755
--- a/interface/web/dns/lib/lang/fi_dns_soa.lng
+++ b/interface/web/dns/lib/lang/fi_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/fr_dns_soa.lng b/interface/web/dns/lib/lang/fr_dns_soa.lng
index b7e302704d..c20afd3731 100644
--- a/interface/web/dns/lib/lang/fr_dns_soa.lng
+++ b/interface/web/dns/lib/lang/fr_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_soa.lng b/interface/web/dns/lib/lang/hr_dns_soa.lng
index 9c9e060bed..5789ace310 100644
--- a/interface/web/dns/lib/lang/hr_dns_soa.lng
+++ b/interface/web/dns/lib/lang/hr_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/hu_dns_soa.lng b/interface/web/dns/lib/lang/hu_dns_soa.lng
index 881d7622fc..8de33c83a4 100644
--- a/interface/web/dns/lib/lang/hu_dns_soa.lng
+++ b/interface/web/dns/lib/lang/hu_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/id_dns_soa.lng b/interface/web/dns/lib/lang/id_dns_soa.lng
index 7efedb9e13..d1eee1c5f8 100644
--- a/interface/web/dns/lib/lang/id_dns_soa.lng
+++ b/interface/web/dns/lib/lang/id_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_soa.lng b/interface/web/dns/lib/lang/it_dns_soa.lng
index 2dda695f14..9fd7a5aa01 100644
--- a/interface/web/dns/lib/lang/it_dns_soa.lng
+++ b/interface/web/dns/lib/lang/it_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/ja_dns_soa.lng b/interface/web/dns/lib/lang/ja_dns_soa.lng
index 07a43b2d33..f03be582f6 100644
--- a/interface/web/dns/lib/lang/ja_dns_soa.lng
+++ b/interface/web/dns/lib/lang/ja_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_soa.lng b/interface/web/dns/lib/lang/nl_dns_soa.lng
index d9f0fc0d6c..1acf7bd456 100644
--- a/interface/web/dns/lib/lang/nl_dns_soa.lng
+++ b/interface/web/dns/lib/lang/nl_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/pl_dns_soa.lng b/interface/web/dns/lib/lang/pl_dns_soa.lng
index c5788160d6..dc2780f618 100644
--- a/interface/web/dns/lib/lang/pl_dns_soa.lng
+++ b/interface/web/dns/lib/lang/pl_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/pt_dns_soa.lng b/interface/web/dns/lib/lang/pt_dns_soa.lng
index f73fd86007..dd443444de 100644
--- a/interface/web/dns/lib/lang/pt_dns_soa.lng
+++ b/interface/web/dns/lib/lang/pt_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/ro_dns_soa.lng b/interface/web/dns/lib/lang/ro_dns_soa.lng
index c38dc3ba61..625281f268 100644
--- a/interface/web/dns/lib/lang/ro_dns_soa.lng
+++ b/interface/web/dns/lib/lang/ro_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/ru_dns_soa.lng b/interface/web/dns/lib/lang/ru_dns_soa.lng
index 5536cd8bb3..0a64dd60a0 100644
--- a/interface/web/dns/lib/lang/ru_dns_soa.lng
+++ b/interface/web/dns/lib/lang/ru_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/se_dns_soa.lng b/interface/web/dns/lib/lang/se_dns_soa.lng
index 2aa8af9721..944c9c38f3 100644
--- a/interface/web/dns/lib/lang/se_dns_soa.lng
+++ b/interface/web/dns/lib/lang/se_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/sk_dns_soa.lng b/interface/web/dns/lib/lang/sk_dns_soa.lng
index b0654a4320..176f001395 100644
--- a/interface/web/dns/lib/lang/sk_dns_soa.lng
+++ b/interface/web/dns/lib/lang/sk_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_soa.lng b/interface/web/dns/lib/lang/tr_dns_soa.lng
index e80ece2ba0..b406e274c5 100644
--- a/interface/web/dns/lib/lang/tr_dns_soa.lng
+++ b/interface/web/dns/lib/lang/tr_dns_soa.lng
@@ -40,4 +40,5 @@ $wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
 $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 $wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.';
+$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm
index 157e2a03aa..87853d1ede 100644
--- a/interface/web/dns/templates/dns_soa_edit.htm
+++ b/interface/web/dns/templates/dns_soa_edit.htm
@@ -3,6 +3,12 @@
 </div>
 <p><tmpl_var name="list_desc_txt"></p>
 
+<tmpl_if name="config_error_msg">
+<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
+	<p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
+	<div><div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div></div>
+</div>
+</tmpl_if>
 
         <legend>DNS Zone</legend>
             <tmpl_if name="is_admin">
diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php
index 3b3179b143..4088882c1b 100644
--- a/server/plugins-available/bind_plugin.inc.php
+++ b/server/plugins-available/bind_plugin.inc.php
@@ -265,6 +265,7 @@ class bind_plugin {
 				$filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/pri.'.str_replace("/", "_", substr($zone['origin'], 0, -1)));
 			}
 
+			$old_zonefile = @file_get_contents($filename);
 			file_put_contents($filename, $tpl->grab());
 			chown($filename, escapeshellcmd($dns_config['bind_user']));
 			chgrp($filename, escapeshellcmd($dns_config['bind_group']));
@@ -275,12 +276,20 @@ class bind_plugin {
 			if($return_status === 0) {
 				$app->log("Writing BIND domain file: ".$filename, LOGLEVEL_DEBUG);
 			} else {
-				if($dns_config['disable_bind_log'] === 'y') {
-					$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), LOGLEVEL_DEBUG);
+				$loglevel = @($dns_config['disable_bind_log'] === 'y')?:'LOGLEVEL_DEBUG':'LOGLEVEL_WARN';
+				$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), $loglevel);
+				if(is_array($out) && !empty($out)){
+					$app->log('Reason for Bind restart failure: '.implode("\n", $out), $loglevel);
+					$app->dbmaster->datalogError(implode("\n", $out));
+				}
+				if ($old_zonefile != '') {
+					rename($filename, $filename.'.err');
+					file_put_contents($filename, $old_zonefile);
+					chown($filename, escapeshellcmd($dns_config['bind_user']));
+					chgrp($filename, escapeshellcmd($dns_config['bind_group']));
 				} else {
-					$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), LOGLEVEL_WARN);
+					rename($filename, $filename.'.err');
 				}
-				rename($filename, $filename.'.err');
 			}
 			unset($tpl);
 			unset($records);
-- 
GitLab


From a89962d6e068e29056df673ec8557a95a32ede7e Mon Sep 17 00:00:00 2001
From: Olivier Brunau <contact@olivierbrunau.net>
Date: Mon, 22 Aug 2016 15:15:51 +0200
Subject: [PATCH 203/313] Update bind_plugin.inc.php to correct "PHP Parse
 error:  syntax error, unexpected ':' in
 /usr/local/ispconfig/server/plugins-available/bind_plugin.inc.php on line
 279"

---
 server/plugins-available/bind_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php
index 4088882c1b..80d302bee0 100644
--- a/server/plugins-available/bind_plugin.inc.php
+++ b/server/plugins-available/bind_plugin.inc.php
@@ -276,7 +276,7 @@ class bind_plugin {
 			if($return_status === 0) {
 				$app->log("Writing BIND domain file: ".$filename, LOGLEVEL_DEBUG);
 			} else {
-				$loglevel = @($dns_config['disable_bind_log'] === 'y')?:'LOGLEVEL_DEBUG':'LOGLEVEL_WARN';
+				$loglevel = @($dns_config['disable_bind_log'] === 'y')?'LOGLEVEL_DEBUG':'LOGLEVEL_WARN';
 				$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), $loglevel);
 				if(is_array($out) && !empty($out)){
 					$app->log('Reason for Bind restart failure: '.implode("\n", $out), $loglevel);
-- 
GitLab


From 82fb0fadc7b57a7f5d4a17e1b8f27c108e2eeb64 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Tue, 23 Aug 2016 07:44:59 +0200
Subject: [PATCH 204/313] - fixed username display

---
 interface/web/sites/database_user_edit.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/database_user_edit.php b/interface/web/sites/database_user_edit.php
index 02ef7bfc18..1fec35c5f1 100644
--- a/interface/web/sites/database_user_edit.php
+++ b/interface/web/sites/database_user_edit.php
@@ -152,7 +152,7 @@ class page_action extends tform_actions {
 		//* Database username shall not be empty
 		if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'<br />';
 
-		if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}', $dbuser_prefix . $this->dataRecord['database_user'], $app->tform->wordbook["database_user_error_len"]).'<br />';
+		if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}', htmlentities($dbuser_prefix . $this->dataRecord['database_user'], ENT_QUOTES, 'UTF-8'), $app->tform->wordbook["database_user_error_len"]).'<br />';
 
 		//* Check database user against blacklist
 		$dbuser_blacklist = array($conf['db_user'], 'mysql', 'root');
@@ -190,7 +190,7 @@ class page_action extends tform_actions {
 
 		$this->dataRecord['database_user_prefix'] = $dbuser_prefix;
 
-		if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}', $dbuser_prefix . $this->dataRecord['database_user'], $app->tform->wordbook["database_user_error_len"]).'<br />';
+		if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}', htmlentities($dbuser_prefix . $this->dataRecord['database_user'], ENT_QUOTES, 'UTF-8'), $app->tform->wordbook["database_user_error_len"]).'<br />';
 
 		//* Check database user against blacklist
 		$dbuser_blacklist = array($conf['db_user'], 'mysql', 'root');
-- 
GitLab


From 2ccc5f848e62033c59cf8b0a369b00056c0afcfa Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 23 Aug 2016 19:34:31 +0200
Subject: [PATCH 205/313] Set maildir_format in remote mail_user_add function
 when it does not exist in params array.

---
 interface/lib/classes/remote.d/mail.inc.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/interface/lib/classes/remote.d/mail.inc.php b/interface/lib/classes/remote.d/mail.inc.php
index 75c2165298..bda7e861ed 100644
--- a/interface/lib/classes/remote.d/mail.inc.php
+++ b/interface/lib/classes/remote.d/mail.inc.php
@@ -217,6 +217,7 @@ class remoting_mail extends remoting {
 		//* Set a few params to non empty values that will be overwritten by mail_plugin
 		if (!isset($params['uid'])) $params['uid'] = -1;
 		if (!isset($params['gid'])) $params['gid'] = -1;
+		if (!isset($params['maildir_format'])) $params['maildir_format'] = 'maildir';
 
 		$affected_rows = $this->insertQuery('../mail/form/mail_user.tform.php', $client_id, $params);
 		return $affected_rows;
-- 
GitLab


From 362728dcd8a76b3eaa818b55e2e2c9c3c6238754 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hajt=C3=B3s=20Attila?= <hajtos.attila@gmail.com>
Date: Wed, 24 Aug 2016 13:54:51 +0200
Subject: [PATCH 206/313] Remote API: new API call: server_get_php_versions.

---
 interface/lib/classes/remote.d/server.inc.php | 32 +++++++++++++++++++
 remoting_client/API-docs/navigation.html      |  1 +
 .../API-docs/server_get_php_versions.html     | 25 +++++++++++++++
 3 files changed, 58 insertions(+)
 create mode 100644 remoting_client/API-docs/server_get_php_versions.html

diff --git a/interface/lib/classes/remote.d/server.inc.php b/interface/lib/classes/remote.d/server.inc.php
index a150ec3d5d..7b56228b9c 100644
--- a/interface/lib/classes/remote.d/server.inc.php
+++ b/interface/lib/classes/remote.d/server.inc.php
@@ -222,6 +222,38 @@ class remoting_server extends remoting {
 			return false;
 		}
 	}
+
+	public function server_get_php_versions($session_id, $server_id, $php)
+	{
+		global $app;
+		if(!$this->checkPerm($session_id, 'server_get')) {
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
+		}
+		if (!empty($session_id) && !empty($server_id) && !empty($php)) {
+			$php_versions = array();
+
+			$web_config[$server_id] = $app->getconf->get_server_config($server_id, 'web');
+			$server_type = !empty($web_config[$server_id]['server_type']) ? $web_config[$server_id]['server_type'] : 'apache';
+
+			if ($php === 'php-fpm' || ($php === 'hhvm' && $server_type === 'nginx')) {
+				$php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ? AND (client_id = 0)", $server_id);
+				foreach ($php_records as $php_record) {
+					$php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir'];
+					$php_versions[] = $php_version;
+				}
+			}
+			if ($php === 'fast-cgi') {
+				$php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ? AND (client_id = 0)", $server_id);
+				foreach ($php_records as $php_record) {
+					$php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir'];
+					$php_versions[] = $php_version;
+				}
+			}
+			return $php_versions;
+		} else {
+			return false;
+		}
+	}
 }
 
 ?>
diff --git a/remoting_client/API-docs/navigation.html b/remoting_client/API-docs/navigation.html
index 917c6ba445..a9d32f7598 100644
--- a/remoting_client/API-docs/navigation.html
+++ b/remoting_client/API-docs/navigation.html
@@ -197,6 +197,7 @@
 <p><a href="openvz_vm_update.html" target="content">openvz_vm_update</a></p>
 <h3>S</h3>
 <p><a href="server_get.html" target="content">server_get</a></p>
+<p><a href="server_get_php_versions.html" target="content">server_get_php_versions</a></p>
 <p><a href="server_get_serverid_by_ip.html" target="content">server_get_serverid_by_ip</a></p>
 <p><a href="sites_aps_available_packages_list.html" target="content">sites_aps_available_packages_list</a></p>
 <p><a href="sites_aps_get_package_details.html" target="content">sites_aps_get_package_details</a></p>
diff --git a/remoting_client/API-docs/server_get_php_versions.html b/remoting_client/API-docs/server_get_php_versions.html
new file mode 100644
index 0000000000..daa52a5ead
--- /dev/null
+++ b/remoting_client/API-docs/server_get_php_versions.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><title>ISPCOnfig 3 remote API documentation</title>
+
+
+
+
+
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <link rel="stylesheet" type="text/css" href="definitionen.css">
+  <style type="text/css">
+  </style></head>
+
+<body>
+<div style="padding:40px">
+<h1>server_get_php_versions(<span class="var">$session_id</span>, <span class="var">$server_id</span>, <span class="var">$php</span>);</h1>
+<br>
+<b>Description: </b>
+<p class="margin"> Returns the available PHP versions of the given server.</p><br>
+<b>Input Variables: </b>
+<p class="margin"> <span class="var">$session_id</span>, <span class="var">$server_id</span>, <span class="var">$php</span></p>
+<b>Output: </b>
+<p class="margin"> Returns an array with the available PHP versions.</p>
+</div>
+
+</body></html>
-- 
GitLab


From 9c531f4f7fc7c47a38d29f75cb2446ecbb2ccd44 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Wed, 24 Aug 2016 16:29:43 +0200
Subject: [PATCH 207/313] fixed 300-quota_notify.inc.php

---
 server/lib/classes/cron.d/300-quota_notify.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php
index d250fe7466..cd87a12fa3 100644
--- a/server/lib/classes/cron.d/300-quota_notify.inc.php
+++ b/server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -429,7 +429,7 @@ class cronjob_quota_notify extends cronjob {
 
 					foreach ($monitor_data as $cid) {
 
-						foreach($cid_data as $monitor) {
+						foreach($cid as $monitor) {
 
 							if ($monitor['database_name'] == $database) {
 								//* get the client
-- 
GitLab


From 29709f2019f2fce28ce5ecd2645707c092e67209 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 25 Aug 2016 12:24:49 +0200
Subject: [PATCH 208/313] fix database-quota

---
 .../classes/cron.d/300-quota_notify.inc.php   | 49 ++++++++++---------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php
index cd87a12fa3..069346099b 100644
--- a/server/lib/classes/cron.d/300-quota_notify.inc.php
+++ b/server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -55,6 +55,8 @@ class cronjob_quota_notify extends cronjob {
 		$this->_tools = new monitor_tools();
 		/* end global section for monitor cronjobs */
 
+		$web_config = $app->getconf->get_server_config($conf['server_id'], 'web');
+
 		//######################################################################################################
 		// enforce traffic quota (run only on the "master-server")
 		//######################################################################################################
@@ -471,36 +473,37 @@ class cronjob_quota_notify extends cronjob {
 
 									}
 
-								}
+								} else {
 
-								//* could a notification be sent?
-								$send_notification = false;
-								if(!$rec['last_quota_notification']) $send_notification = true; //* not yet notified
-								elseif($web_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $web_config['overquota_notify_freq']) $send_notification = true;
+									//* could a notification be sent?
+									$send_notification = false;
+									if(!$rec['last_quota_notification']) $send_notification = true; //* not yet notified
+									elseif($web_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $web_config['overquota_notify_freq']) $send_notification = true;
 
-								//* Send quota notifications
-								if(($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y') && $send_notification == true) {
-									$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']);
-									$placeholders = array(
-										'{database_name}' => $rec['database_name'],
-										'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
-										'{used}' => $app->functions->formatBytes($monitor['size']),
-										'{quota}' => $quota.' MB',
-										'{ratio}' => number_format($used_ratio * 100, 2, '.', '').'%'
-									);
+									//* Send quota notifications
+									if(($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y') && $send_notification == true) {
+										$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']);
+										$placeholders = array(
+											'{database_name}' => $rec['database_name'],
+											'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
+											'{used}' => $app->functions->formatBytes($monitor['size']),
+											'{quota}' => $quota.' MB',
+											'{ratio}' => number_format($used_ratio * 100, 2, '.', '').'%'
+										);
 
-									$recipients = array();
+										$recipients = array();
 
-									//* send email to admin
-									if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y')
-										$recipients[] = $global_config['admin_mail'];
+										//* send email to admin
+										if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y')
+											$recipients[] = $global_config['admin_mail'];
 
-									//* Send email to client
-									if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '')
-										$recipients[] = $client['email'];
+										//* Send email to client
+										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '')
+											$recipients[] = $client['email'];
 
-									$this->_tools->send_notification_email('db_quota_notification', $placeholders, $recipients);
+										$this->_tools->send_notification_email('db_quota_notification', $placeholders, $recipients);
 
+									}
 								}
 
 							}
-- 
GitLab


From 81962831bd4e5348939d515c21fc0d7e37ea4ab9 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 25 Aug 2016 13:01:50 +0200
Subject: [PATCH 209/313] use contact_firstname and contact_name to greet a
 client (Fixes: #4143)

---
 interface/web/dashboard/dashboard.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php
index 51068b1085..b587dbbad6 100644
--- a/interface/web/dashboard/dashboard.php
+++ b/interface/web/dashboard/dashboard.php
@@ -51,8 +51,8 @@ $app->tpl_defaults();
 if($_SESSION['s']['user']['typ'] == 'admin') {
 	$name = $_SESSION['s']['user']['username'];
 } else {
-	$tmp = $app->db->queryOneRecord("SELECT contact_name FROM client WHERE username = ?", $_SESSION['s']['user']['username']);
-	$name = $tmp['contact_name'];
+	$tmp = $app->db->queryOneRecord("SELECT contact_firstname, contact_name FROM client WHERE username = ?", $_SESSION['s']['user']['username']);
+	$name = @(!empty($tmp['contact_firstname']))?$tmp['contact_firstname'].' '.$tmp['contact_name']:$tmp['contact_name'];
 }
 
 $welcome = sprintf($wb['welcome_user_txt'], htmlentities($name, ENT_QUOTES, 'UTF-8'));
-- 
GitLab


From 9885052950d94620b177724751979c4860b1db40 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 25 Aug 2016 14:35:17 +0200
Subject: [PATCH 210/313] add missing lng-files (Fixes #4142)

---
 interface/web/login/lib/lang/ar_login_as.lng | 1 +
 interface/web/login/lib/lang/bg_login_as.lng | 1 +
 interface/web/login/lib/lang/br_login_as.lng | 1 +
 interface/web/login/lib/lang/ca_login_as.lng | 1 +
 interface/web/login/lib/lang/cz_login_as.lng | 1 +
 interface/web/login/lib/lang/de_login_as.lng | 1 +
 interface/web/login/lib/lang/dk_login_as.lng | 1 +
 interface/web/login/lib/lang/el_login_as.lng | 1 +
 interface/web/login/lib/lang/en_login_as.lng | 1 +
 interface/web/login/lib/lang/es_login_as.lng | 1 +
 interface/web/login/lib/lang/fi_login_as.lng | 1 +
 interface/web/login/lib/lang/fr_login_as.lng | 1 +
 interface/web/login/lib/lang/hr_login_as.lng | 1 +
 interface/web/login/lib/lang/hu_login_as.lng | 1 +
 interface/web/login/lib/lang/id_login_as.lng | 1 +
 interface/web/login/lib/lang/it_login_as.lng | 1 +
 interface/web/login/lib/lang/ja_login_as.lng | 1 +
 interface/web/login/lib/lang/nl_login_as.lng | 1 +
 interface/web/login/lib/lang/pl_login_as.lng | 1 +
 interface/web/login/lib/lang/pt_login_as.lng | 1 +
 interface/web/login/lib/lang/ro_login_as.lng | 1 +
 interface/web/login/lib/lang/ru_login_as.lng | 1 +
 interface/web/login/lib/lang/se_login_as.lng | 1 +
 interface/web/login/lib/lang/sk_login_as.lng | 1 +
 interface/web/login/lib/lang/tr_login_as.lng | 1 +
 25 files changed, 25 insertions(+)

diff --git a/interface/web/login/lib/lang/ar_login_as.lng b/interface/web/login/lib/lang/ar_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/ar_login_as.lng
+++ b/interface/web/login/lib/lang/ar_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/bg_login_as.lng b/interface/web/login/lib/lang/bg_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/bg_login_as.lng
+++ b/interface/web/login/lib/lang/bg_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/br_login_as.lng
+++ b/interface/web/login/lib/lang/br_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/ca_login_as.lng b/interface/web/login/lib/lang/ca_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/ca_login_as.lng
+++ b/interface/web/login/lib/lang/ca_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/cz_login_as.lng b/interface/web/login/lib/lang/cz_login_as.lng
index 874164587d..0fd5a40f5a 100644
--- a/interface/web/login/lib/lang/cz_login_as.lng
+++ b/interface/web/login/lib/lang/cz_login_as.lng
@@ -8,6 +8,7 @@ $wb['active_txt'] = 'Aktivní';
 $wb['firewall_error_unique'] = 'Pro tento server již existuje záznam firewallu.';
 $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolené symboly jsou čísla, : a ,.';
 $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
 
 
diff --git a/interface/web/login/lib/lang/de_login_as.lng b/interface/web/login/lib/lang/de_login_as.lng
index 1edec36c32..4baa195d3a 100644
--- a/interface/web/login/lib/lang/de_login_as.lng
+++ b/interface/web/login/lib/lang/de_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Es gibt bereits einen Firewalleintrag für diesen Server.';
 $wb['tcp_ports_error_regex'] = 'Es sind nur Zahlen in der TCP Port Definition erlaubt. ';
 $wb['udp_ports_error_regex'] = 'Es sind nur Zahlen in der UDP Port Definition erlaubt., ';
+$wb['login_as_or_logout_txt'] = 'Wollen Sie sich wieder als {UTYPE} anmelden oder sich abmelden?';
 ?>
diff --git a/interface/web/login/lib/lang/dk_login_as.lng b/interface/web/login/lib/lang/dk_login_as.lng
index 2897dea060..a75ea7262a 100644
--- a/interface/web/login/lib/lang/dk_login_as.lng
+++ b/interface/web/login/lib/lang/dk_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.';
 $wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i TCP port definition. Tilladt tegn er tal, \":\" og \",\".';
 $wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i UDP port definition. Tilladt tegn er tal, \":\" og \",\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/el_login_as.lng b/interface/web/login/lib/lang/el_login_as.lng
index b93f01bbb5..435d3e9a69 100644
--- a/interface/web/login/lib/lang/el_login_as.lng
+++ b/interface/web/login/lib/lang/el_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Εν Ενεργεία';
 $wb['firewall_error_unique'] = 'Υπάρχει ήδη μια εγγραφή Firewall για αυτόν τον server.';
 $wb['tcp_ports_error_regex'] = 'Μη έγκυρος χαρακτήρας για τον ορισμός θύρας tcp. Επιτρεπόμενοι χαρακτήρες είναι οι αριθμοί, η \\":\\" και οι \\",\\".';
 $wb['udp_ports_error_regex'] = 'Μη έγκυρος χαρακτήρας για τον ορισμός θύρας udp. Επιτρεπόμενοι χαρακτήρες είναι οι αριθμοί, η \\":\\" και οι \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/en_login_as.lng b/interface/web/login/lib/lang/en_login_as.lng
index 88d4850c12..d1f98c8806 100644
--- a/interface/web/login/lib/lang/en_login_as.lng
+++ b/interface/web/login/lib/lang/en_login_as.lng
@@ -9,4 +9,5 @@ $wb["firewall_error_unique"] = 'There is already a firewall record for this serv
 $wb["active_txt"] = 'Active';
 $wb["tcp_ports_error_regex"] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".';
 $wb["udp_ports_error_regex"] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
\ No newline at end of file
diff --git a/interface/web/login/lib/lang/es_login_as.lng b/interface/web/login/lib/lang/es_login_as.lng
index 1645eec79a..b7f3e21f98 100755
--- a/interface/web/login/lib/lang/es_login_as.lng
+++ b/interface/web/login/lib/lang/es_login_as.lng
@@ -8,4 +8,5 @@ $wb['login_2_txt'] = 'Si lo hace, puede \\"volver\\" haciendo clic en salir.';
 $wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \\":\\" y \\",\\".';
 $wb['udp_port_help_txt'] = 'Separado por comas';
 $wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \\":\\" y \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/fi_login_as.lng b/interface/web/login/lib/lang/fi_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/fi_login_as.lng
+++ b/interface/web/login/lib/lang/fi_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/fr_login_as.lng b/interface/web/login/lib/lang/fr_login_as.lng
index 01b4606111..55c9f6df5b 100644
--- a/interface/web/login/lib/lang/fr_login_as.lng
+++ b/interface/web/login/lib/lang/fr_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Actif';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Caractère non autorisé dans la règle de port TCP. Les caractères autorisés sont : les chiffres, « : » et « , ».';
 $wb['udp_ports_error_regex'] = 'Caractère non autorisé dans la règle de port UDP. Les caractères autorisés sont : les chiffres, « : » et « , ».';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/hr_login_as.lng b/interface/web/login/lib/lang/hr_login_as.lng
index 2bf96faf9b..bcd13040d3 100644
--- a/interface/web/login/lib/lang/hr_login_as.lng
+++ b/interface/web/login/lib/lang/hr_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Aktivno';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/hu_login_as.lng b/interface/web/login/lib/lang/hu_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/hu_login_as.lng
+++ b/interface/web/login/lib/lang/hu_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/id_login_as.lng b/interface/web/login/lib/lang/id_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/id_login_as.lng
+++ b/interface/web/login/lib/lang/id_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/it_login_as.lng b/interface/web/login/lib/lang/it_login_as.lng
index 3c8025697a..3fa23da274 100644
--- a/interface/web/login/lib/lang/it_login_as.lng
+++ b/interface/web/login/lib/lang/it_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Attivo';
 $wb['firewall_error_unique'] = 'Esiste già un record firewall per questo server.';
 $wb['tcp_ports_error_regex'] = 'Caratteri non autorizzati nella definizine di porta tcp. Sono consentiti caratteri numerici, \\":\\" e \\",\\".';
 $wb['udp_ports_error_regex'] = 'Caratteri non autorizzati nella definizine di porta udp. ono consentiti caratteri numerici, \\":\\" e \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/ja_login_as.lng b/interface/web/login/lib/lang/ja_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/ja_login_as.lng
+++ b/interface/web/login/lib/lang/ja_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/nl_login_as.lng b/interface/web/login/lib/lang/nl_login_as.lng
index b02e1a481b..d4d2715e7a 100644
--- a/interface/web/login/lib/lang/nl_login_as.lng
+++ b/interface/web/login/lib/lang/nl_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/pl_login_as.lng b/interface/web/login/lib/lang/pl_login_as.lng
index f00e042478..fd673484d7 100644
--- a/interface/web/login/lib/lang/pl_login_as.lng
+++ b/interface/web/login/lib/lang/pl_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Aktywny';
 $wb['firewall_error_unique'] = 'Istnieje już wpis firewalla dla tego serwera.';
 $wb['tcp_ports_error_regex'] = 'Niedozwolony znam w definicji portu TCP. Dozwolone sÄ… liczby, dwukropek i przecinek (: i ,)';
 $wb['udp_ports_error_regex'] = 'Niedozwolony znam w definicji portu UDP. Dozwolone sÄ… liczby, dwukropek i przecinek (: i ,)';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/pt_login_as.lng b/interface/web/login/lib/lang/pt_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/pt_login_as.lng
+++ b/interface/web/login/lib/lang/pt_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/ro_login_as.lng b/interface/web/login/lib/lang/ro_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/ro_login_as.lng
+++ b/interface/web/login/lib/lang/ro_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/ru_login_as.lng b/interface/web/login/lib/lang/ru_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/ru_login_as.lng
+++ b/interface/web/login/lib/lang/ru_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/se_login_as.lng b/interface/web/login/lib/lang/se_login_as.lng
index 2fdd7f0753..17a82080dc 100644
--- a/interface/web/login/lib/lang/se_login_as.lng
+++ b/interface/web/login/lib/lang/se_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/sk_login_as.lng b/interface/web/login/lib/lang/sk_login_as.lng
index c660ff1a4b..cf75b54b47 100644
--- a/interface/web/login/lib/lang/sk_login_as.lng
+++ b/interface/web/login/lib/lang/sk_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
 $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng
index 24efdfddfd..a000d44342 100644
--- a/interface/web/login/lib/lang/tr_login_as.lng
+++ b/interface/web/login/lib/lang/tr_login_as.lng
@@ -8,4 +8,5 @@ $wb['active_txt'] = 'Etkin';
 $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.';
 $wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
 $wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
+$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
-- 
GitLab


From d7c9962f40f4a22d30f5fe471c0c47fe9ff2a431 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 25 Aug 2016 14:52:26 +0200
Subject: [PATCH 211/313] add missing lng-files (Fixes #4139)

---
 interface/lib/lang/ar.lng | 2 ++
 interface/lib/lang/bg.lng | 2 ++
 interface/lib/lang/br.lng | 2 ++
 interface/lib/lang/ca.lng | 2 ++
 interface/lib/lang/cz.lng | 2 ++
 interface/lib/lang/de.lng | 2 ++
 interface/lib/lang/dk.lng | 2 ++
 interface/lib/lang/el.lng | 2 ++
 interface/lib/lang/en.lng | 2 ++
 interface/lib/lang/es.lng | 2 ++
 interface/lib/lang/fi.lng | 2 ++
 interface/lib/lang/fr.lng | 2 ++
 interface/lib/lang/hr.lng | 2 ++
 interface/lib/lang/hu.lng | 2 ++
 interface/lib/lang/id.lng | 2 ++
 interface/lib/lang/it.lng | 2 ++
 interface/lib/lang/ja.lng | 2 ++
 interface/lib/lang/nl.lng | 2 ++
 interface/lib/lang/pl.lng | 2 ++
 interface/lib/lang/pt.lng | 2 ++
 interface/lib/lang/ro.lng | 2 ++
 interface/lib/lang/ru.lng | 2 ++
 interface/lib/lang/se.lng | 2 ++
 interface/lib/lang/sk.lng | 2 ++
 interface/lib/lang/tr.lng | 2 ++
 25 files changed, 50 insertions(+)

diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng
index 6baf8e1f2e..cded2c3962 100644
--- a/interface/lib/lang/ar.lng
+++ b/interface/lib/lang/ar.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng
index af9c398b17..f95535709a 100644
--- a/interface/lib/lang/bg.lng
+++ b/interface/lib/lang/bg.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng
index 100bb5ebe7..55fa9e71d0 100644
--- a/interface/lib/lang/br.lng
+++ b/interface/lib/lang/br.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng
index 80b4f91185..3b08be87ff 100644
--- a/interface/lib/lang/ca.lng
+++ b/interface/lib/lang/ca.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'Le mot de passe choisi ne rencontre pas les m
 $wb['security_check1_txt'] = 'Vérifier les permissions de sécurité:';
 $wb['security_check2_txt'] = 'Echec';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index b1fd37f919..6f2748e275 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -150,6 +150,8 @@ $wb['weak_password_length_txt'] = 'Zvolené heslo neodpovídá požadavkům zás
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
 
 
diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng
index 1fc1152558..8ad879cf34 100644
--- a/interface/lib/lang/de.lng
+++ b/interface/lib/lang/de.lng
@@ -150,4 +150,6 @@ $wb['weak_password_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanfor
 $wb['weak_password_length_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein.';
 $wb['security_check1_txt'] = 'Sicherheitsüberprüfung für:';
 $wb['security_check2_txt'] = 'fehlgeschlagen.';
+$wb['select_directive_snippet_txt'] = 'Direktiven Schnipsel';
+$wb['select_master_directive_snippet_txt'] = 'Master Direktiven Schnipsel';
 ?>
diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng
index 5546da7268..8b4d34d713 100644
--- a/interface/lib/lang/dk.lng
+++ b/interface/lib/lang/dk.lng
@@ -150,4 +150,6 @@ $wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne
 $wb['weak_password_length_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden.';
 $wb['security_check1_txt'] = 'Check for sikkerheds tilladelse:';
 $wb['security_check2_txt'] = 'mislykkedes.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng
index f15525358f..a3863b5900 100644
--- a/interface/lib/lang/el.lng
+++ b/interface/lib/lang/el.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng
index d686739007..680561fce1 100644
--- a/interface/lib/lang/en.lng
+++ b/interface/lib/lang/en.lng
@@ -151,4 +151,6 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid
 $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.';
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
\ No newline at end of file
diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng
index 7aa6979a11..d969b5bbf5 100644
--- a/interface/lib/lang/es.lng
+++ b/interface/lib/lang/es.lng
@@ -150,4 +150,6 @@ $wb['weak_password_txt'] = 'La contraseña elegida no coincide con las directric
 $wb['weak_password_length_txt'] = 'La contraseña elegida no coincide con las directrices de seguridad. Debe contener al menos {chars} caracteres.';
 $wb['security_check1_txt'] = 'Verificar permisos de seguridad:';
 $wb['security_check2_txt'] = 'ha fallado.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng
index 0ad7c2843b..8841d4efcb 100755
--- a/interface/lib/lang/fi.lng
+++ b/interface/lib/lang/fi.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng
index 2c2be625e8..0faaf0ab29 100644
--- a/interface/lib/lang/fr.lng
+++ b/interface/lib/lang/fr.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'Le mot de passe choisi ne correspond pas aux
 $wb['security_check1_txt'] = 'Contrôle des permissions de sécurité :';
 $wb['security_check2_txt'] = 'échoué.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng
index 279cc2c5b9..2a4e2a6560 100644
--- a/interface/lib/lang/hr.lng
+++ b/interface/lib/lang/hr.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'Unešena šifra nije dobra. Mora biti dugačk
 $wb['security_check1_txt'] = 'Provjerite sigurnosne dozvole:';
 $wb['security_check2_txt'] = 'greška.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng
index d9f65597f2..8eb24bf706 100644
--- a/interface/lib/lang/hu.lng
+++ b/interface/lib/lang/hu.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng
index 7cc2239068..3b5d29131e 100644
--- a/interface/lib/lang/id.lng
+++ b/interface/lib/lang/id.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng
index 6f66629267..2db3c935ce 100644
--- a/interface/lib/lang/it.lng
+++ b/interface/lib/lang/it.lng
@@ -150,4 +150,6 @@ $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user';
 $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user';
 $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng
index 29d616bcd9..3d51615864 100644
--- a/interface/lib/lang/ja.lng
+++ b/interface/lib/lang/ja.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng
index a71f9f2bdc..f3e8fcd0d4 100644
--- a/interface/lib/lang/nl.lng
+++ b/interface/lib/lang/nl.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng
index f4d3445bd2..80eb1dc8e6 100644
--- a/interface/lib/lang/pl.lng
+++ b/interface/lib/lang/pl.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng
index af2fcf80ac..9ca5046fff 100644
--- a/interface/lib/lang/pt.lng
+++ b/interface/lib/lang/pt.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng
index de171ec55d..83b535de26 100644
--- a/interface/lib/lang/ro.lng
+++ b/interface/lib/lang/ro.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng
index a2a25fa8b6..856882cc23 100644
--- a/interface/lib/lang/ru.lng
+++ b/interface/lib/lang/ru.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng
index aca5f3f13a..5fd6bb957c 100644
--- a/interface/lib/lang/se.lng
+++ b/interface/lib/lang/se.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng
index a1aa5a3b27..f515fc2ecf 100644
--- a/interface/lib/lang/sk.lng
+++ b/interface/lib/lang/sk.lng
@@ -150,4 +150,6 @@ $wb['weak_password_length_txt'] = 'The chosen password does not match the securi
 $wb['security_check1_txt'] = 'Check for security permission:';
 $wb['security_check2_txt'] = 'failed.';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng
index eb5d1a03d8..03412ef94c 100644
--- a/interface/lib/lang/tr.lng
+++ b/interface/lib/lang/tr.lng
@@ -150,4 +150,6 @@ $wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun deği
 $wb['weak_password_length_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda olmalı.';
 $wb['security_check1_txt'] = 'Güvenlik iznini denetle:';
 $wb['security_check2_txt'] = 'başarısız.';
+$wb['select_directive_snippet_txt'] = 'Directive Snippets';
+$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
-- 
GitLab


From 3fb1aecc2d7336066f76cbae3a7401f67eabb814 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 25 Aug 2016 15:08:54 +0200
Subject: [PATCH 212/313] Fixes #4138

---
 interface/web/admin/lib/lang/ar_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/bg_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/br_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/ca_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/cz_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/de_directive_snippets.lng | 2 ++
 interface/web/admin/lib/lang/dk_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/el_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/en_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/es_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/fi_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/fr_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/hr_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/hu_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/id_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/it_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/ja_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/nl_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/pl_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/pt_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/ro_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/ru_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/se_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/sk_directive_snippets.lng | 1 +
 interface/web/admin/lib/lang/tr_directive_snippets.lng | 1 +
 25 files changed, 26 insertions(+)

diff --git a/interface/web/admin/lib/lang/ar_directive_snippets.lng b/interface/web/admin/lib/lang/ar_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/ar_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/ar_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/bg_directive_snippets.lng b/interface/web/admin/lib/lang/bg_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/bg_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/bg_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/br_directive_snippets.lng b/interface/web/admin/lib/lang/br_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/br_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/br_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_directive_snippets.lng b/interface/web/admin/lib/lang/ca_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/ca_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/ca_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets.lng b/interface/web/admin/lib/lang/cz_directive_snippets.lng
index 04f14237d2..0b6a421991 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets.lng
@@ -8,6 +8,7 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Proměnné';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
 
 
diff --git a/interface/web/admin/lib/lang/de_directive_snippets.lng b/interface/web/admin/lib/lang/de_directive_snippets.lng
index 83a6b3c5f7..2e137095c6 100644
--- a/interface/web/admin/lib/lang/de_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/de_directive_snippets.lng
@@ -8,4 +8,6 @@ $wb['directive_snippets_name_empty'] = 'Bitte geben Sie einen Namen für den Sch
 $wb['directive_snippets_name_error_unique'] = 'Es existiert schon ein Direktiven-Schnipsel mit diesem Namen.';
 $wb['variables_txt'] = 'Variablen';
 $wb['customer_viewable_txt'] = 'Sichtbar für Kunden';
+$wb['required_php_snippets_txt'] = 'Erforderliches PHP Schnipsel';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_directive_snippets.lng b/interface/web/admin/lib/lang/dk_directive_snippets.lng
index 6a568629a5..7b43dcd40b 100644
--- a/interface/web/admin/lib/lang/dk_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/dk_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Angiv et navn til uddrag.';
 $wb['directive_snippets_name_error_unique'] = 'Der er allerede et direktiv uddrag med dette navn.';
 $wb['variables_txt'] = 'Variabler';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/el_directive_snippets.lng b/interface/web/admin/lib/lang/el_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/el_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/el_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/en_directive_snippets.lng b/interface/web/admin/lib/lang/en_directive_snippets.lng
index e8733cd948..8e8a63afe1 100644
--- a/interface/web/admin/lib/lang/en_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/en_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb["directive_snippets_name_empty"] = 'Please specify a name for the snippet.';
 $wb["directive_snippets_name_error_unique"] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/lib/lang/es_directive_snippets.lng b/interface/web/admin/lib/lang/es_directive_snippets.lng
index 62999d4f0a..8e2a927079 100755
--- a/interface/web/admin/lib/lang/es_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/es_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['name_txt'] = 'Nombre del fragmento';
 $wb['snippet_txt'] = 'Fragmento';
 $wb['type_txt'] = 'Tipo';
 $wb['variables_txt'] = 'Variables';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/fi_directive_snippets.lng b/interface/web/admin/lib/lang/fi_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/fi_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/fi_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/fr_directive_snippets.lng b/interface/web/admin/lib/lang/fr_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/fr_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/fr_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/hr_directive_snippets.lng b/interface/web/admin/lib/lang/hr_directive_snippets.lng
index ec6bc986f0..077896577d 100644
--- a/interface/web/admin/lib/lang/hr_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/hr_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Molimo vas specificirajte naziv direktiv
 $wb['directive_snippets_name_error_unique'] = 'Već postoji direktiva sa tim imenom.';
 $wb['variables_txt'] = 'Varijable';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/hu_directive_snippets.lng b/interface/web/admin/lib/lang/hu_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/hu_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/hu_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/id_directive_snippets.lng b/interface/web/admin/lib/lang/id_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/id_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/id_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/it_directive_snippets.lng b/interface/web/admin/lib/lang/it_directive_snippets.lng
index f9a17767cf..5598aacecc 100644
--- a/interface/web/admin/lib/lang/it_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/it_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Indicare un nome per lo snippet.';
 $wb['directive_snippets_name_error_unique'] = 'Esiste già una direttiva snippet con questo nome.';
 $wb['variables_txt'] = 'Variabili';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/ja_directive_snippets.lng b/interface/web/admin/lib/lang/ja_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/ja_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/ja_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/nl_directive_snippets.lng b/interface/web/admin/lib/lang/nl_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/nl_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/nl_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/pl_directive_snippets.lng b/interface/web/admin/lib/lang/pl_directive_snippets.lng
index 377b5defd2..4902bf3282 100644
--- a/interface/web/admin/lib/lang/pl_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/pl_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Wybierz nazwÄ™ dla zestawu dyrektyw';
 $wb['directive_snippets_name_error_unique'] = 'Istnieje już zestaw dyrektyw o podanej nazwie';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/pt_directive_snippets.lng b/interface/web/admin/lib/lang/pt_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/pt_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/pt_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/ro_directive_snippets.lng b/interface/web/admin/lib/lang/ro_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/ro_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/ro_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/ru_directive_snippets.lng b/interface/web/admin/lib/lang/ru_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/ru_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/ru_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/se_directive_snippets.lng b/interface/web/admin/lib/lang/se_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/se_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/se_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/sk_directive_snippets.lng b/interface/web/admin/lib/lang/sk_directive_snippets.lng
index 21387b31e5..0616afad8b 100644
--- a/interface/web/admin/lib/lang/sk_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/sk_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
 $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
 $wb['variables_txt'] = 'Variables';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_directive_snippets.lng b/interface/web/admin/lib/lang/tr_directive_snippets.lng
index 8cb67665dc..f503486528 100644
--- a/interface/web/admin/lib/lang/tr_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/tr_directive_snippets.lng
@@ -8,4 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Parçacık adı boş olamaz.';
 $wb['directive_snippets_name_error_unique'] = 'Aynı adlı bir yönerge parçacığı zaten var.';
 $wb['variables_txt'] = 'DeÄŸiÅŸkenler';
 $wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
-- 
GitLab


From c7ef8620f38e191ab4f9f37d4e1bde94139095e3 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 25 Aug 2016 19:28:47 +0200
Subject: [PATCH 213/313] clean up servers select list when adding firewall
 record (Fixes: #4088)

---
 interface/web/admin/firewall_edit.php | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/interface/web/admin/firewall_edit.php b/interface/web/admin/firewall_edit.php
index 4dd26afbf6..4ee72aa954 100644
--- a/interface/web/admin/firewall_edit.php
+++ b/interface/web/admin/firewall_edit.php
@@ -50,6 +50,21 @@ $app->uses('tpl,tform,tform_actions');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
+	
+	function onShowEnd() {
+		global $app;
+
+		if($this->id ==0) { //* new record
+			$server_list = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE server_id NOT IN (SELECT server_id FROM firewall) ORDER BY server_name");
+			if(is_array($server_list)) {
+				foreach( $server_list as $server) $server_select .= "<option value='$server[server_id]' >$server[server_name]</option>\r\n";
+			}
+			$app->tpl->setVar('server_id', $server_select);
+		}
+		parent::onShowEnd();
+	}
+
+
 	function onBeforeUpdate() {
 		global $app, $conf;
 
-- 
GitLab


From c626c96c12dd155a225f8e58b27b8b99f756a0e2 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 26 Aug 2016 09:24:06 +0200
Subject: [PATCH 214/313] db-quota notify messages

---
 server/lib/classes/cron.d/300-quota_notify.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php
index 069346099b..077f62b129 100644
--- a/server/lib/classes/cron.d/300-quota_notify.inc.php
+++ b/server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -469,7 +469,7 @@ class cronjob_quota_notify extends cronjob {
 										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '') 
 											$recipients[] = $client['email'];
 
-										$this->_tools->send_notification_email('db_quota_ok_notification', $placeholders, $recipients);
+										$this->_tools->send_notification_email('db_quota_notification', $placeholders, $recipients);
 
 									}
 
@@ -501,7 +501,7 @@ class cronjob_quota_notify extends cronjob {
 										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '')
 											$recipients[] = $client['email'];
 
-										$this->_tools->send_notification_email('db_quota_notification', $placeholders, $recipients);
+										$this->_tools->send_notification_email('db_quota_ok_notification', $placeholders, $recipients);
 
 									}
 								}
-- 
GitLab


From 7fc30f8220bbeb20e5d57f5a6f9378c81820e981 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Fri, 26 Aug 2016 12:51:27 +0200
Subject: [PATCH 215/313] db-quota-notify

---
 .../classes/cron.d/300-quota_notify.inc.php   | 35 ++++++++++---------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php
index 077f62b129..10235b9129 100644
--- a/server/lib/classes/cron.d/300-quota_notify.inc.php
+++ b/server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -442,15 +442,17 @@ class cronjob_quota_notify extends cronjob {
 								else $used_ratio = 0;
 
 								//* send notifications only if 90% or more of the quota are used
-								if($used_ratio > 0.9) {
+								if($used_ratio > 0.9 && $user_ratio != 0) {
 
-									//* reset notification date
-									if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => null), 'database_id', $rec['database_id']);
+									//* could a notification be sent?
+									$send_notification = false;
+									if(!$rec['last_quota_notification']) $send_notification = true; //* not yet notified
+									elseif($web_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $web_config['overquota_notify_freq']) $send_notification = true;
 
-									$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']);
 
-									// send notification - everything ok again
-									if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y')) {
+									//* Send quota notifications
+									if(($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y') && $send_notification == true) {
+										$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']);
 										$placeholders = array(
 											'{database_name}' => $rec['database_name'],
 											'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
@@ -462,11 +464,11 @@ class cronjob_quota_notify extends cronjob {
 										$recipients = array();
 
 										//* send email to admin
-										if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y') 
+										if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y')
 											$recipients[] = $global_config['admin_mail'];
 
 										//* Send email to client
-										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '') 
+										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '')
 											$recipients[] = $client['email'];
 
 										$this->_tools->send_notification_email('db_quota_notification', $placeholders, $recipients);
@@ -474,15 +476,13 @@ class cronjob_quota_notify extends cronjob {
 									}
 
 								} else {
+									//* reset notification date
+									if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => null), 'database_id', $rec['database_id']);
 
-									//* could a notification be sent?
-									$send_notification = false;
-									if(!$rec['last_quota_notification']) $send_notification = true; //* not yet notified
-									elseif($web_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $web_config['overquota_notify_freq']) $send_notification = true;
+									$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']);
 
-									//* Send quota notifications
-									if(($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y') && $send_notification == true) {
-										$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']);
+									// send notification - everything ok again
+									if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y')) {
 										$placeholders = array(
 											'{database_name}' => $rec['database_name'],
 											'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
@@ -494,16 +494,17 @@ class cronjob_quota_notify extends cronjob {
 										$recipients = array();
 
 										//* send email to admin
-										if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y')
+										if($global_config['admin_mail'] != '' && $web_config['overquota_db_notify_admin'] == 'y') 
 											$recipients[] = $global_config['admin_mail'];
 
 										//* Send email to client
-										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '')
+										if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '') 
 											$recipients[] = $client['email'];
 
 										$this->_tools->send_notification_email('db_quota_ok_notification', $placeholders, $recipients);
 
 									}
+
 								}
 
 							}
-- 
GitLab


From 826789a04680a064998d9651b553bf2b25627387 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 26 Aug 2016 18:33:24 +0200
Subject: [PATCH 216/313] Fixed: #4150 Outgoing bcc warning: empty lookup
 result

---
 install/tpl/mysql-virtual_outgoing_bcc.cf.master | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/tpl/mysql-virtual_outgoing_bcc.cf.master b/install/tpl/mysql-virtual_outgoing_bcc.cf.master
index fbd82db5c0..af062f66b2 100644
--- a/install/tpl/mysql-virtual_outgoing_bcc.cf.master
+++ b/install/tpl/mysql-virtual_outgoing_bcc.cf.master
@@ -4,5 +4,5 @@ dbname = {mysql_server_database}
 table = mail_user
 select_field = sender_cc
 where_field = email
-additional_conditions = and postfix = 'y' and disabledeliver = 'n' and disablesmtp = 'n'
+additional_conditions = and postfix = 'y' and disabledeliver = 'n' and disablesmtp = 'n' and sender_cc != ''
 hosts = 127.0.0.1
\ No newline at end of file
-- 
GitLab


From ec3abd2ae89fd29708c9123a8b3cf4ec085162a8 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 30 Aug 2016 09:10:52 +0200
Subject: [PATCH 217/313] Increase API session timeout to 30 minutes.

---
 interface/lib/classes/remoting.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index 2ed5761a24..55223523f8 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -37,7 +37,7 @@ Copyright (c) Tri-Plex technology
 class remoting {
 
 	//* remote session timeout in seconds
-	private $session_timeout = 600;
+	private $session_timeout = 1800;
 
 	public $oldDataRecord;
 	public $dataRecord;
-- 
GitLab


From 7449fb5315d790e7002df95e872641a87d886139 Mon Sep 17 00:00:00 2001
From: Linus <linus@linus9000.de>
Date: Wed, 31 Aug 2016 08:54:44 +0200
Subject: [PATCH 218/313] Fixes db quota (typo)

---
 server/lib/classes/cron.d/300-quota_notify.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php
index 10235b9129..8adf84b8da 100644
--- a/server/lib/classes/cron.d/300-quota_notify.inc.php
+++ b/server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -442,7 +442,7 @@ class cronjob_quota_notify extends cronjob {
 								else $used_ratio = 0;
 
 								//* send notifications only if 90% or more of the quota are used
-								if($used_ratio > 0.9 && $user_ratio != 0) {
+								if($used_ratio > 0.9 && $used_ratio != 0) {
 
 									//* could a notification be sent?
 									$send_notification = false;
-- 
GitLab


From bd494ec751e09668715f43f27b6f20bc83dc962e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 1 Sep 2016 14:05:00 +0200
Subject: [PATCH 219/313] =?UTF-8?q?u=C3=BCdater:=20implemented=20request?=
 =?UTF-8?q?=20on=20new/vanished=20service=20detection?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 install/lib/update.lib.php | 27 +++++++++++++++++++++++++++
 install/update.php         | 15 +++++++++------
 2 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index acc0051794..d785caf2c5 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -418,4 +418,31 @@ function setDefaultServers(){
 	
 }
 
+
+
+/** Checks if a detected service differs from db setup and asks the user what to do
+ *	@param $servicename string the name of the Database-Field in "servers" for this service
+ *	@param $detected_value boolean The result of service detection
+ */
+function check_service_config_state($servicename, $detected_value) {
+	global $current_svc_config, $inst;
+	
+	if ($current_svc_config[$servicename] == 1) $current_state = true;
+	else $current_state = false;
+	
+	if ($detected_value != $current_state) {
+		if ($detected_value) {
+			$svcdetect_state1 = 'has been';
+			$svcdetect_state2 = 'configure';
+			$svcdetect_defaultanswer = 'no';
+		} else {
+			$svcdetect_state1 = 'has not been';
+			$svcdetect_state2 = '(strongly recommended) disable';
+			$svcdetect_defaultanswer = 'yes';
+		}
+		if ($inst->simple_query('Service \''.$servicename.'\' '.$svcdetect_state1.' detected do you want to '.$svcdetect_state2.' it? ', array('yes', 'no'), $svcdetect_defaultanswer, 'svc_detect_change_'.$servicename) == 'yes') return $detected_value;
+		else return $current_state;
+	} else return $current_state;
+}
+
 ?>
diff --git a/install/update.php b/install/update.php
index 4626b5044e..49953c35d7 100644
--- a/install/update.php
+++ b/install/update.php
@@ -304,12 +304,15 @@ if($reconfigure_master_database_rights_answer == 'yes') {
 //** Detect the installed applications
 $inst->find_installed_apps();
 
-$conf['services']['mail'] = $conf['postfix']['installed'];
-if ($conf['powerdns']['installed'] || $conf['bind']['installed'] || $conf['mydns']['installed']) $conf['services']['dns'] = true;
-if ($conf['apache']['installed'] || $conf['nginx']['installed']) $conf['services']['web'] = true;
-$conf['services']['xmpp'] =  $conf['xmpp']['installed'];;
-if ($conf['ufw']['installed'] || $conf['firewall']['installed']) $conf['services']['firewall'] = true;
-$conf['services']['vserver'] = $conf['services']['vserver'];
+//** Check for current service config state and compare to our results
+$current_svc_config = $inst->dbmaster->queryOneRecord("SELECT * FROM `server` WHERE server_id=?", $conf['server_id']);
+$conf['postfix']['installed'] = check_service_config_state('mail_server', $conf['postfix']['installed']);
+$conf['services']['dns'] = check_service_config_state('dns_server', ($conf['powerdns']['installed'] || $conf['bind']['installed'] || $conf['mydns']['installed']));
+$conf['services']['web'] = check_service_config_state('web_server', ($conf['apache']['installed'] || $conf['nginx']['installed']));
+$conf['services']['xmpp'] = check_service_config_state('xmpp_server', $conf['xmpp']['installed']);
+$conf['services']['firewall'] = check_service_config_state('firewall_server', ($conf['ufw']['installed'] || $conf['firewall']['installed']));
+$conf['services']['vserver'] = check_service_config_state('vserver_server', $conf['services']['vserver']);
+//** vv is this intended??? If you want to check adapt the lines above... vv
 $conf['services']['db'] = true;
 
 
-- 
GitLab


From b77400a961f82a57c634a794f94ae459bafcc1b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 1 Sep 2016 15:39:33 +0200
Subject: [PATCH 220/313] updater: db-query working, requests working. This
 will be my MR and hopefully fixes ispconfig/ispconfig3#4163 and hopefully
 also fixes ispconfig/ispconfig3#4050

---
 install/lib/update.lib.php | 17 ++++-------------
 install/update.php         |  4 +++-
 2 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index d785caf2c5..a4df4d8328 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -425,22 +425,13 @@ function setDefaultServers(){
  *	@param $detected_value boolean The result of service detection
  */
 function check_service_config_state($servicename, $detected_value) {
-	global $current_svc_config, $inst;
+	global $current_svc_config, $inst, $conf;
 	
-	if ($current_svc_config[$servicename] == 1) $current_state = true;
-	else $current_state = false;
+	if ($current_svc_config[$servicename] == 1) $current_state = 1;
+	else $current_state = 0;
 	
 	if ($detected_value != $current_state) {
-		if ($detected_value) {
-			$svcdetect_state1 = 'has been';
-			$svcdetect_state2 = 'configure';
-			$svcdetect_defaultanswer = 'no';
-		} else {
-			$svcdetect_state1 = 'has not been';
-			$svcdetect_state2 = '(strongly recommended) disable';
-			$svcdetect_defaultanswer = 'yes';
-		}
-		if ($inst->simple_query('Service \''.$servicename.'\' '.$svcdetect_state1.' detected do you want to '.$svcdetect_state2.' it? ', array('yes', 'no'), $svcdetect_defaultanswer, 'svc_detect_change_'.$servicename) == 'yes') return $detected_value;
+		if ($inst->simple_query('Service \''.$servicename.'\' '.($detected_value ? 'has been' : 'has not been').' detected ('.($current_state ? 'strongly recommended, currently enabled' : 'currently disabled').') do you want to '.($detected_value ? 'enable and configure' : 'disable').' it? ', array('yes', 'no'), ($current_state ? 'yes' : 'no'), 'svc_detect_change_'.$servicename) == 'yes') return $detected_value;
 		else return $current_state;
 	} else return $current_state;
 }
diff --git a/install/update.php b/install/update.php
index 49953c35d7..466f9faac7 100644
--- a/install/update.php
+++ b/install/update.php
@@ -305,7 +305,8 @@ if($reconfigure_master_database_rights_answer == 'yes') {
 $inst->find_installed_apps();
 
 //** Check for current service config state and compare to our results
-$current_svc_config = $inst->dbmaster->queryOneRecord("SELECT * FROM `server` WHERE server_id=?", $conf['server_id']);
+if ($conf['mysql']['master_slave_setup'] == 'y') $current_svc_config = $inst->dbmaster->queryOneRecord("SELECT mail_server,web_server,dns_server,xmpp_server,firewall_server,vserver_server,db_server FROM ?? WHERE server_id=?", $conf['mysql']['master_database'] . '.server', $conf['server_id']);
+else $current_svc_config = $inst->db->queryOneRecord("SELECT mail_server,web_server,dns_server,xmpp_server,firewall_server,vserver_server,db_server FROM ?? WHERE server_id=?", $conf["mysql"]["database"] . '.server', $conf['server_id']);
 $conf['postfix']['installed'] = check_service_config_state('mail_server', $conf['postfix']['installed']);
 $conf['services']['dns'] = check_service_config_state('dns_server', ($conf['powerdns']['installed'] || $conf['bind']['installed'] || $conf['mydns']['installed']));
 $conf['services']['web'] = check_service_config_state('web_server', ($conf['apache']['installed'] || $conf['nginx']['installed']));
@@ -314,6 +315,7 @@ $conf['services']['firewall'] = check_service_config_state('firewall_server', ($
 $conf['services']['vserver'] = check_service_config_state('vserver_server', $conf['services']['vserver']);
 //** vv is this intended??? If you want to check adapt the lines above... vv
 $conf['services']['db'] = true;
+unset($current_svc_config);
 
 
 //** Shall the services be reconfigured during update
-- 
GitLab


From 7bba85efd90d280fa4168ab0fdf1b42944128e19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 1 Sep 2016 15:46:52 +0200
Subject: [PATCH 221/313] added autoconfig entries for new service detection

---
 docs/autoinstall_samples/autoinstall.conf_sample.php | 10 ++++++++++
 docs/autoinstall_samples/autoinstall.ini.sample      | 11 ++++++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/docs/autoinstall_samples/autoinstall.conf_sample.php b/docs/autoinstall_samples/autoinstall.conf_sample.php
index 187dc68b5c..c55add3a8a 100644
--- a/docs/autoinstall_samples/autoinstall.conf_sample.php
+++ b/docs/autoinstall_samples/autoinstall.conf_sample.php
@@ -49,4 +49,14 @@ $autoupdate['reconfigure_services'] = 'yes'; // yes (default), no
 $autoupdate['ispconfig_port'] = '8080'; // default: 8080
 $autoupdate['create_new_ispconfig_ssl_cert'] = 'no'; // no (default), yes
 $autoupdate['reconfigure_crontab'] = 'yes'; // yes (default), no
+
+/* These are for service-detection (defaulting to old behaviour where alle changes were automatically accepted) */
+$autoupdate['svc_detect_change_mail_server'] = 'yes'; // yes (default), no
+$autoupdate['svc_detect_change_web_server'] = 'yes'; // yes (default), no
+$autoupdate['svc_detect_change_dns_server'] = 'yes'; // yes (default), no
+$autoupdate['svc_detect_change_xmpp_server'] = 'yes'; // yes (default), no
+$autoupdate['svc_detect_change_firewall_server'] = 'yes'; // yes (default), no
+$autoupdate['svc_detect_change_vserver_server'] = 'yes'; // yes (default), no
+$autoupdate['svc_detect_change_db_server'] = 'yes'; // yes (default), no
+
 ?>
\ No newline at end of file
diff --git a/docs/autoinstall_samples/autoinstall.ini.sample b/docs/autoinstall_samples/autoinstall.ini.sample
index bfe4c2d8f8..4abb28dec5 100644
--- a/docs/autoinstall_samples/autoinstall.ini.sample
+++ b/docs/autoinstall_samples/autoinstall.ini.sample
@@ -47,4 +47,13 @@ reconfigure_permissions_in_master_database=no
 reconfigure_services=yes
 ispconfig_port=8080
 create_new_ispconfig_ssl_cert=no
-reconfigure_crontab=yes
\ No newline at end of file
+reconfigure_crontab=yes
+
+; These are for service-detection (defaulting to old behaviour where alle changes were automatically accepted)
+svc_detect_change_mail_server=yes
+svc_detect_change_web_server=yes
+svc_detect_change_dns_server=yes
+svc_detect_change_xmpp_server=yes
+svc_detect_change_firewall_server=yes
+svc_detect_change_vserver_server=yes
+svc_detect_change_db_server=yes
-- 
GitLab


From 7a14a9c6348ce73f51a31499e0d85c2e764aac1e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Fri, 2 Sep 2016 10:24:22 +0200
Subject: [PATCH 222/313] fixed html id in nav for munin

---
 interface/web/monitor/lib/module.conf.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/monitor/lib/module.conf.php b/interface/web/monitor/lib/module.conf.php
index 3da77838dc..cd84ff3b1a 100644
--- a/interface/web/monitor/lib/module.conf.php
+++ b/interface/web/monitor/lib/module.conf.php
@@ -135,7 +135,7 @@ $items[] = array( 'title'  => "Show OpenVz VE BeanCounter",
 $items[] = array( 'title'  => "Show Munin",
 	'target'  => 'content',
 	'link' => 'monitor/show_munin.php',
-	'html_id' => 'monit');
+	'html_id' => 'munin');
 
 $module["nav"][] = array( 'title' => 'Server State',
 	'open'  => 1,
-- 
GitLab


From 87ec4c6512f491c3d56b5090114735975da1776f Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Mon, 5 Sep 2016 13:31:14 +0200
Subject: [PATCH 223/313] css leftover for default template to fix notification
 position.

---
 interface/web/themes/default/assets/stylesheets/ispconfig.css | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index f6cf0deb00..f42c8b22c2 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -730,7 +730,6 @@ input[type="password"].form-control[readonly] {
 	background: #c70f19;
 	border-radius: 50%;
 	display: flex;
-	position: absolute;
 	margin-top: 15px;
 	cursor: pointer;
 	margin-right: 15px;
@@ -770,4 +769,4 @@ span.notification_text {
     margin-bottom: auto;
     font-family: inherit;
     color: white;
-}
\ No newline at end of file
+}
-- 
GitLab


From a5571501c28127728d6acc1509b51c4f907bbcdc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Wed, 7 Sep 2016 15:41:50 +0200
Subject: [PATCH 224/313] imported vladki's fix for nightly db quota messages
 https://www.howtoforge.com/community/threads/quota-warnings-notifications.73747/#post-347405

---
 server/lib/classes/cron.d/300-quota_notify.inc.php | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php
index 8adf84b8da..5d652d0820 100644
--- a/server/lib/classes/cron.d/300-quota_notify.inc.php
+++ b/server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -457,7 +457,7 @@ class cronjob_quota_notify extends cronjob {
 											'{database_name}' => $rec['database_name'],
 											'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
 											'{used}' => $app->functions->formatBytes($monitor['size']),
-											'{quota}' => $quota.' MB',
+											'{quota}' => $app->functions->formatBytes($quota),
 											'{ratio}' => number_format($used_ratio * 100, 2, '.', '').'%'
 										);
 
@@ -479,15 +479,13 @@ class cronjob_quota_notify extends cronjob {
 									//* reset notification date
 									if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => null), 'database_id', $rec['database_id']);
 
-									$app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']);
-
 									// send notification - everything ok again
 									if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_db_notify_admin'] == 'y' || $web_config['overquota_db_notify_client'] == 'y')) {
 										$placeholders = array(
 											'{database_name}' => $rec['database_name'],
 											'{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
 											'{used}' => $app->functions->formatBytes($monitor['size']),
-											'{quota}' => $quota.' MB',
+											'{quota}' => $app->functions->formatBytes($quota),
 											'{ratio}' => number_format($used_ratio * 100, 2, '.', '').'%'
 										);
 
-- 
GitLab


From 83fbc5af601fd12c0a2c1f685b46701f65446c6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Wed, 7 Sep 2016 15:50:15 +0200
Subject: [PATCH 225/313] added request for DB Server on update

---
 install/update.php | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/install/update.php b/install/update.php
index 466f9faac7..6cd18a3109 100644
--- a/install/update.php
+++ b/install/update.php
@@ -313,8 +313,7 @@ $conf['services']['web'] = check_service_config_state('web_server', ($conf['apac
 $conf['services']['xmpp'] = check_service_config_state('xmpp_server', $conf['xmpp']['installed']);
 $conf['services']['firewall'] = check_service_config_state('firewall_server', ($conf['ufw']['installed'] || $conf['firewall']['installed']));
 $conf['services']['vserver'] = check_service_config_state('vserver_server', $conf['services']['vserver']);
-//** vv is this intended??? If you want to check adapt the lines above... vv
-$conf['services']['db'] = true;
+$conf['services']['db'] = check_service_config_state('db_server', true); /* Will always offer as MySQL is of course installed on this host as it's a requirement for ISPC to work... */
 unset($current_svc_config);
 
 
-- 
GitLab


From 3da03977f5beba6940403f4308d9b72a16b5c0fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 10:19:34 +0200
Subject: [PATCH 226/313] Implementation of detection override to configure
 webserver wheenver the panel is installed on the host regardless of user's
 preference

---
 install/lib/update.lib.php |  8 ++++++--
 install/update.php         | 17 +++++++++--------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index a4df4d8328..c1ed313355 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -431,8 +431,12 @@ function check_service_config_state($servicename, $detected_value) {
 	else $current_state = 0;
 	
 	if ($detected_value != $current_state) {
-		if ($inst->simple_query('Service \''.$servicename.'\' '.($detected_value ? 'has been' : 'has not been').' detected ('.($current_state ? 'strongly recommended, currently enabled' : 'currently disabled').') do you want to '.($detected_value ? 'enable and configure' : 'disable').' it? ', array('yes', 'no'), ($current_state ? 'yes' : 'no'), 'svc_detect_change_'.$servicename) == 'yes') return $detected_value;
-		else return $current_state;
+		$answer = $inst->simple_query('Service \''.$servicename.'\' '.($detected_value ? 'has been' : 'has not been').' detected ('.($current_state ? 'strongly recommended, currently enabled' : 'currently disabled').') do you want to '.($detected_value ? 'enable and configure' : 'disable').' it? ', array('yes', 'no'), ($current_state ? 'yes' : 'no'), 'svc_detect_change_'.$servicename)
+		if ($answer == 'yes') return $detected_value;
+		else {
+			if ($servicename == 'web_server') echo "If ISPConfig-Panel is installed on this Server we will configure the Web Server anyways but will not enable it in ISPConfig.\n";
+			return $current_state;
+		}
 	} else return $current_state;
 }
 
diff --git a/install/update.php b/install/update.php
index 6cd18a3109..0012b7ed86 100644
--- a/install/update.php
+++ b/install/update.php
@@ -316,6 +316,13 @@ $conf['services']['vserver'] = check_service_config_state('vserver_server', $con
 $conf['services']['db'] = check_service_config_state('db_server', true); /* Will always offer as MySQL is of course installed on this host as it's a requirement for ISPC to work... */
 unset($current_svc_config);
 
+//** Is the ISPConfg Panel installed on this host? This might partially override user's preferences later.
+if($conf['apache']['installed'] == true){
+	if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
+}
+if($conf['nginx']['installed'] == true){
+	if(!is_file($conf['nginx']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
+}
 
 //** Shall the services be reconfigured during update
 $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no', 'selected'), 'yes','reconfigure_services');
@@ -391,7 +398,7 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel
 		}
 	}
 
-	if($conf['services']['web']) {
+	if($conf['services']['web'] || $inst->install_ispconfig_interface) {
 
 		if($conf['pureftpd']['installed'] == true && $inst->reconfigure_app('Pureftpd', $reconfigure_services_answer)) {
 			//** Configure Pureftpd
@@ -462,14 +469,8 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel
 
 //** Configure ISPConfig
 swriteln('Updating ISPConfig');
-if($conf['apache']['installed'] == true){
-	if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
-}
-if($conf['nginx']['installed'] == true){
-	if(!is_file($conf['nginx']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
-}
 
-if ($conf['services']['web'] && $inst->install_ispconfig_interface) {
+if ($inst->install_ispconfig_interface) {
 	//** Customise the port ISPConfig runs on
 	$ispconfig_port_number = get_ispconfig_port_number();
 	if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number;
-- 
GitLab


From ef64cd3029048a3aee68ae8d744369bac44b2321 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 10:32:35 +0200
Subject: [PATCH 227/313] fixed a missing semikolon, colored the warning
 message

---
 install/lib/update.lib.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index c1ed313355..c865c9fa88 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -431,10 +431,10 @@ function check_service_config_state($servicename, $detected_value) {
 	else $current_state = 0;
 	
 	if ($detected_value != $current_state) {
-		$answer = $inst->simple_query('Service \''.$servicename.'\' '.($detected_value ? 'has been' : 'has not been').' detected ('.($current_state ? 'strongly recommended, currently enabled' : 'currently disabled').') do you want to '.($detected_value ? 'enable and configure' : 'disable').' it? ', array('yes', 'no'), ($current_state ? 'yes' : 'no'), 'svc_detect_change_'.$servicename)
+		$answer = $inst->simple_query('Service \''.$servicename.'\' '.($detected_value ? 'has been' : 'has not been').' detected ('.($current_state ? 'strongly recommended, currently enabled' : 'currently disabled').') do you want to '.($detected_value ? 'enable and configure' : 'disable').' it? ', array('yes', 'no'), ($current_state ? 'yes' : 'no'), 'svc_detect_change_'.$servicename);
 		if ($answer == 'yes') return $detected_value;
 		else {
-			if ($servicename == 'web_server') echo "If ISPConfig-Panel is installed on this Server we will configure the Web Server anyways but will not enable it in ISPConfig.\n";
+			if ($servicename == 'web_server') echo "\033[0;33mWARNING: If ISPConfig-Panel is installed on this Server we will configure the Web Server anyways but will not enable it in ISPConfig.\033[0m\n\n";
 			return $current_state;
 		}
 	} else return $current_state;
-- 
GitLab


From e678c93f6a3d302cc3ea5e1451b7561a04ba2db2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 10:34:17 +0200
Subject: [PATCH 228/313] restart webserver when panel is installed regardless
 of users choice... Further sall text change

---
 install/lib/update.lib.php | 2 +-
 install/update.php         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index c865c9fa88..70fcbb7fb0 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -434,7 +434,7 @@ function check_service_config_state($servicename, $detected_value) {
 		$answer = $inst->simple_query('Service \''.$servicename.'\' '.($detected_value ? 'has been' : 'has not been').' detected ('.($current_state ? 'strongly recommended, currently enabled' : 'currently disabled').') do you want to '.($detected_value ? 'enable and configure' : 'disable').' it? ', array('yes', 'no'), ($current_state ? 'yes' : 'no'), 'svc_detect_change_'.$servicename);
 		if ($answer == 'yes') return $detected_value;
 		else {
-			if ($servicename == 'web_server') echo "\033[0;33mWARNING: If ISPConfig-Panel is installed on this Server we will configure the Web Server anyways but will not enable it in ISPConfig.\033[0m\n\n";
+			if ($servicename == 'web_server') echo "\033[0;33mWARNING: If ISPConfig-Interface (Webfrontend) is installed on this Server we will configure the Web Server anyways but will not enable it in ISPConfig.\033[0m\n\n";
 			return $current_state;
 		}
 	} else return $current_state;
diff --git a/install/update.php b/install/update.php
index 0012b7ed86..ed5d79c09f 100644
--- a/install/update.php
+++ b/install/update.php
@@ -518,7 +518,7 @@ if($reconfigure_services_answer == 'yes') {
 		if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
 		if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
 	}
-	if($conf['services']['web']) {
+	if($conf['services']['web'] || $inst->install_ispconfig_interface) {
 		if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
 		//* Reload is enough for nginx
 		if($conf['webserver']['server_type'] == 'nginx'){
-- 
GitLab


From 01b4d31a16607363a41afd749f7995ab215b89e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 10:42:52 +0200
Subject: [PATCH 229/313] probable compatibility issue fixed

---
 install/lib/update.lib.php | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index 70fcbb7fb0..4e20332b83 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -429,6 +429,9 @@ function check_service_config_state($servicename, $detected_value) {
 	
 	if ($current_svc_config[$servicename] == 1) $current_state = 1;
 	else $current_state = 0;
+
+	if ($detected_value) $detected_value = 1;
+	else $detected_value = 0;
 	
 	if ($detected_value != $current_state) {
 		$answer = $inst->simple_query('Service \''.$servicename.'\' '.($detected_value ? 'has been' : 'has not been').' detected ('.($current_state ? 'strongly recommended, currently enabled' : 'currently disabled').') do you want to '.($detected_value ? 'enable and configure' : 'disable').' it? ', array('yes', 'no'), ($current_state ? 'yes' : 'no'), 'svc_detect_change_'.$servicename);
-- 
GitLab


From ee403cf4ffcd539c8511d2dd5bd5f03d81eb7741 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 15:36:26 +0200
Subject: [PATCH 230/313] offbranch: fixed code styling

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index fc95bef038..99503d940a 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2332,7 +2332,7 @@ Email Address []:
 		$vserver_server_enabled = ($conf['openvz']['installed'])?1:0;
 		$proxy_server_enabled = ($conf['services']['proxy'])?1:0;
 		$firewall_server_enabled = ($conf['services']['firewall'])?1:0;
-        $xmpp_server_enabled = ($conf['services']['xmpp'])?1:0;
+		$xmpp_server_enabled = ($conf['services']['xmpp'])?1:0;
 
 		$sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '.$xmpp_server_enabled.' WHERE server_id = ?";
 
-- 
GitLab


From de76af753b9e4f3190cd72c6df42c2a01d429cdd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 15:48:06 +0200
Subject: [PATCH 231/313] removed check against web service for install state
 of panel (when config file is there, installer installed it which assures
 that webserver is installed and configured - or someone messed around)

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 99503d940a..ae01955828 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -185,7 +185,7 @@ class installer_base {
 		$conf['vlogger']['installed'] = true;
 		if(is_installed('cron') || is_installed('anacron')) $conf['cron']['installed'] = true;
 
-		if ($conf['services']['web'] && (($conf['apache']['installed'] && is_file($conf['apache']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")) || ($conf['nginx']['installed'] && is_file($conf['nginx']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")))) $this->ispconfig_interface_installed = true;
+		if (($conf['apache']['installed'] && is_file($conf['apache']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")) || ($conf['nginx']['installed'] && is_file($conf['nginx']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost"))) $this->ispconfig_interface_installed = true;
 	}
 
     public function force_configure_app($service, $enable_force=true) {
-- 
GitLab


From 07a7ae1f12d635b0d7bdd07df793194840d93591 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 17:17:05 +0200
Subject: [PATCH 232/313] new query style for server config - but still not
 working as expected...

---
 install/lib/installer_base.lib.php | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index ae01955828..b8b0416328 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2333,12 +2333,11 @@ Email Address []:
 		$proxy_server_enabled = ($conf['services']['proxy'])?1:0;
 		$firewall_server_enabled = ($conf['services']['firewall'])?1:0;
 		$xmpp_server_enabled = ($conf['services']['xmpp'])?1:0;
-
-		$sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '.$xmpp_server_enabled.' WHERE server_id = ?";
-
-		$this->db->query($sql, $conf['server_id']);
+		
+		$sql = "UPDATE ?? SET mail_server = ?, web_server = ?, dns_server = ?, file_server = ?, db_server = ?, vserver_server = ?, proxy_server = ?, firewall_server = ?, xmpp_server = ? WHERE server_id = ?";
+		$this->db->query($sql, $conf['mysql']['database'].'server', $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $proxy_server_enabled, $firewall_server_enabled, $xmpp_server_enabled, $conf['server_id']);
 		if($conf['mysql']['master_slave_setup'] == 'y') {
-			$this->dbmaster->query($sql, $conf['server_id']);
+			$this->dbmaster->query($sql, $conf['mysql']['master_database'].'server', $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $proxy_server_enabled, $firewall_server_enabled, $xmpp_server_enabled, $conf['server_id']);
 		}
 
 
-- 
GitLab


From 024da85108cd1b05dfa37398e60fbfecc945efce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 18:32:10 +0200
Subject: [PATCH 233/313] temp commit - will likely be reverted

---
 install/lib/installer_base.lib.php | 2 +-
 install/lib/mysql.lib.php          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index b8b0416328..32f02b342b 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2335,7 +2335,7 @@ Email Address []:
 		$xmpp_server_enabled = ($conf['services']['xmpp'])?1:0;
 		
 		$sql = "UPDATE ?? SET mail_server = ?, web_server = ?, dns_server = ?, file_server = ?, db_server = ?, vserver_server = ?, proxy_server = ?, firewall_server = ?, xmpp_server = ? WHERE server_id = ?";
-		$this->db->query($sql, $conf['mysql']['database'].'server', $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $proxy_server_enabled, $firewall_server_enabled, $xmpp_server_enabled, $conf['server_id']);
+		$this->db->query($sql, 'server', $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $proxy_server_enabled, $firewall_server_enabled, $xmpp_server_enabled, $conf['server_id']);
 		if($conf['mysql']['master_slave_setup'] == 'y') {
 			$this->dbmaster->query($sql, $conf['mysql']['master_database'].'server', $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $proxy_server_enabled, $firewall_server_enabled, $xmpp_server_enabled, $conf['server_id']);
 		}
diff --git a/install/lib/mysql.lib.php b/install/lib/mysql.lib.php
index 7cf06ee044..923211af41 100644
--- a/install/lib/mysql.lib.php
+++ b/install/lib/mysql.lib.php
@@ -44,7 +44,7 @@ class db extends mysqli
 	private $dbClientFlags = 0; // MySQL Client falgs
 	/**#@-*/
 
-	public $show_error_messages = false; // false in server, true in interface
+	public $show_error_messages = true; // false in server, true in interface
 
 
 	/* old things - unused now ////
-- 
GitLab


From a0fd0933283f908a022a4c045c02ce790d24b2b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 18:34:51 +0200
Subject: [PATCH 234/313] Revert "new query style for server config - but still
 not working as expected..." It broke the installer

This reverts commit 07a7ae1f12d635b0d7bdd07df793194840d93591.

Conflicts:
	install/lib/installer_base.lib.php
---
 install/lib/installer_base.lib.php | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 32f02b342b..ae01955828 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2333,11 +2333,12 @@ Email Address []:
 		$proxy_server_enabled = ($conf['services']['proxy'])?1:0;
 		$firewall_server_enabled = ($conf['services']['firewall'])?1:0;
 		$xmpp_server_enabled = ($conf['services']['xmpp'])?1:0;
-		
-		$sql = "UPDATE ?? SET mail_server = ?, web_server = ?, dns_server = ?, file_server = ?, db_server = ?, vserver_server = ?, proxy_server = ?, firewall_server = ?, xmpp_server = ? WHERE server_id = ?";
-		$this->db->query($sql, 'server', $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $proxy_server_enabled, $firewall_server_enabled, $xmpp_server_enabled, $conf['server_id']);
+
+		$sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '.$xmpp_server_enabled.' WHERE server_id = ?";
+
+		$this->db->query($sql, $conf['server_id']);
 		if($conf['mysql']['master_slave_setup'] == 'y') {
-			$this->dbmaster->query($sql, $conf['mysql']['master_database'].'server', $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $proxy_server_enabled, $firewall_server_enabled, $xmpp_server_enabled, $conf['server_id']);
+			$this->dbmaster->query($sql, $conf['server_id']);
 		}
 
 
-- 
GitLab


From 80b6127bd2a455264ad47e2626b702a4a83df3ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Thu, 8 Sep 2016 19:45:35 +0200
Subject: [PATCH 235/313] added own query to set service config in DB - works!

---
 install/lib/installer_base.lib.php | 2 +-
 install/lib/mysql.lib.php          | 2 +-
 install/update.php                 | 9 ++++++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index ae01955828..6cc2486b3c 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2334,7 +2334,7 @@ Email Address []:
 		$firewall_server_enabled = ($conf['services']['firewall'])?1:0;
 		$xmpp_server_enabled = ($conf['services']['xmpp'])?1:0;
 
-		$sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '.$xmpp_server_enabled.' WHERE server_id = ?";
+		$sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '$xmpp_server_enabled' WHERE server_id = ?";
 
 		$this->db->query($sql, $conf['server_id']);
 		if($conf['mysql']['master_slave_setup'] == 'y') {
diff --git a/install/lib/mysql.lib.php b/install/lib/mysql.lib.php
index 923211af41..7cf06ee044 100644
--- a/install/lib/mysql.lib.php
+++ b/install/lib/mysql.lib.php
@@ -44,7 +44,7 @@ class db extends mysqli
 	private $dbClientFlags = 0; // MySQL Client falgs
 	/**#@-*/
 
-	public $show_error_messages = true; // false in server, true in interface
+	public $show_error_messages = false; // false in server, true in interface
 
 
 	/* old things - unused now ////
diff --git a/install/update.php b/install/update.php
index ed5d79c09f..736a3a3a88 100644
--- a/install/update.php
+++ b/install/update.php
@@ -307,7 +307,7 @@ $inst->find_installed_apps();
 //** Check for current service config state and compare to our results
 if ($conf['mysql']['master_slave_setup'] == 'y') $current_svc_config = $inst->dbmaster->queryOneRecord("SELECT mail_server,web_server,dns_server,xmpp_server,firewall_server,vserver_server,db_server FROM ?? WHERE server_id=?", $conf['mysql']['master_database'] . '.server', $conf['server_id']);
 else $current_svc_config = $inst->db->queryOneRecord("SELECT mail_server,web_server,dns_server,xmpp_server,firewall_server,vserver_server,db_server FROM ?? WHERE server_id=?", $conf["mysql"]["database"] . '.server', $conf['server_id']);
-$conf['postfix']['installed'] = check_service_config_state('mail_server', $conf['postfix']['installed']);
+$conf['services']['mail'] = check_service_config_state('mail_server', $conf['postfix']['installed']);
 $conf['services']['dns'] = check_service_config_state('dns_server', ($conf['powerdns']['installed'] || $conf['bind']['installed'] || $conf['mydns']['installed']));
 $conf['services']['web'] = check_service_config_state('web_server', ($conf['apache']['installed'] || $conf['nginx']['installed']));
 $conf['services']['xmpp'] = check_service_config_state('xmpp_server', $conf['xmpp']['installed']);
@@ -316,6 +316,13 @@ $conf['services']['vserver'] = check_service_config_state('vserver_server', $con
 $conf['services']['db'] = check_service_config_state('db_server', true); /* Will always offer as MySQL is of course installed on this host as it's a requirement for ISPC to work... */
 unset($current_svc_config);
 
+//** Write new decisions into DB
+$sql = "UPDATE ?? SET mail_server = '{$conf['services']['mail']}', web_server = '{$conf['services']['web']}', dns_server = '{$conf['services']['dns']}', file_server = '{$conf['services']['file']}', db_server = '{$conf['services']['db']}', vserver_server = '{$conf['services']['vserver']}', proxy_server = '{$conf['services']['proxy']}', firewall_server = '$firewall_server_enabled', xmpp_server = '$xmpp_server_enabled' WHERE server_id = ?";
+$inst->db->query($sql, $conf['mysql']['database'].'.server', $conf['server_id']);
+if($conf['mysql']['master_slave_setup'] == 'y') {
+	$inst->dbmaster->query($sql, $conf['mysql']['master_database'].'.server', $conf['server_id']);
+}
+
 //** Is the ISPConfg Panel installed on this host? This might partially override user's preferences later.
 if($conf['apache']['installed'] == true){
 	if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
-- 
GitLab


From 97182ec0696a0344afba26a72cec5afc56fa5404 Mon Sep 17 00:00:00 2001
From: Martin <martin@enavn.com>
Date: Mon, 12 Sep 2016 14:00:32 +0200
Subject: [PATCH 236/313] Make sure admin check apply to all admins and not
 just user 1.

---
 interface/lib/classes/system.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php
index e9b6639109..cef9424a75 100644
--- a/interface/lib/classes/system.inc.php
+++ b/interface/lib/classes/system.inc.php
@@ -37,7 +37,7 @@ class system {
 
 		if(!preg_match('/^[a-z]+$/', $service)) $app->error('Invalid service '.$service);
 
-		if($userid == 1) return true; //* We do not check admin-users
+		if(isset($_SESSION['s']['user']) && $_SESSION['s']['user']['typ'] == 'admin') return true; //* We do not check admin-users
 
 		// simple query cache
 		if($this->client_service===null)
-- 
GitLab


From ec4dd5b94900fc4c221c84e7d8d08b18718f4df0 Mon Sep 17 00:00:00 2001
From: Alex <alex@taeffner.net>
Date: Mon, 12 Sep 2016 19:00:47 +0200
Subject: [PATCH 237/313] DNSSEC-Cronjob should only run on ispconfig master as
 we are working with datalog and not accessing things directly

---
 server/lib/classes/cron.d/550-bind_dnssec.inc.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/server/lib/classes/cron.d/550-bind_dnssec.inc.php b/server/lib/classes/cron.d/550-bind_dnssec.inc.php
index abf64273a1..cf5918e5c0 100644
--- a/server/lib/classes/cron.d/550-bind_dnssec.inc.php
+++ b/server/lib/classes/cron.d/550-bind_dnssec.inc.php
@@ -28,7 +28,7 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-DNSSEC-Implementation by Alexander Täffner aka dark alex
+DNSSEC-Implementation by Alexander Täffner aka dark alex
 */
 
 class cronjob_bind_dnssec extends cronjob {
@@ -59,6 +59,9 @@ class cronjob_bind_dnssec extends cronjob {
 
 	public function onRunJob() {
 		global $app, $conf;
+		
+		//* job should only run on ispc master
+		if($app->db->dbHost != $app->dbmaster->dbHost) return;
 
 		//* Load libraries
 		$app->uses("getconf,tpl");
-- 
GitLab


From 9b91d5add2589c12886bde1aa5ad7a2c7bc5f4e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Tue, 13 Sep 2016 10:15:45 +0200
Subject: [PATCH 238/313] fixed code styling (bit of a perfectionist) - Looks
 like someone accidentially removed an if clause here before and fixing killed
 styling.

---
 install/update.php | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/install/update.php b/install/update.php
index 736a3a3a88..be667ffd05 100644
--- a/install/update.php
+++ b/install/update.php
@@ -431,16 +431,16 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel
 			//** Configure apps vhost
 			swriteln('Configuring Apps vhost');
 			$inst->configure_apps_vhost();
-			}
+		}
 	
-			//* Configure Jailkit
-			if($inst->reconfigure_app('Jailkit', $reconfigure_services_answer)) {
-				swriteln('Configuring Jailkit');
-				$inst->configure_jailkit();
-			}
-
+		//* Configure Jailkit
+		if($inst->reconfigure_app('Jailkit', $reconfigure_services_answer)) {
+			swriteln('Configuring Jailkit');
+			$inst->configure_jailkit();
 		}
 
+	}
+
     if($conf['services']['xmpp'] && $inst->reconfigure_app('XMPP', $reconfigure_services_answer)) {
         //** Configure Metronome XMPP
         $inst->configure_xmpp('dont-create-certs');
-- 
GitLab


From c028f1b816e192cc86ccb130f5524b22e2db60a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Tue, 13 Sep 2016 10:19:29 +0200
Subject: [PATCH 239/313] check if wanted before configuration the apps vHost

---
 install/update.php | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/install/update.php b/install/update.php
index be667ffd05..aafb69898e 100644
--- a/install/update.php
+++ b/install/update.php
@@ -428,9 +428,11 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel
 				$inst->configure_nginx();
 			}
 
-			//** Configure apps vhost
-			swriteln('Configuring Apps vhost');
-			$inst->configure_apps_vhost();
+			if ($conf['web']['apps_vhost_enabled'] == 'y') {
+				//** Configure apps vhost
+				swriteln('Configuring Apps vhost');
+				$inst->configure_apps_vhost();
+			} else swriteln('Skipping config of Apps vhost');
 		}
 	
 		//* Configure Jailkit
-- 
GitLab


From bc55aadd8a7a2d9711b5bd223272e17376cb73d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?A=2E=20T=C3=A4ffner?= <darkalex@firesplash.de>
Date: Tue, 13 Sep 2016 11:22:50 +0200
Subject: [PATCH 240/313] added server ini config to $conf and corrected check
 for apps vhost enabled

---
 install/update.php | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/install/update.php b/install/update.php
index aafb69898e..ac052f8dd2 100644
--- a/install/update.php
+++ b/install/update.php
@@ -287,6 +287,11 @@ checkDbHealth();
  */
 updateDbAndIni();
 
+//** read server config from db into $conf['server_config']
+$tmp = $inst->db->queryOneRecord("SELECT config FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . '.server', $conf['server_id']);
+$conf['server_config'] = ini_to_array(stripslashes($tmp['config']));
+unset($tmp);
+
 /*
  * Reconfigure the permisson if needed
  * (if this is done at client side, only this client is updated.
@@ -428,7 +433,7 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel
 				$inst->configure_nginx();
 			}
 
-			if ($conf['web']['apps_vhost_enabled'] == 'y') {
+			if ($conf['server_config']['web']['apps_vhost_enabled'] == 'y') {
 				//** Configure apps vhost
 				swriteln('Configuring Apps vhost');
 				$inst->configure_apps_vhost();
-- 
GitLab


From 4fc5a8a457ffd3a6c3e465f0c1d21df7687a45a8 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Wed, 14 Sep 2016 11:43:17 +0200
Subject: [PATCH 241/313] Fixes #4189

---
 interface/lib/classes/tools_monitor.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/tools_monitor.inc.php b/interface/lib/classes/tools_monitor.inc.php
index bd1a969d57..ce3ffca1eb 100644
--- a/interface/lib/classes/tools_monitor.inc.php
+++ b/interface/lib/classes/tools_monitor.inc.php
@@ -146,7 +146,7 @@ class tools_monitor {
 				$line['client'] = $tmp['username'];
 
 				//* get the domain
-				$tmp = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id=(SELECT parent_domain_id FROM web_database WHERE database_name=?", $line['database_name']);
+				$tmp = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id=(SELECT parent_domain_id FROM web_database WHERE database_name=?)", $line['database_name']);
 				$line['domain'] = $tmp['domain'];
 
 				//* remove the sys_groupid from output
-- 
GitLab


From 3c8467b06b9a63e3d5ed088bdcaea0259dff5d42 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Wed, 14 Sep 2016 12:14:46 +0200
Subject: [PATCH 242/313] Fixes #4160

---
 interface/web/client/client_edit.php | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index ac7f4c6fce..3f63c7ee8c 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -204,9 +204,12 @@ class page_action extends tform_actions {
 				$reseller = $app->db->queryOneRecord("SELECT client.client_id, client.customer_no_template, client.customer_no_counter, client.customer_no_start FROM sys_group,client WHERE client.client_id = sys_group.client_id and sys_group.groupid = ?", $client_group_id);
 				
 				if($reseller['customer_no_template'] != '') {
-					//* Set customer no default
-					$customer_no = $app->functions->intval($reseller['customer_no_start']+$reseller['customer_no_counter']);
-					$customer_no_string = str_replace(array('[CUSTOMER_NO]','[CLIENTID]'),array($customer_no, $reseller['client_id']),$reseller['customer_no_template']);
+					if(isset($this->dataRecord['customer_no'])&& $this->dataRecord['customer_no']!='') $customer_no_string = $this->dataRecord['customer_no'];
+					else {
+						//* Set customer no default
+						$customer_no = $app->functions->intval($reseller['customer_no_start']+$reseller['customer_no_counter']);
+						$customer_no_string = str_replace(array('[CUSTOMER_NO]','[CLIENTID]'),array($customer_no, $reseller['client_id']),$reseller['customer_no_template']);
+					}
 					$app->tpl->setVar('customer_no',$customer_no_string);
 				}
 			}
-- 
GitLab


From 8de24d4a4c4dd9b0e87c524b8021b06f5055394f Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Wed, 14 Sep 2016 12:49:30 +0200
Subject: [PATCH 243/313] Fixes #4146

---
 interface/web/client/domain_edit.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/client/domain_edit.php b/interface/web/client/domain_edit.php
index 9064581c17..67be43e04c 100644
--- a/interface/web/client/domain_edit.php
+++ b/interface/web/client/domain_edit.php
@@ -85,10 +85,10 @@ class page_action extends tform_actions {
 			$clients = $app->db->queryAllRecords($sql);
 			$client_select = '';
 			if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= "<option value='0'></option>";
-			$tmp_data_record = $app->tform->getDataRecord($this->id);
+			if($this->id > 0) $tmp_data_record = $app->tform->getDataRecord($this->id); else $tmp_data_record = $this->dataRecord;
 			if(is_array($clients)) {
 				foreach( $clients as $client) {
-					$selected = ($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
+					$selected = ($client["groupid"] == $tmp_data_record["sys_groupid"] || $client["groupid"] == $tmp_data_record["client_group_id"])?'SELECTED':'';
 					$client_select .= "<option value='$client[groupid]' $selected>$client[contactname]</option>\r\n";
 				}
 			}
-- 
GitLab


From 2a9270d776d2b213873a3c7054066bfd5ea92457 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 15:38:01 +0200
Subject: [PATCH 244/313] Fixed: #4198 Web Domain page loads wrong from Web
 Traffic link

---
 interface/web/sites/templates/web_sites_stats_list.htm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/interface/web/sites/templates/web_sites_stats_list.htm b/interface/web/sites/templates/web_sites_stats_list.htm
index b85fb8002e..9f9e863c91 100644
--- a/interface/web/sites/templates/web_sites_stats_list.htm
+++ b/interface/web/sites/templates/web_sites_stats_list.htm
@@ -31,10 +31,10 @@
                 <tmpl_loop name="records">
                     <tr>
                         <td><a target="_blank" href="http://{tmpl_var name="domain"}/stats">{tmpl_var name="domain"}</a></td>
-                        <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_month"}</a></td>
-                        <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_month"}</a></td>
-                        <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_year"}</a></td>
-                        <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_year"}</a></td>
+                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_month"}</a></td>
+                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_month"}</a></td>
+                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_year"}</a></td>
+                        <td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_year"}</a></td>
                         <td class="text-right"></td>
                     </tr>
                 </tmpl_loop>
-- 
GitLab


From f66b6386b5de638ffc9f0b2ad5b189ffa9277db7 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 15:45:36 +0200
Subject: [PATCH 245/313] Remove the option to add an additional PHP version on
 the slave of a mirrored cluster (see #4197).

---
 interface/web/admin/form/server_php.tform.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/admin/form/server_php.tform.php b/interface/web/admin/form/server_php.tform.php
index 2d4be02f96..1174b8c098 100644
--- a/interface/web/admin/form/server_php.tform.php
+++ b/interface/web/admin/form/server_php.tform.php
@@ -89,7 +89,7 @@ $form["tabs"]['php_name'] = array (
 			'formtype' => 'SELECT',
 			'default' => '',
 			'datasource' => array (  'type' => 'SQL',
-				'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
+				'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
 				'keyfield'=> 'server_id',
 				'valuefield'=> 'server_name'
 			),
-- 
GitLab


From c8667c4d9cdcadc5749906ed66d1ee9db61b9d3b Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 16:10:52 +0200
Subject: [PATCH 246/313] Fixed #4191 Updating database user password on MySQL
 5.7 leads to "double hash" How to reproduce issue

---
 server/plugins-available/mysql_clientdb_plugin.inc.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php
index da1272ccfe..8d73978d04 100644
--- a/server/plugins-available/mysql_clientdb_plugin.inc.php
+++ b/server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -140,7 +140,10 @@ class mysql_clientdb_plugin {
 			} elseif($action == 'RENAME') {
 				if(!$link->query("RENAME USER '".$link->escape_string($database_user)."'@'$db_host' TO '".$link->escape_string($database_rename_user)."'@'$db_host'")) $success = false;
 			} elseif($action == 'PASSWORD') {
-				if(!$link->query("SET PASSWORD FOR '".$link->escape_string($database_user)."'@'$db_host' = '".$link->escape_string($database_password)."'")) $success = false;
+				//if(!$link->query("SET PASSWORD FOR '".$link->escape_string($database_user)."'@'$db_host' = '".$link->escape_string($database_password)."'")) $success = false;
+				// SET PASSWORD for already hashed passwords is not supported by latest MySQL 5.7 anymore, so we set it directly
+				if(!$link->query("UPDATE mysql.user SET `Password` = '".$link->escape_string($database_password)."' WHERE `Host` = '".$db_host."' AND `User` = '".$link->escape_string($database_user)."'")) $success = false;
+				if($success == true) $link->query("FLUSH PRIVILEGES");
 			}
 		}
 
-- 
GitLab


From abd03574145a6af2c8209259495d23622ae085ea Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 16:25:17 +0200
Subject: [PATCH 247/313] Fix website quota issues #4176 and #4187

---
 server/plugins-available/apache2_plugin.inc.php | 13 +++++++------
 server/plugins-available/nginx_plugin.inc.php   | 13 +++++++------
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index fde079e088..83d22615b9 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -889,18 +889,19 @@ class apache2_plugin {
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-		  if ( in_array($file_system , array('ext2','ext3','ext4','simfs','reiserfs'), true) ) {
-            exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
-            exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
-          } elseif ($file_system == 'xfs') {
-
-            exec("xfs_quota -x -c 'limit -g bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
+		  if($file_system == 'xfs') {
+			exec("xfs_quota -x -c 'limit -g bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
 
             // xfs only supports timers globally, not per user.
             exec("xfs_quota -x -c 'timer -bir -i 604800'");
 
             unset($project_uid, $username_position, $xfs_projects);
             unset($primitive_root, $df_output, $mb_hard, $mb_soft);
+		  } else {
+            if($app->system->is_installed('setquota')) {
+				exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
+				exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
+			}
           }
 		}
 
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 7f73d08be0..f7bf24ae27 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -747,18 +747,19 @@ class nginx_plugin {
           $file_system = $df_output[0];
           $primitive_root = $df_output[1];
 
-          if ( in_array($file_system , array('ext2','ext3','ext4','simfs','reiserfs'), true) ) {
-            exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
-            exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
-          } elseif ($file_system == 'xfs') {
-
-            exec("xfs_quota -x -c 'limit -g bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
+          if($file_system == 'xfs') {
+			exec("xfs_quota -x -c 'limit -g bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
 
             // xfs only supports timers globally, not per user.
             exec("xfs_quota -x -c 'timer -bir -i 604800'");
 
             unset($project_uid, $username_position, $xfs_projects);
             unset($primitive_root, $df_output, $mb_hard, $mb_soft);
+		  } else {
+            if($app->system->is_installed('setquota')) {
+				exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
+				exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
+			}
           }
 		}
 
-- 
GitLab


From 8a7f59f48da198b84b7d66b40bd91af15cb4a377 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 16:38:09 +0200
Subject: [PATCH 248/313] Fixed #4173 No SSL Tab for client if SSL available
 but also Let\'s Encrypt available template limit is active.

---
 interface/web/sites/form/web_vhost_domain.tform.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php
index 1bbc1485c2..923e73b2b0 100644
--- a/interface/web/sites/form/web_vhost_domain.tform.php
+++ b/interface/web/sites/form/web_vhost_domain.tform.php
@@ -92,7 +92,7 @@ if(!$app->auth->is_admin()) {
 
 	if($client['limit_wildcard'] != 'y') $wildcard_available = false;
 	if($client['limit_ssl'] != 'y') $ssl_available = false;
-	if($client['limit_ssl_letsencrypt'] == 'y') $ssl_available = false;
+	//if($client['limit_ssl_letsencrypt'] == 'y') $ssl_available = false;
 	if($client['limit_backup'] != 'y') $backup_available = false;
 }
 
-- 
GitLab


From b8acb6e5f072f3384de0609f43410e3dbd6ec7f4 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 16:41:32 +0200
Subject: [PATCH 249/313] Fixed #4161 CA path error, file does not exist

---
 interface/web/admin/templates/server_config_web_edit.htm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index d34776aa54..8191cf0dbe 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -179,10 +179,10 @@
 				</div>
                 <div class="form-group">
                     <label for="CA_path" class="col-sm-3 control-label">{tmpl_var name='CA_path_txt'}</label>
-                    <div class="col-sm-9"><input type="text" name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" autocomplete="off" class="form-control" /></div></div>
+                    <div class="col-sm-9"><input type="text" name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" autocomplete="new-password" class="form-control" /></div></div>
                 <div class="form-group">
                     <label for="CA_pass" class="col-sm-3 control-label">{tmpl_var name='CA_pass_txt'}</label>
-                    <div class="col-sm-9"><input type="password" name="CA_pass" id="CA_pass" value="{tmpl_var name='CA_pass'}" autocomplete="off" class="form-control" /></div></div>
+                    <div class="col-sm-9"><input type="password" name="CA_pass" id="CA_pass" value="{tmpl_var name='CA_pass'}" autocomplete="new-password" class="form-control" /></div></div>
 	  <!-- End content -->
 	  </div>
 	</div>
-- 
GitLab


From bbc18587bb0da2ba4a7702217fe31c3724a7ed76 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 17:15:16 +0200
Subject: [PATCH 250/313] Fixed #4157 remove apachectl warning on non-apache
 hosts

---
 server/lib/classes/system.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index 978a891b42..cdd6f06e1a 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1905,7 +1905,7 @@ class system{
 		if($this->is_installed('apache2ctl')) $cmd = 'apache2ctl -v';
 		elseif($this->is_installed('apachectl')) $cmd = 'apachectl -v';
 		else {
-			$app->log("Could not check apache version, apachectl not found.", LOGLEVEL_WARN);
+			$app->log("Could not check apache version, apachectl not found.", LOGLEVEL_DEBUG);
 			return '2.2';
 		}
 		
-- 
GitLab


From bb081fc829f9bd6d235d00cebf3ba7cb2d4a9431 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 18:47:49 +0200
Subject: [PATCH 251/313] Fixed #4149 and visual issie in DNS DMARC form.

---
 interface/web/dns/templates/dns_dmarc_edit.htm            | 8 ++++----
 .../web/themes/default/assets/stylesheets/ispconfig.css   | 3 +++
 interface/web/tools/templates/resync.htm                  | 2 +-
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/interface/web/dns/templates/dns_dmarc_edit.htm b/interface/web/dns/templates/dns_dmarc_edit.htm
index 0c0b4d6d99..c47be675ef 100644
--- a/interface/web/dns/templates/dns_dmarc_edit.htm
+++ b/interface/web/dns/templates/dns_dmarc_edit.htm
@@ -49,7 +49,7 @@
 				</div>
 			</div>
             <div class="form-group">
-				<label class="col-sm-2 control-label"></label>
+				<label class="col-sm-2 control-label control-label-plain"></label>
 				<div class="col-sm-1">
 					<input type="checkbox" value="1" id="dmarc_fo0" name="dmarc_fo0" {tmpl_var name='dmarc_fo1'}/>
 				</div>
@@ -58,7 +58,7 @@
 				</div>
             </div>
             <div class="form-group">
-				<label class="col-sm-2 control-label"></label>
+				<label class="col-sm-2 control-label control-label-plain"></label>
 				<div class="col-sm-1">
 					<input type="checkbox" value="1" id="dmarc_fod" name="dmarc_fod" {tmpl_var name='dmarc_fod'}/>
 				</div>
@@ -67,7 +67,7 @@
 				</div>
             </div>
             <div class="form-group">
-				<label class="col-sm-2 control-label"></label>
+				<label class="col-sm-2 control-label control-label-plain"></label>
 				<div class="col-sm-1">
 					<input type="checkbox" value="1" id="dmarc_fos" name="dmarc_fos" {tmpl_var name='dmarc_fos'}/>
 				</div>
@@ -104,7 +104,7 @@
                 </div>
             </div>
             <div class="form-group">
-                <label class="col-sm-2 control-label">{tmpl_var name='dmarc_rf_iodef'}</label>
+                <label class="col-sm-2 control-label control-label-plain">{tmpl_var name='dmarc_rf_iodef'}</label>
                 <div class="col-sm-1">
                     <input type="checkbox" value="1" id="dmarc_rf_iodef" name="dmarc_rf_iodef" {tmpl_var name='dmarc_rf_iodef'}/>
                 </div>
diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css
index f42c8b22c2..e4b92ef63d 100644
--- a/interface/web/themes/default/assets/stylesheets/ispconfig.css
+++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css
@@ -30,6 +30,9 @@ body {
   .control-label:after {
     content: ":"; }
 
+.control-label-plain:after {
+    content: ""; }
+
 .formbutton-default {
   padding: 6px 10px;
   border-bottom-style: solid;
diff --git a/interface/web/tools/templates/resync.htm b/interface/web/tools/templates/resync.htm
index 6c368ede6b..5074c25dc5 100644
--- a/interface/web/tools/templates/resync.htm
+++ b/interface/web/tools/templates/resync.htm
@@ -129,7 +129,7 @@
 	
 <div class="form-group">
 	<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_client" value="1" name="resync_client"></div>
-	<label for="resync_client" class="col-sm-2 control-label">{tmpl_var name="resync_client_txt"}</label> 
+	<label for="resync_client" class="col-sm-2 control-label control-label-plain">{tmpl_var name="resync_client_txt"}</label> 
 </div>
 	
 <input type="hidden" name="id" value="{tmpl_var name='id'}">
-- 
GitLab


From d70583eda351b132e5cbf0c1f674455a3db4fcb4 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 20 Sep 2016 19:28:36 +0200
Subject: [PATCH 252/313] Added missing language string to fix #4140

---
 interface/web/sites/lib/lang/de_web_vhost_domain.lng | 1 +
 interface/web/sites/lib/lang/en_web_vhost_domain.lng | 1 +
 2 files changed, 2 insertions(+)

diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
index ff5786a1e6..5a73247189 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
index 7e77d429a4..23da049a95 100644
--- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
@@ -152,4 +152,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
-- 
GitLab


From a632b0bcb2da77876e0589cdc211051243281781 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 21 Sep 2016 19:31:08 +0200
Subject: [PATCH 253/313] Changed layout of the resync page.

---
 interface/web/tools/templates/resync.htm | 58 ++++++++++++------------
 1 file changed, 29 insertions(+), 29 deletions(-)

diff --git a/interface/web/tools/templates/resync.htm b/interface/web/tools/templates/resync.htm
index 5074c25dc5..a0b3861c06 100644
--- a/interface/web/tools/templates/resync.htm
+++ b/interface/web/tools/templates/resync.htm
@@ -4,37 +4,37 @@
 <p><tmpl_var name="list_desc_txt"></p>
 	
 <div class="form-group">
-	<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_all" value="1" name="resync_all"></div>
 	<label for="resync_all" class="col-sm-2 control-label">{tmpl_var name='resync_all_txt'}</label>
+	<div class="col-sm-1"><input type="checkbox" id="resync_all" value="1" name="resync_all"></div>
 	<div class="col-sm-3"><select name="all_server_id" id="all_server_id" class="form-control">{tmpl_var name='all_server_id'}</select></div>
 </div>
 
 <tmpl_if name="web_server_found">
 	<tmpl_if name="web_domain_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_sites" value="1" name="resync_sites"></div>
 			<label for="resync_sites" class="col-sm-2 control-label">{tmpl_var name='resync_sites_txt'}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_sites" value="1" name="resync_sites"></div>
 			<div class="col-sm-3"><select name="web_server_id" id="web_server_id" class="form-control">{tmpl_var name='web_server_id'}</select></div>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="ftp_user_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_ftp" value="1" name="resync_ftp"></div>
-			<label for="resync_ftp" class="col-sm-2 control-label">{tmpl_var name="resync_ftp_txt"}</label> 
+			<label for="resync_ftp" class="col-sm-2 control-label">{tmpl_var name="resync_ftp_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_ftp" value="1" name="resync_ftp"></div>
 			<div class="col-sm-3"><select name="ftp_server_id" id="ftp_server_id" class="form-control">{tmpl_var name='ftp_server_id'}</select></div>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="shell_user_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_shell" value="1" name="resync_shell"></div>
-			<label for="resync_shell" class="col-sm-2 control-label">{tmpl_var name="resync_shell_txt"}</label> 
+			<label for="resync_shell" class="col-sm-2 control-label">{tmpl_var name="resync_shell_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_shell" value="1" name="resync_shell"></div>
 			<div class="col-sm-3"><select name="shell_server_id" id="shell_server_id" class="form-control">{tmpl_var name='shell_server_id'}</select></div>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="cron_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_cron" value="1" name="resync_cron"></div>
-			<label for="resync_cron" class="col-sm-2 control-label">{tmpl_var name="resync_cron_txt"}</label> 
+			<label for="resync_cron" class="col-sm-2 control-label">{tmpl_var name="resync_cron_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_cron" value="1" name="resync_cron"></div>
 			<div class="col-sm-3"><select name="cron_server_id" id="cron_server_id" class="form-control">{tmpl_var name='cron_server_id'}</select></div>
 		</div>
 	</tmpl_if>
@@ -43,8 +43,8 @@
 <tmpl_if name="file_server_found">
 	<tmpl_if name="webdav_user_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_webdav" value="1" name="resync_webdav"></div>
-			<label for="resync_webdav" class="col-sm-2 control-label">{tmpl_var name="resync_webdav_txt"}</label> 
+			<label for="resync_webdav" class="col-sm-2 control-label">{tmpl_var name="resync_webdav_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_webdav" value="1" name="resync_webdav"></div>
 			<div class="col-sm-3"><select name="webdav_server_id" id="webdav_server_id" class="form-control">{tmpl_var name='file_server_id'}</select></div>
 		</div>
 	</tmpl_if>
@@ -53,8 +53,8 @@
 <tmpl_if name="db_server_found">
 	<tmpl_if name="client_db_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_db" value="1" name="resync_db"></div>
-			<label for="resync_db" class="col-sm-2 control-label">{tmpl_var name="resync_db_txt"}</label> 
+			<label for="resync_db" class="col-sm-2 control-label">{tmpl_var name="resync_db_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_db" value="1" name="resync_db"></div>
 			<div class="col-sm-3"><select name="db_server_id" id="db_server_id" class="form-control">{tmpl_var name='db_server_id'}</select></div>
 		</div>
 	</tmpl_if>
@@ -63,36 +63,36 @@
 <tmpl_if name="mail_server_found">
 	<tmpl_if name="mail_domain_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_mail" value="1" name="resync_mail"></div>
-			<label for="resync_mail" class="col-sm-2 control-label">{tmpl_var name="resync_mail_txt"}</label> 
+			<label for="resync_mail" class="col-sm-2 control-label">{tmpl_var name="resync_mail_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_mail" value="1" name="resync_mail"></div>
 			<div class="col-sm-3"><select name="mail_server_id" id="mail_server_id" class="form-control">{tmpl_var name='mail_server_id'}</select></div>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="mail_user_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_mailbox" value="1" name="resync_mailbox"></div>
-			<label for="resync_mailbox" class="col-sm-2 control-label">{tmpl_var name="resync_mailbox_txt"}</label> 
+			<label for="resync_mailbox" class="col-sm-2 control-label">{tmpl_var name="resync_mailbox_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_mailbox" value="1" name="resync_mailbox"></div>
 			<div class="col-sm-3"><select name="mailbox_server_id" id="mailbox_server_id" class="form-control">{tmpl_var name='mailbox_server_id'}</select></div>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="mail_get_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_mailget" value="1" name="resync_mailget"></div>
-			<label for="resync_mailget" class="col-sm-2 control-label">{tmpl_var name="resync_mailget_txt"}</label> 
+			<label for="resync_mailget" class="col-sm-2 control-label">{tmpl_var name="resync_mailget_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_mailget" value="1" name="resync_mailget"></div>
 			<div class="col-sm-3"><select name="mailget_server_id" id="mailget_server_id" class="form-control">{tmpl_var name='mailget_server_id'}</select></div>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="mail_filter_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_mailfilter" value="1" name="resync_mailfilter"></div>
-			<label for="resync_mailfilter" class="col-sm-2 control-label">{tmpl_var name="resync_mailfilter_txt"}</label> 
+			<label for="resync_mailfilter" class="col-sm-2 control-label">{tmpl_var name="resync_mailfilter_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_mailfilter" value="1" name="resync_mailfilter"></div>
 			<div class="col-sm-3"><select name="mailfilter_server_id" id="mailfilter_server_id" class="form-control">{tmpl_var name='mailfilter_server_id'}</select></div>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="mailinglist_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_mailinglist" value="1" name="resync_mailinglist"></div>
-			<label for="resync_mailinglist" class="col-sm-2 control-label">{tmpl_var name="resync_mailinglist_txt"}</label> 
+			<label for="resync_mailinglist" class="col-sm-2 control-label">{tmpl_var name="resync_mailinglist_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_mailinglist" value="1" name="resync_mailinglist"></div>
 			<div class="col-sm-3"><select name="mailinglist_server_id" id="mailinglist_server_id" class="form-control">{tmpl_var name='mailinglist_server_id'}</select></div>
 		</div>
 	</tmpl_if>
@@ -102,8 +102,8 @@
 <tmpl_if name="dns_server_found">
 	<tmpl_if name="dns_soa_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_dns" value="1" name="resync_dns"></div>
-			<label for="resync_dns" class="col-sm-2 control-label">{tmpl_var name="resync_dns_txt"}</label> 
+			<label for="resync_dns" class="col-sm-2 control-label">{tmpl_var name="resync_dns_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_dns" value="1" name="resync_dns"></div>
 			<div class="col-sm-3"><select name="dns_server_id" id="dns_server_id" class="form-control">{tmpl_var name='dns_server_id'}</select></div>
 		</div>
 	</tmpl_if>
@@ -112,8 +112,8 @@
 <tmpl_if name="vserver_server_found">
 	<tmpl_if name="vserver_found">
 		<div class="form-group">
-			<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_vserver" value="1" name="resync_vserver"></div>
-			<label for="resync_vserver" class="col-sm-2 control-label">{tmpl_var name="resync_vserver_txt"}</label> 
+			<label for="resync_vserver" class="col-sm-2 control-label">{tmpl_var name="resync_vserver_txt"}</label>
+			<div class="col-sm-1"><input type="checkbox" id="resync_vserver" value="1" name="resync_vserver"></div>
 			<div class="col-sm-3"><select name="vserver_server_id" id="vserver_server_id" class="form-control">{tmpl_var name='vserver_server_id'}</select></div>
 		</div>
 	</tmpl_if>
@@ -121,15 +121,15 @@
 	
 <tmpl_if name="firewall_server_found">
 	<div class="form-group">
-		<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_firewall" value="1" name="resync_firewall"></div>
-		<label for="resync_firewall" class="col-sm-2 control-label">{tmpl_var name="resync_firewall_txt"}</label> 
+		<label for="resync_firewall" class="col-sm-2 control-label">{tmpl_var name="resync_firewall_txt"}</label>
+		<div class="col-sm-1"><input type="checkbox" id="resync_firewall" value="1" name="resync_firewall"></div>
 		<div class="col-sm-3"><select name="firewall_server_id" id="firewall_server_id" class="form-control">{tmpl_var name='firewall_server_id'}</select></div>
 	</div>
 </tmpl_if>
 	
 <div class="form-group">
-	<div class="col-sm-1"><input class="form-control" type="checkbox" id="resync_client" value="1" name="resync_client"></div>
 	<label for="resync_client" class="col-sm-2 control-label control-label-plain">{tmpl_var name="resync_client_txt"}</label> 
+	<div class="col-sm-1"><input type="checkbox" id="resync_client" value="1" name="resync_client"></div>
 </div>
 	
 <input type="hidden" name="id" value="{tmpl_var name='id'}">
-- 
GitLab


From 2c75b730d8e628899981dbc464d7f1811b779aaa Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 22 Sep 2016 11:41:34 +0200
Subject: [PATCH 254/313] Added check for empty passwords on update of MySQL
 users.

---
 server/plugins-available/mysql_clientdb_plugin.inc.php | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php
index 8d73978d04..4ff13a089d 100644
--- a/server/plugins-available/mysql_clientdb_plugin.inc.php
+++ b/server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -142,8 +142,10 @@ class mysql_clientdb_plugin {
 			} elseif($action == 'PASSWORD') {
 				//if(!$link->query("SET PASSWORD FOR '".$link->escape_string($database_user)."'@'$db_host' = '".$link->escape_string($database_password)."'")) $success = false;
 				// SET PASSWORD for already hashed passwords is not supported by latest MySQL 5.7 anymore, so we set it directly
-				if(!$link->query("UPDATE mysql.user SET `Password` = '".$link->escape_string($database_password)."' WHERE `Host` = '".$db_host."' AND `User` = '".$link->escape_string($database_user)."'")) $success = false;
-				if($success == true) $link->query("FLUSH PRIVILEGES");
+				if(trim($database_password) != '') {
+					if(!$link->query("UPDATE mysql.user SET `Password` = '".$link->escape_string($database_password)."' WHERE `Host` = '".$db_host."' AND `User` = '".$link->escape_string($database_user)."'")) $success = false;
+					if($success == true) $link->query("FLUSH PRIVILEGES");
+				}
 			}
 		}
 
-- 
GitLab


From 8509f8edcd8f6cc30d15d5fb494c852d46ddd3d2 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 22 Sep 2016 19:50:12 +0200
Subject: [PATCH 255/313] Corrected debug message in updater.

---
 install/lib/update.lib.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index 4e20332b83..1bb0051d2d 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -44,9 +44,9 @@ function prepareDBDump() {
 	//** load the pre update sql script do perform modifications on the database before the database is dumped
 	if(is_file(ISPC_INSTALL_ROOT."/install/sql/pre_update.sql")) {
 		if($conf['mysql']['admin_password'] == '') {
-			caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/pre_update.sql' &> /dev/null", __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql');
+			caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/pre_update.sql' &> /dev/null", __FILE__, __LINE__, 'read in pre_update.sql', 'could not read in pre_update.sql');
 		} else {
-			caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/pre_update.sql' &> /dev/null", __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql');
+			caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/pre_update.sql' &> /dev/null", __FILE__, __LINE__, 'read in pre_update.sql', 'could not read in pre_update.sql');
 		}
 	}
 
-- 
GitLab


From 2475fad8ab15be8500182d75c65f52b716405544 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 23 Sep 2016 08:52:49 +0200
Subject: [PATCH 256/313] Changed default for apache mod_fastcgi syntax to new
 values. #4207

---
 install/tpl/server.ini.master | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 8231e4acde..759b0b878e 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -127,7 +127,7 @@ fastcgi_phpini_path=/etc/php5/cgi/
 fastcgi_children=8
 fastcgi_max_requests=5000
 fastcgi_bin=/usr/bin/php-cgi
-fastcgi_config_syntax=1
+fastcgi_config_syntax=2
 
 [jailkit]
 jailkit_chroot_home=/home/[username]
-- 
GitLab


From 2e4fc1011564cb45f3733e22a6255e41f571b62d Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Sun, 25 Sep 2016 09:49:53 +0200
Subject: [PATCH 257/313] fixe typo

---
 interface/lib/plugins/dns_dns_slave_plugin.inc.php | 2 +-
 interface/lib/plugins/dns_dns_soa_plugin.inc.php   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/lib/plugins/dns_dns_slave_plugin.inc.php b/interface/lib/plugins/dns_dns_slave_plugin.inc.php
index 8f49ce69d0..34f38f03e5 100644
--- a/interface/lib/plugins/dns_dns_slave_plugin.inc.php
+++ b/interface/lib/plugins/dns_dns_slave_plugin.inc.php
@@ -40,7 +40,7 @@ class dns_dns_slave_plugin {
 		//** When the client group has changed, change also the owner of the record if the owner is not the admin user
 		if($page_form->oldDataRecord && $page_form->oldDataRecord["client_group_id"] != $page_form->dataRecord["client_group_id"] && $page_form->dataRecord["sys_userid"] != 1) {
 			$client_group_id = $app->functions->intval($page_form->dataRecord["client_group_id"]);
-			$tmp = $app->db->queryOneREcord("SELECT userid FROM sys_user WHERE default_group = ?", $client_group_id);
+			$tmp = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE default_group = ?", $client_group_id);
 			if($tmp["userid"] > 0) {
 				$app->db->query("UPDATE dns_slave SET sys_userid = ? WHERE id = ?", $tmp["userid"], $page_form->id);
 			}
diff --git a/interface/lib/plugins/dns_dns_soa_plugin.inc.php b/interface/lib/plugins/dns_dns_soa_plugin.inc.php
index 8f047bef8b..a9c482bb4b 100644
--- a/interface/lib/plugins/dns_dns_soa_plugin.inc.php
+++ b/interface/lib/plugins/dns_dns_soa_plugin.inc.php
@@ -38,7 +38,7 @@ class dns_dns_soa_plugin {
 			//** When the client group has changed, change also the owner of the record if the owner is not the admin user
 			if($page_form->oldDataRecord["client_group_id"] != $page_form->dataRecord["client_group_id"] && $page_form->dataRecord["sys_userid"] != 1) {
 				$client_group_id = $app->functions->intval($page_form->dataRecord["client_group_id"]);
-				$tmp = $app->db->queryOneREcord("SELECT userid FROM sys_user WHERE default_group = ?", $client_group_id);
+				$tmp = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE default_group = ?", $client_group_id);
 				if($tmp["userid"] > 0) {
 					$app->db->query("UPDATE dns_soa SET sys_userid = ? WHERE id = ?", $tmp["userid"], $page_form->id);
 					$app->db->query("UPDATE dns_rr SET sys_userid = ? WHERE zone = ?", $tmp["userid"], $page_form->id);
-- 
GitLab


From 7c3b89df2996dca74786358de64d797144019089 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 26 Sep 2016 18:40:41 +0200
Subject: [PATCH 258/313] Fixed #4211 Admin theme breaks when set to blue skin
 and then upgrading to 3.1rc2 Added fields user_config and user_type to the
 ftp_user table.

---
 install/sql/incremental/upd_0084.sql | 2 ++
 install/sql/ispconfig3.sql           | 2 ++
 2 files changed, 4 insertions(+)
 create mode 100644 install/sql/incremental/upd_0084.sql

diff --git a/install/sql/incremental/upd_0084.sql b/install/sql/incremental/upd_0084.sql
new file mode 100644
index 0000000000..62646cde22
--- /dev/null
+++ b/install/sql/incremental/upd_0084.sql
@@ -0,0 +1,2 @@
+UPDATE `sys_user` SET `app_theme` = 'default' WHERE 1;
+ALTER TABLE `ftp_user` ADD `user_type` SET('user','system') NOT NULL DEFAULT 'user' AFTER `expires`, ADD `user_config` TEXT NULL AFTER `user_type`;
\ No newline at end of file
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index eaf060a8a8..615c8584a1 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -644,6 +644,8 @@ CREATE TABLE `ftp_user` (
   `ul_bandwidth` int(11) NOT NULL default '-1',
   `dl_bandwidth` int(11) NOT NULL default '-1',
   `expires` datetime NULL DEFAULT NULL,
+  `user_type` set('user','system') NOT NULL DEFAULT 'user',
+  `user_config` text,
   PRIMARY KEY  (`ftp_user_id`),
   KEY `active` (`active`),
   KEY `server_id` (`server_id`),
-- 
GitLab


From c9ba0767c72b17304995e7dbc6328056ab32c312 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Mon, 26 Sep 2016 19:34:56 +0200
Subject: [PATCH 259/313] use php filter_var database remote-ip (#4215)

---
 server/plugins-available/mysql_clientdb_plugin.inc.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php
index 4ff13a089d..0c6a98cf54 100644
--- a/server/plugins-available/mysql_clientdb_plugin.inc.php
+++ b/server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -105,6 +105,8 @@ class mysql_clientdb_plugin {
 			$valid = true;
 			if($db_host == '%' || $db_host == 'localhost') {
 				$valid = true;
+			} elseif(function_exists('filter_var')) {
+				if(!filter_var($db_host, FILTER_VALIDATE_IP)) $valid=false;
 			} elseif(preg_match("/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/", $db_host)) {
 				$groups = explode('.', $db_host);
 				foreach($groups as $group){
-- 
GitLab


From d4d0a05b6e88be058e322229c28fe807dca0de26 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 26 Sep 2016 19:57:11 +0200
Subject: [PATCH 260/313] Added donation dashlet. Merged language files.

---
 interface/lib/lang/cz.lng                     |  3 -
 interface/lib/lang/dk.lng                     |  2 +-
 interface/lib/lang/tr.lng                     |  2 +-
 interface/web/admin/lib/lang/ca_firewall.lng  |  4 +-
 .../web/admin/lib/lang/ca_server_config.lng   |  2 +-
 .../web/admin/lib/lang/ca_system_config.lng   |  2 +-
 interface/web/admin/lib/lang/ca_users.lng     |  2 +-
 interface/web/admin/lib/lang/cz.lng           |  3 -
 .../admin/lib/lang/cz_directive_snippets.lng  |  3 -
 .../lib/lang/cz_directive_snippets_list.lng   |  3 -
 interface/web/admin/lib/lang/cz_firewall.lng  |  3 -
 .../web/admin/lib/lang/cz_firewall_list.lng   |  3 -
 interface/web/admin/lib/lang/cz_groups.lng    |  3 -
 .../web/admin/lib/lang/cz_groups_list.lng     |  3 -
 interface/web/admin/lib/lang/cz_iptables.lng  |  3 -
 .../web/admin/lib/lang/cz_iptables_list.lng   |  3 -
 .../web/admin/lib/lang/cz_language_add.lng    |  3 -
 .../admin/lib/lang/cz_language_complete.lng   |  3 -
 .../web/admin/lib/lang/cz_language_edit.lng   |  3 -
 .../web/admin/lib/lang/cz_language_export.lng |  3 -
 .../web/admin/lib/lang/cz_language_import.lng |  3 -
 .../web/admin/lib/lang/cz_language_list.lng   |  3 -
 .../web/admin/lib/lang/cz_package_install.lng |  3 -
 .../web/admin/lib/lang/cz_remote_action.lng   |  7 +-
 .../web/admin/lib/lang/cz_remote_user.lng     |  3 -
 .../admin/lib/lang/cz_remote_user_list.lng    |  3 -
 interface/web/admin/lib/lang/cz_server.lng    |  3 -
 .../web/admin/lib/lang/cz_server_config.lng   |  3 -
 .../admin/lib/lang/cz_server_config_list.lng  |  3 -
 interface/web/admin/lib/lang/cz_server_ip.lng |  3 -
 .../web/admin/lib/lang/cz_server_ip_list.lng  |  3 -
 .../web/admin/lib/lang/cz_server_ip_map.lng   |  3 -
 .../admin/lib/lang/cz_server_ip_map_list.lng  |  3 -
 .../web/admin/lib/lang/cz_server_list.lng     |  3 -
 .../web/admin/lib/lang/cz_server_php.lng      |  3 -
 .../web/admin/lib/lang/cz_server_php_list.lng |  3 -
 .../admin/lib/lang/cz_software_package.lng    |  3 -
 .../lib/lang/cz_software_package_install.lng  |  3 -
 .../lib/lang/cz_software_package_list.lng     |  3 -
 .../web/admin/lib/lang/cz_software_repo.lng   |  3 -
 .../admin/lib/lang/cz_software_repo_list.lng  |  3 -
 .../lib/lang/cz_software_update_list.lng      |  3 -
 .../web/admin/lib/lang/cz_system_config.lng   |  3 -
 .../admin/lib/lang/cz_tpl_default_admin.lng   |  3 -
 interface/web/admin/lib/lang/cz_users.lng     |  3 -
 .../web/admin/lib/lang/cz_users_list.lng      |  3 -
 .../admin/lib/lang/de_directive_snippets.lng  |  1 -
 interface/web/admin/lib/lang/dk_firewall.lng  |  4 +-
 .../web/admin/lib/lang/dk_server_config.lng   |  2 +-
 .../web/admin/lib/lang/dk_server_ip_map.lng   | 20 +++---
 .../admin/lib/lang/dk_server_ip_map_list.lng  | 10 +--
 .../web/admin/lib/lang/dk_system_config.lng   |  2 +-
 interface/web/admin/lib/lang/dk_users.lng     |  2 +-
 interface/web/admin/lib/lang/tr_firewall.lng  |  4 +-
 .../web/admin/lib/lang/tr_remote_action.lng   |  4 +-
 .../web/admin/lib/lang/tr_server_config.lng   |  2 +-
 .../web/admin/lib/lang/tr_system_config.lng   |  2 +-
 interface/web/admin/lib/lang/tr_users.lng     |  2 +-
 interface/web/client/lib/lang/cz.lng          |  3 -
 interface/web/client/lib/lang/cz_client.lng   |  3 -
 .../web/client/lib/lang/cz_client_circle.lng  |  3 -
 .../client/lib/lang/cz_client_circle_list.lng |  3 -
 .../web/client/lib/lang/cz_client_del.lng     |  3 -
 .../web/client/lib/lang/cz_client_message.lng |  3 -
 .../lib/lang/cz_client_message_template.lng   |  3 -
 .../lang/cz_client_message_template_list.lng  |  3 -
 .../client/lib/lang/cz_client_template.lng    |  3 -
 .../lib/lang/cz_client_template_list.lng      |  3 -
 .../web/client/lib/lang/cz_clients_list.lng   |  3 -
 interface/web/client/lib/lang/cz_domain.lng   |  3 -
 .../web/client/lib/lang/cz_domain_list.lng    |  3 -
 interface/web/client/lib/lang/cz_reseller.lng |  3 -
 .../web/client/lib/lang/cz_resellers_list.lng |  3 -
 interface/web/client/lib/lang/dk_client.lng   |  4 +-
 .../client/lib/lang/dk_client_template.lng    |  2 +-
 interface/web/client/lib/lang/dk_reseller.lng |  4 +-
 interface/web/client/lib/lang/tr_client.lng   |  4 +-
 .../client/lib/lang/tr_client_template.lng    |  2 +-
 interface/web/client/lib/lang/tr_reseller.lng |  4 +-
 interface/web/dashboard/dashboard.php         | 21 ++++++
 interface/web/dashboard/dashlets/donate.php   | 33 ++++++++++
 .../dashboard/dashlets/templates/donate.htm   | 18 ++++++
 .../dashboard/lib/lang/ar_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/bg_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/br_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/ca_dashlet_donate.lng  |  7 ++
 interface/web/dashboard/lib/lang/cz.lng       |  3 -
 .../lib/lang/cz_dashlet_customer.lng          |  3 -
 .../lib/lang/cz_dashlet_databasequota.lng     |  3 -
 .../dashboard/lib/lang/cz_dashlet_donate.lng  |  7 ++
 .../cz_dashlet_invoice_client_settings.lng    |  3 -
 .../lib/lang/cz_dashlet_invoices.lng          |  3 -
 .../dashboard/lib/lang/cz_dashlet_limits.lng  |  3 -
 .../lib/lang/cz_dashlet_mailquota.lng         |  3 -
 .../dashboard/lib/lang/cz_dashlet_modules.lng |  3 -
 .../lib/lang/cz_dashlet_products.lng          |  3 -
 .../dashboard/lib/lang/cz_dashlet_quota.lng   |  3 -
 .../dashboard/lib/lang/cz_dashlet_shop.lng    |  3 -
 .../dashboard/lib/lang/de_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/dk_dashlet_donate.lng  |  7 ++
 .../lib/lang/dk_dashlet_invoices.lng          | 32 +++++-----
 .../dashboard/lib/lang/el_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/en_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/es_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/fi_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/fr_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/hr_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/hu_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/id_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/it_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/ja_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/nl_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/pl_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/pt_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/ro_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/ru_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/se_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/sk_dashlet_donate.lng  |  7 ++
 .../dashboard/lib/lang/tr_dashlet_donate.lng  |  7 ++
 interface/web/dns/lib/lang/cz.lng             |  3 -
 interface/web/dns/lib/lang/cz_dns_a.lng       |  3 -
 interface/web/dns/lib/lang/cz_dns_a_list.lng  |  3 -
 interface/web/dns/lib/lang/cz_dns_aaaa.lng    |  3 -
 interface/web/dns/lib/lang/cz_dns_alias.lng   |  3 -
 interface/web/dns/lib/lang/cz_dns_cname.lng   |  3 -
 interface/web/dns/lib/lang/cz_dns_dkim.lng    |  3 -
 interface/web/dns/lib/lang/cz_dns_dmarc.lng   |  3 -
 interface/web/dns/lib/lang/cz_dns_ds.lng      |  3 -
 interface/web/dns/lib/lang/cz_dns_hinfo.lng   |  3 -
 interface/web/dns/lib/lang/cz_dns_import.lng  |  3 -
 interface/web/dns/lib/lang/cz_dns_loc.lng     |  3 -
 interface/web/dns/lib/lang/cz_dns_mx.lng      |  3 -
 interface/web/dns/lib/lang/cz_dns_ns.lng      |  3 -
 interface/web/dns/lib/lang/cz_dns_ptr.lng     |  3 -
 interface/web/dns/lib/lang/cz_dns_rp.lng      |  3 -
 interface/web/dns/lib/lang/cz_dns_slave.lng   |  3 -
 .../dns/lib/lang/cz_dns_slave_admin_list.lng  |  3 -
 .../web/dns/lib/lang/cz_dns_slave_list.lng    |  3 -
 .../dns/lib/lang/cz_dns_soa_admin_list.lng    |  3 -
 .../web/dns/lib/lang/cz_dns_soa_list.lng      |  3 -
 interface/web/dns/lib/lang/cz_dns_spf.lng     |  3 -
 interface/web/dns/lib/lang/cz_dns_srv.lng     |  3 -
 .../web/dns/lib/lang/cz_dns_template.lng      |  3 -
 .../web/dns/lib/lang/cz_dns_template_list.lng |  3 -
 interface/web/dns/lib/lang/cz_dns_tlsa.lng    |  3 -
 interface/web/dns/lib/lang/cz_dns_txt.lng     |  3 -
 interface/web/dns/lib/lang/cz_dns_wizard.lng  |  3 -
 interface/web/dns/lib/lang/dk_dns_dkim.lng    | 14 ++--
 interface/web/dns/lib/lang/dk_dns_dmarc.lng   |  8 +--
 interface/web/dns/lib/lang/dk_dns_ds.lng      | 27 ++++----
 interface/web/dns/lib/lang/dk_dns_loc.lng     | 26 ++++----
 .../web/dns/lib/lang/dk_dns_slave_list.lng    | 12 ++--
 interface/web/dns/lib/lang/dk_dns_spf.lng     | 13 ++--
 interface/web/dns/lib/lang/dk_dns_tlsa.lng    | 26 ++++----
 interface/web/help/lib/lang/cz.lng            |  3 -
 interface/web/help/lib/lang/cz_faq_form.lng   |  3 -
 .../lib/lang/cz_faq_manage_questions_list.lng |  3 -
 .../help/lib/lang/cz_faq_sections_form.lng    |  3 -
 .../web/help/lib/lang/cz_help_faq_list.lng    |  3 -
 .../lib/lang/cz_help_faq_sections_list.lng    |  3 -
 .../help/lib/lang/cz_support_message_list.lng |  3 -
 interface/web/login/lib/lang/cz_login_as.lng  |  3 -
 interface/web/login/lib/lang/dk_login_as.lng  |  6 +-
 interface/web/login/lib/lang/tr_login_as.lng  |  6 +-
 interface/web/mail/lib/lang/cz.lng            |  3 -
 .../mail/lib/lang/cz_backup_stats_list.lng    |  3 -
 interface/web/mail/lib/lang/cz_mail_alias.lng |  3 -
 .../web/mail/lib/lang/cz_mail_alias_list.lng  |  3 -
 .../web/mail/lib/lang/cz_mail_aliasdomain.lng |  3 -
 .../lib/lang/cz_mail_aliasdomain_list.lng     |  3 -
 .../web/mail/lib/lang/cz_mail_backup_list.lng |  3 -
 .../web/mail/lib/lang/cz_mail_blacklist.lng   |  3 -
 .../mail/lib/lang/cz_mail_blacklist_list.lng  |  3 -
 .../mail/lib/lang/cz_mail_content_filter.lng  |  3 -
 .../lib/lang/cz_mail_content_filter_list.lng  |  3 -
 .../web/mail/lib/lang/cz_mail_domain.lng      |  3 -
 .../lib/lang/cz_mail_domain_admin_list.lng    |  3 -
 .../mail/lib/lang/cz_mail_domain_catchall.lng |  3 -
 .../lib/lang/cz_mail_domain_catchall_list.lng |  3 -
 .../web/mail/lib/lang/cz_mail_domain_list.lng |  3 -
 .../web/mail/lib/lang/cz_mail_forward.lng     |  3 -
 .../mail/lib/lang/cz_mail_forward_list.lng    |  3 -
 interface/web/mail/lib/lang/cz_mail_get.lng   |  3 -
 .../web/mail/lib/lang/cz_mail_get_list.lng    |  3 -
 .../web/mail/lib/lang/cz_mail_mailinglist.lng |  5 +-
 .../lib/lang/cz_mail_mailinglist_list.lng     |  3 -
 .../mail/lib/lang/cz_mail_relay_recipient.lng |  3 -
 .../lib/lang/cz_mail_relay_recipient_list.lng |  3 -
 .../web/mail/lib/lang/cz_mail_spamfilter.lng  |  3 -
 .../mail/lib/lang/cz_mail_spamfilter_list.lng |  3 -
 .../web/mail/lib/lang/cz_mail_transport.lng   |  3 -
 .../mail/lib/lang/cz_mail_transport_list.lng  |  3 -
 interface/web/mail/lib/lang/cz_mail_user.lng  |  3 -
 .../web/mail/lib/lang/cz_mail_user_filter.lng |  3 -
 .../lib/lang/cz_mail_user_filter_list.lng     |  3 -
 .../web/mail/lib/lang/cz_mail_user_list.lng   |  3 -
 .../mail/lib/lang/cz_mail_user_stats_list.lng |  3 -
 .../web/mail/lib/lang/cz_mail_whitelist.lng   |  3 -
 .../mail/lib/lang/cz_mail_whitelist_list.lng  |  3 -
 .../mail/lib/lang/cz_spamfilter_blacklist.lng |  3 -
 .../lib/lang/cz_spamfilter_blacklist_list.lng |  3 -
 .../mail/lib/lang/cz_spamfilter_config.lng    |  3 -
 .../lib/lang/cz_spamfilter_config_list.lng    |  3 -
 .../mail/lib/lang/cz_spamfilter_policy.lng    |  3 -
 .../lib/lang/cz_spamfilter_policy_list.lng    |  3 -
 .../web/mail/lib/lang/cz_spamfilter_users.lng |  3 -
 .../lib/lang/cz_spamfilter_users_list.lng     |  3 -
 .../mail/lib/lang/cz_spamfilter_whitelist.lng |  3 -
 .../lib/lang/cz_spamfilter_whitelist_list.lng |  3 -
 .../lib/lang/cz_user_quota_stats_list.lng     |  3 -
 .../web/mail/lib/lang/cz_xmpp_domain.lng      |  3 -
 .../lib/lang/cz_xmpp_domain_admin_list.lng    |  3 -
 .../web/mail/lib/lang/cz_xmpp_domain_list.lng |  3 -
 interface/web/mail/lib/lang/cz_xmpp_user.lng  |  3 -
 .../web/mail/lib/lang/cz_xmpp_user_list.lng   |  3 -
 .../mail/lib/lang/dk_backup_stats_list.lng    | 10 +--
 interface/web/mail/lib/lang/dk_mail_get.lng   |  2 +-
 .../web/mail/lib/lang/dk_xmpp_domain.lng      | 64 +++++++++----------
 .../lib/lang/dk_xmpp_domain_admin_list.lng    | 14 ++--
 .../web/mail/lib/lang/dk_xmpp_domain_list.lng | 12 ++--
 interface/web/mail/lib/lang/dk_xmpp_user.lng  | 20 +++---
 .../web/mail/lib/lang/dk_xmpp_user_list.lng   | 14 ++--
 interface/web/mail/lib/lang/tr_mail_get.lng   |  2 +-
 interface/web/mailuser/lib/lang/cz.lng        |  3 -
 interface/web/mailuser/lib/lang/cz_index.lng  |  3 -
 .../lib/lang/cz_mail_user_autoresponder.lng   |  3 -
 .../web/mailuser/lib/lang/cz_mail_user_cc.lng |  3 -
 .../mailuser/lib/lang/cz_mail_user_filter.lng |  3 -
 .../lib/lang/cz_mail_user_filter_list.lng     |  3 -
 .../lib/lang/cz_mail_user_password.lng        |  3 -
 .../lib/lang/cz_mail_user_spamfilter.lng      |  3 -
 interface/web/monitor/lib/lang/cz.lng         |  3 -
 .../web/monitor/lib/lang/cz_datalog_list.lng  |  3 -
 .../web/monitor/lib/lang/cz_syslog_list.lng   |  3 -
 .../sites/lib/lang/ar_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/bg_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/br_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ca_web_vhost_domain.lng    |  1 +
 interface/web/sites/lib/lang/cz.lng           |  3 -
 interface/web/sites/lib/lang/cz_aps.lng       |  3 -
 .../sites/lib/lang/cz_aps_instances_list.lng  |  3 -
 .../sites/lib/lang/cz_aps_packages_list.lng   |  3 -
 .../lib/lang/cz_aps_update_packagelist.lng    |  3 -
 .../sites/lib/lang/cz_backup_stats_list.lng   |  3 -
 interface/web/sites/lib/lang/cz_cron.lng      |  3 -
 interface/web/sites/lib/lang/cz_cron_list.lng |  3 -
 interface/web/sites/lib/lang/cz_database.lng  |  3 -
 .../sites/lib/lang/cz_database_admin_list.lng |  3 -
 .../web/sites/lib/lang/cz_database_list.lng   |  3 -
 .../lib/lang/cz_database_quota_stats_list.lng |  3 -
 .../web/sites/lib/lang/cz_database_user.lng   |  3 -
 .../lib/lang/cz_database_user_admin_list.lng  |  3 -
 .../sites/lib/lang/cz_database_user_list.lng  |  3 -
 .../lib/lang/cz_ftp_sites_stats_list.lng      |  4 +-
 interface/web/sites/lib/lang/cz_ftp_user.lng  |  3 -
 .../web/sites/lib/lang/cz_ftp_user_list.lng   |  3 -
 .../web/sites/lib/lang/cz_shell_user.lng      |  3 -
 .../web/sites/lib/lang/cz_shell_user_list.lng |  3 -
 .../lib/lang/cz_user_quota_stats_list.lng     |  3 -
 .../web/sites/lib/lang/cz_web_aliasdomain.lng |  3 -
 .../lib/lang/cz_web_aliasdomain_list.lng      |  3 -
 .../web/sites/lib/lang/cz_web_backup_list.lng |  3 -
 .../web/sites/lib/lang/cz_web_childdomain.lng |  3 -
 .../lib/lang/cz_web_childdomain_list.lng      |  3 -
 .../lib/lang/cz_web_directive_snippets.lng    |  3 -
 .../web/sites/lib/lang/cz_web_domain.lng      |  3 -
 .../lib/lang/cz_web_domain_admin_list.lng     |  3 -
 .../web/sites/lib/lang/cz_web_domain_list.lng |  3 -
 .../web/sites/lib/lang/cz_web_folder.lng      |  3 -
 .../web/sites/lib/lang/cz_web_folder_list.lng |  3 -
 .../web/sites/lib/lang/cz_web_folder_user.lng |  3 -
 .../lib/lang/cz_web_folder_user_list.lng      |  3 -
 .../lib/lang/cz_web_sites_stats_list.lng      |  3 -
 .../web/sites/lib/lang/cz_web_subdomain.lng   |  3 -
 .../sites/lib/lang/cz_web_subdomain_list.lng  |  3 -
 .../sites/lib/lang/cz_web_vhost_domain.lng    |  4 +-
 .../lang/cz_web_vhost_domain_admin_list.lng   |  3 -
 .../lib/lang/cz_web_vhost_domain_list.lng     |  3 -
 .../sites/lib/lang/cz_web_vhost_subdomain.lng |  3 -
 .../lib/lang/cz_web_vhost_subdomain_list.lng  |  3 -
 .../web/sites/lib/lang/cz_webdav_user.lng     |  3 -
 .../sites/lib/lang/cz_webdav_user_list.lng    |  3 -
 interface/web/sites/lib/lang/dk.lng           |  2 +-
 interface/web/sites/lib/lang/dk_aps.lng       | 16 ++---
 .../sites/lib/lang/dk_backup_stats_list.lng   | 12 ++--
 .../lib/lang/dk_database_quota_stats_list.lng | 12 ++--
 .../lib/lang/dk_ftp_sites_stats_list.lng      | 18 +++---
 .../web/sites/lib/lang/dk_web_childdomain.lng |  2 +-
 .../lib/lang/dk_web_childdomain_list.lng      |  1 -
 .../lib/lang/dk_web_directive_snippets.lng    |  2 +-
 .../web/sites/lib/lang/dk_web_subdomain.lng   |  2 +-
 .../sites/lib/lang/dk_web_vhost_domain.lng    | 12 ++--
 .../lang/dk_web_vhost_domain_admin_list.lng   | 16 ++---
 .../lib/lang/dk_web_vhost_domain_list.lng     |  1 -
 .../sites/lib/lang/el_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/es_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/fi_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/fr_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/hr_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/hu_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/id_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/it_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ja_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/nl_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/pl_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/pt_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ro_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ru_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/se_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/sk_web_vhost_domain.lng    |  1 +
 interface/web/sites/lib/lang/tr.lng           |  2 +-
 interface/web/sites/lib/lang/tr_aps.lng       | 16 ++---
 .../web/sites/lib/lang/tr_web_subdomain.lng   |  2 +-
 .../sites/lib/lang/tr_web_vhost_domain.lng    |  1 +
 .../lib/lang/cz_strengthmeter.lng             |  3 -
 interface/web/tools/lib/lang/cz.lng           |  3 -
 .../tools/lib/lang/cz_import_ispconfig.lng    |  3 -
 .../web/tools/lib/lang/cz_import_vpopmail.lng |  3 -
 interface/web/tools/lib/lang/cz_index.lng     |  3 -
 interface/web/tools/lib/lang/cz_interface.lng |  3 -
 interface/web/tools/lib/lang/cz_resync.lng    |  3 -
 .../web/tools/lib/lang/cz_tpl_default.lng     |  3 -
 .../web/tools/lib/lang/cz_usersettings.lng    |  3 -
 .../web/tools/lib/lang/dk_import_vpopmail.lng |  1 -
 interface/web/vm/lib/lang/cz.lng              |  3 -
 .../web/vm/lib/lang/cz_openvz_action.lng      |  3 -
 interface/web/vm/lib/lang/cz_openvz_ip.lng    |  3 -
 .../web/vm/lib/lang/cz_openvz_ip_list.lng     |  3 -
 .../web/vm/lib/lang/cz_openvz_ostemplate.lng  |  3 -
 .../vm/lib/lang/cz_openvz_ostemplate_list.lng |  3 -
 .../web/vm/lib/lang/cz_openvz_template.lng    |  3 -
 .../vm/lib/lang/cz_openvz_template_list.lng   |  3 -
 interface/web/vm/lib/lang/cz_openvz_vm.lng    |  3 -
 .../web/vm/lib/lang/cz_openvz_vm_list.lng     |  3 -
 .../web/vm/lib/lang/dk_openvz_template.lng    |  2 +-
 .../web/vm/lib/lang/tr_openvz_template.lng    |  2 +-
 336 files changed, 526 insertions(+), 949 deletions(-)
 create mode 100644 interface/web/dashboard/dashlets/donate.php
 create mode 100644 interface/web/dashboard/dashlets/templates/donate.htm
 create mode 100644 interface/web/dashboard/lib/lang/ar_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/bg_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/br_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/ca_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/cz_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/de_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/dk_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/el_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/en_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/es_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/fi_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/fr_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/hr_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/hu_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/id_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/it_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/ja_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/nl_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/pl_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/pt_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/ro_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/ru_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/se_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/sk_dashlet_donate.lng
 create mode 100644 interface/web/dashboard/lib/lang/tr_dashlet_donate.lng

diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index 6f2748e275..65b7999368 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -153,6 +153,3 @@ $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
 $wb['select_directive_snippet_txt'] = 'Directive Snippets';
 $wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
-
-
-
diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng
index 8b4d34d713..e3132b9805 100644
--- a/interface/lib/lang/dk.lng
+++ b/interface/lib/lang/dk.lng
@@ -146,7 +146,7 @@ $wb['strength_2'] = 'Nogenlunde';
 $wb['strength_3'] = 'God';
 $wb['strength_4'] = 'Stærk';
 $wb['strength_5'] = 'Meget Stærk';
-$wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden og have en styrke på \"{strength}\".';
+$wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden og have en styrke på \\"{strength}\\".';
 $wb['weak_password_length_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden.';
 $wb['security_check1_txt'] = 'Check for sikkerheds tilladelse:';
 $wb['security_check2_txt'] = 'mislykkedes.';
diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng
index 03412ef94c..a01572a787 100644
--- a/interface/lib/lang/tr.lng
+++ b/interface/lib/lang/tr.lng
@@ -146,7 +146,7 @@ $wb['strength_2'] = 'Yeterli';
 $wb['strength_3'] = 'İyi';
 $wb['strength_4'] = 'Güçlü';
 $wb['strength_5'] = 'Çok Güçlü';
-$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \"{strength}\" güçlüğünde olmalı.';
+$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \\"{strength}\\" güçlüğünde olmalı.';
 $wb['weak_password_length_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda olmalı.';
 $wb['security_check1_txt'] = 'Güvenlik iznini denetle:';
 $wb['security_check2_txt'] = 'başarısız.';
diff --git a/interface/web/admin/lib/lang/ca_firewall.lng b/interface/web/admin/lib/lang/ca_firewall.lng
index 0e08215f7a..06a51c80cf 100644
--- a/interface/web/admin/lib/lang/ca_firewall.lng
+++ b/interface/web/admin/lib/lang/ca_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 3a23af008d..3369f5036f 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -161,7 +161,7 @@ $wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
 $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
-$wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the \"Disable MySQL monitor\" checkbox and then wait 2-3 minutes.<br>If you do not wait 2-3 minutes, rescue will try to restart mysql!';
+$wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the \\"Disable MySQL monitor\\" checkbox and then wait 2-3 minutes.<br>If you do not wait 2-3 minutes, rescue will try to restart mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
 $wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update';
 $wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group';
diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng
index fa03990bc0..5809cc97b2 100644
--- a/interface/web/admin/lib/lang/ca_system_config.lng
+++ b/interface/web/admin/lib/lang/ca_system_config.lng
@@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain
 $wb['customer_no_start_txt'] = 'Customer No. start value';
 $wb['customer_no_counter_txt'] = 'Customer No. counter';
 $wb['session_timeout_txt'] = 'Session timeout (minutes)';
-$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"';
+$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"';
 $wb['No'] = 'No';
 $wb['min_password_length_txt'] = 'Minimum password length';
 $wb['min_password_strength_txt'] = 'Minimum password strength';
diff --git a/interface/web/admin/lib/lang/ca_users.lng b/interface/web/admin/lib/lang/ca_users.lng
index 9ee5d5e03d..93988a0911 100644
--- a/interface/web/admin/lib/lang/ca_users.lng
+++ b/interface/web/admin/lib/lang/ca_users.lng
@@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
-$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"';
+$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"';
 $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
diff --git a/interface/web/admin/lib/lang/cz.lng b/interface/web/admin/lib/lang/cz.lng
index 6ae683ce36..6a6b8aafdd 100644
--- a/interface/web/admin/lib/lang/cz.lng
+++ b/interface/web/admin/lib/lang/cz.lng
@@ -50,6 +50,3 @@ $wb['Directive Snippets'] = 'Directive Snippets';
 $wb['Sites'] = 'Stránky';
 $wb['DNS'] = 'DNS';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets.lng b/interface/web/admin/lib/lang/cz_directive_snippets.lng
index 0b6a421991..08c321037b 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets.lng
@@ -10,6 +10,3 @@ $wb['variables_txt'] = 'Proměnné';
 $wb['customer_viewable_txt'] = 'Customer viewable';
 $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets_list.lng b/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
index a1b9aa2953..e31d707941 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
@@ -6,6 +6,3 @@ $wb['type_txt'] = 'Verze';
 $wb['add_new_record_txt'] = 'Add Directive Snippet';
 $wb['customer_viewable_txt'] = 'Customer viewable';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_firewall.lng b/interface/web/admin/lib/lang/cz_firewall.lng
index 87e8a62022..c6146ae93d 100644
--- a/interface/web/admin/lib/lang/cz_firewall.lng
+++ b/interface/web/admin/lib/lang/cz_firewall.lng
@@ -9,6 +9,3 @@ $wb['firewall_error_unique'] = 'Pro tento server již existuje záznam firewallu
 $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolené symboly jsou čísla, : a ,.';
 $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_firewall_list.lng b/interface/web/admin/lib/lang/cz_firewall_list.lng
index d03fd784f2..c350ddc418 100644
--- a/interface/web/admin/lib/lang/cz_firewall_list.lng
+++ b/interface/web/admin/lib/lang/cz_firewall_list.lng
@@ -6,6 +6,3 @@ $wb['tcp_port_txt'] = 'Otevřené TCP porty';
 $wb['udp_port_txt'] = 'Otevřené UDP porty';
 $wb['add_new_record_txt'] = 'Vytvořit záznam';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_groups.lng b/interface/web/admin/lib/lang/cz_groups.lng
index 8ab250bbca..a6281be247 100644
--- a/interface/web/admin/lib/lang/cz_groups.lng
+++ b/interface/web/admin/lib/lang/cz_groups.lng
@@ -3,6 +3,3 @@ $wb['description_txt'] = 'Popis';
 $wb['name_txt'] = 'Skupina';
 $wb['name_err'] = 'Skupina musí mít min. 1, max. 30 znaků.';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_groups_list.lng b/interface/web/admin/lib/lang/cz_groups_list.lng
index 2fe31bb680..e66a41aac8 100644
--- a/interface/web/admin/lib/lang/cz_groups_list.lng
+++ b/interface/web/admin/lib/lang/cz_groups_list.lng
@@ -5,6 +5,3 @@ $wb['name_txt'] = 'Skupina';
 $wb['add_new_record_txt'] = 'Vytvořit skupinu';
 $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelý nebo skupin zde může způsobit ztrátu dat!';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_iptables.lng b/interface/web/admin/lib/lang/cz_iptables.lng
index ea09bc9dc8..a40fc0490f 100644
--- a/interface/web/admin/lib/lang/cz_iptables.lng
+++ b/interface/web/admin/lib/lang/cz_iptables.lng
@@ -11,6 +11,3 @@ $wb['source_ip_txt'] = 'Zdrojové adresy';
 $wb['active_txt'] = 'Aktivní';
 $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_iptables_list.lng b/interface/web/admin/lib/lang/cz_iptables_list.lng
index 4a207a2dda..65cef7507e 100644
--- a/interface/web/admin/lib/lang/cz_iptables_list.lng
+++ b/interface/web/admin/lib/lang/cz_iptables_list.lng
@@ -13,6 +13,3 @@ $wb['source_ip_txt'] = 'Zdrojové adresy';
 $wb['active_txt'] = 'Aktivní';
 $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_language_add.lng b/interface/web/admin/lib/lang/cz_language_add.lng
index c5eb16f6b6..21dcf62949 100644
--- a/interface/web/admin/lib/lang/cz_language_add.lng
+++ b/interface/web/admin/lib/lang/cz_language_add.lng
@@ -6,6 +6,3 @@ $wb['language_new_hint_txt'] = '2 znakové ISO 639-1 jazykové kódy (Viz: http:
 $wb['btn_save_txt'] = 'Vytvořit novou jazykovou sadu souborů';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_language_complete.lng b/interface/web/admin/lib/lang/cz_language_complete.lng
index 4ec14293f5..e63b3301f2 100644
--- a/interface/web/admin/lib/lang/cz_language_complete.lng
+++ b/interface/web/admin/lib/lang/cz_language_complete.lng
@@ -5,6 +5,3 @@ $wb['language_select_txt'] = 'Vybrat jazyk k doplnění';
 $wb['btn_save_txt'] = 'Sloučit / doplnit jazykový soubor';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_language_edit.lng b/interface/web/admin/lib/lang/cz_language_edit.lng
index 62a51a85ac..3efa7e3037 100644
--- a/interface/web/admin/lib/lang/cz_language_edit.lng
+++ b/interface/web/admin/lib/lang/cz_language_edit.lng
@@ -6,6 +6,3 @@ $wb['lang_file_txt'] = 'Jazykový soubor';
 $wb['btn_save_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_language_export.lng b/interface/web/admin/lib/lang/cz_language_export.lng
index 18fcba79cd..e02f861738 100644
--- a/interface/web/admin/lib/lang/cz_language_export.lng
+++ b/interface/web/admin/lib/lang/cz_language_export.lng
@@ -4,6 +4,3 @@ $wb['language_select_txt'] = 'Vybrat jazykovou sadu';
 $wb['btn_save_txt'] = 'Uložit vybranou jazykovou sadu do souboru';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_language_import.lng b/interface/web/admin/lib/lang/cz_language_import.lng
index e72a282e8d..5dc4ccac38 100644
--- a/interface/web/admin/lib/lang/cz_language_import.lng
+++ b/interface/web/admin/lib/lang/cz_language_import.lng
@@ -7,6 +7,3 @@ $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['ignore_version_txt'] = 'Přeskočit kontrolu verze ISPConfigu.';
 $wb['list_desc_txt'] = 'VAROVÁNÍ: Nepoužívejte import souborů jazyku z nedůvěryhodných zdrojů.';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_language_list.lng b/interface/web/admin/lib/lang/cz_language_list.lng
index b96d849509..b2a7863715 100644
--- a/interface/web/admin/lib/lang/cz_language_list.lng
+++ b/interface/web/admin/lib/lang/cz_language_list.lng
@@ -5,6 +5,3 @@ $wb['module_txt'] = 'Modul';
 $wb['lang_file_txt'] = 'Jazykový soubor';
 $wb['lang_file_date_txt'] = 'Poslední úprava';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_package_install.lng b/interface/web/admin/lib/lang/cz_package_install.lng
index 0f14548a74..2bdc9df315 100644
--- a/interface/web/admin/lib/lang/cz_package_install.lng
+++ b/interface/web/admin/lib/lang/cz_package_install.lng
@@ -5,6 +5,3 @@ $wb['repo_username_txt'] = 'Uživatel (volitelné)';
 $wb['repo_password_txt'] = 'Heslo (volitelné)';
 $wb['active_txt'] = 'Aktivní';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_remote_action.lng b/interface/web/admin/lib/lang/cz_remote_action.lng
index d6b328f530..e1908e2d04 100644
--- a/interface/web/admin/lib/lang/cz_remote_action.lng
+++ b/interface/web/admin/lib/lang/cz_remote_action.lng
@@ -2,14 +2,11 @@
 $wb['select_server_txt'] = 'Zvolit server';
 $wb['btn_do_txt'] = 'Provést akci';
 $wb['do_osupdate_caption'] = 'Aktualizace operačního systému na vzdáleném serveru.';
-$wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
+$wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
 $wb['do_ispcupdate_caption'] = 'Provedení ISPConfig 3 - aktualizace na vzdáleném serveru';
-$wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
+$wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
 $wb['action_scheduled'] = 'Akce je naplánována na provedení';
 $wb['select_all_server'] = 'Všechny servery';
 $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci';
 $wb['ispconfig_update_text'] = 'Přihlaste se jako uživatel root na terminal (shell) serveru a proveďte příkaz<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />spustí se ISPConfig aktualizace.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Klikněte zde pro podrobnější informace o provedení aktualizace</a>';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_remote_user.lng b/interface/web/admin/lib/lang/cz_remote_user.lng
index 8096ea261d..17c4f05b56 100644
--- a/interface/web/admin/lib/lang/cz_remote_user.lng
+++ b/interface/web/admin/lib/lang/cz_remote_user.lng
@@ -45,6 +45,3 @@ $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_remote_user_list.lng b/interface/web/admin/lib/lang/cz_remote_user_list.lng
index 0d364fc1f4..3f4a008f39 100644
--- a/interface/web/admin/lib/lang/cz_remote_user_list.lng
+++ b/interface/web/admin/lib/lang/cz_remote_user_list.lng
@@ -5,6 +5,3 @@ $wb['add_new_record_txt'] = 'Vytvořit uživatele';
 $wb['parent_remote_userid_txt'] = 'ID';
 $wb['username_txt'] = 'Uživatel';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server.lng b/interface/web/admin/lib/lang/cz_server.lng
index c984963b3f..8b86caf76b 100644
--- a/interface/web/admin/lib/lang/cz_server.lng
+++ b/interface/web/admin/lib/lang/cz_server.lng
@@ -14,6 +14,3 @@ $wb['proxy_server_txt'] = 'Proxy-Server';
 $wb['firewall_server_txt'] = 'Firewall-Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index e8da9610b2..6e785c42b4 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -282,6 +282,3 @@ $wb['hostname_error_empty'] = 'Název hostitele je prázdný';
 $wb['hostname_error_regex'] = 'Neplatný název hostitele.';
 $wb['backup_time_txt'] = 'Spustit zálohovaní v';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_config_list.lng b/interface/web/admin/lib/lang/cz_server_config_list.lng
index 8dc2b3e146..2118c35357 100644
--- a/interface/web/admin/lib/lang/cz_server_config_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_config_list.lng
@@ -2,6 +2,3 @@
 $wb['list_head_txt'] = 'Konfigurace serveru';
 $wb['server_name_txt'] = 'Server';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_ip.lng b/interface/web/admin/lib/lang/cz_server_ip.lng
index 1f3fcabcf8..43a382a646 100644
--- a/interface/web/admin/lib/lang/cz_server_ip.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip.lng
@@ -9,6 +9,3 @@ $wb['ip_type_txt'] = 'Verze';
 $wb['virtualhost_port_txt'] = 'HTTP Porty';
 $wb['error_port_syntax'] = 'Neplatné znaky ve volbě HTTP Portů. Prosím, zadejte pouze číselné hodnoty oddělené čárkami. Příklad: 80,443';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_ip_list.lng b/interface/web/admin/lib/lang/cz_server_ip_list.lng
index ccfb439e74..a0c10060b3 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_list.lng
@@ -8,6 +8,3 @@ $wb['virtualhost_txt'] = 'HTTP Vhost';
 $wb['virtualhost_port_txt'] = 'HTTP Ports';
 $wb['ip_type_txt'] = 'Verze';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_ip_map.lng b/interface/web/admin/lib/lang/cz_server_ip_map.lng
index f66a24a357..683451d1d8 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_map.lng
@@ -10,6 +10,3 @@ $wb['server_empty_error'] = 'The Server is empty.';
 $wb['duplicate_mapping_error'] = 'Mapování již existuje.';
 $wb['ip_mapping_error'] = 'Source IP can not be an IP of the Rewrite-Server';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_ip_map_list.lng b/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
index c8af2199cf..9997bb477b 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
@@ -5,6 +5,3 @@ $wb['source_ip_txt'] = 'Zdrojová IP adresa';
 $wb['destination_ip_txt'] = 'Cílová IP adresa';
 $wb['active_txt'] = 'Aktivní';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_list.lng b/interface/web/admin/lib/lang/cz_server_list.lng
index a6196d560e..8aaea041f4 100644
--- a/interface/web/admin/lib/lang/cz_server_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_list.lng
@@ -12,6 +12,3 @@ $wb['proxy_server_txt'] = 'Proxy';
 $wb['firewall_server_txt'] = 'Firewall';
 $wb['xmpp_server_txt'] = 'XMPP';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_php.lng b/interface/web/admin/lib/lang/cz_server_php.lng
index 1fca3ec0c2..10aba05dd7 100644
--- a/interface/web/admin/lib/lang/cz_server_php.lng
+++ b/interface/web/admin/lib/lang/cz_server_php.lng
@@ -14,6 +14,3 @@ $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script';
 $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři';
 $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_server_php_list.lng b/interface/web/admin/lib/lang/cz_server_php_list.lng
index efcb70507d..389d85c358 100644
--- a/interface/web/admin/lib/lang/cz_server_php_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_php_list.lng
@@ -5,6 +5,3 @@ $wb['add_new_record_txt'] = 'Vytvořit novou verzi PHP';
 $wb['client_id_txt'] = 'Klient';
 $wb['name_txt'] = 'Verze PHP';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_software_package.lng b/interface/web/admin/lib/lang/cz_software_package.lng
index 09f9f50512..faffe38217 100644
--- a/interface/web/admin/lib/lang/cz_software_package.lng
+++ b/interface/web/admin/lib/lang/cz_software_package.lng
@@ -4,6 +4,3 @@ $wb['package_key_txt'] = 'Package Key';
 $wb['Software Package'] = 'Software Package';
 $wb['Modify software package details'] = 'Modify software package details';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_software_package_install.lng b/interface/web/admin/lib/lang/cz_software_package_install.lng
index 23af032ba4..0d079ef6d3 100644
--- a/interface/web/admin/lib/lang/cz_software_package_install.lng
+++ b/interface/web/admin/lib/lang/cz_software_package_install.lng
@@ -4,6 +4,3 @@ $wb['install_key_txt'] = 'Enter install key';
 $wb['btn_save_txt'] = 'Spustit instalaci';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_software_package_list.lng b/interface/web/admin/lib/lang/cz_software_package_list.lng
index f29f7b4648..6896a9feb4 100644
--- a/interface/web/admin/lib/lang/cz_software_package_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_package_list.lng
@@ -11,6 +11,3 @@ $wb['no_packages_txt'] = 'Žádné balíčky nejsou k dispozici';
 $wb['edit_txt'] = 'Upravit';
 $wb['delete_txt'] = 'Smazat';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_software_repo.lng b/interface/web/admin/lib/lang/cz_software_repo.lng
index c943f904d1..bd7bc9d0f2 100644
--- a/interface/web/admin/lib/lang/cz_software_repo.lng
+++ b/interface/web/admin/lib/lang/cz_software_repo.lng
@@ -6,6 +6,3 @@ $wb['repo_password_txt'] = 'Heslo (volitelné)';
 $wb['active_txt'] = 'Aktivní';
 $wb['Software Repository which may contain addons or updates'] = 'Softwarové zdroje, které mohou obsahovat addony nebo aktualizace';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_software_repo_list.lng b/interface/web/admin/lib/lang/cz_software_repo_list.lng
index a9b1298d3a..ca04f41dcf 100644
--- a/interface/web/admin/lib/lang/cz_software_repo_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_repo_list.lng
@@ -4,6 +4,3 @@ $wb['active_txt'] = 'Aktivní';
 $wb['repo_name_txt'] = 'Název zdroje';
 $wb['repo_url_txt'] = 'URL';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_software_update_list.lng b/interface/web/admin/lib/lang/cz_software_update_list.lng
index 3a64c44a35..c48ad8ce30 100644
--- a/interface/web/admin/lib/lang/cz_software_update_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_update_list.lng
@@ -7,6 +7,3 @@ $wb['version_txt'] = 'Verze';
 $wb['action_txt'] = 'Akce';
 $wb['no_updates_txt'] = 'Žádné aktualizace nejsou k dispozici';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng
index 67aa4eb8a6..930e3ebbfb 100644
--- a/interface/web/admin/lib/lang/cz_system_config.lng
+++ b/interface/web/admin/lib/lang/cz_system_config.lng
@@ -82,6 +82,3 @@ $wb['custom_login_text_txt'] = 'Vlastní text na přihlašovací stránce';
 $wb['custom_login_link_txt'] = 'Vlastní odkaz (URL) na přihlašovací stránce (vlastní text)';
 $wb['login_link_error_regex'] = 'Neplatný formát URL pro vlastní odkaz na přihlašovací stránce';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_tpl_default_admin.lng b/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
index 6540c0a4ed..480d504421 100644
--- a/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
+++ b/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
@@ -16,6 +16,3 @@ $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script';
 $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři';
 $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_users.lng b/interface/web/admin/lib/lang/cz_users.lng
index 6be31e0dec..160caaca50 100644
--- a/interface/web/admin/lib/lang/cz_users.lng
+++ b/interface/web/admin/lib/lang/cz_users.lng
@@ -33,6 +33,3 @@ $wb['username_error_collision'] = 'Uživatelské jméno nesmí být web nebo web
 $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/cz_users_list.lng b/interface/web/admin/lib/lang/cz_users_list.lng
index 230e19ebe4..c4a8b0e234 100644
--- a/interface/web/admin/lib/lang/cz_users_list.lng
+++ b/interface/web/admin/lib/lang/cz_users_list.lng
@@ -7,6 +7,3 @@ $wb['add_new_record_txt'] = 'Vytvořit uživatele';
 $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelů nebo skupin zde může způsobit ztrátu dat!';
 $wb['groups_txt'] = 'Skupiny';
 ?>
-
-
-
diff --git a/interface/web/admin/lib/lang/de_directive_snippets.lng b/interface/web/admin/lib/lang/de_directive_snippets.lng
index 2e137095c6..9e369f4b51 100644
--- a/interface/web/admin/lib/lang/de_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/de_directive_snippets.lng
@@ -8,6 +8,5 @@ $wb['directive_snippets_name_empty'] = 'Bitte geben Sie einen Namen für den Sch
 $wb['directive_snippets_name_error_unique'] = 'Es existiert schon ein Direktiven-Schnipsel mit diesem Namen.';
 $wb['variables_txt'] = 'Variablen';
 $wb['customer_viewable_txt'] = 'Sichtbar für Kunden';
-$wb['required_php_snippets_txt'] = 'Erforderliches PHP Schnipsel';
 $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_firewall.lng b/interface/web/admin/lib/lang/dk_firewall.lng
index 9a20698384..96608b2830 100644
--- a/interface/web/admin/lib/lang/dk_firewall.lng
+++ b/interface/web/admin/lib/lang/dk_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Adskilt af komma';
 $wb['udp_port_help_txt'] = 'Adskilt af komma';
 $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.';
-$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \":\" og \",\".';
-$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \":\" og \",\".';
+$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
+$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index 5d403719ab..4d154999c9 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -152,7 +152,7 @@ $wb['try_rescue_txt'] = 'Aktiver overvågnings service og genstarte ved fejl';
 $wb['do_not_try_rescue_httpd_txt'] = 'Deaktiver HTTPD monitoring';
 $wb['do_not_try_rescue_mysql_txt'] = 'Deaktiver MySQL monitoring';
 $wb['do_not_try_rescue_mail_txt'] = 'Deaktiver E-mail monitoring';
-$wb['rescue_description_txt'] = '<b>Information:</b> Hvis du ønsker nedlukning af mysql skal du vælge \"Deaktiver MySQL monitor\" afkrydsningsfeltet og derefter vente 2-3 minutter.<br>Hvis du ikke vente 2-3 minutter, vil redning forsøge at genstarte mysql!';
+$wb['rescue_description_txt'] = '<b>Information:</b> Hvis du ønsker nedlukning af mysql skal du vælge \\"Deaktiver MySQL monitor\\" afkrydsningsfeltet og derefter vente 2-3 minutter.<br>Hvis du ikke vente 2-3 minutter, vil redning forsøge at genstarte mysql!';
 $wb['enable_sni_txt'] = 'Enable SNI';
 $wb['set_folder_permissions_on_update_txt'] = 'Indstil mappe tilladelser ved opdatering';
 $wb['add_web_users_to_sshusers_group_txt'] = 'Tilføj web-brugere til -sshusers- gruppe';
diff --git a/interface/web/admin/lib/lang/dk_server_ip_map.lng b/interface/web/admin/lib/lang/dk_server_ip_map.lng
index 94508abb79..68b196fb23 100644
--- a/interface/web/admin/lib/lang/dk_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/dk_server_ip_map.lng
@@ -1,12 +1,12 @@
 <?php
-$wb["server_id_txt"] = 'Rewrite on Server';
-$wb["source_txt"] = 'Source IP';
-$wb["destination_txt"] = 'Destination IP';
-$wb["active_txt"] = 'Active';
-$wb["ip_error_wrong"] = 'The Destination IP address is invalid';
-$wb["destination_ip_empty"] = 'The Destination IP is empty.';
-$wb["source_ip_empty"] = 'The Source IP is empty.';
-$wb["server_empty_error"] = 'The Server is empty.';
-$wb["duplicate_mapping_error"] = "Mapping already exists.";
-$wb["ip_mapping_error"] = "Source IP can not be an IP of the Rewrite-Server";
+$wb['server_id_txt'] = 'Rewrite on Server';
+$wb['source_txt'] = 'Source IP';
+$wb['destination_txt'] = 'Destination IP';
+$wb['active_txt'] = 'Active';
+$wb['ip_error_wrong'] = 'The Destination IP address is invalid';
+$wb['destination_ip_empty'] = 'The Destination IP is empty.';
+$wb['source_ip_empty'] = 'The Source IP is empty.';
+$wb['server_empty_error'] = 'The Server is empty.';
+$wb['duplicate_mapping_error'] = 'Mapping already exists.';
+$wb['ip_mapping_error'] = 'Source IP can not be an IP of the Rewrite-Server';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_server_ip_map_list.lng b/interface/web/admin/lib/lang/dk_server_ip_map_list.lng
index 60c6815fda..1fedc10b2e 100644
--- a/interface/web/admin/lib/lang/dk_server_ip_map_list.lng
+++ b/interface/web/admin/lib/lang/dk_server_ip_map_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb["list_head_txt"] = 'IP Mappings';
-$wb["server_id_txt"] = 'Server';
-$wb["source_ip_txt"] = 'Source IP';
-$wb["destination_ip_txt"] = 'Destination IP';
-$wb["active_txt"] = 'Active';
+$wb['list_head_txt'] = 'IP Mappings';
+$wb['server_id_txt'] = 'Server';
+$wb['source_ip_txt'] = 'Source IP';
+$wb['destination_ip_txt'] = 'Destination IP';
+$wb['active_txt'] = 'Active';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng
index ec5a754826..2834cacad6 100644
--- a/interface/web/admin/lib/lang/dk_system_config.lng
+++ b/interface/web/admin/lib/lang/dk_system_config.lng
@@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Kunde Nr. skabelon indeholder ugy
 $wb['customer_no_start_txt'] = 'Kunde Nr. start værdi';
 $wb['customer_no_counter_txt'] = 'Kunde Nr. tæller';
 $wb['session_timeout_txt'] = 'Session timeout (minutter)';
-$wb['session_allow_endless_txt'] = 'Aktiver \"forbliv logget ind\"';
+$wb['session_allow_endless_txt'] = 'Aktiver \\"forbliv logget ind\\"';
 $wb['No'] = 'No';
 $wb['min_password_length_txt'] = 'Minimum adgangskode længde';
 $wb['min_password_strength_txt'] = 'Minimum adgangskode styrke';
diff --git a/interface/web/admin/lib/lang/dk_users.lng b/interface/web/admin/lib/lang/dk_users.lng
index 7fbebaea69..be8947ba20 100644
--- a/interface/web/admin/lib/lang/dk_users.lng
+++ b/interface/web/admin/lib/lang/dk_users.lng
@@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generer Adgangskode';
 $wb['repeat_password_txt'] = 'Gentage Adgangskode';
 $wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.';
 $wb['password_match_txt'] = 'Adgangskoderne stemmer overens.';
-$wb['username_error_collision'] = 'Brugernavn må ikke være web eller web plus et tal.\"';
+$wb['username_error_collision'] = 'Brugernavn må ikke være web eller web plus et tal.\\"';
 $wb['client_not_admin_err'] = 'En bruger der hører til en klient kan ikke indstilles til typen: admin';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_firewall.lng b/interface/web/admin/lib/lang/tr_firewall.lng
index 8db312ff05..a45998d4e1 100644
--- a/interface/web/admin/lib/lang/tr_firewall.lng
+++ b/interface/web/admin/lib/lang/tr_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Virgül ile ayırarak yazın';
 $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın';
 $wb['active_txt'] = 'Etkin';
 $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.';
-$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
-$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
+$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
+$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_remote_action.lng b/interface/web/admin/lib/lang/tr_remote_action.lng
index 2f124714e1..c067f67e88 100644
--- a/interface/web/admin/lib/lang/tr_remote_action.lng
+++ b/interface/web/admin/lib/lang/tr_remote_action.lng
@@ -2,11 +2,11 @@
 $wb['select_server_txt'] = 'Sunucu Seçin';
 $wb['btn_do_txt'] = 'İşlemi Başlatın';
 $wb['do_osupdate_caption'] = 'Uzak sunucudaki işletim sistemini güncelleyin';
-$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \"aptitude -y upgrade\" komutunu yürütür.<br><br><strong>OLUŞABİLECEK RİSKLER SİZE AİTTİR!</strong>';
+$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \\"aptitude -y upgrade\\" komutunu yürütür.<br><br><strong>OLUŞABİLECEK RİSKLER SİZE AİTTİR!</strong>';
 $wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelleyin';
 $wb['do_ispcupdate_desc'] = 'Bu işlem seçilmiş sunucuda ISPConfig3 güncellemesini yürütür.<br><br><strong>OLUŞABİLECEK RİSKLER SÜZE AİTTİR!</strong>';
 $wb['action_scheduled'] = 'İşlem yürütülmek üzere zamanlandı';
 $wb['select_all_server'] = 'Tüm Sunucularda';
 $wb['ispconfig_update_title'] = 'ISPConfig güncelleme yönergeleri';
-$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />komutunu yürütün.<br /><br /><a href=\"http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\" target=\"_blank\">Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın</a>';
+$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />komutunu yürütün.<br /><br /><a href=\\"http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\\" target=\\"_blank\\">Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın</a>';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index d8d90a6f34..d188bd83a1 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -152,7 +152,7 @@ $wb['try_rescue_txt'] = 'Hizmetler izlensin ve sorun çıktığında yeniden ba
 $wb['do_not_try_rescue_httpd_txt'] = 'HTTPD izlenmesin';
 $wb['do_not_try_rescue_mysql_txt'] = 'MySQL izlenmesin';
 $wb['do_not_try_rescue_mail_txt'] = 'E-posta izlenmesin';
-$wb['rescue_description_txt'] = '<b>Uyarı:</b> mysql sunucusunu kapatmak istiyorsanız \"MySQL izlenmesin\" seçeneğini işaretleyip 2-3 dakika bekleyin.<br>2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!';
+$wb['rescue_description_txt'] = '<b>Uyarı:</b> mysql sunucusunu kapatmak istiyorsanız \\"MySQL izlenmesin\\" seçeneğini işaretleyip 2-3 dakika bekleyin.<br>2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!';
 $wb['enable_sni_txt'] = 'SNI Kullanılsın';
 $wb['set_folder_permissions_on_update_txt'] = 'Güncellenirken klasör izinleri ayarlansın';
 $wb['add_web_users_to_sshusers_group_txt'] = 'Web kullanıcıları -sshusers- grubuna eklensin';
diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng
index bbcb6a5ce2..8f5bef0e4d 100644
--- a/interface/web/admin/lib/lang/tr_system_config.lng
+++ b/interface/web/admin/lib/lang/tr_system_config.lng
@@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Müşteri no kalıbında geçersi
 $wb['customer_no_start_txt'] = 'Müşteri No Başlangıç Değeri';
 $wb['customer_no_counter_txt'] = 'Müşteri No Sayacı';
 $wb['session_timeout_txt'] = 'Oturum Zaman Aşımı (dakika)';
-$wb['session_allow_endless_txt'] = '\"Oturum açık kalsın\" kullanılabilsin';
+$wb['session_allow_endless_txt'] = '\\"Oturum açık kalsın\\" kullanılabilsin';
 $wb['No'] = 'No';
 $wb['min_password_length_txt'] = 'En Az Parola UzunluÄŸu';
 $wb['min_password_strength_txt'] = 'En Az Parola Güçlüğü';
diff --git a/interface/web/admin/lib/lang/tr_users.lng b/interface/web/admin/lib/lang/tr_users.lng
index 178f05a78a..5b1c1e8485 100644
--- a/interface/web/admin/lib/lang/tr_users.lng
+++ b/interface/web/admin/lib/lang/tr_users.lng
@@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Parola OluÅŸtur';
 $wb['repeat_password_txt'] = 'Parola Onayı';
 $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.';
 $wb['password_match_txt'] = 'Parola ile onayı aynı.';
-$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\"';
+$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\\"';
 $wb['client_not_admin_err'] = 'Bir müşteriye ait bir kullanıcının tipi admin olarak atanamaz';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
diff --git a/interface/web/client/lib/lang/cz.lng b/interface/web/client/lib/lang/cz.lng
index f9a7bfc6f3..510e1a4f5e 100644
--- a/interface/web/client/lib/lang/cz.lng
+++ b/interface/web/client/lib/lang/cz.lng
@@ -26,6 +26,3 @@ $wb['error_client_group_id_empty'] = 'Musíte vybrat zákazníka<br>';
 $wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone';
 $wb['error_domain_in dnsslaveuse'] = 'This domain cannot be deleted, because it is in use as secondary dns zone';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng
index df7f689296..f6b1ddb2dd 100644
--- a/interface/web/client/lib/lang/cz_client.lng
+++ b/interface/web/client/lib/lang/cz_client.lng
@@ -200,6 +200,3 @@ $wb['limit_database_user_txt'] = 'Max. počet databázových uživatelů';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_circle.lng b/interface/web/client/lib/lang/cz_client_circle.lng
index 40e9bafed9..f26e2d6d4b 100644
--- a/interface/web/client/lib/lang/cz_client_circle.lng
+++ b/interface/web/client/lib/lang/cz_client_circle.lng
@@ -7,6 +7,3 @@ $wb['client_ids_txt'] = 'Klienti/Distributoři';
 $wb['description_txt'] = 'Popis';
 $wb['active_txt'] = 'Aktivní';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_circle_list.lng b/interface/web/client/lib/lang/cz_client_circle_list.lng
index 1b41eab1ea..e1e0da1443 100644
--- a/interface/web/client/lib/lang/cz_client_circle_list.lng
+++ b/interface/web/client/lib/lang/cz_client_circle_list.lng
@@ -8,6 +8,3 @@ $wb['filter_txt'] = 'Filtr';
 $wb['delete_txt'] = 'Smazat';
 $wb['active_txt'] = 'Aktivní';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_del.lng b/interface/web/client/lib/lang/cz_client_del.lng
index cf176542d5..5374ea6f75 100644
--- a/interface/web/client/lib/lang/cz_client_del.lng
+++ b/interface/web/client/lib/lang/cz_client_del.lng
@@ -5,6 +5,3 @@ $wb['btn_save_txt'] = 'Smazat klienta';
 $wb['btn_cancel_txt'] = 'Zrušit bez smazání klienta';
 $wb['confirm_client_delete_txt'] = 'Jste si jisti, že chcete smazat tohoto klienta ?';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_message.lng b/interface/web/client/lib/lang/cz_client_message.lng
index 7253dbd549..3710cbd254 100644
--- a/interface/web/client/lib/lang/cz_client_message.lng
+++ b/interface/web/client/lib/lang/cz_client_message.lng
@@ -18,6 +18,3 @@ $wb['variables_txt'] = 'Výběr (možnosti):';
 $wb['gender_m_txt'] = 'Pan';
 $wb['gender_f_txt'] = 'Paní';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_message_template.lng b/interface/web/client/lib/lang/cz_client_message_template.lng
index cc53795b76..b5e0b73039 100644
--- a/interface/web/client/lib/lang/cz_client_message_template.lng
+++ b/interface/web/client/lib/lang/cz_client_message_template.lng
@@ -9,6 +9,3 @@ $wb['variables_txt'] = 'Proměnné';
 $wb['variables_description_txt'] = 'Proměnné uživatelské jméno a heslo jsou k dispozici (funkční) jako volba pouze v uvítacím e-mailu.';
 $wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_message_template_list.lng b/interface/web/client/lib/lang/cz_client_message_template_list.lng
index 306bf52e4e..d4c2f63857 100644
--- a/interface/web/client/lib/lang/cz_client_message_template_list.lng
+++ b/interface/web/client/lib/lang/cz_client_message_template_list.lng
@@ -3,6 +3,3 @@ $wb['list_head_txt'] = 'E-mailové šablony';
 $wb['template_type_txt'] = 'Zpráva pro';
 $wb['template_name_txt'] = 'Název šablony';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_template.lng b/interface/web/client/lib/lang/cz_client_template.lng
index 3658a1c5d1..0eab20fc2f 100644
--- a/interface/web/client/lib/lang/cz_client_template.lng
+++ b/interface/web/client/lib/lang/cz_client_template.lng
@@ -121,6 +121,3 @@ $wb['web_servers_txt'] = 'Webové servery';
 $wb['db_servers_txt'] = 'Databázové servery';
 $wb['mail_servers_txt'] = 'E-mailové servery';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_client_template_list.lng b/interface/web/client/lib/lang/cz_client_template_list.lng
index f1468391ed..3abbd09adc 100644
--- a/interface/web/client/lib/lang/cz_client_template_list.lng
+++ b/interface/web/client/lib/lang/cz_client_template_list.lng
@@ -4,6 +4,3 @@ $wb['template_type_txt'] = 'Typ';
 $wb['template_name_txt'] = 'Název šablony';
 $wb['template_id_txt'] = 'ID šablony';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_clients_list.lng b/interface/web/client/lib/lang/cz_clients_list.lng
index 2ba4ffb5af..3a28bf93e6 100644
--- a/interface/web/client/lib/lang/cz_clients_list.lng
+++ b/interface/web/client/lib/lang/cz_clients_list.lng
@@ -9,6 +9,3 @@ $wb['add_new_record_txt'] = 'Vytvořit klienta';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['customer_no_txt'] = 'Zákaznické číslo';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_domain.lng b/interface/web/client/lib/lang/cz_domain.lng
index df73910212..08b113fc4d 100644
--- a/interface/web/client/lib/lang/cz_domain.lng
+++ b/interface/web/client/lib/lang/cz_domain.lng
@@ -4,6 +4,3 @@ $wb['domain_error_unique'] = 'Doména již existuje';
 $wb['domain_error_regex'] = 'Toto doménové jméno je zakázáno';
 $wb['Domain'] = 'Doména';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_domain_list.lng b/interface/web/client/lib/lang/cz_domain_list.lng
index b02428ea09..25adf20c25 100644
--- a/interface/web/client/lib/lang/cz_domain_list.lng
+++ b/interface/web/client/lib/lang/cz_domain_list.lng
@@ -4,6 +4,3 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['domain_txt'] = 'Doména';
 $wb['user_txt'] = 'Klient';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng
index 437f7a29d0..6c7267f1bc 100644
--- a/interface/web/client/lib/lang/cz_reseller.lng
+++ b/interface/web/client/lib/lang/cz_reseller.lng
@@ -204,6 +204,3 @@ $wb['limit_database_quota_txt'] = 'Databázové kvóty';
 $wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/cz_resellers_list.lng b/interface/web/client/lib/lang/cz_resellers_list.lng
index e9a89f819c..13202ff743 100644
--- a/interface/web/client/lib/lang/cz_resellers_list.lng
+++ b/interface/web/client/lib/lang/cz_resellers_list.lng
@@ -9,6 +9,3 @@ $wb['add_new_record_txt'] = 'Vytvořit distributora';
 $wb['customer_no_txt'] = 'Zákaznické číslo';
 $wb['username_txt'] = 'Uživatelské jméno';
 ?>
-
-
-
diff --git a/interface/web/client/lib/lang/dk_client.lng b/interface/web/client/lib/lang/dk_client.lng
index c9c6d8697c..d4ba3419a6 100644
--- a/interface/web/client/lib/lang/dk_client.lng
+++ b/interface/web/client/lib/lang/dk_client.lng
@@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Indtast en gyldig e-mail adresse.';
 $wb['customer_no_error_unique'] = 'Kunde nr. skal være unikke (eller tomt).';
 $wb['paypal_email_error_isemail'] = 'Indtast en gyldig PayPal e-mail adresse.';
 $wb['paypal_email_txt'] = 'PayPal E-mail';
-$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.';
+$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \\"custom\\" er valgt.';
 $wb['aps_limits_txt'] = 'APS Installer Begrænsninger';
 $wb['limit_aps_txt'] = 'Max. antal af APS forekomster';
 $wb['limit_aps_error_notint'] = 'APS forekomster grænse skal være et tal.';
@@ -156,7 +156,7 @@ $wb['none_txt'] = 'ingen';
 $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['password_click_to_set_txt'] = 'Click to set';
 $wb['limit_backup_txt'] = 'Backupfunction available';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['xmpp_limits_txt'] = 'XMPP Limits';
 $wb['web_servers_txt'] = 'Webservers';
 $wb['web_servers_placeholder'] = 'Select webservers';
diff --git a/interface/web/client/lib/lang/dk_client_template.lng b/interface/web/client/lib/lang/dk_client_template.lng
index 299a47a0b9..b14ff1fc76 100644
--- a/interface/web/client/lib/lang/dk_client_template.lng
+++ b/interface/web/client/lib/lang/dk_client_template.lng
@@ -95,7 +95,7 @@ $wb['default_dnsserver_txt'] = 'Default DNS Server';
 $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
 $wb['limit_backup_txt'] = 'Backupfunction available';
 $wb['default_dbserver_txt'] = 'Default Database Server';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['xmpp_limits_txt'] = 'XMPP Limits';
diff --git a/interface/web/client/lib/lang/dk_reseller.lng b/interface/web/client/lib/lang/dk_reseller.lng
index dc14fe47e0..3160197b2c 100644
--- a/interface/web/client/lib/lang/dk_reseller.lng
+++ b/interface/web/client/lib/lang/dk_reseller.lng
@@ -156,12 +156,12 @@ $wb['added_date_txt'] = 'Tilføjet d.';
 $wb['limit_domainmodule_error_notint'] = 'Domænemodul grænse skal være et tal.';
 $wb['limit_domainmodule_txt'] = 'Domænemodul Begrænsning';
 $wb['client_limits_txt'] = 'Kunde Begrænsninger';
-$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.';
+$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \\"custom\\" er valgt.';
 $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['password_click_to_set_txt'] = 'Click to set';
 $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_backup_txt'] = 'Backupfunction available';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)';
 $wb['web_servers_txt'] = 'Webservers';
 $wb['web_servers_placeholder'] = 'Select Webservers';
diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng
index cf8c09f78e..ed1d57ae15 100644
--- a/interface/web/client/lib/lang/tr_client.lng
+++ b/interface/web/client/lib/lang/tr_client.lng
@@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.';
 $wb['customer_no_error_unique'] = 'Müşteri numarası eşsiz (ya da boş) olmalıdır.';
 $wb['paypal_email_error_isemail'] = 'Lütfen geçerli bir PayPal e-posta adresi yazın.';
 $wb['paypal_email_txt'] = 'PayPal E-posta Adresi';
-$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
+$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
 $wb['aps_limits_txt'] = 'APS Yükleyici Sınırları';
 $wb['limit_aps_txt'] = 'En Fazla APS Kopyası Sayısı';
 $wb['limit_aps_error_notint'] = 'APS kopya sayısı sınırı bir sayı olmalıdır.';
@@ -156,7 +156,7 @@ $wb['none_txt'] = 'yok';
 $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['password_click_to_set_txt'] = 'Click to set';
 $wb['limit_backup_txt'] = 'Backupfunction available';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['xmpp_limits_txt'] = 'XMPP Limits';
 $wb['web_servers_txt'] = 'Webservers';
 $wb['web_servers_placeholder'] = 'Select webservers';
diff --git a/interface/web/client/lib/lang/tr_client_template.lng b/interface/web/client/lib/lang/tr_client_template.lng
index e1619050c5..037bce51cf 100644
--- a/interface/web/client/lib/lang/tr_client_template.lng
+++ b/interface/web/client/lib/lang/tr_client_template.lng
@@ -95,7 +95,7 @@ $wb['default_dnsserver_txt'] = 'Default DNS Server';
 $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
 $wb['limit_backup_txt'] = 'Backupfunction available';
 $wb['default_dbserver_txt'] = 'Default Database Server';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_database_quota_txt'] = 'Database quota';
 $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
 $wb['xmpp_limits_txt'] = 'XMPP Limits';
diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng
index be54949f8f..cb5c9abfef 100644
--- a/interface/web/client/lib/lang/tr_reseller.lng
+++ b/interface/web/client/lib/lang/tr_reseller.lng
@@ -156,12 +156,12 @@ $wb['added_date_txt'] = 'EklendiÄŸi Tarih';
 $wb['limit_domainmodule_error_notint'] = 'Alan adı modülü sınırı bir sayı olmalıdır.';
 $wb['limit_domainmodule_txt'] = 'Alan Adı Modülü Sınırı';
 $wb['client_limits_txt'] = 'Müşteri Sınırları';
-$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
+$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.';
 $wb['contact_firstname_txt'] = 'Contact firstname';
 $wb['password_click_to_set_txt'] = 'Click to set';
 $wb['limit_database_user_txt'] = 'Max. Database users';
 $wb['limit_backup_txt'] = 'Backupfunction available';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\\'s Encrypt available';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
 $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)';
 $wb['web_servers_txt'] = 'Webservers';
 $wb['web_servers_placeholder'] = 'Select Webservers';
diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php
index b587dbbad6..6e2ec53f2e 100644
--- a/interface/web/dashboard/dashboard.php
+++ b/interface/web/dashboard/dashboard.php
@@ -33,6 +33,19 @@ require_once '../../lib/app.inc.php';
 //* Check permissions for module
 $app->auth->check_module_permissions('dashboard');
 
+//* Hide modules
+if(isset($_GET['hide'])) {
+	if($_GET['hide'] == 'donate') {
+		$timeout = time()+31536000;
+		$tmp = $app->db->queryOneRecord("SELECT value FROM sys_config WHERE group = 'interface' AND name = 'hide_donation_dashlet'");
+		if(is_array($tmp)) {
+			$app->db->query("UPDATE sys_config SET value = ? WHERE group = 'interface' AND name = 'hide_donation_dashlet')",$timeout);
+		} else {
+			$app->db->query("INSERT INTO `sys_config` (`group`,`name`,`value`) VALUES ('interface','hide_donation_dashlet',?)",$timeout);
+		}
+	}
+}
+
 //* Loading Template
 $app->uses('tpl');
 $app->tpl->newTemplate("templates/dashboard.htm");
@@ -189,6 +202,14 @@ if($dashlets_config[$role.'_dashlets_right'] != ''){
 }
 /******************************************************************************/
 
+/* Donation dashlet */
+if($app->auth->is_admin()) {
+	$tmp = $app->db->queryOneRecord("SELECT `value` FROM `sys_config` WHERE `group` = 'interface' AND `name` = 'hide_donation_dashlet'");
+	if(!is_array($tmp) || $tmp['value'] < time()) {
+		array_unshift($leftcol_dashlets,'donate');
+	}
+}
+
 
 /* Fill the left column */
 $leftcol = array();
diff --git a/interface/web/dashboard/dashlets/donate.php b/interface/web/dashboard/dashlets/donate.php
new file mode 100644
index 0000000000..88a96c8acb
--- /dev/null
+++ b/interface/web/dashboard/dashlets/donate.php
@@ -0,0 +1,33 @@
+<?php
+
+class dashlet_donate {
+
+	function show() {
+		global $app, $conf;
+		
+		if($app->auth->is_admin()) {
+			
+			//* Check if dashlet is not hidden
+			
+			//* Loading Template
+			$app->uses('tpl');
+
+			$tpl = new tpl;
+			$tpl->newTemplate("dashlets/templates/donate.htm");
+
+			$wb = array();
+			$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_donate.lng';
+			if(is_file($lng_file)) include $lng_file;
+			$tpl->setVar($wb);
+
+			return $tpl->grab();
+			
+		} else {
+			return '';
+		}
+
+	}
+
+}
+
+?>
diff --git a/interface/web/dashboard/dashlets/templates/donate.htm b/interface/web/dashboard/dashlets/templates/donate.htm
new file mode 100644
index 0000000000..76a53fc892
--- /dev/null
+++ b/interface/web/dashboard/dashlets/templates/donate.htm
@@ -0,0 +1,18 @@
+	<div style="background-color:#FFFFFF;padding:1em;">
+		<h4>{tmpl_var name='donate_txt'}<button type="button" class="btn btn-link btn-xs">{tmpl_var name='more_btn_txt'}</button></h4>
+		<p id="description">{tmpl_var name='donate2_txt'}<p>
+		<p style="text-align:right;">
+			<a href="#" class="btn btn-default" data-load-content="dashboard/dashboard.php?hide=donate">{tmpl_var name='hide_btn_txt'}</a>
+			<a href="https://www.ispconfig.org/donation/" target="_blank" class="btn btn-success">{tmpl_var name='donate_btn_txt'}</a>
+		</p>
+		
+	</div>
+<script>
+$(document).ready(function(){
+    $("#description").toggle();
+	$("button").click(function(){
+        $("#description").toggle();
+    });
+});
+</script>
+	
diff --git a/interface/web/dashboard/lib/lang/ar_dashlet_donate.lng b/interface/web/dashboard/lib/lang/ar_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/ar_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/bg_dashlet_donate.lng b/interface/web/dashboard/lib/lang/bg_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/bg_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_donate.lng b/interface/web/dashboard/lib/lang/br_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/br_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/ca_dashlet_donate.lng b/interface/web/dashboard/lib/lang/ca_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/ca_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/cz.lng b/interface/web/dashboard/lib/lang/cz.lng
index b1859b0a21..9d2a3211cb 100644
--- a/interface/web/dashboard/lib/lang/cz.lng
+++ b/interface/web/dashboard/lib/lang/cz.lng
@@ -2,6 +2,3 @@
 $wb['welcome_user_txt'] = 'Vítejte %s';
 $wb['available_modules_txt'] = 'Dostupné moduly';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng b/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
index 7b44d3eda0..f337141de6 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
@@ -2,6 +2,3 @@
 $wb['customerdata_txt'] = 'My Data';
 $wb['edit_txt'] = 'Editovat';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
index 24d8a6e886..93be2e3425 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
@@ -5,6 +5,3 @@ $wb['quota_txt'] = 'Kvóta';
 $wb['no_database_accounts_txt'] = 'Nebyla nalezena žádná databáze.';
 $wb['databasequota_txt'] = 'Kvóty databází';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_donate.lng b/interface/web/dashboard/lib/lang/cz_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
index 241fd38dbf..113d919c00 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
@@ -2,6 +2,3 @@
 $wb['invoice_client_settings_txt'] = 'Invoice Client Settings';
 $wb['edit_txt'] = 'Editovat';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
index 68530722c9..9666ed2b08 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
@@ -16,6 +16,3 @@ $wb['invoice_type_proforma_txt'] = 'Proforma';
 $wb['invoice_type_refund_txt'] = 'Refund';
 $wb['invoice_type_reminder_txt'] = 'Reminder';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
index 7733b8000c..0b75ac3c1c 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
@@ -29,6 +29,3 @@ $wb['limit_database_txt'] = 'Počet databází';
 $wb['limit_mailmailinglist_txt'] = 'Počet e-mailových konferencí';
 $wb['limit_domain_txt'] = 'Počet domén';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
index dff6a70f91..742721c5ff 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
@@ -6,6 +6,3 @@ $wb['used_txt'] = 'Využité místo';
 $wb['quota_txt'] = 'Kvóta';
 $wb['no_email_accounts_txt'] = 'Nenalezeny žádné e-mailové účty.';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng b/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
index 3f3c87fcdc..b4cade4795 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
@@ -2,6 +2,3 @@
 $wb['available_modules_txt'] = 'Dostupné moduly';
 $wb['go_to_txt'] = 'Vstoupit do sekce:';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_products.lng b/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
index b82756f01c..83749f6db9 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
@@ -7,6 +7,3 @@ $wb['no_products_txt'] = 'No products found.';
 $wb['edit_txt'] = 'Editovat';
 $wb['cancellation_date_txt'] = 'Cancelled by';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
index 11717cce3b..0c2074a996 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
@@ -6,6 +6,3 @@ $wb['hard_txt'] = 'Kvóta max. obsazení';
 $wb['soft_txt'] = 'Kvóta pro upozornění';
 $wb['no_sites_txt'] = 'Nenalezeny žádné webové stránky.';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng b/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
index 91b7a18b87..1e0b5361d7 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
@@ -6,6 +6,3 @@ $wb['setup_fee_txt'] = 'Setup Fee';
 $wb['no_products_txt'] = 'No products found.';
 $wb['order_txt'] = 'Order';
 ?>
-
-
-
diff --git a/interface/web/dashboard/lib/lang/de_dashlet_donate.lng b/interface/web/dashboard/lib/lang/de_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/de_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_donate.lng b/interface/web/dashboard/lib/lang/dk_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng
index b085406e1d..a680daa8f6 100644
--- a/interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng
+++ b/interface/web/dashboard/lib/lang/dk_dashlet_invoices.lng
@@ -1,18 +1,18 @@
 <?php
-$wb['invoices_txt'] = "Invoices";
-$wb['invoice_no_txt'] = "Invoice No.";
-$wb['amount_txt'] = "Amount";
-$wb['date_txt'] = "Date";
-$wb['invoice_status_txt'] = "Status";
-$wb['no_invoices_txt'] = "No Invoices available.";
-$wb['paid_txt'] = "Paid";
-$wb['unpaid_txt'] = "Unpaid";
-$wb['paynow_txt'] = "pay now";
-$wb['proforma_txt'] = "Proforma";
-$wb['refunded_txt'] = "Refunded";
-$wb['not_refunded_txt'] = "Not refunded";
-$wb['invoice_type_invoice_txt'] = "Invoice";
-$wb['invoice_type_proforma_txt'] = "Proforma";
-$wb['invoice_type_refund_txt'] = "Refund";
-$wb['invoice_type_reminder_txt'] = "Reminder";
+$wb['invoices_txt'] = 'Invoices';
+$wb['invoice_no_txt'] = 'Invoice No.';
+$wb['amount_txt'] = 'Amount';
+$wb['date_txt'] = 'Date';
+$wb['invoice_status_txt'] = 'Status';
+$wb['no_invoices_txt'] = 'No Invoices available.';
+$wb['paid_txt'] = 'Paid';
+$wb['unpaid_txt'] = 'Unpaid';
+$wb['paynow_txt'] = 'pay now';
+$wb['proforma_txt'] = 'Proforma';
+$wb['refunded_txt'] = 'Refunded';
+$wb['not_refunded_txt'] = 'Not refunded';
+$wb['invoice_type_invoice_txt'] = 'Invoice';
+$wb['invoice_type_proforma_txt'] = 'Proforma';
+$wb['invoice_type_refund_txt'] = 'Refund';
+$wb['invoice_type_reminder_txt'] = 'Reminder';
 ?>
diff --git a/interface/web/dashboard/lib/lang/el_dashlet_donate.lng b/interface/web/dashboard/lib/lang/el_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/el_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/en_dashlet_donate.lng b/interface/web/dashboard/lib/lang/en_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/en_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/es_dashlet_donate.lng b/interface/web/dashboard/lib/lang/es_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/es_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/fi_dashlet_donate.lng b/interface/web/dashboard/lib/lang/fi_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/fi_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/fr_dashlet_donate.lng b/interface/web/dashboard/lib/lang/fr_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/fr_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_donate.lng b/interface/web/dashboard/lib/lang/hr_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/hr_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/hu_dashlet_donate.lng b/interface/web/dashboard/lib/lang/hu_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/hu_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/id_dashlet_donate.lng b/interface/web/dashboard/lib/lang/id_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/id_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/it_dashlet_donate.lng b/interface/web/dashboard/lib/lang/it_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/it_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/ja_dashlet_donate.lng b/interface/web/dashboard/lib/lang/ja_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/ja_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_donate.lng b/interface/web/dashboard/lib/lang/nl_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/nl_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/pl_dashlet_donate.lng b/interface/web/dashboard/lib/lang/pl_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/pl_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/pt_dashlet_donate.lng b/interface/web/dashboard/lib/lang/pt_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/pt_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/ro_dashlet_donate.lng b/interface/web/dashboard/lib/lang/ro_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/ro_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/ru_dashlet_donate.lng b/interface/web/dashboard/lib/lang/ru_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/ru_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/se_dashlet_donate.lng b/interface/web/dashboard/lib/lang/se_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/se_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/sk_dashlet_donate.lng b/interface/web/dashboard/lib/lang/sk_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/sk_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng b/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng
new file mode 100644
index 0000000000..c3dfe21ca0
--- /dev/null
+++ b/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng
@@ -0,0 +1,7 @@
+<?php
+$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
+$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Hide';
+$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
+$wb['more_btn_txt'] = 'More';
+?>
diff --git a/interface/web/dns/lib/lang/cz.lng b/interface/web/dns/lib/lang/cz.lng
index 151bfd7357..74a1c457a7 100644
--- a/interface/web/dns/lib/lang/cz.lng
+++ b/interface/web/dns/lib/lang/cz.lng
@@ -20,6 +20,3 @@ $wb['Templates'] = 'Å ablony DNS';
 $wb['Secondary Zones'] = 'Sekundární DNS zóny';
 $wb['Import Zone File'] = 'Importovat DNS zonový soubor';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_a.lng b/interface/web/dns/lib/lang/cz_dns_a.lng
index 659baee6c0..17e5b5ff7f 100644
--- a/interface/web/dns/lib/lang/cz_dns_a.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a.lng
@@ -15,6 +15,3 @@ $wb['data_error_duplicate'] = 'Duplikace A záznamu';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_a_list.lng b/interface/web/dns/lib/lang/cz_dns_a_list.lng
index dd400042a9..5096f96127 100644
--- a/interface/web/dns/lib/lang/cz_dns_a_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a_list.lng
@@ -13,6 +13,3 @@ $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Skutečně chcete smazat tento záznam ?';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_aaaa.lng b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
index 0d50ab1303..e2e0fe184c 100644
--- a/interface/web/dns/lib/lang/cz_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'IP adresa je prázdná';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_alias.lng b/interface/web/dns/lib/lang/cz_dns_alias.lng
index 30f28ba8ab..a8ef6bdbbb 100644
--- a/interface/web/dns/lib/lang/cz_dns_alias.lng
+++ b/interface/web/dns/lib/lang/cz_dns_alias.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'Cílový název hostitele je prázdný';
 $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_cname.lng b/interface/web/dns/lib/lang/cz_dns_cname.lng
index c182cefecd..8f38f227f0 100644
--- a/interface/web/dns/lib/lang/cz_dns_cname.lng
+++ b/interface/web/dns/lib/lang/cz_dns_cname.lng
@@ -15,6 +15,3 @@ $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
 $wb['data_error_duplicate'] = 'Duplikace A záznamu nebo CNAME-záznamu';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_dkim.lng b/interface/web/dns/lib/lang/cz_dns_dkim.lng
index 1c2caa3a7d..77ac3cd818 100644
--- a/interface/web/dns/lib/lang/cz_dns_dkim.lng
+++ b/interface/web/dns/lib/lang/cz_dns_dkim.lng
@@ -9,6 +9,3 @@ $wb['no_zone_perm'] = 'Nemáte povolení k přidat záznam do této zóny DNS.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['selector_txt'] = 'DKIM selektor';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_dmarc.lng b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
index 13c841fbcd..c5952552a6 100644
--- a/interface/web/dns/lib/lang/cz_dns_dmarc.lng
+++ b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
@@ -48,6 +48,3 @@ $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account i
 $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_ds.lng b/interface/web/dns/lib/lang/cz_dns_ds.lng
index d8b5d50b41..3d25095d3b 100644
--- a/interface/web/dns/lib/lang/cz_dns_ds.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ds.lng
@@ -15,6 +15,3 @@ $wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['invalid_type_ds'] = 'DS-Record has a wrong format.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_hinfo.lng b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
index 749341dcf1..2b257d2234 100644
--- a/interface/web/dns/lib/lang/cz_dns_hinfo.lng
+++ b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'Informace o hostovi je prázdná';
 $wb['data_error_regex'] = 'Informace o hostovi má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_import.lng b/interface/web/dns/lib/lang/cz_dns_import.lng
index d162d0a1bf..3b41baa1be 100644
--- a/interface/web/dns/lib/lang/cz_dns_import.lng
+++ b/interface/web/dns/lib/lang/cz_dns_import.lng
@@ -14,6 +14,3 @@ $wb['zone_file_import_txt'] = 'Importovat DNS zonový soubor';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_loc.lng b/interface/web/dns/lib/lang/cz_dns_loc.lng
index 5c91b5d848..90ddd3533b 100644
--- a/interface/web/dns/lib/lang/cz_dns_loc.lng
+++ b/interface/web/dns/lib/lang/cz_dns_loc.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'Text empty';
 $wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_mx.lng b/interface/web/dns/lib/lang/cz_dns_mx.lng
index d083f5335b..af1599e1de 100644
--- a/interface/web/dns/lib/lang/cz_dns_mx.lng
+++ b/interface/web/dns/lib/lang/cz_dns_mx.lng
@@ -16,6 +16,3 @@ $wb['data_error_regex'] = 'Název hostitele e-mailového serveru má chybný for
 $wb['duplicate_mx_record_txt'] = 'Duplicitní MX záznam.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_ns.lng b/interface/web/dns/lib/lang/cz_dns_ns.lng
index 9db7ed35e5..b2ca2a69fe 100644
--- a/interface/web/dns/lib/lang/cz_dns_ns.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ns.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'Jmenný server je prázdný';
 $wb['data_error_regex'] = 'Jmenný server má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_ptr.lng b/interface/web/dns/lib/lang/cz_dns_ptr.lng
index 16e1a547fa..c0a9a10922 100644
--- a/interface/web/dns/lib/lang/cz_dns_ptr.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ptr.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'Kanonický hostname je prázdný';
 $wb['data_error_regex'] = 'Kanonického hostname má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_rp.lng b/interface/web/dns/lib/lang/cz_dns_rp.lng
index 8e88769470..f401a80810 100644
--- a/interface/web/dns/lib/lang/cz_dns_rp.lng
+++ b/interface/web/dns/lib/lang/cz_dns_rp.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'Odpovědná osoba je prázdná';
 $wb['data_error_regex'] = 'Odpovědná osoba má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_slave.lng b/interface/web/dns/lib/lang/cz_dns_slave.lng
index 0d4cb992d9..16617f6c59 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave.lng
@@ -15,6 +15,3 @@ $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 $wb['ipv4_form_txt'] = 'IPV4 formát, např. 1.2.3.4';
 $wb['secondary_zone_txt'] = 'Sekundární DNS zóna';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
index 1adc64ee58..2b4160735a 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
@@ -8,6 +8,3 @@ $wb['add_new_record_txt'] = 'Vytvořit novou Sekundarní DNS-Zónu';
 $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_slave_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_list.lng
index 2c48643a03..a0d68bc201 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave_list.lng
@@ -7,6 +7,3 @@ $wb['ns_txt'] = 'NS';
 $wb['add_new_record_txt'] = 'Vytvořit sekundární DNS zónu';
 $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
index 94df8ed241..0ec5de4f6d 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
@@ -9,6 +9,3 @@ $wb['add_new_record_wizard_txt'] = 'Vytvořit DNS zónu pomocí průvodce';
 $wb['add_new_record_txt'] = 'Vytvořit DNS zónu manuálně';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_soa_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_list.lng
index 5a0773d2e9..6168c8b808 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa_list.lng
@@ -9,6 +9,3 @@ $wb['add_new_record_txt'] = 'Vytvořit DNS zónu (SOA záznam)';
 $wb['add_new_record_wizard_txt'] = 'Vytvořit DNS zónu (dle šablony)';
 $wb['import_zone_file_txt'] = 'Importovat DNS zonový soubor';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_spf.lng b/interface/web/dns/lib/lang/cz_dns_spf.lng
index 8d9ac25720..755e01f11e 100644
--- a/interface/web/dns/lib/lang/cz_dns_spf.lng
+++ b/interface/web/dns/lib/lang/cz_dns_spf.lng
@@ -23,6 +23,3 @@ $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account i
 $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_srv.lng b/interface/web/dns/lib/lang/cz_dns_srv.lng
index fa180a59fb..00b1fc4cf1 100644
--- a/interface/web/dns/lib/lang/cz_dns_srv.lng
+++ b/interface/web/dns/lib/lang/cz_dns_srv.lng
@@ -18,6 +18,3 @@ $wb['srv_error_regex'] = 'Neplatný formát záznamu serveru. Záznam serveru mu
 $wb['aux_txt'] = 'Priorita';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_template.lng b/interface/web/dns/lib/lang/cz_dns_template.lng
index e6041d2cc9..be4ac0e949 100644
--- a/interface/web/dns/lib/lang/cz_dns_template.lng
+++ b/interface/web/dns/lib/lang/cz_dns_template.lng
@@ -4,6 +4,3 @@ $wb['fields_txt'] = 'Pole';
 $wb['template_txt'] = 'Å ablona';
 $wb['visible_txt'] = 'Viditelný';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_template_list.lng b/interface/web/dns/lib/lang/cz_dns_template_list.lng
index 914deefd63..a4b2e40657 100644
--- a/interface/web/dns/lib/lang/cz_dns_template_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_template_list.lng
@@ -4,6 +4,3 @@ $wb['visible_txt'] = 'Viditelný';
 $wb['name_txt'] = 'Název';
 $wb['add_new_record_txt'] = 'Vytvořit záznam';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_tlsa.lng b/interface/web/dns/lib/lang/cz_dns_tlsa.lng
index cca40fd4ea..b92da1d45b 100644
--- a/interface/web/dns/lib/lang/cz_dns_tlsa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_tlsa.lng
@@ -14,6 +14,3 @@ $wb['data_error_empty'] = 'TLSA-Data empty';
 $wb['data_error_regex'] = 'TLSA dataformat is wrong. Correct: n n n HASH';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_txt.lng b/interface/web/dns/lib/lang/cz_dns_txt.lng
index 69375f7d87..556e4dc5a6 100644
--- a/interface/web/dns/lib/lang/cz_dns_txt.lng
+++ b/interface/web/dns/lib/lang/cz_dns_txt.lng
@@ -17,6 +17,3 @@ $wb['invalid_type_dkim'] = 'Přímá editace DKIM záznamu zde není povolena. E
 $wb['invalid_type_dmarc'] = 'Přímá editace DMARC záznamu zde není povolena. Editujte záznam pomocí tlačítka DMARC.';
 $wb['invalid_type_spf'] = 'Přímá editace SPF záznamu zde není povolena. Editujte záznam pomocí tlačítka SPF.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/cz_dns_wizard.lng b/interface/web/dns/lib/lang/cz_dns_wizard.lng
index 4f0c812ebc..548b90d702 100644
--- a/interface/web/dns/lib/lang/cz_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/cz_dns_wizard.lng
@@ -43,6 +43,3 @@ $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for thi
 $wb['dnssec_txt'] = 'Podepsat zónu (DNSSEC)';
 $wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
-
-
-
diff --git a/interface/web/dns/lib/lang/dk_dns_dkim.lng b/interface/web/dns/lib/lang/dk_dns_dkim.lng
index b89f024ed2..b7a2b9be7d 100644
--- a/interface/web/dns/lib/lang/dk_dns_dkim.lng
+++ b/interface/web/dns/lib/lang/dk_dns_dkim.lng
@@ -1,11 +1,11 @@
 <?php
-$wb["public_key_txt"] = 'Public-Key';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["record_exists_txt"] = 'DNS-Record already exists';
-$wb["dkim_disabled_txt"] = 'DKIM disabled for this mail-domain';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['public_key_txt'] = 'Public-Key';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['dkim_disabled_txt'] = 'DKIM disabled for this mail-domain';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['selector_txt'] = 'DKIM-Selector';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_dmarc.lng b/interface/web/dns/lib/lang/dk_dns_dmarc.lng
index b00949bc98..cf78bb8eed 100644
--- a/interface/web/dns/lib/lang/dk_dns_dmarc.lng
+++ b/interface/web/dns/lib/lang/dk_dns_dmarc.lng
@@ -11,16 +11,16 @@ $wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages
 $wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
 $wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
 $wb['dmarc_fo_txt'] = 'Forensic reporting options';
-$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
+$wb['dmarc_fo0_txt'] = 'Generate reports if all underlying authentication mechanisms fail to produce a DMARC \'pass\' result.';
 $wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
 $wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
 $wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
 $wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
-$wb['dmarc_adkim_note_txt'] = "'strict' requires exact matching between DKIM domain and email's from";
+$wb['dmarc_adkim_note_txt'] = '\'strict\' requires exact matching between DKIM domain and email\'s from';
 $wb['dmarc_adkim_r_txt'] = 'relaxed';
 $wb['dmarc_adkim_s_txt'] = 'strict';
 $wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
-$wb['dmarc_aspf_note_txt'] = "'strict' requires exact matching between SPF domain and email's from";
+$wb['dmarc_aspf_note_txt'] = '\'strict\' requires exact matching between SPF domain and email\'s from';
 $wb['dmarc_aspf_r_txt'] = 'relaxed';
 $wb['dmarc_aspf_s_txt'] = 'strict';
 $wb['dmarc_rf_txt'] = 'Report Format';
@@ -37,7 +37,7 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
 $wb['dmarc_sp_reject_txt'] = 'reject';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Active';
-$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
+$wb['dmarc_policy_error_txt'] = 'Only policy \'none\' is allowed without DKIM-signed emails.';
 $wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
 $wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
 $wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
diff --git a/interface/web/dns/lib/lang/dk_dns_ds.lng b/interface/web/dns/lib/lang/dk_dns_ds.lng
index 3f9b447811..c3622dc5b5 100644
--- a/interface/web/dns/lib/lang/dk_dns_ds.lng
+++ b/interface/web/dns/lib/lang/dk_dns_ds.lng
@@ -1,18 +1,17 @@
 <?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Data';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Text empty';
-$wb["data_error_regex"] = 'Text format invalid';
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hostname';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Data';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['name_error_empty'] = 'The hostname is empty.';
+$wb['name_error_regex'] = 'The hostname has the wrong format.';
+$wb['data_error_empty'] = 'Text empty';
+$wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['invalid_type_ds'] = 'DS-Record has a wrong format.';
-
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_loc.lng b/interface/web/dns/lib/lang/dk_dns_loc.lng
index a2e3322bb6..dc9ad9a006 100644
--- a/interface/web/dns/lib/lang/dk_dns_loc.lng
+++ b/interface/web/dns/lib/lang/dk_dns_loc.lng
@@ -1,16 +1,16 @@
 <?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
-$wb["name_txt"] = 'Hostname';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'Data';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format.';
-$wb["data_error_empty"] = 'Text empty';
-$wb["data_error_regex"] = 'Text format invalid';
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hostname';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'Data';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['name_error_empty'] = 'The hostname is empty.';
+$wb['name_error_regex'] = 'The hostname has the wrong format.';
+$wb['data_error_empty'] = 'Text empty';
+$wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_slave_list.lng b/interface/web/dns/lib/lang/dk_dns_slave_list.lng
index 734604d169..e62eb04876 100644
--- a/interface/web/dns/lib/lang/dk_dns_slave_list.lng
+++ b/interface/web/dns/lib/lang/dk_dns_slave_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb["list_head_txt"] = 'Secondary DNS-Zones';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["origin_txt"] = 'Zone';
-$wb["ns_txt"] = 'NS';
-$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone';
+$wb['list_head_txt'] = 'Secondary DNS-Zones';
+$wb['active_txt'] = 'Active';
+$wb['server_id_txt'] = 'Server';
+$wb['origin_txt'] = 'Zone';
+$wb['ns_txt'] = 'NS';
+$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_spf.lng b/interface/web/dns/lib/lang/dk_dns_spf.lng
index 7ac24dd227..df8d1fe145 100644
--- a/interface/web/dns/lib/lang/dk_dns_spf.lng
+++ b/interface/web/dns/lib/lang/dk_dns_spf.lng
@@ -1,5 +1,3 @@
-
-
 <?php
 $wb['data_txt'] = 'SPF-Record';
 $wb['spf_mechanism_txt'] = 'SPF Mechanism';
@@ -18,11 +16,10 @@ $wb['spf_invalid_hostname_txt'] = 'Invalid hostname';
 $wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain';
 $wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)';
 $wb['spf_invalid_domain_txt'] = 'Invalid domainname';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["record_exists_txt"] = 'DNS-Record already exists';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['record_exists_txt'] = 'DNS-Record already exists';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
-
diff --git a/interface/web/dns/lib/lang/dk_dns_tlsa.lng b/interface/web/dns/lib/lang/dk_dns_tlsa.lng
index dcfb3bfa33..3b87e2ad59 100644
--- a/interface/web/dns/lib/lang/dk_dns_tlsa.lng
+++ b/interface/web/dns/lib/lang/dk_dns_tlsa.lng
@@ -1,16 +1,16 @@
 <?php
-$wb["server_id_txt"] = 'Server';
-$wb["zone_txt"] = 'Zone';
+$wb['server_id_txt'] = 'Server';
+$wb['zone_txt'] = 'Zone';
 $wb['name_txt'] = 'Service-Descriptor';
-$wb["type_txt"] = 'type';
-$wb["data_txt"] = 'TLSA-Data';
-$wb["ttl_txt"] = 'TTL';
-$wb["active_txt"] = 'Active';
-$wb["limit_dns_record_txt"] = 'The max. number of DNS records for your account is reached.';
-$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.';
-$wb["name_error_empty"] = 'The hostname is empty.';
-$wb["name_error_regex"] = 'The hostname has the wrong format. Correct: _&lt;port&gt;._(tcp|udp).&lt;hostname&gt;';
-$wb["data_error_empty"] = 'TLSA-Data empty';
-$wb["data_error_regex"] = 'TLSA dataformat is wrong. Correct: n n n HASH';
+$wb['type_txt'] = 'type';
+$wb['data_txt'] = 'TLSA-Data';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Active';
+$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
+$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
+$wb['name_error_empty'] = 'The hostname is empty.';
+$wb['name_error_regex'] = 'The hostname has the wrong format. Correct: _&lt;port&gt;._(tcp|udp).&lt;hostname&gt;';
+$wb['data_error_empty'] = 'TLSA-Data empty';
+$wb['data_error_regex'] = 'TLSA dataformat is wrong. Correct: n n n HASH';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/help/lib/lang/cz.lng b/interface/web/help/lib/lang/cz.lng
index 72dad835a0..55279c6a69 100644
--- a/interface/web/help/lib/lang/cz.lng
+++ b/interface/web/help/lib/lang/cz.lng
@@ -12,6 +12,3 @@ $wb['Manage Sections'] = 'Spravovat sekce';
 $wb['Manage Questions'] = 'Spravovat dotazy';
 $wb['Add a Question & Answer Pair'] = 'Vytvořit otázku a odpověď';
 ?>
-
-
-
diff --git a/interface/web/help/lib/lang/cz_faq_form.lng b/interface/web/help/lib/lang/cz_faq_form.lng
index 7761bfd9f1..73feee6955 100644
--- a/interface/web/help/lib/lang/cz_faq_form.lng
+++ b/interface/web/help/lib/lang/cz_faq_form.lng
@@ -4,6 +4,3 @@ $wb['faq_question_txt'] = 'Otázka';
 $wb['faq_answer_txt'] = 'Odpověď';
 $wb['faq_section_txt'] = 'Sekce';
 ?>
-
-
-
diff --git a/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng b/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
index 486d767a3f..34a03b3175 100644
--- a/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
+++ b/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
@@ -7,6 +7,3 @@ $wb['faq_sections_txt'] = 'Sekce';
 $wb['faq_faq_questions_txt'] = 'Často kladené dotazy';
 $wb['faq_new_question_txt'] = 'Vytvořit nový dotaz';
 ?>
-
-
-
diff --git a/interface/web/help/lib/lang/cz_faq_sections_form.lng b/interface/web/help/lib/lang/cz_faq_sections_form.lng
index cd0e5447f7..f9de704d8a 100644
--- a/interface/web/help/lib/lang/cz_faq_sections_form.lng
+++ b/interface/web/help/lib/lang/cz_faq_sections_form.lng
@@ -1,6 +1,3 @@
 <?php
 $wb['faq_section_name_txt'] = 'Název sekce';
 ?>
-
-
-
diff --git a/interface/web/help/lib/lang/cz_help_faq_list.lng b/interface/web/help/lib/lang/cz_help_faq_list.lng
index 1cb89b2aa5..923d9b892a 100644
--- a/interface/web/help/lib/lang/cz_help_faq_list.lng
+++ b/interface/web/help/lib/lang/cz_help_faq_list.lng
@@ -1,6 +1,3 @@
 <?php
 $wb['edit_txt'] = 'Upravit';
 ?>
-
-
-
diff --git a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
index 1a9bc341cd..e9f8f2ea88 100644
--- a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
+++ b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
@@ -6,6 +6,3 @@ $wb['faq_sections_txt'] = 'Sekce';
 $wb['faq_faq_sections_txt'] = 'Sekce FAQ - Často kladené dotazy';
 $wb['faq_new_section_txt'] = 'Vytvořit sekci';
 ?>
-
-
-
diff --git a/interface/web/help/lib/lang/cz_support_message_list.lng b/interface/web/help/lib/lang/cz_support_message_list.lng
index defe9b3bd7..23f80584f9 100644
--- a/interface/web/help/lib/lang/cz_support_message_list.lng
+++ b/interface/web/help/lib/lang/cz_support_message_list.lng
@@ -5,6 +5,3 @@ $wb['subject_txt'] = 'Předmět';
 $wb['add_new_record_txt'] = 'Vytvořit zprávu pro podporu';
 $wb['date_txt'] = 'Datum';
 ?>
-
-
-
diff --git a/interface/web/login/lib/lang/cz_login_as.lng b/interface/web/login/lib/lang/cz_login_as.lng
index 0fd5a40f5a..0326e3d853 100644
--- a/interface/web/login/lib/lang/cz_login_as.lng
+++ b/interface/web/login/lib/lang/cz_login_as.lng
@@ -10,6 +10,3 @@ $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolen
 $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.';
 $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
-
-
-
diff --git a/interface/web/login/lib/lang/dk_login_as.lng b/interface/web/login/lib/lang/dk_login_as.lng
index a75ea7262a..bebcf165a7 100644
--- a/interface/web/login/lib/lang/dk_login_as.lng
+++ b/interface/web/login/lib/lang/dk_login_as.lng
@@ -1,12 +1,12 @@
 <?php
 $wb['login_1_txt'] = 'Vil du logge ind som bruger';
-$wb['login_2_txt'] = 'Hvis du gør det, kan du \"Gå tilbage\" ved at klikke på logout.';
+$wb['login_2_txt'] = 'Hvis du gør det, kan du \\"Gå tilbage\\" ved at klikke på logout.';
 $wb['btn_yes_txt'] = 'Ja, log ind som Kunde';
 $wb['btn_back_txt'] = 'Nej, tilbage til listen';
 $wb['udp_port_help_txt'] = 'Adskilt af komma';
 $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.';
-$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i TCP port definition. Tilladt tegn er tal, \":\" og \",\".';
-$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i UDP port definition. Tilladt tegn er tal, \":\" og \",\".';
+$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i TCP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
+$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i UDP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
 $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng
index a000d44342..f7f12feeff 100644
--- a/interface/web/login/lib/lang/tr_login_as.lng
+++ b/interface/web/login/lib/lang/tr_login_as.lng
@@ -1,12 +1,12 @@
 <?php
 $wb['login_1_txt'] = 'Bu kullanıcı olarak oturum açmak ister misiniz';
-$wb['login_2_txt'] = '\"Geri dönmek\" için oturumu kapat üzerine tıklayın.';
+$wb['login_2_txt'] = '\\"Geri dönmek\\" için oturumu kapat üzerine tıklayın.';
 $wb['btn_yes_txt'] = 'Evet, Müşteri olarak oturum aç';
 $wb['btn_back_txt'] = 'Hayır, listeye geri dön';
 $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın';
 $wb['active_txt'] = 'Etkin';
 $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.';
-$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
-$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.';
+$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
+$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.';
 $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
 ?>
diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng
index c52b4b852b..d0f6157cb4 100644
--- a/interface/web/mail/lib/lang/cz.lng
+++ b/interface/web/mail/lib/lang/cz.lng
@@ -46,6 +46,3 @@ $wb['Relay Recipients'] = 'Relay adresáti';
 $wb['Statistics'] = 'Statistiky';
 $wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_backup_stats_list.lng b/interface/web/mail/lib/lang/cz_backup_stats_list.lng
index a85b21eac1..d37348978d 100644
--- a/interface/web/mail/lib/lang/cz_backup_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_backup_stats_list.lng
@@ -7,6 +7,3 @@ $wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Velikost zálohy';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_alias.lng b/interface/web/mail/lib/lang/cz_mail_alias.lng
index 1226a67fac..b7067bca51 100644
--- a/interface/web/mail/lib/lang/cz_mail_alias.lng
+++ b/interface/web/mail/lib/lang/cz_mail_alias.lng
@@ -15,6 +15,3 @@ $wb['send_as_txt'] = 'Odeslat jako';
 $wb['send_as_exp'] = 'Allow target to send mail using this alias as origin';
 $wb['greylisting_txt'] = 'Povolit greylisting';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_alias_list.lng b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
index a3ae333d6d..240c15acba 100644
--- a/interface/web/mail/lib/lang/cz_mail_alias_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
@@ -6,6 +6,3 @@ $wb['destination_txt'] = 'Cíl';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailovou přezdívku';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng b/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
index 179b9e9366..74611c2de0 100644
--- a/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
+++ b/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
@@ -9,6 +9,3 @@ $wb['source_error_empty'] = 'Zdrojová doména je prázdná.';
 $wb['source_error_unique'] = 'Duplikování zdrojové domény.';
 $wb['source_error_regex'] = 'Chybná zdrojová doména.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
index 9d651bf3a8..d71da95dc0 100644
--- a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
@@ -5,6 +5,3 @@ $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
 $wb['add_new_record_txt'] = 'Vytvořit doménovou přezdívku';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_backup_list.lng b/interface/web/mail/lib/lang/cz_mail_backup_list.lng
index 28408acb82..91ea1ad49f 100644
--- a/interface/web/mail/lib/lang/cz_mail_backup_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_backup_list.lng
@@ -14,6 +14,3 @@ $wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['filesize_txt'] = 'Velikost souboru';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_blacklist.lng b/interface/web/mail/lib/lang/cz_mail_blacklist.lng
index 4d2818e2a0..e1e6dab48f 100644
--- a/interface/web/mail/lib/lang/cz_mail_blacklist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_blacklist.lng
@@ -7,6 +7,3 @@ $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
 $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
index cce4a1ba53..282e109209 100644
--- a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
@@ -8,6 +8,3 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['add_new_record_txt'] = 'Přidat na černou listinu';
 $wb['access_txt'] = 'Přístup';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_content_filter.lng b/interface/web/mail/lib/lang/cz_mail_content_filter.lng
index 30f12ee4ab..459ca228a2 100644
--- a/interface/web/mail/lib/lang/cz_mail_content_filter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_content_filter.lng
@@ -7,6 +7,3 @@ $wb['action_txt'] = 'Akce';
 $wb['active_txt'] = 'Aktivní';
 $wb['pattern_error_empty'] = 'Vzor je prázdný.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng b/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
index 20e69dc51d..ccb9fc0b1f 100644
--- a/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
@@ -6,6 +6,3 @@ $wb['pattern_txt'] = 'Vzor';
 $wb['action_txt'] = 'Akce';
 $wb['add_new_record_txt'] = 'Vytvořit obsahový filtr';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_domain.lng b/interface/web/mail/lib/lang/cz_mail_domain.lng
index 8b43f7f93f..98a7b7fd03 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain.lng
@@ -21,6 +21,3 @@ $wb['policy_txt'] = 'Spamový filtr';
 $wb['no_policy'] = '- nepovoleno -';
 $wb['error_not_allowed_server_id'] = 'Zvolený server není povolen pro tento účet.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
index 23e8a7c763..c2aed68625 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
@@ -6,6 +6,3 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
index e1b07668ee..1bb4a04577 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
@@ -9,6 +9,3 @@ $wb['limit_mailcatchall_txt'] = 'Dosažen maximální počet košů účtů pro
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_error_isemail'] = 'Cílová e-mailová adresa není platná.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
index 6ef63cb9fb..ab502529af 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
@@ -7,6 +7,3 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'E-malová doména';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailový koš';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_list.lng
index ed27cb59e2..9bd9770e33 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_list.lng
@@ -5,6 +5,3 @@ $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_forward.lng b/interface/web/mail/lib/lang/cz_mail_forward.lng
index b50224c2e5..f75cfc6a75 100644
--- a/interface/web/mail/lib/lang/cz_mail_forward.lng
+++ b/interface/web/mail/lib/lang/cz_mail_forward.lng
@@ -11,6 +11,3 @@ $wb['send_as_txt'] = 'Odeslat jako';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
 $wb['greylisting_txt'] = 'Povolit greylisting';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_forward_list.lng b/interface/web/mail/lib/lang/cz_mail_forward_list.lng
index 71afea5bf8..17fd716406 100644
--- a/interface/web/mail/lib/lang/cz_mail_forward_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_forward_list.lng
@@ -6,6 +6,3 @@ $wb['destination_txt'] = 'Cíl';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit přesměrování';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_get.lng b/interface/web/mail/lib/lang/cz_mail_get.lng
index 9bb61e3785..d8bc32fbac 100644
--- a/interface/web/mail/lib/lang/cz_mail_get.lng
+++ b/interface/web/mail/lib/lang/cz_mail_get.lng
@@ -17,6 +17,3 @@ $wb['source_read_all_txt'] = 'Načíst všechny e-maily (včetně již přečten
 $wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes';
 $wb['source_delete_note_txt'] = 'Prosím, zkontrolujte nejprve, zda příjímání e-mailů funguje, než aktivujete tuto možnost.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_get_list.lng b/interface/web/mail/lib/lang/cz_mail_get_list.lng
index 46d02188fb..d1a412407d 100644
--- a/interface/web/mail/lib/lang/cz_mail_get_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_get_list.lng
@@ -7,6 +7,3 @@ $wb['source_username_txt'] = 'Uživatelské jméno';
 $wb['destination_txt'] = 'Cíl';
 $wb['add_new_record_txt'] = 'Vytvořit účet';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
index 82270f0172..e1f7dfbfa5 100644
--- a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
@@ -16,10 +16,7 @@ $wb['generate_password_txt'] = 'Generovat heslo';
 $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
-$wb['listname_error_unique'] = 'Na serveru je již shodný \"název seznamu\". Prosím, vyberte si jiný \"název seznamu\".';
+$wb['listname_error_unique'] = 'Na serveru je již shodný \\"název seznamu\\". Prosím, vyberte si jiný \\"název seznamu\\".';
 $wb['email_error_isemail'] = 'E-mailová adresa je neplatná.';
 $wb['mailinglist_txt'] = 'E-mailové konference';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
index 7b73183a15..db31273f59 100644
--- a/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
@@ -3,6 +3,3 @@ $wb['list_head_txt'] = 'E-mailové konference';
 $wb['domain_txt'] = 'Doména';
 $wb['listname_txt'] = 'Název seznamu';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng b/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
index d4c0b004da..1928c31e14 100644
--- a/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
+++ b/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
@@ -7,6 +7,3 @@ $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
 $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet e-mail filtrů pro Váš účet.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
index d9d6bdf7c9..3f8c4987a4 100644
--- a/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
@@ -7,6 +7,3 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['add_new_record_txt'] = 'Vytvořit relay adresáta';
 $wb['access_txt'] = 'Přístup';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_spamfilter.lng b/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
index a19ab3acc0..4b6cc2b5d8 100644
--- a/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
@@ -15,6 +15,3 @@ $wb['email_error_unique'] = 'Pro tuto email adresu již existuje filtrovací zá
 $wb['spam_redirect_maildir_purge_txt'] = 'Vyčistit poté mailový adresář';
 $wb['days_txt'] = 'Dny.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
index 556cf45932..0e4b885be1 100644
--- a/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
@@ -6,6 +6,3 @@ $wb['server_name_txt'] = 'server_name';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit nový záznam spamfiltru';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_transport.lng b/interface/web/mail/lib/lang/cz_mail_transport.lng
index 1443a485b5..508ca764b6 100644
--- a/interface/web/mail/lib/lang/cz_mail_transport.lng
+++ b/interface/web/mail/lib/lang/cz_mail_transport.lng
@@ -9,6 +9,3 @@ $wb['active_txt'] = 'Aktivní';
 $wb['limit_mailrouting_txt'] = 'Dosažen maximální počet e-mail směrování pro Váš účet.';
 $wb['transport_txt'] = 'Transport';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_transport_list.lng b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
index a604d8dbec..8bdd31d7ce 100644
--- a/interface/web/mail/lib/lang/cz_mail_transport_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
@@ -7,6 +7,3 @@ $wb['transport_txt'] = 'E-mailové směrování';
 $wb['sort_order_txt'] = 'Třídit podle';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailové směrování';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng
index bd96574776..e0e2e8cf0f 100644
--- a/interface/web/mail/lib/lang/cz_mail_user.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user.lng
@@ -63,6 +63,3 @@ $wb['monthly_backup_txt'] = 'Měsíční';
 $wb['sender_cc_note_txt'] = '(Při posílání kopií na více e-mailových adres, oddělte čárkami.) ';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_user_filter.lng b/interface/web/mail/lib/lang/cz_mail_user_filter.lng
index 362bf50fde..9bd3580635 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_filter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_filter.lng
@@ -27,6 +27,3 @@ $wb['reject_txt'] = 'Reject';
 $wb['stop_txt'] = 'Stop';
 $wb['move_to_txt'] = 'Přesunout';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng b/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
index a620f6c1d1..9a78b26b69 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
@@ -5,6 +5,3 @@ $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Opravdu smazat mailový filtr ?';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_user_list.lng b/interface/web/mail/lib/lang/cz_mail_user_list.lng
index 00b60185d3..e4e2241599 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_list.lng
@@ -10,6 +10,3 @@ $wb['disablesmtp_txt'] = 'SMTP (odesílání)';
 $wb['disableimap_txt'] = 'IMAP';
 $wb['disablepop3_txt'] = 'POP3';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng b/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
index dacff95e69..50cbc31d5c 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
@@ -6,6 +6,3 @@ $wb['last_month_txt'] = 'Minulý měsíc';
 $wb['this_year_txt'] = 'Tento rok';
 $wb['last_year_txt'] = 'Minulý rok';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_whitelist.lng b/interface/web/mail/lib/lang/cz_mail_whitelist.lng
index 28a25cefb0..db55c18a0b 100644
--- a/interface/web/mail/lib/lang/cz_mail_whitelist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_whitelist.lng
@@ -7,6 +7,3 @@ $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
 $wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
index a0f773a645..ee3b0b8bdd 100644
--- a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
@@ -8,6 +8,3 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['add_new_record_txt'] = 'Přidat na bílou listinu';
 $wb['access_txt'] = 'Přístup';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
index dc2bca81a2..4d47c28671 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
@@ -10,6 +10,3 @@ $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
index 21bd88f1f5..d634d7242c 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
@@ -7,6 +7,3 @@ $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-maily na černé listině';
 $wb['add_new_record_txt'] = 'Přidat na černou listinu';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_config.lng b/interface/web/mail/lib/lang/cz_spamfilter_config.lng
index 6d7c98c354..0d4218498e 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_config.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_config.lng
@@ -18,6 +18,3 @@ $wb['mailbox_size_limit_txt'] = 'Limit velikosti e-mailové schránky';
 $wb['message_size_limit_txt'] = 'Limit velikosti zprávy';
 $wb['hostname_txt'] = 'Název hostitele';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
index 10a4848a1d..fe2ee8d51c 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
@@ -3,6 +3,3 @@ $wb['list_head_txt'] = 'Konfigurace serveru';
 $wb['server_name_txt'] = 'Server';
 $wb['server_id_txt'] = 'server_id';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
index 9585b3c1c1..c5765e807f 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
@@ -36,6 +36,3 @@ $wb['spam_admin_txt'] = 'SPAM admin';
 $wb['message_size_limit_txt'] = 'Limit velikosti zprávy';
 $wb['banned_rulenames_txt'] = 'Název pravidel zabanované';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
index e36e787fdd..5b7cde522f 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
@@ -7,6 +7,3 @@ $wb['banned_files_lover_txt'] = 'Zabanované soubory';
 $wb['bad_header_lover_txt'] = 'Špatné hlavičky';
 $wb['add_new_record_txt'] = 'Vytvořit záznam politiky';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users.lng b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
index ba347b8d6e..3473064e21 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_users.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
@@ -11,6 +11,3 @@ $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
index 3e3530665f..5f823362cf 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
@@ -8,6 +8,3 @@ $wb['fullname_txt'] = 'Jméno';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit spamfiltr uživatele';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
index dc2bca81a2..4d47c28671 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
@@ -10,6 +10,3 @@ $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
index 5f9327ff09..27202c19ed 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
@@ -7,6 +7,3 @@ $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-maily na bílé listině';
 $wb['add_new_record_txt'] = 'Přidat na bílou listinu';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
index 454cc0ad78..b55af94171 100755
--- a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
@@ -6,6 +6,3 @@ $wb['email_txt'] = 'E-mailová adresa';
 $wb['used_txt'] = 'Využité místo';
 $wb['percentage_txt'] = 'Využité místo v %';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain.lng b/interface/web/mail/lib/lang/cz_xmpp_domain.lng
index a439629584..64d49cba18 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain.lng
@@ -60,6 +60,3 @@ $wb['delete_certificate_txt'] = 'Delete certificate';
 $wb['ssl_error_isemail'] = 'Please enter a valid email adress for generation of the SSL certificate';
 $wb['limit_xmppdomain_txt'] = 'The max. number of XMPP domains for your account is reached.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
index a1e2f90291..9a4885fa96 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
@@ -6,6 +6,3 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng b/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
index 23562607ff..c031c30849 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
@@ -5,6 +5,3 @@ $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_xmpp_user.lng b/interface/web/mail/lib/lang/cz_xmpp_user.lng
index c7a404022e..eaa73b08a3 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_user.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_user.lng
@@ -13,6 +13,3 @@ $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu.';
 $wb['limit_xmpp_user_txt'] = 'The max. number of xmpp accounts for your account is reached.';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/cz_xmpp_user_list.lng b/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
index daf1ded500..f611f1c4ff 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
@@ -6,6 +6,3 @@ $wb['is_muc_admin_txt'] = 'MUC admin';
 $wb['add_new_record_txt'] = 'Přidat uživatele';
 $wb['active_txt'] = 'Aktivní';
 ?>
-
-
-
diff --git a/interface/web/mail/lib/lang/dk_backup_stats_list.lng b/interface/web/mail/lib/lang/dk_backup_stats_list.lng
index 9ae9658257..79cd6c9a63 100644
--- a/interface/web/mail/lib/lang/dk_backup_stats_list.lng
+++ b/interface/web/mail/lib/lang/dk_backup_stats_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb["list_head_txt"]       = 'Backup Stats';
-$wb['active_txt']          = 'Active';
-$wb['domain_txt']          = 'Email';
-$wb['backup_count_txt']    = 'Backup count';
-$wb['backup_server_txt']   = 'Server';
+$wb['list_head_txt'] = 'Backup Stats';
+$wb['active_txt'] = 'Active';
+$wb['domain_txt'] = 'Email';
+$wb['backup_count_txt'] = 'Backup count';
+$wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Backupsize';
 ?>
diff --git a/interface/web/mail/lib/lang/dk_mail_get.lng b/interface/web/mail/lib/lang/dk_mail_get.lng
index dc0b7455ac..1fa44cb6ad 100644
--- a/interface/web/mail/lib/lang/dk_mail_get.lng
+++ b/interface/web/mail/lib/lang/dk_mail_get.lng
@@ -15,5 +15,5 @@ $wb['source_username_error_isempty'] = 'Brugernavn er tom.';
 $wb['source_password_error_isempty'] = 'Adgangskode er tom.';
 $wb['destination_error_isemail'] = 'Ingen destination er valgt.';
 $wb['source_server_error_regex'] = 'Pop3/Imap Server er ikke et gyldigt domænenavn.';
-$wb['error_delete_read_all_combination'] = 'Ulovlig kombination af muligheder. Du kan ikke bruge \"Slet e-mails efter hentning\" = nej sammen med \"Hent alle e-mails\" = ja';
+$wb['error_delete_read_all_combination'] = 'Ulovlig kombination af muligheder. Du kan ikke bruge \\"Slet e-mails efter hentning\\" = nej sammen med \\"Hent alle e-mails\\" = ja';
 ?>
diff --git a/interface/web/mail/lib/lang/dk_xmpp_domain.lng b/interface/web/mail/lib/lang/dk_xmpp_domain.lng
index f1da77ba29..0541203b2e 100644
--- a/interface/web/mail/lib/lang/dk_xmpp_domain.lng
+++ b/interface/web/mail/lib/lang/dk_xmpp_domain.lng
@@ -1,35 +1,35 @@
 <?php
-$wb["server_id_txt"] = 'Server';
-$wb["client_group_id_txt"] = 'Client';
-$wb["domain_txt"] = 'Domain';
-$wb["type_txt"] = 'Type';
-$wb["active_txt"] = 'Active';
-$wb["client_txt"] = 'Client';
-$wb["management_method_txt"] = 'Management of user accounts';
-$wb["public_registration_txt"] = 'Enable public registration';
-$wb["registration_url_txt"] = 'Registration URL';
-$wb["registration_message_txt"] = 'Registration Message';
-$wb["domain_admins_txt"] = 'Domain Admins (JIDs)';
-$wb["use_pubsub_txt"] = 'Enable Pubsub';
-$wb["use_proxy_txt"] = 'Enable Bytestream Proxy';
-$wb["use_anon_host_txt"] = 'Enable Anonymous Host';
-$wb["use_vjud_txt"] = 'Enable VJUD User Directory';
-$wb["vjud_opt_mode_txt"] = 'VJUD Opt Mode';
-$wb["use_muc_host_txt"] = 'Enable Multi User Chatrooms';
-$wb["muc_name_txt"] = 'Name in MUC Service Discovery';
-$wb["muc_restrict_room_creation_txt"] = 'Permission to create chatrooms';
-$wb["muc_admins_txt"] = 'MUC Admins (JIDs)';
-$wb["use_pastebin_txt"] = 'Enable Pastebin';
-$wb["pastebin_expire_after_txt"] = 'Pastes expire after (hours)';
-$wb["pastebin_trigger_txt"] = 'Pastebin trigger';
-$wb["use_http_archive_txt"] = 'Enable HTTP chatroom archive';
-$wb["http_archive_show_join_txt"] = 'Show join messages in archive';
-$wb["http_archive_show_status_txt"] = 'Show status changes in archive';
-$wb["use_status_host_txt"] = 'Enable XML Status host';
-$wb["cant_change_domainname_txt"] = 'The Domain name of existing XMPP domain cannot be changed.';
-$wb["about_registration_url_txt"] = 'Link to your registration form.';
-$wb["about_registration_message_txt"] = 'Description about your account registration process.';
-$wb["no_corresponding_maildomain_txt"] = 'Corresponding mail domain for user management not found. Please create the mail domain first.';
+$wb['server_id_txt'] = 'Server';
+$wb['client_group_id_txt'] = 'Client';
+$wb['domain_txt'] = 'Domain';
+$wb['type_txt'] = 'Type';
+$wb['active_txt'] = 'Active';
+$wb['client_txt'] = 'Client';
+$wb['management_method_txt'] = 'Management of user accounts';
+$wb['public_registration_txt'] = 'Enable public registration';
+$wb['registration_url_txt'] = 'Registration URL';
+$wb['registration_message_txt'] = 'Registration Message';
+$wb['domain_admins_txt'] = 'Domain Admins (JIDs)';
+$wb['use_pubsub_txt'] = 'Enable Pubsub';
+$wb['use_proxy_txt'] = 'Enable Bytestream Proxy';
+$wb['use_anon_host_txt'] = 'Enable Anonymous Host';
+$wb['use_vjud_txt'] = 'Enable VJUD User Directory';
+$wb['vjud_opt_mode_txt'] = 'VJUD Opt Mode';
+$wb['use_muc_host_txt'] = 'Enable Multi User Chatrooms';
+$wb['muc_name_txt'] = 'Name in MUC Service Discovery';
+$wb['muc_restrict_room_creation_txt'] = 'Permission to create chatrooms';
+$wb['muc_admins_txt'] = 'MUC Admins (JIDs)';
+$wb['use_pastebin_txt'] = 'Enable Pastebin';
+$wb['pastebin_expire_after_txt'] = 'Pastes expire after (hours)';
+$wb['pastebin_trigger_txt'] = 'Pastebin trigger';
+$wb['use_http_archive_txt'] = 'Enable HTTP chatroom archive';
+$wb['http_archive_show_join_txt'] = 'Show join messages in archive';
+$wb['http_archive_show_status_txt'] = 'Show status changes in archive';
+$wb['use_status_host_txt'] = 'Enable XML Status host';
+$wb['cant_change_domainname_txt'] = 'The Domain name of existing XMPP domain cannot be changed.';
+$wb['about_registration_url_txt'] = 'Link to your registration form.';
+$wb['about_registration_message_txt'] = 'Description about your account registration process.';
+$wb['no_corresponding_maildomain_txt'] = 'Corresponding mail domain for user management not found. Please create the mail domain first.';
 $wb['ssl_state_txt'] = 'State';
 $wb['ssl_locality_txt'] = 'Locality';
 $wb['ssl_organisation_txt'] = 'Organisation';
@@ -58,5 +58,5 @@ $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
 $wb['ssl_error_isemail'] = 'Please enter a valid email adress for generation of the SSL certificate';
-$wb["limit_xmppdomain_txt"] = 'The max. number of XMPP domains for your account is reached.';
+$wb['limit_xmppdomain_txt'] = 'The max. number of XMPP domains for your account is reached.';
 ?>
diff --git a/interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng
index a3d1736d7b..af643eab5a 100644
--- a/interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/dk_xmpp_domain_admin_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb["list_head_txt"] = 'XMPP Domain';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["add_new_record_txt"] = 'Add new Domain';
-$wb["active_txt"] = 'Active';
-$wb["sys_groupid_txt"] = 'Client';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'XMPP Domain';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domain';
+$wb['add_new_record_txt'] = 'Add new Domain';
+$wb['active_txt'] = 'Active';
+$wb['sys_groupid_txt'] = 'Client';
+?>
diff --git a/interface/web/mail/lib/lang/dk_xmpp_domain_list.lng b/interface/web/mail/lib/lang/dk_xmpp_domain_list.lng
index f8c2fb9b8e..ebfebab7d5 100644
--- a/interface/web/mail/lib/lang/dk_xmpp_domain_list.lng
+++ b/interface/web/mail/lib/lang/dk_xmpp_domain_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb["list_head_txt"] = 'XMPP Domain';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["add_new_record_txt"] = 'Add new Domain';
-$wb["active_txt"] = 'Active';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'XMPP Domain';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domain';
+$wb['add_new_record_txt'] = 'Add new Domain';
+$wb['active_txt'] = 'Active';
+?>
diff --git a/interface/web/mail/lib/lang/dk_xmpp_user.lng b/interface/web/mail/lib/lang/dk_xmpp_user.lng
index 1cc852e3cf..6ab739d98b 100644
--- a/interface/web/mail/lib/lang/dk_xmpp_user.lng
+++ b/interface/web/mail/lib/lang/dk_xmpp_user.lng
@@ -1,15 +1,15 @@
 <?php
-$wb["list_head_txt"] = 'XMPP User Accounts';
-$wb["jid_txt"] = 'Jabber ID';
-$wb["active_txt"] = 'Active';
-$wb["cryptpwd_txt"] = 'Password';
-$wb["password_strength_txt"] = 'Password strength';
-$wb["error_no_pwd"] = 'Password is empty.';
-$wb["password_txt"] = 'Password';
+$wb['list_head_txt'] = 'XMPP User Accounts';
+$wb['jid_txt'] = 'Jabber ID';
+$wb['active_txt'] = 'Active';
+$wb['cryptpwd_txt'] = 'Password';
+$wb['password_strength_txt'] = 'Password strength';
+$wb['error_no_pwd'] = 'Password is empty.';
+$wb['password_txt'] = 'Password';
 $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
 $wb['password_mismatch_txt'] = 'The passwords do not match.';
 $wb['password_match_txt'] = 'The passwords do match.';
-$wb["no_domain_perm"] = 'You have no permission for this domain.';
-$wb["limit_xmpp_user_txt"] = 'The max. number of xmpp accounts for your account is reached.';
-?>
\ No newline at end of file
+$wb['no_domain_perm'] = 'You have no permission for this domain.';
+$wb['limit_xmpp_user_txt'] = 'The max. number of xmpp accounts for your account is reached.';
+?>
diff --git a/interface/web/mail/lib/lang/dk_xmpp_user_list.lng b/interface/web/mail/lib/lang/dk_xmpp_user_list.lng
index db88b0d7e3..f2651cb62b 100644
--- a/interface/web/mail/lib/lang/dk_xmpp_user_list.lng
+++ b/interface/web/mail/lib/lang/dk_xmpp_user_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb["list_head_txt"] = 'XMPP User Accounts';
-$wb["jid_txt"] = 'Jabber ID';
-$wb["is_domain_admin_txt"] = 'Domain admin';
-$wb["is_muc_admin_txt"] = 'MUC admin';
-$wb["add_new_record_txt"] = 'Add new user';
-$wb["active_txt"] = 'Active';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'XMPP User Accounts';
+$wb['jid_txt'] = 'Jabber ID';
+$wb['is_domain_admin_txt'] = 'Domain admin';
+$wb['is_muc_admin_txt'] = 'MUC admin';
+$wb['add_new_record_txt'] = 'Add new user';
+$wb['active_txt'] = 'Active';
+?>
diff --git a/interface/web/mail/lib/lang/tr_mail_get.lng b/interface/web/mail/lib/lang/tr_mail_get.lng
index 3e29c26a71..b82b6c8c9a 100644
--- a/interface/web/mail/lib/lang/tr_mail_get.lng
+++ b/interface/web/mail/lib/lang/tr_mail_get.lng
@@ -15,5 +15,5 @@ $wb['source_username_error_isempty'] = 'Kullanıcı adı boş olamaz.';
 $wb['source_password_error_isempty'] = 'Parola boÅŸ olamaz.';
 $wb['destination_error_isemail'] = 'Hedef seçilmemiş.';
 $wb['source_server_error_regex'] = 'POP3/IMAP Sunucu alan adı geçersiz.';
-$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \"E-postalar alındıktan sonra silinsin\" = Hayır iken \"Tüm e-postalar alınsın\" = Evet olamaz';
+$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \\"E-postalar alındıktan sonra silinsin\\" = Hayır iken \\"Tüm e-postalar alınsın\\" = Evet olamaz';
 ?>
diff --git a/interface/web/mailuser/lib/lang/cz.lng b/interface/web/mailuser/lib/lang/cz.lng
index 7665f8236a..8b4b58bc42 100644
--- a/interface/web/mailuser/lib/lang/cz.lng
+++ b/interface/web/mailuser/lib/lang/cz.lng
@@ -7,6 +7,3 @@ $wb['Send copy'] = 'Poslat kopii na e-mail';
 $wb['Spamfilter'] = 'Spamový filtr';
 $wb['Email Filters'] = 'E-mailové filtry';
 ?>
-
-
-
diff --git a/interface/web/mailuser/lib/lang/cz_index.lng b/interface/web/mailuser/lib/lang/cz_index.lng
index 4e8b02ad5c..45af56ee8d 100644
--- a/interface/web/mailuser/lib/lang/cz_index.lng
+++ b/interface/web/mailuser/lib/lang/cz_index.lng
@@ -10,6 +10,3 @@ $wb['unlimited_txt'] = 'Neomezený';
 $wb['mb_txt'] = 'MB';
 $wb['none_txt'] = 'Nenastaveno';
 ?>
-
-
-
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
index 65a1aafc67..ef3aeb42da 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
@@ -11,6 +11,3 @@ $wb['autoresponder_active'] = 'Povolit automatický odpovídač';
 $wb['now_txt'] = 'Nyní';
 $wb['autoresponder_subject_txt'] = 'Předmět e-mailu';
 ?>
-
-
-
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
index 53183cf4eb..57ecd90b9a 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
@@ -7,6 +7,3 @@ $wb['email_is_cc_error'] = 'Vyplněná e-mailová adresa a poslat kopii na e-mai
 $wb['name_optional_txt'] = '(Volitelné)';
 $wb['cc_note_txt'] = '(Při posílání kopií na více e-mailových adres, oddělte čárkami.)';
 ?>
-
-
-
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
index 9588ed7f3a..27b54c1bc7 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
@@ -19,6 +19,3 @@ $wb['move_to_txt'] = 'Přesunout do';
 $wb['delete_txt'] = 'Smazat';
 $wb['mailbox_filter_txt'] = 'Mailbox filter';
 ?>
-
-
-
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
index b443b2ec7f..546c148509 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
@@ -6,6 +6,3 @@ $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Opravdu chcete odstranit e-mail filter?';
 ?>
-
-
-
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
index 5e18d934e4..d7072cfe52 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
@@ -9,6 +9,3 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['password_click_to_set_txt'] = 'Click to set';
 ?>
-
-
-
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
index cb903f9c79..2a53036be6 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
@@ -5,6 +5,3 @@ $wb['email_txt'] = 'E-mail';
 $wb['no_policy'] = '- nepovoleno -';
 $wb['policy_txt'] = 'Politika';
 ?>
-
-
-
diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng
index 653836bfcf..a4e670df63 100644
--- a/interface/web/monitor/lib/lang/cz.lng
+++ b/interface/web/monitor/lib/lang/cz.lng
@@ -161,6 +161,3 @@ $wb['monitor_database_domain_txt'] = 'Doména';
 $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:';
 $wb['monitor_title_mongodb_txt'] = 'MongoDB Log';
 ?>
-
-
-
diff --git a/interface/web/monitor/lib/lang/cz_datalog_list.lng b/interface/web/monitor/lib/lang/cz_datalog_list.lng
index ff7d2fe7c7..c9e9a86555 100644
--- a/interface/web/monitor/lib/lang/cz_datalog_list.lng
+++ b/interface/web/monitor/lib/lang/cz_datalog_list.lng
@@ -6,6 +6,3 @@ $wb['dbtable_txt'] = 'DB tabulka';
 $wb['action_txt'] = 'Akce';
 $wb['status_txt'] = 'Stav';
 ?>
-
-
-
diff --git a/interface/web/monitor/lib/lang/cz_syslog_list.lng b/interface/web/monitor/lib/lang/cz_syslog_list.lng
index 7646dc32a1..990662552b 100644
--- a/interface/web/monitor/lib/lang/cz_syslog_list.lng
+++ b/interface/web/monitor/lib/lang/cz_syslog_list.lng
@@ -5,6 +5,3 @@ $wb['server_id_txt'] = 'Server';
 $wb['loglevel_txt'] = 'Logovací úroveň';
 $wb['message_txt'] = 'Zpráva';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
index 3132205991..94c79285a2 100644
--- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
index 9ac81330cd..227f59a2b9 100644
--- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng
index f1c274a8b9..562fd888cf 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
index abe5a74275..f556ac53ae 100644
--- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/cz.lng b/interface/web/sites/lib/lang/cz.lng
index 96dc616e21..4c16438e34 100644
--- a/interface/web/sites/lib/lang/cz.lng
+++ b/interface/web/sites/lib/lang/cz.lng
@@ -33,6 +33,3 @@ $wb['Update Packagelist'] = 'Aktualizace seznamu balíčků';
 $wb['Subdomain (Vhost)'] = 'Subdoména (Vhost)';
 $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng
index c84d26d872..5ec94945d1 100644
--- a/interface/web/sites/lib/lang/cz_aps.lng
+++ b/interface/web/sites/lib/lang/cz_aps.lng
@@ -56,6 +56,3 @@ $wb['btn_install_txt'] = 'Instalovat';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['limit_aps_txt'] = 'Max. počet APS  instancí u vašeho účtu je dosaženo.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_aps_instances_list.lng b/interface/web/sites/lib/lang/cz_aps_instances_list.lng
index 6cd0317c31..8d712878d7 100644
--- a/interface/web/sites/lib/lang/cz_aps_instances_list.lng
+++ b/interface/web/sites/lib/lang/cz_aps_instances_list.lng
@@ -9,6 +9,3 @@ $wb['pkg_delete_confirmation'] = 'Opravdu chcete smazat tuto instalaci ?';
 $wb['filter_txt'] = 'Hledat';
 $wb['delete_txt'] = 'Smazat';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_aps_packages_list.lng b/interface/web/sites/lib/lang/cz_aps_packages_list.lng
index 660f15079d..52ef6ebcd9 100644
--- a/interface/web/sites/lib/lang/cz_aps_packages_list.lng
+++ b/interface/web/sites/lib/lang/cz_aps_packages_list.lng
@@ -6,6 +6,3 @@ $wb['category_txt'] = 'Kategorie';
 $wb['status_txt'] = 'Odemčený';
 $wb['filter_txt'] = 'Hledat';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng b/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
index c47ab8d9e9..8f4124b47e 100644
--- a/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
+++ b/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
@@ -5,6 +5,3 @@ $wb['btn_start_txt'] = 'Aktualizace seznamu balíčků';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['legend_txt'] = 'Zde si můžete aktualizovat seznam dostupných balíčků. Vezměte prosím na vědomí, že aktualizace může trvat až několik minut. Po spuštění aktualizace můžete následně opustit tuto sekci. Tento proces bude pokračovat na pozadí.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_backup_stats_list.lng b/interface/web/sites/lib/lang/cz_backup_stats_list.lng
index 167b213fe1..29a84fd015 100644
--- a/interface/web/sites/lib/lang/cz_backup_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_backup_stats_list.lng
@@ -8,6 +8,3 @@ $wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Velikost zálohy';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_cron.lng b/interface/web/sites/lib/lang/cz_cron.lng
index c2b7e2e3d6..05c62e7f01 100644
--- a/interface/web/sites/lib/lang/cz_cron.lng
+++ b/interface/web/sites/lib/lang/cz_cron.lng
@@ -24,6 +24,3 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_cron_list.lng b/interface/web/sites/lib/lang/cz_cron_list.lng
index a55a4954fa..5fdc8352f0 100644
--- a/interface/web/sites/lib/lang/cz_cron_list.lng
+++ b/interface/web/sites/lib/lang/cz_cron_list.lng
@@ -11,6 +11,3 @@ $wb['command_txt'] = 'Příkaz';
 $wb['add_new_cron_txt'] = 'Vytvořit cron úlohu';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_database.lng b/interface/web/sites/lib/lang/cz_database.lng
index 6a575ce7d0..1a7b0d7173 100644
--- a/interface/web/sites/lib/lang/cz_database.lng
+++ b/interface/web/sites/lib/lang/cz_database.lng
@@ -47,6 +47,3 @@ $wb['limit_database_quota_txt'] = 'Kvóta databáze';
 $wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
 $wb['limit_database_quota_free_txt'] = 'Max. available DB quota ';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_database_admin_list.lng b/interface/web/sites/lib/lang/cz_database_admin_list.lng
index b6993ab20f..79f4bd8d47 100644
--- a/interface/web/sites/lib/lang/cz_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_admin_list.lng
@@ -10,6 +10,3 @@ $wb['sys_groupid_txt'] = 'Klient';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['type_txt'] = 'Typ';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_database_list.lng b/interface/web/sites/lib/lang/cz_database_list.lng
index b81e2a201d..ca82f150d7 100644
--- a/interface/web/sites/lib/lang/cz_database_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_list.lng
@@ -9,6 +9,3 @@ $wb['add_new_record_txt'] = 'Vytvořit databázi';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['type_txt'] = 'Typ';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
index 8f7ed8bb99..3fcf8e5cf8 100644
--- a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
@@ -6,6 +6,3 @@ $wb['used_txt'] = 'Využité místo';
 $wb['quota_txt'] = 'Kvóta';
 $wb['percentage_txt'] = 'Využito v %';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_database_user.lng b/interface/web/sites/lib/lang/cz_database_user.lng
index 4773e8063a..81c77a1a80 100644
--- a/interface/web/sites/lib/lang/cz_database_user.lng
+++ b/interface/web/sites/lib/lang/cz_database_user.lng
@@ -22,6 +22,3 @@ $wb['globalsearch_searchfield_watermark_txt'] = 'Hledat';
 $wb['globalsearch_suggestions_text_txt'] = 'Návrhy';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
index 0577343a90..7a13c03697 100644
--- a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
@@ -4,6 +4,3 @@ $wb['database_user_txt'] = 'Uživatel databáze';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele databáze';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_database_user_list.lng b/interface/web/sites/lib/lang/cz_database_user_list.lng
index c390336868..1acb6ac4c1 100644
--- a/interface/web/sites/lib/lang/cz_database_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_user_list.lng
@@ -3,6 +3,3 @@ $wb['list_head_txt'] = 'Uživatelé databáze';
 $wb['database_user_txt'] = 'Uživatelé databáze';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele databáze';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
index fdd8c9fecd..a90ec16003 100644
--- a/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
@@ -6,7 +6,5 @@ $wb['last_month_txt'] = 'Minulý měsíc';
 $wb['this_year_txt'] = 'Tento rok';
 $wb['sum_txt'] = 'Součet (Stažení + Odeslání)';
 $wb['in_out_txt'] = 'DL/UL';
+$wb['last_year_txt'] = 'Last year';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_ftp_user.lng b/interface/web/sites/lib/lang/cz_ftp_user.lng
index d3782faec9..768a05ae62 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user.lng
@@ -33,6 +33,3 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['expires_txt'] = 'Expire at';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_ftp_user_list.lng b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
index 8d4bbd62f1..2b052e29c9 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
@@ -6,6 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit FTP uživatele';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng
index b5023c4111..eb66108057 100644
--- a/interface/web/sites/lib/lang/cz_shell_user.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user.lng
@@ -34,6 +34,3 @@ $wb['shell_error_regex'] = 'Invalid shell';
 $wb['invalid_username_txt'] = 'Invalid Username';
 $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_shell_user_list.lng b/interface/web/sites/lib/lang/cz_shell_user_list.lng
index 2a27064153..f67bb99050 100644
--- a/interface/web/sites/lib/lang/cz_shell_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user_list.lng
@@ -6,6 +6,3 @@ $wb['parent_domain_id_txt'] = 'Stránka';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit shell uživatele';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
index a7ac08727b..8e3a8ccd4b 100644
--- a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
@@ -7,6 +7,3 @@ $wb['hard_txt'] = 'Kvóta max. obsazení';
 $wb['soft_txt'] = 'Kvóta pro upozornění';
 $wb['files_txt'] = 'Jednotlivé soubory';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
index 0ecdb6011d..6e2669a8f8 100644
--- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
@@ -113,6 +113,3 @@ $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
 $wb['Domain'] = 'Přezdívky domén webové stránky';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
index ca4ffb090a..52941756f7 100644
--- a/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
@@ -12,6 +12,3 @@ $wb['no_redirect_txt'] = 'Žádné přesměrování';
 $wb['no_flag_txt'] = 'Žádný příznak';
 $wb['none_txt'] = 'Žádná';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_backup_list.lng b/interface/web/sites/lib/lang/cz_web_backup_list.lng
index e83e2ca616..9674e6197a 100644
--- a/interface/web/sites/lib/lang/cz_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_backup_list.lng
@@ -19,6 +19,3 @@ $wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng
index eb21544b4c..1e87c554c5 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng
@@ -116,6 +116,3 @@ $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Sni
 $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
 $wb['Domain'] = 'Přezdívky domén webové stránky';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
index 8f537543a8..cae42bd466 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
@@ -13,6 +13,3 @@ $wb['none_txt'] = 'Žádná';
 $wb['add_new_subdomain_txt'] = 'Vytvořit subdoménu';
 $wb['add_new_aliasdomain_txt'] = 'Vytvořit přezdívku domény';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_directive_snippets.lng b/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
index 66cc55e2b3..d2590e53cf 100644
--- a/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
+++ b/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
@@ -1,6 +1,3 @@
 <?php
 $wb['directive_snippets_id_txt'] = 'Desired configuration';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng
index decc1d63b8..d229d788d6 100644
--- a/interface/web/sites/lib/lang/cz_web_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain.lng
@@ -134,6 +134,3 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng b/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
index 6226129c46..33a836ae56 100644
--- a/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
@@ -7,6 +7,3 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_domain_list.lng b/interface/web/sites/lib/lang/cz_web_domain_list.lng
index d055823ece..86968d01d3 100644
--- a/interface/web/sites/lib/lang/cz_web_domain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain_list.lng
@@ -6,6 +6,3 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_folder.lng b/interface/web/sites/lib/lang/cz_web_folder.lng
index 8eb5839931..69310b5558 100644
--- a/interface/web/sites/lib/lang/cz_web_folder.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder.lng
@@ -6,6 +6,3 @@ $wb['active_txt'] = 'Aktivní';
 $wb['path_error_regex'] = 'Neplatná cesta ke složce.';
 $wb['error_folder_already_protected_txt'] = 'Záznam pro tuto složku již existuje';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_folder_list.lng b/interface/web/sites/lib/lang/cz_web_folder_list.lng
index e7757544ac..216a483451 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_list.lng
@@ -6,6 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['path_txt'] = 'Cesta';
 $wb['add_new_record_txt'] = 'Vytvořit složku';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_folder_user.lng b/interface/web/sites/lib/lang/cz_web_folder_user.lng
index c591203d35..ca4cf5d9a6 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_user.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_user.lng
@@ -12,6 +12,3 @@ $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['no_folder_perm'] = 'Nemáte oprávnění pro tuto složku.';
 $wb['error_user_exists_already_txt'] = 'There is already a record for this user.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
index 096b3088b2..ee38e93c2f 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
@@ -5,6 +5,3 @@ $wb['web_folder_id_txt'] = 'Složka';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele složky';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng b/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
index b00b493de1..ed93596824 100644
--- a/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
@@ -7,6 +7,3 @@ $wb['this_year_txt'] = 'Tento rok';
 $wb['last_year_txt'] = 'Minulý rok';
 $wb['sum_txt'] = 'Součet';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_subdomain.lng b/interface/web/sites/lib/lang/cz_web_subdomain.lng
index 51648664f9..f01101f185 100644
--- a/interface/web/sites/lib/lang/cz_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_subdomain.lng
@@ -48,6 +48,3 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_subdomain_list.lng b/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
index 44bc60ce63..7e5774ad11 100644
--- a/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
@@ -6,6 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Subdoména';
 $wb['add_new_record_txt'] = 'Vytvořit subdoménu';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
index 3060db7a81..df881a8954 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
@@ -147,7 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
index 27572dca04..72121bb040 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
@@ -9,6 +9,3 @@ $wb['add_new_record_txt'] = 'Vytvořit webové stránky';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
index 607f6a6558..3e9ce72e5c 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
@@ -9,6 +9,3 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
index 839c40ff4c..fd4cd0a002 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
@@ -129,6 +129,3 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
index 89341bde98..6fe2d6930d 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
@@ -6,6 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Subdoména';
 $wb['add_new_record_txt'] = 'Vytvořit poddoménu';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_webdav_user.lng b/interface/web/sites/lib/lang/cz_webdav_user.lng
index f12b429e5b..659cf3e8cc 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user.lng
@@ -19,6 +19,3 @@ $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/cz_webdav_user_list.lng b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
index 8d92b5fcb6..c424df16c6 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
@@ -6,6 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit WebDAV uživatele';
 ?>
-
-
-
diff --git a/interface/web/sites/lib/lang/dk.lng b/interface/web/sites/lib/lang/dk.lng
index a99760a66e..39974fef5d 100644
--- a/interface/web/sites/lib/lang/dk.lng
+++ b/interface/web/sites/lib/lang/dk.lng
@@ -31,5 +31,5 @@ $wb['Available packages'] = 'Tilgængelig pakker';
 $wb['Installed packages'] = 'Installeret pakker';
 $wb['Update Packagelist'] = 'Opdater Pakkeliste';
 $wb['Subdomain (Vhost)'] = 'Sub-domæne (Vhost)';
-$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.';
+$wb['error_proxy_requires_url'] = 'Omdiriger Type \\"proxy\\" requires a URL as the redirect path.';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_aps.lng b/interface/web/sites/lib/lang/dk_aps.lng
index 4a192ab286..8350875354 100644
--- a/interface/web/sites/lib/lang/dk_aps.lng
+++ b/interface/web/sites/lib/lang/dk_aps.lng
@@ -40,14 +40,14 @@ $wb['error_inv_main_location'] = 'Den oplyste installations mappe er ugyldig.';
 $wb['error_license_agreement'] = 'For at fortsætte skal du acceptere licensaftalen.';
 $wb['error_no_database_pw'] = 'Du har ikke oplyst en database adgangskode.';
 $wb['error_short_database_pw'] = 'Vælg en længer database adgangskode.';
-$wb['error_no_value_for'] = 'Feltet \"%s\" må ikke være tomt.';
-$wb['error_short_value_for'] = 'Feltet \"%s\" kræver en længere indtastnings værdi.';
-$wb['error_long_value_for'] = 'Feltet \"%s\" kræver en kortere indtastnings værdi.';
-$wb['error_inv_value_for'] = 'Du har indtastet en ugyldig værdi for feltet \"%s\".';
-$wb['error_inv_email_for'] = 'Du har indtastet en ugyldig mail adresse for feltet \"%s\".';
-$wb['error_inv_domain_for'] = 'Du har indtastet et ugyldigt domæne for feltet \"%s\".';
-$wb['error_inv_integer_for'] = 'Du har indtastet et ugyldigt tal for feltet \"%s\".';
-$wb['error_inv_float_for'] = 'Du har indtastet et ugyldigt floating point tal for feltet \"%s\".';
+$wb['error_no_value_for'] = 'Feltet \\"%s\\" må ikke være tomt.';
+$wb['error_short_value_for'] = 'Feltet \\"%s\\" kræver en længere indtastnings værdi.';
+$wb['error_long_value_for'] = 'Feltet \\"%s\\" kræver en kortere indtastnings værdi.';
+$wb['error_inv_value_for'] = 'Du har indtastet en ugyldig værdi for feltet \\"%s\\".';
+$wb['error_inv_email_for'] = 'Du har indtastet en ugyldig mail adresse for feltet \\"%s\\".';
+$wb['error_inv_domain_for'] = 'Du har indtastet et ugyldigt domæne for feltet \\"%s\\".';
+$wb['error_inv_integer_for'] = 'Du har indtastet et ugyldigt tal for feltet \\"%s\\".';
+$wb['error_inv_float_for'] = 'Du har indtastet et ugyldigt floating point tal for feltet \\"%s\\".';
 $wb['error_used_location'] = 'Installations stien indeholder allerede en pakke installation.';
 $wb['installation_task_txt'] = 'Installation planlagt';
 $wb['installation_error_txt'] = 'Installations fejl';
diff --git a/interface/web/sites/lib/lang/dk_backup_stats_list.lng b/interface/web/sites/lib/lang/dk_backup_stats_list.lng
index 0f3803f56a..65792aa591 100644
--- a/interface/web/sites/lib/lang/dk_backup_stats_list.lng
+++ b/interface/web/sites/lib/lang/dk_backup_stats_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb["list_head_txt"]       = 'Backup Stats';
-$wb["database_name_txt"]   = '';
-$wb['active_txt']          = 'Active';
-$wb['domain_txt']          = 'Domain';
-$wb['backup_count_txt']    = 'Backup count';
-$wb['backup_server_txt']   = 'Server';
+$wb['list_head_txt'] = 'Backup Stats';
+$wb['database_name_txt'] = '';
+$wb['active_txt'] = 'Active';
+$wb['domain_txt'] = 'Domain';
+$wb['backup_count_txt'] = 'Backup count';
+$wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Backupsize';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng b/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
index e1de70accf..4f92576007 100644
--- a/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb["database_txt"] = 'Database';
-$wb["server_name_txt"] = 'Server';
-$wb["client_txt"] = 'Client';
-$wb["used_txt"] = 'Used space';
-$wb["quota_txt"] = 'Quota';
-$wb["percentage_txt"] = 'Used in %';
+$wb['database_txt'] = 'Database';
+$wb['server_name_txt'] = 'Server';
+$wb['client_txt'] = 'Client';
+$wb['used_txt'] = 'Used space';
+$wb['quota_txt'] = 'Quota';
+$wb['percentage_txt'] = 'Used in %';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng
index 03894607db..e44025a715 100644
--- a/interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/dk_ftp_sites_stats_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb["list_head_txt"] = 'FTP traffic';
-$wb["domain_txt"] = 'Domain';
-$wb["this_month_txt"] = 'This month';
-$wb["last_month_txt"] = 'Last month';
-$wb["this_year_txt"] = 'This year';
-$wb["last_year_txt"] = 'Last year';
-$wb["sum_txt"] = 'Sum (Download + Upload)';
-$wb["in_out_txt"] = 'DL/UL';
-?>
\ No newline at end of file
+$wb['list_head_txt'] = 'FTP traffic';
+$wb['domain_txt'] = 'Domain';
+$wb['this_month_txt'] = 'This month';
+$wb['last_month_txt'] = 'Last month';
+$wb['this_year_txt'] = 'This year';
+$wb['last_year_txt'] = 'Last year';
+$wb['sum_txt'] = 'Sum (Download + Upload)';
+$wb['in_out_txt'] = 'DL/UL';
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng
index cd033ae573..19a11efdc4 100644
--- a/interface/web/sites/lib/lang/dk_web_childdomain.lng
+++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng
@@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'No redirect';
 $wb['no_flag_txt'] = 'No flag';
 $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['error_proxy_requires_url'] = 'Redirect Type "proxy" requires a URL as the redirect path.';
+$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.';
 $wb['backup_interval_txt'] = 'Backup interval';
 $wb['backup_copies_txt'] = 'Number of backup copies';
 $wb['ssl_key_txt'] = 'SSL Key';
diff --git a/interface/web/sites/lib/lang/dk_web_childdomain_list.lng b/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
index db6924956e..ad228802bf 100644
--- a/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
@@ -13,4 +13,3 @@ $wb['no_redirect_txt'] = 'No redirect';
 $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 ?>
-
diff --git a/interface/web/sites/lib/lang/dk_web_directive_snippets.lng b/interface/web/sites/lib/lang/dk_web_directive_snippets.lng
index fc74e4cf0c..d2590e53cf 100644
--- a/interface/web/sites/lib/lang/dk_web_directive_snippets.lng
+++ b/interface/web/sites/lib/lang/dk_web_directive_snippets.lng
@@ -1,3 +1,3 @@
 <?php
 $wb['directive_snippets_id_txt'] = 'Desired configuration';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_subdomain.lng b/interface/web/sites/lib/lang/dk_web_subdomain.lng
index 4fffd59365..c14a347263 100644
--- a/interface/web/sites/lib/lang/dk_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/dk_web_subdomain.lng
@@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Ingen redirect';
 $wb['no_flag_txt'] = 'Ingen flag';
 $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Tilgængelig Proxy Direktiv Kodestykker:';
-$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.';
+$wb['error_proxy_requires_url'] = 'Omdiriger Type \\"proxy\\" requires a URL as the redirect path.';
 $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
index 7e77d429a4..f556ac53ae 100644
--- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
@@ -20,7 +20,7 @@ $wb['parent_domain_id_txt'] = 'Parent Website';
 $wb['redirect_type_txt'] = 'Redirect Type';
 $wb['redirect_path_txt'] = 'Redirect Path';
 $wb['active_txt'] = 'Active';
-$wb['document_root_txt'] = 'Documentroot';
+$wb['document_root_txt'] = 'Document Root';
 $wb['system_user_txt'] = 'Linux User';
 $wb['system_group_txt'] = 'Linux Group';
 $wb['ip_address_txt'] = 'IPv4-Address';
@@ -132,18 +132,13 @@ $wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a diff
 $wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
 $wb['host_txt'] = 'Hostname';
 $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-$wb['variables_txt'] = 'Variables';
-$wb['backup_excludes_txt'] = 'Excluded Directories';
-$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
-$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
-$wb['btn_save_txt'] = "Save";
-$wb['btn_cancel_txt'] = "Cancel";
+$wb['btn_save_txt'] = 'Save';
+$wb['btn_cancel_txt'] = 'Cancel';
 $wb['enable_spdy_txt'] = 'Enable SPDY';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
-$wb["document_root_txt"] = "Document Root";
 $wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL';
 $wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS';
 $wb['password_strength_txt'] = 'Password strength';
@@ -152,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
index 0b3a969700..9d9a6512bd 100644
--- a/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
@@ -1,11 +1,11 @@
 <?php
-$wb["sys_groupid_txt"] = 'Client';
-$wb["list_head_txt"] = 'Websites';
-$wb["domain_id_txt"] = 'ID';
-$wb["active_txt"] = 'Active';
-$wb["server_id_txt"] = 'Server';
-$wb["domain_txt"] = 'Domain';
-$wb["add_new_record_txt"] = 'Add new website';
+$wb['sys_groupid_txt'] = 'Client';
+$wb['list_head_txt'] = 'Websites';
+$wb['domain_id_txt'] = 'ID';
+$wb['active_txt'] = 'Active';
+$wb['server_id_txt'] = 'Server';
+$wb['domain_txt'] = 'Domain';
+$wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
index 6477c9e1e6..30df597b9c 100644
--- a/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
@@ -8,5 +8,4 @@ $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
 $wb['parent_domain_id_txt'] = 'Website';
-
 ?>
diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain.lng b/interface/web/sites/lib/lang/el_web_vhost_domain.lng
index 9619fbac99..667e0bb6ec 100644
--- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng
index 5007c14a1f..8d890db4a4 100644
--- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
index 2fea8e61d7..22b75c84af 100644
--- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
index 81d05a57bf..9e88ec533f 100644
--- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
index 094b772ada..eac61086d5 100644
--- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
index 5ca74d6362..e7adff96e8 100644
--- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain.lng b/interface/web/sites/lib/lang/id_web_vhost_domain.lng
index f476fb92f3..b334c4f6a3 100644
--- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain.lng b/interface/web/sites/lib/lang/it_web_vhost_domain.lng
index eb33bde874..1b31e12c22 100644
--- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
index 6aa89eddaa..6a68440cd6 100644
--- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
index 6940d62c9e..9f384bb2f8 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Poort';
 $wb['https_port_txt'] = 'HTTPS Poort';
 $wb['http_port_error_regex'] = 'HTTP Poort niet correct.';
 $wb['https_port_error_regex'] = 'HTTPS Poort niet correct.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
index 74d4adda9d..e7556d430b 100644
--- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
index 4be0cb461c..183d9d9094 100644
--- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
index b782f9af82..0f26be9547 100644
--- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
index 5b0dda0e6e..a223e19603 100644
--- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain.lng b/interface/web/sites/lib/lang/se_web_vhost_domain.lng
index 3d6e6b3cf8..a43688f27e 100644
--- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
index 13569f79af..d95787116a 100644
--- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/tr.lng b/interface/web/sites/lib/lang/tr.lng
index 4f8620c34a..d0570f6c12 100644
--- a/interface/web/sites/lib/lang/tr.lng
+++ b/interface/web/sites/lib/lang/tr.lng
@@ -31,5 +31,5 @@ $wb['Available packages'] = 'Kullanılabilecek Paketler';
 $wb['Installed packages'] = 'Yüklü Paketler';
 $wb['Update Packagelist'] = 'Güncelleme Paketi Listesi';
 $wb['Subdomain (Vhost)'] = 'Alt alan adı (SSunucu)';
-$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.';
+$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_aps.lng b/interface/web/sites/lib/lang/tr_aps.lng
index 58bd945039..534ee020a7 100644
--- a/interface/web/sites/lib/lang/tr_aps.lng
+++ b/interface/web/sites/lib/lang/tr_aps.lng
@@ -40,14 +40,14 @@ $wb['error_inv_main_location'] = 'Yazdığınız yükleme konumunu klasörü ge
 $wb['error_license_agreement'] = 'Devam etmek için lisans anlaşmasını onaylamalısınız.';
 $wb['error_no_database_pw'] = 'Yazdığınız veritabanı parolası geçersiz.';
 $wb['error_short_database_pw'] = 'Lütfen daha uzun bir veritabanı parolası yazın.';
-$wb['error_no_value_for'] = '\"%s\" alanı boş olamaz.';
-$wb['error_short_value_for'] = '\"%s\" alanına daha uzun bir değer yazılmalıdır.';
-$wb['error_long_value_for'] = '\"%s\" alanına daha kısa bir değer yazılmalıdır.';
-$wb['error_inv_value_for'] = '\"%s\" alanına yazılan değer geçersiz.';
-$wb['error_inv_email_for'] = '\"%s\" alanına yazılan e-posta adresi geçersiz.';
-$wb['error_inv_domain_for'] = '\"%s\" alanına yazılan alan adı geçersiz.';
-$wb['error_inv_integer_for'] = '\"%s\" alanına yazılan sayı geçersiz.';
-$wb['error_inv_float_for'] = '\"%s\" alanına yazılan küsuratlı sayı geçersiz.';
+$wb['error_no_value_for'] = '\\"%s\\" alanı boş olamaz.';
+$wb['error_short_value_for'] = '\\"%s\\" alanına daha uzun bir değer yazılmalıdır.';
+$wb['error_long_value_for'] = '\\"%s\\" alanına daha kısa bir değer yazılmalıdır.';
+$wb['error_inv_value_for'] = '\\"%s\\" alanına yazılan değer geçersiz.';
+$wb['error_inv_email_for'] = '\\"%s\\" alanına yazılan e-posta adresi geçersiz.';
+$wb['error_inv_domain_for'] = '\\"%s\\" alanına yazılan alan adı geçersiz.';
+$wb['error_inv_integer_for'] = '\\"%s\\" alanına yazılan sayı geçersiz.';
+$wb['error_inv_float_for'] = '\\"%s\\" alanına yazılan küsuratlı sayı geçersiz.';
 $wb['error_used_location'] = 'Yükleme yoluna daha önce yüklenmiş bir paket var.';
 $wb['installation_task_txt'] = 'Yükleme planlandı';
 $wb['installation_error_txt'] = 'Yükleme hatası';
diff --git a/interface/web/sites/lib/lang/tr_web_subdomain.lng b/interface/web/sites/lib/lang/tr_web_subdomain.lng
index c6e28bc6fa..188b257589 100644
--- a/interface/web/sites/lib/lang/tr_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/tr_web_subdomain.lng
@@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Yönlendirme yok';
 $wb['no_flag_txt'] = 'İşaret yok';
 $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri';
 $wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:';
-$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.';
+$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.';
 $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
index 31ea0cb0e3..6bf33db68f 100644
--- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
@@ -147,4 +147,5 @@ $wb['http_port_txt'] = 'HTTP Port';
 $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
diff --git a/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
index 6049dfd80f..cff29d541a 100644
--- a/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
+++ b/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
@@ -6,6 +6,3 @@ $wb['password_strength_3_txt'] = 'Dobré';
 $wb['password_strength_4_txt'] = 'Silné';
 $wb['password_strength_5_txt'] = 'Velmi silné';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz.lng b/interface/web/tools/lib/lang/cz.lng
index 96d68ff1c8..66bcaf49ae 100644
--- a/interface/web/tools/lib/lang/cz.lng
+++ b/interface/web/tools/lib/lang/cz.lng
@@ -11,6 +11,3 @@ $wb['ISPConfig 3 mail'] = 'ISPConfig 3 vzdalený e-mail server';
 $wb['PDNS Tupa'] = 'PowerDNS Tupa';
 $wb['Interface'] = 'Rozhraní';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz_import_ispconfig.lng b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
index 23ae681167..8ebf71795c 100644
--- a/interface/web/tools/lib/lang/cz_import_ispconfig.lng
+++ b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
@@ -21,6 +21,3 @@ $wb['import_forward_txt'] = 'Import forward';
 $wb['import_user_filter_txt'] = 'Importovat uživatelský filter';
 $wb['import_spamfilter_txt'] = 'Importovat spamový filter';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz_import_vpopmail.lng b/interface/web/tools/lib/lang/cz_import_vpopmail.lng
index 6f1fefa86f..c9a9cb32c4 100644
--- a/interface/web/tools/lib/lang/cz_import_vpopmail.lng
+++ b/interface/web/tools/lib/lang/cz_import_vpopmail.lng
@@ -5,6 +5,3 @@ $wb['btn_start_txt'] = 'Start Import';
 $wb['btn_connect_txt'] = 'Connect to remote server';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz_index.lng b/interface/web/tools/lib/lang/cz_index.lng
index 22c8134fd8..5ebf1ec341 100644
--- a/interface/web/tools/lib/lang/cz_index.lng
+++ b/interface/web/tools/lib/lang/cz_index.lng
@@ -2,6 +2,3 @@
 $wb['page_head_txt'] = 'ISPConfig nástroje';
 $wb['page_desc_txt'] = 'Změna uživatelského nastavení';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz_interface.lng b/interface/web/tools/lib/lang/cz_interface.lng
index 581feca0ce..507b7c3cbe 100644
--- a/interface/web/tools/lib/lang/cz_interface.lng
+++ b/interface/web/tools/lib/lang/cz_interface.lng
@@ -5,6 +5,3 @@ $wb['language_txt'] = 'Jazyk';
 $wb['startmodule_txt'] = 'Výchozí modul po přihlášení';
 $wb['app_theme_txt'] = 'Výchozí grafické téma';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz_resync.lng b/interface/web/tools/lib/lang/cz_resync.lng
index ecb5a84eda..e8bf0027c3 100644
--- a/interface/web/tools/lib/lang/cz_resync.lng
+++ b/interface/web/tools/lib/lang/cz_resync.lng
@@ -47,6 +47,3 @@ $wb['do_mail_spamfilter_txt'] = 'Resynced Spamfilter';
 $wb['do_mailget_txt'] = 'Proběhla resynchronizace externího získávání e-mailů';
 $wb['resync_mailget_txt'] = 'Externí získávání e-mailů';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz_tpl_default.lng b/interface/web/tools/lib/lang/cz_tpl_default.lng
index 946633e530..0bc79e972f 100644
--- a/interface/web/tools/lib/lang/cz_tpl_default.lng
+++ b/interface/web/tools/lib/lang/cz_tpl_default.lng
@@ -5,6 +5,3 @@ $wb['no_settings_txt'] = 'Nejsou žádné nastavení pro výchozí motiv.';
 $wb['btn_start_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/cz_usersettings.lng b/interface/web/tools/lib/lang/cz_usersettings.lng
index 885a353a79..ab76b2261d 100644
--- a/interface/web/tools/lib/lang/cz_usersettings.lng
+++ b/interface/web/tools/lib/lang/cz_usersettings.lng
@@ -10,6 +10,3 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['password_txt'] = 'Heslo';
 ?>
-
-
-
diff --git a/interface/web/tools/lib/lang/dk_import_vpopmail.lng b/interface/web/tools/lib/lang/dk_import_vpopmail.lng
index 1e4dd281f7..66fe56da1c 100644
--- a/interface/web/tools/lib/lang/dk_import_vpopmail.lng
+++ b/interface/web/tools/lib/lang/dk_import_vpopmail.lng
@@ -4,5 +4,4 @@ $wb['legend_txt'] = 'Remote database server connection details';
 $wb['btn_start_txt'] = 'Start Import';
 $wb['btn_connect_txt'] = 'Connect to remote server';
 $wb['btn_cancel_txt'] = 'Cancel';
-
 ?>
diff --git a/interface/web/vm/lib/lang/cz.lng b/interface/web/vm/lib/lang/cz.lng
index 88b403dc50..556a593564 100644
--- a/interface/web/vm/lib/lang/cz.lng
+++ b/interface/web/vm/lib/lang/cz.lng
@@ -5,6 +5,3 @@ $wb['VM Templates'] = 'VM Å ablony';
 $wb['IP addresses'] = 'IP adresy';
 $wb['OpenVZ'] = 'OpenVZ';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_action.lng b/interface/web/vm/lib/lang/cz_openvz_action.lng
index 6073b0fa05..3e2e3e0b84 100644
--- a/interface/web/vm/lib/lang/cz_openvz_action.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_action.lng
@@ -14,6 +14,3 @@ $wb['ostemplate_name_error'] = 'The OSTemplate name conatains unallowed characte
 $wb['ostemplate_name_unique_error'] = 'There is already a OSTemplate with that name.';
 $wb['ostemplate_exec_txt'] = 'The command to create a OSTemplate has been sent to the host server. It will take several minutes until the OSTemplate has been created.';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_ip.lng b/interface/web/vm/lib/lang/cz_openvz_ip.lng
index f038e91c7b..e749c28648 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ip.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ip.lng
@@ -7,6 +7,3 @@ $wb['ip_error_wrong'] = 'Please fill in a valid IPv4 address.';
 $wb['ip_error_unique'] = 'This IP address does already exist.';
 $wb['IP address'] = 'IP adresa';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_ip_list.lng b/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
index e8d7171883..7778c6d8c7 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
@@ -5,6 +5,3 @@ $wb['ip_address_txt'] = 'IP adresa';
 $wb['reserved_txt'] = 'Rezervováno';
 $wb['vm_id_txt'] = 'VM';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng b/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
index fbe9c5c0b2..72838a20de 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
@@ -9,6 +9,3 @@ $wb['template_name_error_empty'] = 'Template name is empty.';
 $wb['template_file_error_empty'] = 'Template filename is empty.';
 $wb['Template'] = 'Å ablona';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
index e50fd9c550..7705a4d18f 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
@@ -6,6 +6,3 @@ $wb['server_id_txt'] = 'Server';
 $wb['allservers_txt'] = 'Exists on all servers';
 $wb['ostemplate_id_txt'] = 'ID';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_template.lng b/interface/web/vm/lib/lang/cz_openvz_template.lng
index 0af3295029..e54a2a9dbb 100644
--- a/interface/web/vm/lib/lang/cz_openvz_template.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_template.lng
@@ -95,6 +95,3 @@ $wb['custom_txt'] = 'Custom settings';
 $wb['custom_error'] = 'Not allowed in Custom settings: ';
 $wb['hostname_txt'] = 'Název hostitele';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_template_list.lng b/interface/web/vm/lib/lang/cz_openvz_template_list.lng
index 32eb54572d..89c11ef5d1 100644
--- a/interface/web/vm/lib/lang/cz_openvz_template_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_template_list.lng
@@ -3,6 +3,3 @@ $wb['list_head_txt'] = 'OpenVZ Virtual Machine Template';
 $wb['active_txt'] = 'Aktivní';
 $wb['template_name_txt'] = 'Název šablony';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_vm.lng b/interface/web/vm/lib/lang/cz_openvz_vm.lng
index 154c124718..7c610fbe04 100644
--- a/interface/web/vm/lib/lang/cz_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_vm.lng
@@ -43,6 +43,3 @@ $wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boo
 $wb['hostname_txt'] = 'Název hostitele';
 $wb['hostname_error_empty'] = 'Název hostitele je prázdný';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/cz_openvz_vm_list.lng b/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
index 56655e6f1d..c402181601 100644
--- a/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
@@ -8,6 +8,3 @@ $wb['ip_address_txt'] = 'IP adresa';
 $wb['veid_txt'] = 'VEID';
 $wb['hostname_txt'] = 'Název hostitele';
 ?>
-
-
-
diff --git a/interface/web/vm/lib/lang/dk_openvz_template.lng b/interface/web/vm/lib/lang/dk_openvz_template.lng
index 7016f41a67..9de4a6fd92 100644
--- a/interface/web/vm/lib/lang/dk_openvz_template.lng
+++ b/interface/web/vm/lib/lang/dk_openvz_template.lng
@@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'Total størrelse af TCP send buffere.';
 $wb['tcprcvbuf_desc_txt'] = 'Total størrelse af TCP modtage buffere.';
 $wb['othersockbuf_desc_txt'] = 'Total størrelse af UNIX-domæne sokel buffere, UDP og andre datagram protokoller send buffere.';
 $wb['dgramrcvbuf_desc_txt'] = 'Modtage buffere af UDP og andre datagram protokoller.';
-$wb['oomguarpages_desc_txt'] = 'Den garanterede mængde hukommelse for det tilfælde hukommelsen er \"over-booked\" (out-of-memory kill guarantee), i sider.';
+$wb['oomguarpages_desc_txt'] = 'Den garanterede mængde hukommelse for det tilfælde hukommelsen er \\"over-booked\\" (out-of-memory kill guarantee), i sider.';
 $wb['privvmpages_desc_txt'] = 'Hukommelses grænse tildeling, i sider.';
 $wb['lockedpages_desc_txt'] = 'Proces-sider uden tiladelse til at blive byttet ud (pages locked by mlock(2)).';
 $wb['shmpages_desc_txt'] = 'Total størrelse af delt hukommelse (IPC, delt anonyme afbildninger og tmpfs objekter), i sider.';
diff --git a/interface/web/vm/lib/lang/tr_openvz_template.lng b/interface/web/vm/lib/lang/tr_openvz_template.lng
index 2621212862..fb1452e885 100644
--- a/interface/web/vm/lib/lang/tr_openvz_template.lng
+++ b/interface/web/vm/lib/lang/tr_openvz_template.lng
@@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'TCP gönderme arabelleğinin toplam boyutu.';
 $wb['tcprcvbuf_desc_txt'] = 'TCP alma arabelleÄŸinin toplam boyutu.';
 $wb['othersockbuf_desc_txt'] = 'UNIX alan adı soket arabelleğinin toplam boyutu, UDP ve diğer datagram iletişim kuralları gönderme ara bellekleri.';
 $wb['dgramrcvbuf_desc_txt'] = 'UDP ve diğer datagram iletişim kuralları alma ara bellekleri.';
-$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\" (bellek bitti boşaltma garantisi).';
+$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\\" (bellek bitti boşaltma garantisi).';
 $wb['privvmpages_desc_txt'] = 'Bellek sayfası cinsinden ayrılacak bellek sınırı.';
 $wb['lockedpages_desc_txt'] = 'İşlem sayfaları takasına izin verilmez (mlock(2) ile kilitlenmiş sayfalar).';
 $wb['shmpages_desc_txt'] = 'Bellek sayfası cinsinden, paylaşılan belleğin toplam boyutu (IPC, paylaşılan anonim haritalama ve tmpfs nesneleri).';
-- 
GitLab


From 3cc18054fea8f0c3d29d8ac8e739c62b30a809f7 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 09:24:26 +0200
Subject: [PATCH 261/313] Fixed: #4219 [3.1dev] mysql_clientdb.conf - not found

---
 server/lib/classes/cron.d/500-backup.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php
index fc0619ee87..3f4e6b5e46 100644
--- a/server/lib/classes/cron.d/500-backup.inc.php
+++ b/server/lib/classes/cron.d/500-backup.inc.php
@@ -209,7 +209,7 @@ class cronjob_backup extends cronjob {
 				$records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND backup_interval != 'none' AND backup_interval != ''", $conf['server_id']);
 				if(is_array($records)) {
 
-					include 'lib/mysql_clientdb.conf';
+					include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf';
 
 					foreach($records as $rec) {
 
-- 
GitLab


From 966a2c2a53f98470915811cb1aede97386e85976 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 10:12:58 +0200
Subject: [PATCH 262/313] Disallow the creation of passwordless MySQL users
 trough ISPConfig. Related to #4205.

---
 interface/web/sites/database_user_edit.php        | 3 +++
 interface/web/sites/lib/lang/ar_database_user.lng | 1 +
 interface/web/sites/lib/lang/bg_database_user.lng | 1 +
 interface/web/sites/lib/lang/br_database_user.lng | 1 +
 interface/web/sites/lib/lang/ca_database_user.lng | 1 +
 interface/web/sites/lib/lang/cz_database_user.lng | 1 +
 interface/web/sites/lib/lang/de_database_user.lng | 1 +
 interface/web/sites/lib/lang/dk_database_user.lng | 1 +
 interface/web/sites/lib/lang/el_database_user.lng | 1 +
 interface/web/sites/lib/lang/en_database_user.lng | 1 +
 interface/web/sites/lib/lang/es_database_user.lng | 1 +
 interface/web/sites/lib/lang/fi_database_user.lng | 1 +
 interface/web/sites/lib/lang/fr_database_user.lng | 1 +
 interface/web/sites/lib/lang/hr_database_user.lng | 1 +
 interface/web/sites/lib/lang/hu_database_user.lng | 1 +
 interface/web/sites/lib/lang/id_database_user.lng | 1 +
 interface/web/sites/lib/lang/it_database_user.lng | 1 +
 interface/web/sites/lib/lang/ja_database_user.lng | 1 +
 interface/web/sites/lib/lang/nl_database_user.lng | 1 +
 interface/web/sites/lib/lang/pl_database_user.lng | 1 +
 interface/web/sites/lib/lang/pt_database_user.lng | 1 +
 interface/web/sites/lib/lang/ro_database_user.lng | 1 +
 interface/web/sites/lib/lang/ru_database_user.lng | 1 +
 interface/web/sites/lib/lang/se_database_user.lng | 1 +
 interface/web/sites/lib/lang/sk_database_user.lng | 1 +
 interface/web/sites/lib/lang/tr_database_user.lng | 1 +
 26 files changed, 28 insertions(+)

diff --git a/interface/web/sites/database_user_edit.php b/interface/web/sites/database_user_edit.php
index 1fec35c5f1..5224cc50a8 100644
--- a/interface/web/sites/database_user_edit.php
+++ b/interface/web/sites/database_user_edit.php
@@ -182,6 +182,9 @@ class page_action extends tform_actions {
 
 		//* Database username shall not be empty
 		if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'<br />';
+		
+		//* Database password shall not be empty
+		if($this->dataRecord['database_password'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_password_error_empty"].'<br />';
 
 		//* Get the database name and database user prefix
 		$app->uses('getconf,tools_sites');
diff --git a/interface/web/sites/lib/lang/ar_database_user.lng b/interface/web/sites/lib/lang/ar_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/ar_database_user.lng
+++ b/interface/web/sites/lib/lang/ar_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_database_user.lng b/interface/web/sites/lib/lang/bg_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/bg_database_user.lng
+++ b/interface/web/sites/lib/lang/bg_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_user.lng b/interface/web/sites/lib/lang/br_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/br_database_user.lng
+++ b/interface/web/sites/lib/lang/br_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_database_user.lng b/interface/web/sites/lib/lang/ca_database_user.lng
index ed143d572c..2b19491e96 100644
--- a/interface/web/sites/lib/lang/ca_database_user.lng
+++ b/interface/web/sites/lib/lang/ca_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 resultat';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_database_user.lng b/interface/web/sites/lib/lang/cz_database_user.lng
index 81c77a1a80..165bcf8ec0 100644
--- a/interface/web/sites/lib/lang/cz_database_user.lng
+++ b/interface/web/sites/lib/lang/cz_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 výsledků';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Hledat';
 $wb['globalsearch_suggestions_text_txt'] = 'Návrhy';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/de_database_user.lng b/interface/web/sites/lib/lang/de_database_user.lng
index 3c14f2723a..1fdd237fd8 100644
--- a/interface/web/sites/lib/lang/de_database_user.lng
+++ b/interface/web/sites/lib/lang/de_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 Treffer';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Suche';
 $wb['globalsearch_suggestions_text_txt'] = 'Vorschläge';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Datenbank-Passwort ist leer.';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_database_user.lng b/interface/web/sites/lib/lang/dk_database_user.lng
index 51110c772c..c915824e90 100644
--- a/interface/web/sites/lib/lang/dk_database_user.lng
+++ b/interface/web/sites/lib/lang/dk_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 resultater';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Søg';
 $wb['globalsearch_suggestions_text_txt'] = 'Forslag';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/el_database_user.lng b/interface/web/sites/lib/lang/el_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/el_database_user.lng
+++ b/interface/web/sites/lib/lang/el_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/en_database_user.lng b/interface/web/sites/lib/lang/en_database_user.lng
index 3f478f1a35..dee9ddb080 100644
--- a/interface/web/sites/lib/lang/en_database_user.lng
+++ b/interface/web/sites/lib/lang/en_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = "0 results";
 $wb['globalsearch_searchfield_watermark_txt'] = "Search";
 $wb['globalsearch_suggestions_text_txt'] = "Suggestions";
 $wb['limit_database_user_txt'] = "The max. number of database users is reached.";
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/es_database_user.lng b/interface/web/sites/lib/lang/es_database_user.lng
index eeea4bcabd..c1cd3ffa39 100644
--- a/interface/web/sites/lib/lang/es_database_user.lng
+++ b/interface/web/sites/lib/lang/es_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 resultados';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Buscar';
 $wb['globalsearch_suggestions_text_txt'] = 'Sugerencias';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_database_user.lng b/interface/web/sites/lib/lang/fi_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/fi_database_user.lng
+++ b/interface/web/sites/lib/lang/fi_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_database_user.lng b/interface/web/sites/lib/lang/fr_database_user.lng
index 95903514d7..376386a75a 100644
--- a/interface/web/sites/lib/lang/fr_database_user.lng
+++ b/interface/web/sites/lib/lang/fr_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_database_user.lng b/interface/web/sites/lib/lang/hr_database_user.lng
index 93f20936c5..825d685a09 100644
--- a/interface/web/sites/lib/lang/hr_database_user.lng
+++ b/interface/web/sites/lib/lang/hr_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 rezultata';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Traži';
 $wb['globalsearch_suggestions_text_txt'] = 'Sugestija';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_database_user.lng b/interface/web/sites/lib/lang/hu_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/hu_database_user.lng
+++ b/interface/web/sites/lib/lang/hu_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/id_database_user.lng b/interface/web/sites/lib/lang/id_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/id_database_user.lng
+++ b/interface/web/sites/lib/lang/id_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/it_database_user.lng b/interface/web/sites/lib/lang/it_database_user.lng
index 82051d944d..c0cb43b9d5 100644
--- a/interface/web/sites/lib/lang/it_database_user.lng
+++ b/interface/web/sites/lib/lang/it_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Cerca';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggerimenti';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_database_user.lng b/interface/web/sites/lib/lang/ja_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/ja_database_user.lng
+++ b/interface/web/sites/lib/lang/ja_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_database_user.lng b/interface/web/sites/lib/lang/nl_database_user.lng
index d23dec7388..cec8e7ac3f 100644
--- a/interface/web/sites/lib/lang/nl_database_user.lng
+++ b/interface/web/sites/lib/lang/nl_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 resultaten';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Zoeken';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggesties';
 $wb['limit_database_user_txt'] = 'Het max. aantal database gebruikers is bereikt.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_database_user.lng b/interface/web/sites/lib/lang/pl_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/pl_database_user.lng
+++ b/interface/web/sites/lib/lang/pl_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_database_user.lng b/interface/web/sites/lib/lang/pt_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/pt_database_user.lng
+++ b/interface/web/sites/lib/lang/pt_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_database_user.lng b/interface/web/sites/lib/lang/ro_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/ro_database_user.lng
+++ b/interface/web/sites/lib/lang/ro_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_database_user.lng b/interface/web/sites/lib/lang/ru_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/ru_database_user.lng
+++ b/interface/web/sites/lib/lang/ru_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/se_database_user.lng b/interface/web/sites/lib/lang/se_database_user.lng
index 1b2620f070..a1d349f9a3 100644
--- a/interface/web/sites/lib/lang/se_database_user.lng
+++ b/interface/web/sites/lib/lang/se_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 resultat';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Sök';
 $wb['globalsearch_suggestions_text_txt'] = 'Förslag';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_database_user.lng b/interface/web/sites/lib/lang/sk_database_user.lng
index d00aefe1f3..ab7b59f649 100644
--- a/interface/web/sites/lib/lang/sk_database_user.lng
+++ b/interface/web/sites/lib/lang/sk_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 results';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Search';
 $wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_database_user.lng b/interface/web/sites/lib/lang/tr_database_user.lng
index 2c03022973..785c4ecce4 100644
--- a/interface/web/sites/lib/lang/tr_database_user.lng
+++ b/interface/web/sites/lib/lang/tr_database_user.lng
@@ -21,4 +21,5 @@ $wb['globalsearch_noresults_limit_txt'] = '0 sonuç';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Arama';
 $wb['globalsearch_suggestions_text_txt'] = 'Öneriler';
 $wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
+$wb['database_password_error_empty'] = 'Database password is empty.';
 ?>
-- 
GitLab


From 28cf0d382401b857af9362639b286e9af06f7a0a Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 10:24:49 +0200
Subject: [PATCH 263/313] Fixed #4217 folder_directive_snippets default value.

---
 install/sql/incremental/upd_dev_collection.sql | 1 +
 install/sql/ispconfig3.sql                     | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index e69de29bb2..dc695b7a4a 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -0,0 +1 @@
+ALTER TABLE `web_domain` CHANGE `folder_directive_snippets` `folder_directive_snippets` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL;
\ No newline at end of file
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 615c8584a1..d9829ab669 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1985,7 +1985,7 @@ CREATE TABLE `web_domain` (
   `enable_pagespeed` ENUM('y','n') NOT NULL DEFAULT 'n',
   `http_port` int(11) unsigned NOT NULL DEFAULT '80',
   `https_port` int(11) unsigned NOT NULL DEFAULT '443',
-  `folder_directive_snippets` text NOT NULL,
+  `folder_directive_snippets` text,
   PRIMARY KEY  (`domain_id`),
   UNIQUE KEY `serverdomain` (  `server_id` , `ip_address`,  `domain` )
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- 
GitLab


From 544e857d3083b5ea2cf2b4a40da1e05129a8eb9f Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 11:16:21 +0200
Subject: [PATCH 264/313] #4218 Show full client name in domain list.

---
 interface/web/client/list/domain.list.php | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/interface/web/client/list/domain.list.php b/interface/web/client/list/domain.list.php
index 82c6772155..c6f221c53c 100644
--- a/interface/web/client/list/domain.list.php
+++ b/interface/web/client/list/domain.list.php
@@ -92,7 +92,8 @@ $liste["item"][] = array( 'field'  => "sys_groupid",
 	'prefix' => "",
 	'suffix' => "",
 	'datasource' => array (  'type' => 'SQL',
-		'querystring' => 'SELECT a.groupid, a.name FROM sys_group a, domain b WHERE (a.groupid = b.sys_groupid) AND ({AUTHSQL-B}) ORDER BY name',
+		//'querystring' => 'SELECT a.groupid, a.name FROM sys_group a, domain b WHERE (a.groupid = b.sys_groupid) AND ({AUTHSQL-B}) ORDER BY name',
+		'querystring' => "SELECT sys_group.groupid,CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), IF(client.contact_firstname != '', CONCAT(client.contact_firstname, ' '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as name FROM sys_group, client WHERE sys_group.groupid != 1 AND sys_group.client_id = client.client_id ORDER BY client.company_name, client.contact_name",
 		'keyfield'=> 'groupid',
 		'valuefield'=> 'name'
 	),
-- 
GitLab


From 2c3351e6657b827cfb2d1dcdfa0d9155b314a612 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 11:34:16 +0200
Subject: [PATCH 265/313] Fixed #4213 APS installer cosmetic error

---
 interface/web/sites/templates/aps_install_package.htm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/templates/aps_install_package.htm b/interface/web/sites/templates/aps_install_package.htm
index 31d62cbe6d..9dbd5817cf 100644
--- a/interface/web/sites/templates/aps_install_package.htm
+++ b/interface/web/sites/templates/aps_install_package.htm
@@ -47,7 +47,7 @@
             </div>
             <div class="form-group">
                 <label for="license" class="col-sm-3 control-label">{tmpl_var name='acceptance_txt'}</label>
-                <div class="col-sm-6"><input class="form-control" type="checkbox" name="license" id="license" <tmpl_if name='inp_license' op='==' value='true'></div><div class="col-sm-3 input-sm">checked</div></tmpl_if> />&nbsp;&nbsp;{tmpl_var name='acceptance_text'}
+                <div class="col-sm-6"><input type="checkbox" name="license" id="license" <tmpl_if name='inp_license' op='==' value='true'>checked</tmpl_if>/> &nbsp;&nbsp;{tmpl_var name='acceptance_text'}
             </div>
         
             
-- 
GitLab


From addf2aea00d9d3972bae7c080643225129f316af Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 11:47:16 +0200
Subject: [PATCH 266/313] #4212 Chown backup file to web user when it is made
 available.

---
 server/plugins-available/backup_plugin.inc.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php
index 9c7a835e2f..bc7ffa24ce 100644
--- a/server/plugins-available/backup_plugin.inc.php
+++ b/server/plugins-available/backup_plugin.inc.php
@@ -87,6 +87,7 @@ class backup_plugin {
 					if(file_exists($backup_dir.'/'.$backup['filename']) && file_exists($web['document_root'].'/backup/') && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) {
 						copy($backup_dir.'/'.$backup['filename'], $web['document_root'].'/backup/'.$backup['filename']);
 						chgrp($web['document_root'].'/backup/'.$backup['filename'], $web['system_group']);
+						chown($web['document_root'].'/backup/'.$backup['filename'], $web['system_user']);
 						chmod($web['document_root'].'/backup/'.$backup['filename'],0600);
 						$app->log('cp '.$backup_dir.'/'.$backup['filename'].' '.$web['document_root'].'/backup/'.$backup['filename'], LOGLEVEL_DEBUG);
 					}
-- 
GitLab


From e33b6afd07bad1bc445f1b90e113b1105df32662 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 13:33:45 +0200
Subject: [PATCH 267/313] Fixed #4209 Headlines missing or inconsistent

---
 interface/web/admin/templates/server_ip_map_list.htm          | 4 +++-
 interface/web/dns/templates/dns_import.htm                    | 4 +---
 interface/web/help/templates/faq_manage_questions_list.htm    | 2 +-
 interface/web/sites/lib/lang/ar_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/ar_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/ar_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/ar_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/bg_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/bg_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/bg_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/bg_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/br_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/br_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/br_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/br_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/ca_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/ca_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/ca_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/ca_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/cz_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/cz_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/de_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/de_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/de_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/de_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/dk_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/dk_web_childdomain.lng           | 2 +-
 interface/web/sites/lib/lang/dk_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/el_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/el_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/el_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/el_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/en_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/en_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/en_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/en_web_vhost_domain_list.lng     | 4 +++-
 interface/web/sites/lib/lang/es_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/es_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/es_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/es_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/fi_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/fi_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/fi_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/fi_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/fr_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/fr_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/fr_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/fr_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/hr_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/hr_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/hr_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/hr_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/hu_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/hu_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/hu_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/hu_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/id_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/id_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/id_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/id_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/it_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/it_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/it_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/it_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/ja_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/ja_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/ja_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/ja_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/nl_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/nl_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/pl_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/pl_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/pl_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/pl_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/pt_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/pt_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/pt_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/pt_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/ro_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/ro_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/ro_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/ro_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/ru_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/ru_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/ru_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/ru_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/se_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/se_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/se_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/se_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/sk_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/sk_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/sk_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/sk_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/lib/lang/tr_database_quota_stats_list.lng | 1 +
 interface/web/sites/lib/lang/tr_web_childdomain_list.lng      | 2 ++
 .../web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng     | 3 +++
 interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng     | 3 +++
 interface/web/sites/templates/aps_install_package.htm         | 4 ++--
 interface/web/sites/templates/aps_instances_list.htm          | 2 +-
 interface/web/sites/templates/aps_packagedetails_show.htm     | 4 ++--
 interface/web/sites/templates/aps_packages_list.htm           | 2 +-
 interface/web/tools/lib/lang/en_usersettings.lng              | 2 +-
 interface/web/tools/templates/dns_import_tupa.htm             | 2 +-
 110 files changed, 239 insertions(+), 15 deletions(-)

diff --git a/interface/web/admin/templates/server_ip_map_list.htm b/interface/web/admin/templates/server_ip_map_list.htm
index 2956f0be79..a186e49b03 100644
--- a/interface/web/admin/templates/server_ip_map_list.htm
+++ b/interface/web/admin/templates/server_ip_map_list.htm
@@ -1,4 +1,6 @@
-<div class='page-header'></div>
+<div class='page-header'>
+	<h1><tmpl_var name="list_head_txt"></h1>
+</div>
 <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p>
 <button class="btn btn-default formbutton-success" type="button" data-load-content="admin/server_ip_map_edit.php">{tmpl_var name="add_new_record_txt"}</button>
 <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p>
diff --git a/interface/web/dns/templates/dns_import.htm b/interface/web/dns/templates/dns_import.htm
index aa9346cad0..87d54316f3 100644
--- a/interface/web/dns/templates/dns_import.htm
+++ b/interface/web/dns/templates/dns_import.htm
@@ -1,10 +1,8 @@
 <div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
+	<h1><tmpl_var name="zone_file_import_txt"></h1>
 </div>
 <p><tmpl_var name="list_desc_txt"></p>
 
-
-        <legend><tmpl_var name="zone_file_import_txt"></legend>
             <tmpl_if name="is_admin">
                 <div class="form-group">
                     <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
diff --git a/interface/web/help/templates/faq_manage_questions_list.htm b/interface/web/help/templates/faq_manage_questions_list.htm
index 7659d39092..a29d0f06d0 100644
--- a/interface/web/help/templates/faq_manage_questions_list.htm
+++ b/interface/web/help/templates/faq_manage_questions_list.htm
@@ -1,4 +1,4 @@
-<h2>{tmpl_var name="faq_faq_questions_txt"}</h2>
+<h1>{tmpl_var name="faq_faq_questions_txt"}</h1>
 
         <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p>
             
diff --git a/interface/web/sites/lib/lang/ar_database_quota_stats_list.lng b/interface/web/sites/lib/lang/ar_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/ar_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/ar_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/ar_web_childdomain_list.lng b/interface/web/sites/lib/lang/ar_web_childdomain_list.lng
index 2db2e12bd6..1ce49ba1be 100644
--- a/interface/web/sites/lib/lang/ar_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/ar_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain_admin_list.lng
index 5ade141cb7..c8f7cfe4c0 100644
--- a/interface/web/sites/lib/lang/ar_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/ar_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Alan Adı';
 $wb['add_new_record_txt'] = 'Web Sitesi Ekle';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain_list.lng
index 206e76276c..f7c264ce47 100644
--- a/interface/web/sites/lib/lang/ar_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/ar_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Add new website';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_database_quota_stats_list.lng b/interface/web/sites/lib/lang/bg_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/bg_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/bg_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_web_childdomain_list.lng b/interface/web/sites/lib/lang/bg_web_childdomain_list.lng
index 202de8d396..26d6c48810 100644
--- a/interface/web/sites/lib/lang/bg_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/bg_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain_admin_list.lng
index b34ccbeeb6..fde5208f2f 100644
--- a/interface/web/sites/lib/lang/bg_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/bg_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Домейн';
 $wb['add_new_record_txt'] = 'Добави нов сайт';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain_list.lng
index 20b8d846b6..2ddd7055de 100644
--- a/interface/web/sites/lib/lang/bg_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/bg_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Нов сайт';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_childdomain_list.lng b/interface/web/sites/lib/lang/br_web_childdomain_list.lng
index d3d2c2fd32..a9de22f34e 100644
--- a/interface/web/sites/lib/lang/br_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'Em Branco';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng
index 2c80f023fa..f6456c6f62 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Adcionar um novo site';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_database_quota_stats_list.lng b/interface/web/sites/lib/lang/ca_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/ca_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/ca_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_web_childdomain_list.lng b/interface/web/sites/lib/lang/ca_web_childdomain_list.lng
index ad228802bf..f06935bf0e 100644
--- a/interface/web/sites/lib/lang/ca_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/ca_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['domain_error_regex'] = 'Domain name invalid.';
 $wb['no_redirect_txt'] = 'No redirect';
 $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/ca_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/ca_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain_list.lng
index 206e76276c..f7c264ce47 100644
--- a/interface/web/sites/lib/lang/ca_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/ca_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Add new website';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
index 3fcf8e5cf8..31e9eeedd7 100644
--- a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Klient';
 $wb['used_txt'] = 'Využité místo';
 $wb['quota_txt'] = 'Kvóta';
 $wb['percentage_txt'] = 'Využito v %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
index cae42bd466..ce5fb8fdd5 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'Žádný příznak';
 $wb['none_txt'] = 'Žádná';
 $wb['add_new_subdomain_txt'] = 'Vytvořit subdoménu';
 $wb['add_new_aliasdomain_txt'] = 'Vytvořit přezdívku domény';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
index 72121bb040..0e9dc6d00e 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webové stránky';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
index 3e9ce72e5c..5dee883a70 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/de_database_quota_stats_list.lng b/interface/web/sites/lib/lang/de_database_quota_stats_list.lng
index f9be70788d..3bc9874bf1 100644
--- a/interface/web/sites/lib/lang/de_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/de_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Kunde';
 $wb['used_txt'] = 'Verwendeter Speicherplatz';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Verbraucht in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/de_web_childdomain_list.lng b/interface/web/sites/lib/lang/de_web_childdomain_list.lng
index 0513afe8d6..275b09080c 100644
--- a/interface/web/sites/lib/lang/de_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/de_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'Keine Optionen';
 $wb['none_txt'] = 'Keine';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/de_web_vhost_domain_admin_list.lng
index 70242c9aab..087137baef 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Neue Webseite hinzufügen';
 $wb['add_new_subdomain_txt'] = 'Neue Subdomain hinzufügen';
 $wb['add_new_aliasdomain_txt'] = 'Neue Aliasdomain hinzufügen';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/de_web_vhost_domain_list.lng
index 3750834b64..9d48c3897f 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Neue Domain hinzufügen';
 $wb['add_new_subdomain_txt'] = 'Neue Subdomain hinzufügen';
 $wb['add_new_aliasdomain_txt'] = 'Neue Aliasdomain hinzufügen';
 $wb['parent_domain_id_txt'] = 'Webseite';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng b/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/dk_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng
index 19a11efdc4..6ff34de1a4 100644
--- a/interface/web/sites/lib/lang/dk_web_childdomain.lng
+++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng
@@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'No redirect';
 $wb['no_flag_txt'] = 'No flag';
 $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.';
+$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
 $wb['backup_interval_txt'] = 'Backup interval';
 $wb['backup_copies_txt'] = 'Number of backup copies';
 $wb['ssl_key_txt'] = 'SSL Key';
diff --git a/interface/web/sites/lib/lang/dk_web_childdomain_list.lng b/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
index ad228802bf..f06935bf0e 100644
--- a/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/dk_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['domain_error_regex'] = 'Domain name invalid.';
 $wb['no_redirect_txt'] = 'No redirect';
 $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
index 30df597b9c..bf5415e4e5 100644
--- a/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
 $wb['parent_domain_id_txt'] = 'Website';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/el_database_quota_stats_list.lng b/interface/web/sites/lib/lang/el_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/el_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/el_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/el_web_childdomain_list.lng b/interface/web/sites/lib/lang/el_web_childdomain_list.lng
index 577d60d0bf..8c91119038 100644
--- a/interface/web/sites/lib/lang/el_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/el_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'Χωρίς σημαία';
 $wb['none_txt'] = 'Κανένα';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/el_web_vhost_domain_admin_list.lng
index c03020c498..acbaa658bb 100644
--- a/interface/web/sites/lib/lang/el_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/el_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Νέο website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/el_web_vhost_domain_list.lng
index 95a1993006..860add9e4a 100644
--- a/interface/web/sites/lib/lang/el_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/el_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Νέο website';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/en_database_quota_stats_list.lng b/interface/web/sites/lib/lang/en_database_quota_stats_list.lng
index e1de70accf..65cd7e3b09 100644
--- a/interface/web/sites/lib/lang/en_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/en_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb["client_txt"] = 'Client';
 $wb["used_txt"] = 'Used space';
 $wb["quota_txt"] = 'Quota';
 $wb["percentage_txt"] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/en_web_childdomain_list.lng b/interface/web/sites/lib/lang/en_web_childdomain_list.lng
index db6924956e..bd8be1a7e6 100644
--- a/interface/web/sites/lib/lang/en_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/en_web_childdomain_list.lng
@@ -12,5 +12,7 @@ $wb['domain_error_regex'] = 'Domain name invalid.';
 $wb['no_redirect_txt'] = 'No redirect';
 $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
 
diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/en_web_vhost_domain_admin_list.lng
index 0b3a969700..3c6657227b 100644
--- a/interface/web/sites/lib/lang/en_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/en_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb["domain_txt"] = 'Domain';
 $wb["add_new_record_txt"] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/en_web_vhost_domain_list.lng
index 6477c9e1e6..bf5415e4e5 100644
--- a/interface/web/sites/lib/lang/en_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/en_web_vhost_domain_list.lng
@@ -8,5 +8,7 @@ $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
 $wb['parent_domain_id_txt'] = 'Website';
-
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/es_database_quota_stats_list.lng b/interface/web/sites/lib/lang/es_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/es_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/es_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/es_web_childdomain_list.lng b/interface/web/sites/lib/lang/es_web_childdomain_list.lng
index d12c7911e1..4192acc183 100644
--- a/interface/web/sites/lib/lang/es_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/es_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'Sin marcador';
 $wb['none_txt'] = 'Ninguno';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/es_web_vhost_domain_admin_list.lng
index 94b585e434..f232fb2c69 100644
--- a/interface/web/sites/lib/lang/es_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/es_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Dominio';
 $wb['add_new_record_txt'] = 'Añadir sitio web';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/es_web_vhost_domain_list.lng
index fbce00981d..773a3b3407 100644
--- a/interface/web/sites/lib/lang/es_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/es_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Añadir sitio web';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_database_quota_stats_list.lng b/interface/web/sites/lib/lang/fi_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/fi_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/fi_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_web_childdomain_list.lng b/interface/web/sites/lib/lang/fi_web_childdomain_list.lng
index 0264fb6b08..d0dcf80f07 100755
--- a/interface/web/sites/lib/lang/fi_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/fi_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/fi_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/fi_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain_list.lng
index e38cdd92f7..5ddea77c3c 100755
--- a/interface/web/sites/lib/lang/fi_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/fi_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['domain_id_txt'] = 'Verkkotunnus';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_database_quota_stats_list.lng b/interface/web/sites/lib/lang/fr_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/fr_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/fr_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_web_childdomain_list.lng b/interface/web/sites/lib/lang/fr_web_childdomain_list.lng
index 38c57df30d..4d580ac432 100644
--- a/interface/web/sites/lib/lang/fr_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'Aucun flag';
 $wb['none_txt'] = 'Aucun';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain_admin_list.lng
index c28c585c1e..deb90a19bc 100644
--- a/interface/web/sites/lib/lang/fr_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domaine';
 $wb['add_new_record_txt'] = 'Ajouter un nouveau site';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain_list.lng
index 9bb89003b9..068716b912 100644
--- a/interface/web/sites/lib/lang/fr_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Nouveau site web';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_database_quota_stats_list.lng b/interface/web/sites/lib/lang/hr_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/hr_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/hr_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_web_childdomain_list.lng b/interface/web/sites/lib/lang/hr_web_childdomain_list.lng
index 4a296acc48..a03d31256f 100644
--- a/interface/web/sites/lib/lang/hr_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/hr_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'Bez označavanja';
 $wb['none_txt'] = 'Ništa';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain_admin_list.lng
index b7c47d381e..4402ae1403 100644
--- a/interface/web/sites/lib/lang/hr_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/hr_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domena';
 $wb['add_new_record_txt'] = 'Dodaj novu web stranicu';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain_list.lng
index 370f8c7399..2e615a05f0 100644
--- a/interface/web/sites/lib/lang/hr_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/hr_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Dodaj novu web stranicu';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_database_quota_stats_list.lng b/interface/web/sites/lib/lang/hu_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/hu_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/hu_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_web_childdomain_list.lng b/interface/web/sites/lib/lang/hu_web_childdomain_list.lng
index 5a7ac9e176..4aafde7466 100644
--- a/interface/web/sites/lib/lang/hu_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/hu_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain_admin_list.lng
index 6dd520650e..d5af2d7332 100644
--- a/interface/web/sites/lib/lang/hu_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/hu_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Új webhely';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain_list.lng
index 239640d7e3..5cd49d521e 100644
--- a/interface/web/sites/lib/lang/hu_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/hu_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Új Webhely';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/id_database_quota_stats_list.lng b/interface/web/sites/lib/lang/id_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/id_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/id_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/id_web_childdomain_list.lng b/interface/web/sites/lib/lang/id_web_childdomain_list.lng
index 28fd89cc73..a843017749 100644
--- a/interface/web/sites/lib/lang/id_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/id_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/id_web_vhost_domain_admin_list.lng
index 97bfcc60be..93925ea094 100644
--- a/interface/web/sites/lib/lang/id_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/id_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Tambah Situs Web Baru';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/id_web_vhost_domain_list.lng
index 69226aa664..82927ffd0b 100644
--- a/interface/web/sites/lib/lang/id_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/id_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Tambah Situs Web Baru';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/it_database_quota_stats_list.lng b/interface/web/sites/lib/lang/it_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/it_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/it_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/it_web_childdomain_list.lng b/interface/web/sites/lib/lang/it_web_childdomain_list.lng
index e0a22db996..520c81d655 100644
--- a/interface/web/sites/lib/lang/it_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/it_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/it_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/it_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/it_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/it_web_vhost_domain_list.lng
index 7d0e8ba5bd..b1ce2136c2 100644
--- a/interface/web/sites/lib/lang/it_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/it_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Aggiungi nuovo sito';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_database_quota_stats_list.lng b/interface/web/sites/lib/lang/ja_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/ja_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/ja_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_web_childdomain_list.lng b/interface/web/sites/lib/lang/ja_web_childdomain_list.lng
index 8e67cd9057..0ca4ef07ce 100644
--- a/interface/web/sites/lib/lang/ja_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/ja_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/ja_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/ja_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain_list.lng
index d5d1777d04..0ba0bb4f4b 100644
--- a/interface/web/sites/lib/lang/ja_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/ja_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'ウェブサイトを追加する';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng b/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng
index e22d52d27b..0fade0df4b 100644
--- a/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/nl_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Klant';
 $wb['used_txt'] = 'Gebruikte ruimte';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Gebruikt in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_childdomain_list.lng b/interface/web/sites/lib/lang/nl_web_childdomain_list.lng
index 2a4a63dc91..364ccad7ac 100644
--- a/interface/web/sites/lib/lang/nl_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng
index bfa25cd689..3640ca4616 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domein';
 $wb['add_new_record_txt'] = 'Toevoegen nieuwe website';
 $wb['add_new_subdomain_txt'] = 'Toevoegen nieuw subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Toevoegen nieuw aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng
index f619301782..0d3143f5c1 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Toevoegen nieuwe website';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Toevoegen nieuw subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Toevoegen nieuw aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_database_quota_stats_list.lng b/interface/web/sites/lib/lang/pl_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/pl_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/pl_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_web_childdomain_list.lng b/interface/web/sites/lib/lang/pl_web_childdomain_list.lng
index b7a604f08e..011a1232e2 100644
--- a/interface/web/sites/lib/lang/pl_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/pl_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'Bez flagi';
 $wb['none_txt'] = 'Brak';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain_admin_list.lng
index ff4260cfe7..03898b2d32 100644
--- a/interface/web/sites/lib/lang/pl_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/pl_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domena';
 $wb['add_new_record_txt'] = 'Dodaj nowÄ… stronÄ™';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain_list.lng
index b9619c68ab..b8bbf7436a 100644
--- a/interface/web/sites/lib/lang/pl_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/pl_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Dodaj nowÄ… stronÄ™';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_database_quota_stats_list.lng b/interface/web/sites/lib/lang/pt_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/pt_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/pt_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_web_childdomain_list.lng b/interface/web/sites/lib/lang/pt_web_childdomain_list.lng
index 08a077ae7d..e3fbef84be 100644
--- a/interface/web/sites/lib/lang/pt_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/pt_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/pt_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/pt_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain_list.lng
index 834b6b6ebe..d41099cd0a 100644
--- a/interface/web/sites/lib/lang/pt_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/pt_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Adicionar um novo site';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_database_quota_stats_list.lng b/interface/web/sites/lib/lang/ro_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/ro_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/ro_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_web_childdomain_list.lng b/interface/web/sites/lib/lang/ro_web_childdomain_list.lng
index fd1db522c6..502562a216 100644
--- a/interface/web/sites/lib/lang/ro_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/ro_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/ro_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/ro_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain_list.lng
index df1b81a2b5..a0dcd09699 100644
--- a/interface/web/sites/lib/lang/ro_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/ro_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Adauga un nou  website';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_database_quota_stats_list.lng b/interface/web/sites/lib/lang/ru_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/ru_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/ru_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_web_childdomain_list.lng b/interface/web/sites/lib/lang/ru_web_childdomain_list.lng
index bc380ac1ec..1cfd3f0cd2 100644
--- a/interface/web/sites/lib/lang/ru_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/ru_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/ru_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/ru_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain_list.lng
index 37c364a6d5..84a3d3e9b5 100644
--- a/interface/web/sites/lib/lang/ru_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/ru_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['domain_id_txt'] = 'ID';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/se_database_quota_stats_list.lng b/interface/web/sites/lib/lang/se_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/se_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/se_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/se_web_childdomain_list.lng b/interface/web/sites/lib/lang/se_web_childdomain_list.lng
index 2db2e12bd6..1ce49ba1be 100644
--- a/interface/web/sites/lib/lang/se_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/se_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/se_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/se_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/se_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/se_web_vhost_domain_list.lng
index 206e76276c..f7c264ce47 100644
--- a/interface/web/sites/lib/lang/se_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/se_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Add new website';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_database_quota_stats_list.lng b/interface/web/sites/lib/lang/sk_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/sk_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/sk_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_web_childdomain_list.lng b/interface/web/sites/lib/lang/sk_web_childdomain_list.lng
index 0bf87c4d40..f050030cd6 100644
--- a/interface/web/sites/lib/lang/sk_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/sk_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'No flag';
 $wb['none_txt'] = 'None';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/sk_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/sk_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain_list.lng
index c65b304540..23f3a9af56 100644
--- a/interface/web/sites/lib/lang/sk_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/sk_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['add_new_record_txt'] = 'Pridať novú doménu';
 $wb['parent_domain_id_txt'] = 'Website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng b/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng
index 4f92576007..50f2dcc496 100644
--- a/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng
@@ -5,4 +5,5 @@ $wb['client_txt'] = 'Client';
 $wb['used_txt'] = 'Used space';
 $wb['quota_txt'] = 'Quota';
 $wb['percentage_txt'] = 'Used in %';
+$wb['list_head_txt'] = 'Database Quota';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_childdomain_list.lng b/interface/web/sites/lib/lang/tr_web_childdomain_list.lng
index 472829d095..b02c6de64a 100644
--- a/interface/web/sites/lib/lang/tr_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_childdomain_list.lng
@@ -12,4 +12,6 @@ $wb['no_flag_txt'] = 'İşaret yok';
 $wb['none_txt'] = 'Yok';
 $wb['add_new_subdomain_txt'] = 'Add new Subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
+$wb['subdomain_list_head_txt'] = 'Subdomains';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng
index 9d9a6512bd..4f07fd8588 100644
--- a/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Domain';
 $wb['add_new_record_txt'] = 'Add new website';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng
index d91bc3d834..b7df7ed9d0 100644
--- a/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng
@@ -8,4 +8,7 @@ $wb['domain_txt'] = 'Alan Adı';
 $wb['add_new_record_txt'] = 'Web Sitesi Ekle';
 $wb['add_new_subdomain_txt'] = 'Add new subdomain';
 $wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
+$wb['domain_list_head_txt'] = 'Websites';
+$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
 ?>
diff --git a/interface/web/sites/templates/aps_install_package.htm b/interface/web/sites/templates/aps_install_package.htm
index 9dbd5817cf..d04d671534 100644
--- a/interface/web/sites/templates/aps_install_package.htm
+++ b/interface/web/sites/templates/aps_install_package.htm
@@ -1,11 +1,11 @@
-<h2>
+<h1>
     {tmpl_var name='installation_txt'}: {tmpl_var name='pkg_name'} {tmpl_var name='pkg_version'}-{tmpl_var name='pkg_release'}
     <span style="float:right">
         <tmpl_if name='pkg_icon' op='!=' value=''>
             <img src="{tmpl_var name='pkg_icon'}" height="32" width="32" alt="{tmpl_var name='pkg_name'}" style="vertical-align:text-bottom;" /> 
         </tmpl_if>
     </span>
-</h2>
+</h1>
     
 <tmpl_if name='error'>
     <div id="errorMsg"><h3>ERROR</h3><ol>{tmpl_var name='error'}</ol></div>
diff --git a/interface/web/sites/templates/aps_instances_list.htm b/interface/web/sites/templates/aps_instances_list.htm
index 75e28c4993..cfde591b19 100644
--- a/interface/web/sites/templates/aps_instances_list.htm
+++ b/interface/web/sites/templates/aps_instances_list.htm
@@ -1,4 +1,4 @@
-<h2>{tmpl_var name="list_head_txt"}</h2>
+<h1>{tmpl_var name="list_head_txt"}</h1>
 
 
         <p class="fieldset-legend">{tmpl_var name="list_head_txt"}</p>
diff --git a/interface/web/sites/templates/aps_packagedetails_show.htm b/interface/web/sites/templates/aps_packagedetails_show.htm
index 4a854058d8..9419617d74 100644
--- a/interface/web/sites/templates/aps_packagedetails_show.htm
+++ b/interface/web/sites/templates/aps_packagedetails_show.htm
@@ -1,9 +1,9 @@
-<h2>
+<h1>
     <tmpl_if name='pkg_icon' op='!=' value=''>
         <img src="{tmpl_var name='pkg_icon'}" height="32" width="32" alt="{tmpl_var name='pkg_name'}" style="vertical-align:text-bottom;" /> 
     </tmpl_if>
     {tmpl_var name='pkg_name'}
-</h2>
+</h1>
 <b>{tmpl_var name='pkg_summary'}</b>
 <p>&nbsp;</p>
 
diff --git a/interface/web/sites/templates/aps_packages_list.htm b/interface/web/sites/templates/aps_packages_list.htm
index c4a1c34e54..d3f3f8c3bb 100644
--- a/interface/web/sites/templates/aps_packages_list.htm
+++ b/interface/web/sites/templates/aps_packages_list.htm
@@ -1,4 +1,4 @@
-<h2>{tmpl_var name="list_head_txt"}</h2>
+<h1>{tmpl_var name="list_head_txt"}</h1>
 
 
         <p class="fieldset-legend">{tmpl_var name="list_head_txt"} ({tmpl_var name='package_count'})</p>
diff --git a/interface/web/tools/lib/lang/en_usersettings.lng b/interface/web/tools/lib/lang/en_usersettings.lng
index e882321058..79c7437cb1 100644
--- a/interface/web/tools/lib/lang/en_usersettings.lng
+++ b/interface/web/tools/lib/lang/en_usersettings.lng
@@ -3,7 +3,7 @@ $wb["password_txt"] = 'Password';
 $wb["password_strength_txt"] = 'Password strength';
 $wb["language_txt"] = 'Language';
 $wb["password_mismatch"] = 'The password in the second password field does not match the first password.';
-$wb["Form to edit the user password and language."] = 'Form to edit the user password and language.';
+$wb["Form to edit the user password and language."] = 'Form to edit the user password and language';
 $wb["Settings"] = 'Settings';
 $wb['generate_password_txt'] = 'Generate Password';
 $wb['repeat_password_txt'] = 'Repeat Password';
diff --git a/interface/web/tools/templates/dns_import_tupa.htm b/interface/web/tools/templates/dns_import_tupa.htm
index 6aadf711ee..2d37a6a041 100644
--- a/interface/web/tools/templates/dns_import_tupa.htm
+++ b/interface/web/tools/templates/dns_import_tupa.htm
@@ -1,4 +1,4 @@
-<h2><tmpl_var name="list_head_txt">Import DNS records from Tupa PowerDNS controlpanel</h2>
+<h1><tmpl_var name="list_head_txt">Import DNS records from Tupa PowerDNS controlpanel</h1>
 <p><tmpl_var name="list_desc_txt"></p>
 
 
-- 
GitLab


From 82f3c22eef2d521f4f7b64bd4f8b1f87ecf1e2ca Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 13:48:05 +0200
Subject: [PATCH 268/313] Fixed #4131 apps_vhost_plugin & socket with php5.6 or
 php7

---
 server/plugins-available/apps_vhost_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php
index d5d5dc8a9a..cf01df692d 100644
--- a/server/plugins-available/apps_vhost_plugin.inc.php
+++ b/server/plugins-available/apps_vhost_plugin.inc.php
@@ -169,7 +169,7 @@ class apps_vhost_plugin {
 			//$content = str_replace('{fpm_port}', $web_config['php_fpm_start_port']+1, $content);
 			$content = str_replace('{fpm_socket}', $fpm_socket, $content);
 			$content = str_replace('{cgi_socket}', $cgi_socket, $content);
-			if(file_exists('/var/run/php5-fpm.sock')){
+			if(file_exists('/var/run/php5-fpm.sock') || file_exists('/var/run/php/php7.0-fpm.sock')){
 				$use_tcp = '#';
 				$use_socket = '';
 			} else {
-- 
GitLab


From ce685056c360079f7c68df065f9be137e449e3ab Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 27 Sep 2016 14:05:58 +0200
Subject: [PATCH 269/313] Implemented #4091: Do not set cipher suites in
 website vhosts, neither nginx nor apache. The cipher suites are only set now
 for ISPConfig's own vhost, the intermediate security profile from Mozilla is
 used here.

---
 install/tpl/nginx_ispconfig.vhost.master | 2 ++
 server/conf/nginx_vhost.conf.master      | 3 ++-
 server/conf/vhost.conf.master            | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/install/tpl/nginx_ispconfig.vhost.master b/install/tpl/nginx_ispconfig.vhost.master
index c426e9d0fa..3c8bf5dbaf 100644
--- a/install/tpl/nginx_ispconfig.vhost.master
+++ b/install/tpl/nginx_ispconfig.vhost.master
@@ -5,6 +5,8 @@ server {
 		{ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt;
         {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key;
+        {ssl_comment}ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
+        {ssl_comment}ssl_prefer_server_ciphers on;
 		
 		# redirect to https if accessed with http
 		{ssl_comment}error_page 497 https://$host:{vhost_port}$request_uri;
diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index e2fd17bf06..1303f0b8cc 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -7,7 +7,8 @@ server {
 <tmpl_if name='ssl_enabled'>
         listen <tmpl_var name='ip_address'>:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};
 		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
-		ssl_ciphers EECDH+AESGCM:EDH+AESGCM:EECDH:EDH:!MD5:!RC4:!LOW:!MEDIUM:!CAMELLIA:!ECDSA:!DES:!DSS:!3DES:!NULL;
+		# ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
+		# ssl_prefer_server_ciphers on;
 <tmpl_if name='ipv6_enabled'>
         listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};
 </tmpl_if>
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index ed591c9e45..541133fc0d 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -55,7 +55,7 @@
 <tmpl_if name='ssl_enabled'>
 		SSLEngine on
 		SSLProtocol All -SSLv2 -SSLv3
-		SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
+		# SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
 		SSLHonorCipherOrder     on
 		# <IfModule mod_headers.c>
 		# Header always add Strict-Transport-Security "max-age=15768000"
-- 
GitLab


From a1f53751e4568998e5816213d5af1f4a47d827d0 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Tue, 27 Sep 2016 15:49:50 +0200
Subject: [PATCH 270/313] fixed placeholder

---
 interface/web/sites/templates/web_childdomain_advanced.htm | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/interface/web/sites/templates/web_childdomain_advanced.htm b/interface/web/sites/templates/web_childdomain_advanced.htm
index 0d83fb203e..1eac311824 100644
--- a/interface/web/sites/templates/web_childdomain_advanced.htm
+++ b/interface/web/sites/templates/web_childdomain_advanced.htm
@@ -7,9 +7,8 @@
     <legend>Options</legend>
       <div class="form-group proxy">
                 <label for="proxy_directives" class="col-sm-3 control-label">{tmpl_var name='proxy_directives_txt'}</label>
-                <div class="col-sm-9"><textarea class="form-control" name="proxy_directives" id="proxy_directives" rows='10' cols='50'>{tmpl_var name='proxy_directives'}</textarea></div>&nbsp;<b>{tmpl_var name="available_proxy_directive_snippets_txt"}</b><br><br>&nbsp;{tmpl_var name="proxy_directive_snippets_txt"}
-            </div>
-    
+				 <div class="col-sm-9"><textarea class="form-control" name="proxy_directives" id="proxy_directives" rows='10' cols='50'>{tmpl_var name='proxy_directives'}</textarea>&nbsp;<b>{tmpl_var name="available_proxy_directive_snippets_txt"}</b><br><br>&nbsp;{tmpl_var name="proxy_directive_snippets_txt"}
+            </div></div>
 
     <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
-- 
GitLab


From 10d68523b524a1f0072cfc55ef8e9044ac5081c8 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Wed, 28 Sep 2016 11:48:01 +0200
Subject: [PATCH 271/313] truncate sys_session during update

---
 install/lib/update.lib.php | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index 1bb0051d2d..89ad82e0e5 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -394,6 +394,9 @@ function updateDbAndIni() {
 	unset($old_ini_array);
 	unset($tpl_ini_array);
 	unset($new_ini);
+
+	// Truncate sys_session
+	$inst->db->query("TRUNCATE sys_session");
 }
 
 
-- 
GitLab


From a8279baa5edc400cf8fa0216d6acf169e5fb1885 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 28 Sep 2016 12:23:18 +0200
Subject: [PATCH 272/313] Write hhvm custom php.ini only when /etc/hhvm exists.

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 83d22615b9..46f08dbd30 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -3062,7 +3062,7 @@ class apache2_plugin {
 				// Make sure we only have Unix linebreaks
 				$custom_php_ini_settings = str_replace("\r\n", "\n", $custom_php_ini_settings);
 				$custom_php_ini_settings = str_replace("\r", "\n", $custom_php_ini_settings);
-				file_put_contents('/etc/hhvm/'.$data['new']['system_user'].'.ini', $custom_php_ini_settings);
+				if(@is_dir('/etc/hhvm')) file_put_contents('/etc/hhvm/'.$data['new']['system_user'].'.ini', $custom_php_ini_settings);
 			} else {
 				if($data['old']['system_user'] != '' && is_file('/etc/hhvm/'.$data['old']['system_user'].'.ini')) unlink('/etc/hhvm/'.$data['old']['system_user'].'.ini');
 			}
-- 
GitLab


From a8267b282873b42f964a6dbede944aa3e2dda5a3 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 28 Sep 2016 13:02:26 +0200
Subject: [PATCH 273/313] Updated cz language files.

---
 interface/lib/lang/cz.lng                     |  1 +
 interface/web/admin/lib/lang/cz.lng           |  1 +
 .../admin/lib/lang/cz_directive_snippets.lng  |  1 +
 .../lib/lang/cz_directive_snippets_list.lng   |  1 +
 interface/web/admin/lib/lang/cz_firewall.lng  |  1 +
 .../web/admin/lib/lang/cz_firewall_list.lng   |  1 +
 interface/web/admin/lib/lang/cz_groups.lng    |  1 +
 .../web/admin/lib/lang/cz_groups_list.lng     |  1 +
 interface/web/admin/lib/lang/cz_iptables.lng  |  1 +
 .../web/admin/lib/lang/cz_iptables_list.lng   |  1 +
 .../web/admin/lib/lang/cz_language_add.lng    |  1 +
 .../admin/lib/lang/cz_language_complete.lng   |  1 +
 .../web/admin/lib/lang/cz_language_edit.lng   |  1 +
 .../web/admin/lib/lang/cz_language_export.lng |  1 +
 .../web/admin/lib/lang/cz_language_import.lng |  1 +
 .../web/admin/lib/lang/cz_language_list.lng   |  1 +
 .../web/admin/lib/lang/cz_package_install.lng |  1 +
 .../web/admin/lib/lang/cz_remote_action.lng   |  1 +
 .../web/admin/lib/lang/cz_remote_user.lng     |  1 +
 .../admin/lib/lang/cz_remote_user_list.lng    |  1 +
 interface/web/admin/lib/lang/cz_server.lng    |  1 +
 .../web/admin/lib/lang/cz_server_config.lng   |  1 +
 .../admin/lib/lang/cz_server_config_list.lng  |  1 +
 interface/web/admin/lib/lang/cz_server_ip.lng |  1 +
 .../web/admin/lib/lang/cz_server_ip_list.lng  |  1 +
 .../web/admin/lib/lang/cz_server_ip_map.lng   |  1 +
 .../admin/lib/lang/cz_server_ip_map_list.lng  |  1 +
 .../web/admin/lib/lang/cz_server_list.lng     |  1 +
 .../web/admin/lib/lang/cz_server_php.lng      |  1 +
 .../web/admin/lib/lang/cz_server_php_list.lng |  3 ++-
 .../admin/lib/lang/cz_software_package.lng    |  1 +
 .../lib/lang/cz_software_package_install.lng  |  1 +
 .../lib/lang/cz_software_package_list.lng     |  1 +
 .../web/admin/lib/lang/cz_software_repo.lng   |  1 +
 .../admin/lib/lang/cz_software_repo_list.lng  |  1 +
 .../lib/lang/cz_software_update_list.lng      |  1 +
 .../web/admin/lib/lang/cz_system_config.lng   |  1 +
 .../admin/lib/lang/cz_tpl_default_admin.lng   |  1 +
 interface/web/admin/lib/lang/cz_users.lng     |  3 ++-
 .../web/admin/lib/lang/cz_users_list.lng      |  1 +
 interface/web/client/lib/lang/cz.lng          |  1 +
 interface/web/client/lib/lang/cz_client.lng   |  3 ++-
 .../web/client/lib/lang/cz_client_circle.lng  |  1 +
 .../client/lib/lang/cz_client_circle_list.lng |  1 +
 .../web/client/lib/lang/cz_client_del.lng     |  1 +
 .../web/client/lib/lang/cz_client_message.lng |  1 +
 .../lib/lang/cz_client_message_template.lng   |  1 +
 .../lang/cz_client_message_template_list.lng  |  1 +
 .../client/lib/lang/cz_client_template.lng    |  1 +
 .../lib/lang/cz_client_template_list.lng      |  1 +
 .../web/client/lib/lang/cz_clients_list.lng   |  1 +
 interface/web/client/lib/lang/cz_domain.lng   |  1 +
 .../web/client/lib/lang/cz_domain_list.lng    |  1 +
 interface/web/client/lib/lang/cz_reseller.lng |  3 ++-
 .../web/client/lib/lang/cz_resellers_list.lng |  1 +
 interface/web/dashboard/lib/lang/cz.lng       |  1 +
 .../lib/lang/cz_dashlet_customer.lng          |  1 +
 .../lib/lang/cz_dashlet_databasequota.lng     |  1 +
 .../dashboard/lib/lang/cz_dashlet_donate.lng  | 11 +++++----
 .../cz_dashlet_invoice_client_settings.lng    |  1 +
 .../lib/lang/cz_dashlet_invoices.lng          |  1 +
 .../dashboard/lib/lang/cz_dashlet_limits.lng  |  1 +
 .../lib/lang/cz_dashlet_mailquota.lng         |  1 +
 .../dashboard/lib/lang/cz_dashlet_modules.lng |  1 +
 .../lib/lang/cz_dashlet_products.lng          |  1 +
 .../dashboard/lib/lang/cz_dashlet_quota.lng   |  1 +
 .../dashboard/lib/lang/cz_dashlet_shop.lng    |  1 +
 interface/web/dns/lib/lang/cz.lng             |  1 +
 interface/web/dns/lib/lang/cz_dns_a.lng       |  3 ++-
 interface/web/dns/lib/lang/cz_dns_a_list.lng  |  1 +
 interface/web/dns/lib/lang/cz_dns_aaaa.lng    |  3 ++-
 interface/web/dns/lib/lang/cz_dns_alias.lng   |  3 ++-
 interface/web/dns/lib/lang/cz_dns_cname.lng   |  3 ++-
 interface/web/dns/lib/lang/cz_dns_dkim.lng    |  1 +
 interface/web/dns/lib/lang/cz_dns_dmarc.lng   |  1 +
 interface/web/dns/lib/lang/cz_dns_ds.lng      |  1 +
 interface/web/dns/lib/lang/cz_dns_hinfo.lng   |  3 ++-
 interface/web/dns/lib/lang/cz_dns_import.lng  |  1 +
 interface/web/dns/lib/lang/cz_dns_loc.lng     |  1 +
 interface/web/dns/lib/lang/cz_dns_mx.lng      |  3 ++-
 interface/web/dns/lib/lang/cz_dns_ns.lng      |  3 ++-
 interface/web/dns/lib/lang/cz_dns_ptr.lng     |  3 ++-
 interface/web/dns/lib/lang/cz_dns_rp.lng      |  3 ++-
 interface/web/dns/lib/lang/cz_dns_slave.lng   |  3 ++-
 .../dns/lib/lang/cz_dns_slave_admin_list.lng  |  1 +
 .../web/dns/lib/lang/cz_dns_slave_list.lng    |  1 +
 interface/web/dns/lib/lang/cz_dns_soa.lng     |  3 ++-
 .../dns/lib/lang/cz_dns_soa_admin_list.lng    |  1 +
 .../web/dns/lib/lang/cz_dns_soa_list.lng      |  1 +
 interface/web/dns/lib/lang/cz_dns_spf.lng     |  1 +
 interface/web/dns/lib/lang/cz_dns_srv.lng     |  1 +
 .../web/dns/lib/lang/cz_dns_template.lng      |  1 +
 .../web/dns/lib/lang/cz_dns_template_list.lng |  1 +
 interface/web/dns/lib/lang/cz_dns_tlsa.lng    |  1 +
 interface/web/dns/lib/lang/cz_dns_txt.lng     |  3 ++-
 interface/web/dns/lib/lang/cz_dns_wizard.lng  |  1 +
 interface/web/help/lib/lang/cz.lng            |  1 +
 interface/web/help/lib/lang/cz_faq_form.lng   |  1 +
 .../lib/lang/cz_faq_manage_questions_list.lng |  1 +
 .../help/lib/lang/cz_faq_sections_form.lng    |  1 +
 .../web/help/lib/lang/cz_help_faq_list.lng    |  1 +
 .../lib/lang/cz_help_faq_sections_list.lng    |  1 +
 .../web/help/lib/lang/cz_support_message.lng  |  1 +
 .../help/lib/lang/cz_support_message_list.lng |  1 +
 interface/web/login/lib/lang/cz_login_as.lng  |  3 ++-
 interface/web/mail/lib/lang/cz.lng            |  1 +
 .../mail/lib/lang/cz_backup_stats_list.lng    |  1 +
 interface/web/mail/lib/lang/cz_mail_alias.lng |  3 ++-
 .../web/mail/lib/lang/cz_mail_alias_list.lng  |  1 +
 .../web/mail/lib/lang/cz_mail_aliasdomain.lng |  3 ++-
 .../lib/lang/cz_mail_aliasdomain_list.lng     |  1 +
 .../web/mail/lib/lang/cz_mail_backup_list.lng |  1 +
 .../web/mail/lib/lang/cz_mail_blacklist.lng   |  3 ++-
 .../mail/lib/lang/cz_mail_blacklist_list.lng  |  1 +
 .../mail/lib/lang/cz_mail_content_filter.lng  |  1 +
 .../lib/lang/cz_mail_content_filter_list.lng  |  1 +
 .../web/mail/lib/lang/cz_mail_domain.lng      |  3 ++-
 .../lib/lang/cz_mail_domain_admin_list.lng    |  1 +
 .../mail/lib/lang/cz_mail_domain_catchall.lng |  3 ++-
 .../lib/lang/cz_mail_domain_catchall_list.lng |  1 +
 .../web/mail/lib/lang/cz_mail_domain_list.lng |  1 +
 .../web/mail/lib/lang/cz_mail_forward.lng     |  3 ++-
 .../mail/lib/lang/cz_mail_forward_list.lng    |  1 +
 interface/web/mail/lib/lang/cz_mail_get.lng   |  3 ++-
 .../web/mail/lib/lang/cz_mail_get_list.lng    |  1 +
 .../web/mail/lib/lang/cz_mail_mailinglist.lng |  1 +
 .../lib/lang/cz_mail_mailinglist_list.lng     |  1 +
 .../mail/lib/lang/cz_mail_relay_recipient.lng |  3 ++-
 .../lib/lang/cz_mail_relay_recipient_list.lng |  1 +
 .../web/mail/lib/lang/cz_mail_spamfilter.lng  |  1 +
 .../mail/lib/lang/cz_mail_spamfilter_list.lng |  1 +
 .../web/mail/lib/lang/cz_mail_transport.lng   |  3 ++-
 .../mail/lib/lang/cz_mail_transport_list.lng  |  1 +
 interface/web/mail/lib/lang/cz_mail_user.lng  |  5 ++--
 .../web/mail/lib/lang/cz_mail_user_filter.lng |  1 +
 .../lib/lang/cz_mail_user_filter_list.lng     |  1 +
 .../web/mail/lib/lang/cz_mail_user_list.lng   |  1 +
 .../mail/lib/lang/cz_mail_user_stats_list.lng |  1 +
 .../web/mail/lib/lang/cz_mail_whitelist.lng   |  3 ++-
 .../mail/lib/lang/cz_mail_whitelist_list.lng  |  1 +
 .../mail/lib/lang/cz_spamfilter_blacklist.lng |  3 ++-
 .../lib/lang/cz_spamfilter_blacklist_list.lng |  1 +
 .../mail/lib/lang/cz_spamfilter_config.lng    |  1 +
 .../lib/lang/cz_spamfilter_config_list.lng    |  1 +
 .../mail/lib/lang/cz_spamfilter_policy.lng    |  1 +
 .../lib/lang/cz_spamfilter_policy_list.lng    |  1 +
 .../web/mail/lib/lang/cz_spamfilter_users.lng |  1 +
 .../lib/lang/cz_spamfilter_users_list.lng     |  1 +
 .../mail/lib/lang/cz_spamfilter_whitelist.lng |  3 ++-
 .../lib/lang/cz_spamfilter_whitelist_list.lng |  1 +
 .../lib/lang/cz_user_quota_stats_list.lng     |  1 +
 .../web/mail/lib/lang/cz_xmpp_domain.lng      | 13 ++++++-----
 .../lib/lang/cz_xmpp_domain_admin_list.lng    |  1 +
 .../web/mail/lib/lang/cz_xmpp_domain_list.lng |  1 +
 interface/web/mail/lib/lang/cz_xmpp_user.lng  |  1 +
 .../web/mail/lib/lang/cz_xmpp_user_list.lng   |  1 +
 interface/web/mailuser/lib/lang/cz.lng        |  1 +
 interface/web/mailuser/lib/lang/cz_index.lng  |  1 +
 .../lib/lang/cz_mail_user_autoresponder.lng   |  1 +
 .../web/mailuser/lib/lang/cz_mail_user_cc.lng |  1 +
 .../mailuser/lib/lang/cz_mail_user_filter.lng |  1 +
 .../lib/lang/cz_mail_user_filter_list.lng     |  1 +
 .../lib/lang/cz_mail_user_password.lng        |  3 ++-
 .../lib/lang/cz_mail_user_spamfilter.lng      |  1 +
 interface/web/monitor/lib/lang/cz.lng         |  1 +
 .../web/monitor/lib/lang/cz_datalog_list.lng  |  1 +
 .../web/monitor/lib/lang/cz_syslog_list.lng   |  1 +
 interface/web/sites/lib/lang/cz.lng           |  1 +
 interface/web/sites/lib/lang/cz_aps.lng       |  1 +
 .../sites/lib/lang/cz_aps_instances_list.lng  |  1 +
 .../sites/lib/lang/cz_aps_packages_list.lng   |  1 +
 .../lib/lang/cz_aps_update_packagelist.lng    |  1 +
 .../sites/lib/lang/cz_backup_stats_list.lng   |  1 +
 interface/web/sites/lib/lang/cz_cron.lng      |  3 ++-
 interface/web/sites/lib/lang/cz_cron_list.lng |  1 +
 interface/web/sites/lib/lang/cz_database.lng  |  3 ++-
 .../sites/lib/lang/cz_database_admin_list.lng |  1 +
 .../web/sites/lib/lang/cz_database_list.lng   |  1 +
 .../lib/lang/cz_database_quota_stats_list.lng |  3 ++-
 .../web/sites/lib/lang/cz_database_user.lng   |  5 ++--
 .../lib/lang/cz_database_user_admin_list.lng  |  1 +
 .../sites/lib/lang/cz_database_user_list.lng  |  1 +
 .../lib/lang/cz_ftp_sites_stats_list.lng      |  1 +
 interface/web/sites/lib/lang/cz_ftp_user.lng  |  3 ++-
 .../web/sites/lib/lang/cz_ftp_user_list.lng   |  1 +
 .../web/sites/lib/lang/cz_shell_user.lng      |  1 +
 .../web/sites/lib/lang/cz_shell_user_list.lng |  1 +
 .../lib/lang/cz_user_quota_stats_list.lng     |  1 +
 .../web/sites/lib/lang/cz_web_aliasdomain.lng | 13 ++++++-----
 .../lib/lang/cz_web_aliasdomain_list.lng      |  3 ++-
 .../web/sites/lib/lang/cz_web_backup_list.lng |  1 +
 .../web/sites/lib/lang/cz_web_childdomain.lng | 23 ++++++++++---------
 .../lib/lang/cz_web_childdomain_list.lng      |  7 +++---
 .../lib/lang/cz_web_directive_snippets.lng    |  1 +
 .../web/sites/lib/lang/cz_web_domain.lng      |  9 ++++----
 .../lib/lang/cz_web_domain_admin_list.lng     |  1 +
 .../web/sites/lib/lang/cz_web_domain_list.lng |  1 +
 .../web/sites/lib/lang/cz_web_folder.lng      |  1 +
 .../web/sites/lib/lang/cz_web_folder_list.lng |  1 +
 .../web/sites/lib/lang/cz_web_folder_user.lng |  1 +
 .../lib/lang/cz_web_folder_user_list.lng      |  1 +
 .../lib/lang/cz_web_sites_stats_list.lng      |  1 +
 .../web/sites/lib/lang/cz_web_subdomain.lng   |  9 ++++----
 .../sites/lib/lang/cz_web_subdomain_list.lng  |  1 +
 .../sites/lib/lang/cz_web_vhost_domain.lng    | 11 +++++----
 .../lang/cz_web_vhost_domain_admin_list.lng   | 11 +++++----
 .../lib/lang/cz_web_vhost_domain_list.lng     | 11 +++++----
 .../sites/lib/lang/cz_web_vhost_subdomain.lng |  3 ++-
 .../lib/lang/cz_web_vhost_subdomain_list.lng  |  1 +
 .../web/sites/lib/lang/cz_webdav_user.lng     |  1 +
 .../sites/lib/lang/cz_webdav_user_list.lng    |  1 +
 .../lib/lang/cz_strengthmeter.lng             |  1 +
 interface/web/tools/lib/lang/cz.lng           |  1 +
 .../tools/lib/lang/cz_import_ispconfig.lng    |  1 +
 .../web/tools/lib/lang/cz_import_vpopmail.lng |  1 +
 interface/web/tools/lib/lang/cz_index.lng     |  1 +
 interface/web/tools/lib/lang/cz_interface.lng |  1 +
 interface/web/tools/lib/lang/cz_resync.lng    |  1 +
 .../web/tools/lib/lang/cz_tpl_default.lng     |  1 +
 .../web/tools/lib/lang/cz_usersettings.lng    |  1 +
 interface/web/vm/lib/lang/cz.lng              |  1 +
 .../web/vm/lib/lang/cz_openvz_action.lng      |  1 +
 interface/web/vm/lib/lang/cz_openvz_ip.lng    |  1 +
 .../web/vm/lib/lang/cz_openvz_ip_list.lng     |  1 +
 .../web/vm/lib/lang/cz_openvz_ostemplate.lng  |  1 +
 .../vm/lib/lang/cz_openvz_ostemplate_list.lng |  1 +
 .../web/vm/lib/lang/cz_openvz_template.lng    |  1 +
 .../vm/lib/lang/cz_openvz_template_list.lng   |  1 +
 interface/web/vm/lib/lang/cz_openvz_vm.lng    |  1 +
 .../web/vm/lib/lang/cz_openvz_vm_list.lng     |  1 +
 230 files changed, 324 insertions(+), 94 deletions(-)

diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index 65b7999368..c943c23a12 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -153,3 +153,4 @@ $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
 $wb['select_directive_snippet_txt'] = 'Directive Snippets';
 $wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz.lng b/interface/web/admin/lib/lang/cz.lng
index 6a6b8aafdd..f6b0611ed9 100644
--- a/interface/web/admin/lib/lang/cz.lng
+++ b/interface/web/admin/lib/lang/cz.lng
@@ -50,3 +50,4 @@ $wb['Directive Snippets'] = 'Directive Snippets';
 $wb['Sites'] = 'Stránky';
 $wb['DNS'] = 'DNS';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets.lng b/interface/web/admin/lib/lang/cz_directive_snippets.lng
index 08c321037b..df92a02f84 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets.lng
@@ -10,3 +10,4 @@ $wb['variables_txt'] = 'Proměnné';
 $wb['customer_viewable_txt'] = 'Customer viewable';
 $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_directive_snippets_list.lng b/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
index e31d707941..d580edb21b 100644
--- a/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
+++ b/interface/web/admin/lib/lang/cz_directive_snippets_list.lng
@@ -6,3 +6,4 @@ $wb['type_txt'] = 'Verze';
 $wb['add_new_record_txt'] = 'Add Directive Snippet';
 $wb['customer_viewable_txt'] = 'Customer viewable';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_firewall.lng b/interface/web/admin/lib/lang/cz_firewall.lng
index c6146ae93d..abe744f065 100644
--- a/interface/web/admin/lib/lang/cz_firewall.lng
+++ b/interface/web/admin/lib/lang/cz_firewall.lng
@@ -9,3 +9,4 @@ $wb['firewall_error_unique'] = 'Pro tento server již existuje záznam firewallu
 $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolené symboly jsou čísla, : a ,.';
 $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_firewall_list.lng b/interface/web/admin/lib/lang/cz_firewall_list.lng
index c350ddc418..a74ba7a2ac 100644
--- a/interface/web/admin/lib/lang/cz_firewall_list.lng
+++ b/interface/web/admin/lib/lang/cz_firewall_list.lng
@@ -6,3 +6,4 @@ $wb['tcp_port_txt'] = 'Otevřené TCP porty';
 $wb['udp_port_txt'] = 'Otevřené UDP porty';
 $wb['add_new_record_txt'] = 'Vytvořit záznam';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_groups.lng b/interface/web/admin/lib/lang/cz_groups.lng
index a6281be247..b7bb634f5e 100644
--- a/interface/web/admin/lib/lang/cz_groups.lng
+++ b/interface/web/admin/lib/lang/cz_groups.lng
@@ -3,3 +3,4 @@ $wb['description_txt'] = 'Popis';
 $wb['name_txt'] = 'Skupina';
 $wb['name_err'] = 'Skupina musí mít min. 1, max. 30 znaků.';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_groups_list.lng b/interface/web/admin/lib/lang/cz_groups_list.lng
index e66a41aac8..ade5a36ae0 100644
--- a/interface/web/admin/lib/lang/cz_groups_list.lng
+++ b/interface/web/admin/lib/lang/cz_groups_list.lng
@@ -5,3 +5,4 @@ $wb['name_txt'] = 'Skupina';
 $wb['add_new_record_txt'] = 'Vytvořit skupinu';
 $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelý nebo skupin zde může způsobit ztrátu dat!';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_iptables.lng b/interface/web/admin/lib/lang/cz_iptables.lng
index a40fc0490f..b7d736e15d 100644
--- a/interface/web/admin/lib/lang/cz_iptables.lng
+++ b/interface/web/admin/lib/lang/cz_iptables.lng
@@ -11,3 +11,4 @@ $wb['source_ip_txt'] = 'Zdrojové adresy';
 $wb['active_txt'] = 'Aktivní';
 $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_iptables_list.lng b/interface/web/admin/lib/lang/cz_iptables_list.lng
index 65cef7507e..02177f6d99 100644
--- a/interface/web/admin/lib/lang/cz_iptables_list.lng
+++ b/interface/web/admin/lib/lang/cz_iptables_list.lng
@@ -13,3 +13,4 @@ $wb['source_ip_txt'] = 'Zdrojové adresy';
 $wb['active_txt'] = 'Aktivní';
 $wb['iptables_error_unique'] = 'Stejný záznam pro firewall je již na tomto serveru použit.';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_language_add.lng b/interface/web/admin/lib/lang/cz_language_add.lng
index 21dcf62949..76645e5bc9 100644
--- a/interface/web/admin/lib/lang/cz_language_add.lng
+++ b/interface/web/admin/lib/lang/cz_language_add.lng
@@ -6,3 +6,4 @@ $wb['language_new_hint_txt'] = '2 znakové ISO 639-1 jazykové kódy (Viz: http:
 $wb['btn_save_txt'] = 'Vytvořit novou jazykovou sadu souborů';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_language_complete.lng b/interface/web/admin/lib/lang/cz_language_complete.lng
index e63b3301f2..cf5eecb45e 100644
--- a/interface/web/admin/lib/lang/cz_language_complete.lng
+++ b/interface/web/admin/lib/lang/cz_language_complete.lng
@@ -5,3 +5,4 @@ $wb['language_select_txt'] = 'Vybrat jazyk k doplnění';
 $wb['btn_save_txt'] = 'Sloučit / doplnit jazykový soubor';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_language_edit.lng b/interface/web/admin/lib/lang/cz_language_edit.lng
index 3efa7e3037..4157dfaee7 100644
--- a/interface/web/admin/lib/lang/cz_language_edit.lng
+++ b/interface/web/admin/lib/lang/cz_language_edit.lng
@@ -6,3 +6,4 @@ $wb['lang_file_txt'] = 'Jazykový soubor';
 $wb['btn_save_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_language_export.lng b/interface/web/admin/lib/lang/cz_language_export.lng
index e02f861738..062a45af9d 100644
--- a/interface/web/admin/lib/lang/cz_language_export.lng
+++ b/interface/web/admin/lib/lang/cz_language_export.lng
@@ -4,3 +4,4 @@ $wb['language_select_txt'] = 'Vybrat jazykovou sadu';
 $wb['btn_save_txt'] = 'Uložit vybranou jazykovou sadu do souboru';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_language_import.lng b/interface/web/admin/lib/lang/cz_language_import.lng
index 5dc4ccac38..2e01cf7df5 100644
--- a/interface/web/admin/lib/lang/cz_language_import.lng
+++ b/interface/web/admin/lib/lang/cz_language_import.lng
@@ -7,3 +7,4 @@ $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['ignore_version_txt'] = 'Přeskočit kontrolu verze ISPConfigu.';
 $wb['list_desc_txt'] = 'VAROVÁNÍ: Nepoužívejte import souborů jazyku z nedůvěryhodných zdrojů.';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_language_list.lng b/interface/web/admin/lib/lang/cz_language_list.lng
index b2a7863715..49614e0529 100644
--- a/interface/web/admin/lib/lang/cz_language_list.lng
+++ b/interface/web/admin/lib/lang/cz_language_list.lng
@@ -5,3 +5,4 @@ $wb['module_txt'] = 'Modul';
 $wb['lang_file_txt'] = 'Jazykový soubor';
 $wb['lang_file_date_txt'] = 'Poslední úprava';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_package_install.lng b/interface/web/admin/lib/lang/cz_package_install.lng
index 2bdc9df315..4d3a6dc63a 100644
--- a/interface/web/admin/lib/lang/cz_package_install.lng
+++ b/interface/web/admin/lib/lang/cz_package_install.lng
@@ -5,3 +5,4 @@ $wb['repo_username_txt'] = 'Uživatel (volitelné)';
 $wb['repo_password_txt'] = 'Heslo (volitelné)';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_remote_action.lng b/interface/web/admin/lib/lang/cz_remote_action.lng
index e1908e2d04..536ccfb357 100644
--- a/interface/web/admin/lib/lang/cz_remote_action.lng
+++ b/interface/web/admin/lib/lang/cz_remote_action.lng
@@ -10,3 +10,4 @@ $wb['select_all_server'] = 'Všechny servery';
 $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci';
 $wb['ispconfig_update_text'] = 'Přihlaste se jako uživatel root na terminal (shell) serveru a proveďte příkaz<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />spustí se ISPConfig aktualizace.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Klikněte zde pro podrobnější informace o provedení aktualizace</a>';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_remote_user.lng b/interface/web/admin/lib/lang/cz_remote_user.lng
index 17c4f05b56..c75c165270 100644
--- a/interface/web/admin/lib/lang/cz_remote_user.lng
+++ b/interface/web/admin/lib/lang/cz_remote_user.lng
@@ -45,3 +45,4 @@ $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_remote_user_list.lng b/interface/web/admin/lib/lang/cz_remote_user_list.lng
index 3f4a008f39..2f88143a17 100644
--- a/interface/web/admin/lib/lang/cz_remote_user_list.lng
+++ b/interface/web/admin/lib/lang/cz_remote_user_list.lng
@@ -5,3 +5,4 @@ $wb['add_new_record_txt'] = 'Vytvořit uživatele';
 $wb['parent_remote_userid_txt'] = 'ID';
 $wb['username_txt'] = 'Uživatel';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server.lng b/interface/web/admin/lib/lang/cz_server.lng
index 8b86caf76b..ba749d72da 100644
--- a/interface/web/admin/lib/lang/cz_server.lng
+++ b/interface/web/admin/lib/lang/cz_server.lng
@@ -14,3 +14,4 @@ $wb['proxy_server_txt'] = 'Proxy-Server';
 $wb['firewall_server_txt'] = 'Firewall-Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index 6e785c42b4..7afef61a77 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -282,3 +282,4 @@ $wb['hostname_error_empty'] = 'Název hostitele je prázdný';
 $wb['hostname_error_regex'] = 'Neplatný název hostitele.';
 $wb['backup_time_txt'] = 'Spustit zálohovaní v';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_config_list.lng b/interface/web/admin/lib/lang/cz_server_config_list.lng
index 2118c35357..9a56c34e2a 100644
--- a/interface/web/admin/lib/lang/cz_server_config_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_config_list.lng
@@ -2,3 +2,4 @@
 $wb['list_head_txt'] = 'Konfigurace serveru';
 $wb['server_name_txt'] = 'Server';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip.lng b/interface/web/admin/lib/lang/cz_server_ip.lng
index 43a382a646..4f013b5d9b 100644
--- a/interface/web/admin/lib/lang/cz_server_ip.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip.lng
@@ -9,3 +9,4 @@ $wb['ip_type_txt'] = 'Verze';
 $wb['virtualhost_port_txt'] = 'HTTP Porty';
 $wb['error_port_syntax'] = 'Neplatné znaky ve volbě HTTP Portů. Prosím, zadejte pouze číselné hodnoty oddělené čárkami. Příklad: 80,443';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip_list.lng b/interface/web/admin/lib/lang/cz_server_ip_list.lng
index a0c10060b3..b47b70896b 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_list.lng
@@ -8,3 +8,4 @@ $wb['virtualhost_txt'] = 'HTTP Vhost';
 $wb['virtualhost_port_txt'] = 'HTTP Ports';
 $wb['ip_type_txt'] = 'Verze';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip_map.lng b/interface/web/admin/lib/lang/cz_server_ip_map.lng
index 683451d1d8..3ee874ac45 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_map.lng
@@ -10,3 +10,4 @@ $wb['server_empty_error'] = 'The Server is empty.';
 $wb['duplicate_mapping_error'] = 'Mapování již existuje.';
 $wb['ip_mapping_error'] = 'Source IP can not be an IP of the Rewrite-Server';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_ip_map_list.lng b/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
index 9997bb477b..5e6e5a42b5 100644
--- a/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_ip_map_list.lng
@@ -5,3 +5,4 @@ $wb['source_ip_txt'] = 'Zdrojová IP adresa';
 $wb['destination_ip_txt'] = 'Cílová IP adresa';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_list.lng b/interface/web/admin/lib/lang/cz_server_list.lng
index 8aaea041f4..3bde8af91c 100644
--- a/interface/web/admin/lib/lang/cz_server_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_list.lng
@@ -12,3 +12,4 @@ $wb['proxy_server_txt'] = 'Proxy';
 $wb['firewall_server_txt'] = 'Firewall';
 $wb['xmpp_server_txt'] = 'XMPP';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_php.lng b/interface/web/admin/lib/lang/cz_server_php.lng
index 10aba05dd7..fc8f7ad4af 100644
--- a/interface/web/admin/lib/lang/cz_server_php.lng
+++ b/interface/web/admin/lib/lang/cz_server_php.lng
@@ -14,3 +14,4 @@ $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script';
 $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři';
 $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_server_php_list.lng b/interface/web/admin/lib/lang/cz_server_php_list.lng
index 389d85c358..425ff59449 100644
--- a/interface/web/admin/lib/lang/cz_server_php_list.lng
+++ b/interface/web/admin/lib/lang/cz_server_php_list.lng
@@ -1,7 +1,8 @@
 <?php
 $wb['list_head_txt'] = 'Další verze PHP';
 $wb['server_id_txt'] = 'Server';
-$wb['add_new_record_txt'] = 'Vytvořit novou verzi PHP';
+$wb['add_new_record_txt'] = 'Přidat verzi PHP';
 $wb['client_id_txt'] = 'Klient';
 $wb['name_txt'] = 'Verze PHP';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_software_package.lng b/interface/web/admin/lib/lang/cz_software_package.lng
index faffe38217..b6421baf17 100644
--- a/interface/web/admin/lib/lang/cz_software_package.lng
+++ b/interface/web/admin/lib/lang/cz_software_package.lng
@@ -4,3 +4,4 @@ $wb['package_key_txt'] = 'Package Key';
 $wb['Software Package'] = 'Software Package';
 $wb['Modify software package details'] = 'Modify software package details';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_software_package_install.lng b/interface/web/admin/lib/lang/cz_software_package_install.lng
index 0d079ef6d3..77941a0ded 100644
--- a/interface/web/admin/lib/lang/cz_software_package_install.lng
+++ b/interface/web/admin/lib/lang/cz_software_package_install.lng
@@ -4,3 +4,4 @@ $wb['install_key_txt'] = 'Enter install key';
 $wb['btn_save_txt'] = 'Spustit instalaci';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_software_package_list.lng b/interface/web/admin/lib/lang/cz_software_package_list.lng
index 6896a9feb4..ec1b967fa9 100644
--- a/interface/web/admin/lib/lang/cz_software_package_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_package_list.lng
@@ -11,3 +11,4 @@ $wb['no_packages_txt'] = 'Žádné balíčky nejsou k dispozici';
 $wb['edit_txt'] = 'Upravit';
 $wb['delete_txt'] = 'Smazat';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_software_repo.lng b/interface/web/admin/lib/lang/cz_software_repo.lng
index bd7bc9d0f2..f46fb9ebf4 100644
--- a/interface/web/admin/lib/lang/cz_software_repo.lng
+++ b/interface/web/admin/lib/lang/cz_software_repo.lng
@@ -6,3 +6,4 @@ $wb['repo_password_txt'] = 'Heslo (volitelné)';
 $wb['active_txt'] = 'Aktivní';
 $wb['Software Repository which may contain addons or updates'] = 'Softwarové zdroje, které mohou obsahovat addony nebo aktualizace';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_software_repo_list.lng b/interface/web/admin/lib/lang/cz_software_repo_list.lng
index ca04f41dcf..effc20509e 100644
--- a/interface/web/admin/lib/lang/cz_software_repo_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_repo_list.lng
@@ -4,3 +4,4 @@ $wb['active_txt'] = 'Aktivní';
 $wb['repo_name_txt'] = 'Název zdroje';
 $wb['repo_url_txt'] = 'URL';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_software_update_list.lng b/interface/web/admin/lib/lang/cz_software_update_list.lng
index c48ad8ce30..467fd5f0de 100644
--- a/interface/web/admin/lib/lang/cz_software_update_list.lng
+++ b/interface/web/admin/lib/lang/cz_software_update_list.lng
@@ -7,3 +7,4 @@ $wb['version_txt'] = 'Verze';
 $wb['action_txt'] = 'Akce';
 $wb['no_updates_txt'] = 'Žádné aktualizace nejsou k dispozici';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng
index 930e3ebbfb..c508c5294d 100644
--- a/interface/web/admin/lib/lang/cz_system_config.lng
+++ b/interface/web/admin/lib/lang/cz_system_config.lng
@@ -82,3 +82,4 @@ $wb['custom_login_text_txt'] = 'Vlastní text na přihlašovací stránce';
 $wb['custom_login_link_txt'] = 'Vlastní odkaz (URL) na přihlašovací stránce (vlastní text)';
 $wb['login_link_error_regex'] = 'Neplatný formát URL pro vlastní odkaz na přihlašovací stránce';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_tpl_default_admin.lng b/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
index 480d504421..efecb6d979 100644
--- a/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
+++ b/interface/web/admin/lib/lang/cz_tpl_default_admin.lng
@@ -16,3 +16,4 @@ $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script';
 $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři';
 $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_users.lng b/interface/web/admin/lib/lang/cz_users.lng
index 160caaca50..2d29a72337 100644
--- a/interface/web/admin/lib/lang/cz_users.lng
+++ b/interface/web/admin/lib/lang/cz_users.lng
@@ -29,7 +29,8 @@ $wb['generate_password_txt'] = 'Generovat heslo';
 $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
-$wb['username_error_collision'] = 'Uživatelské jméno nesmí být web nebo web a číslo.\\"';
+$wb['username_error_collision'] = 'Uživatelské jméno nesmí být web nebo web a číslo.';
 $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin';
 $wb['lost_password_function_txt'] = 'Forgot password function is available';
 ?>
+
diff --git a/interface/web/admin/lib/lang/cz_users_list.lng b/interface/web/admin/lib/lang/cz_users_list.lng
index c4a8b0e234..eb1a618c9d 100644
--- a/interface/web/admin/lib/lang/cz_users_list.lng
+++ b/interface/web/admin/lib/lang/cz_users_list.lng
@@ -7,3 +7,4 @@ $wb['add_new_record_txt'] = 'Vytvořit uživatele';
 $wb['warning_txt'] = '<b>VAROVÁNÍ:</b> Zde neupravujte uživatelská nastavení. Užijte klientská a distributorská nastavení v klientském modulu. Úprava uživatelů nebo skupin zde může způsobit ztrátu dat!';
 $wb['groups_txt'] = 'Skupiny';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz.lng b/interface/web/client/lib/lang/cz.lng
index 510e1a4f5e..2c9d5682d7 100644
--- a/interface/web/client/lib/lang/cz.lng
+++ b/interface/web/client/lib/lang/cz.lng
@@ -26,3 +26,4 @@ $wb['error_client_group_id_empty'] = 'Musíte vybrat zákazníka<br>';
 $wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone';
 $wb['error_domain_in dnsslaveuse'] = 'This domain cannot be deleted, because it is in use as secondary dns zone';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng
index f6b1ddb2dd..40ae10bd88 100644
--- a/interface/web/client/lib/lang/cz_client.lng
+++ b/interface/web/client/lib/lang/cz_client.lng
@@ -198,5 +198,6 @@ $wb['limit_ssl_letsencrypt_txt'] = 'Let';
 $wb['limit_directive_snippets_txt'] = 'Výběr configurace webového serveru - dostupná volba pro klienta';
 $wb['limit_database_user_txt'] = 'Max. počet databázových uživatelů';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['password_click_to_set_txt'] = 'Pro nastavení klikni zde';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_circle.lng b/interface/web/client/lib/lang/cz_client_circle.lng
index f26e2d6d4b..c47f934f6f 100644
--- a/interface/web/client/lib/lang/cz_client_circle.lng
+++ b/interface/web/client/lib/lang/cz_client_circle.lng
@@ -7,3 +7,4 @@ $wb['client_ids_txt'] = 'Klienti/Distributoři';
 $wb['description_txt'] = 'Popis';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_circle_list.lng b/interface/web/client/lib/lang/cz_client_circle_list.lng
index e1e0da1443..817f60fe03 100644
--- a/interface/web/client/lib/lang/cz_client_circle_list.lng
+++ b/interface/web/client/lib/lang/cz_client_circle_list.lng
@@ -8,3 +8,4 @@ $wb['filter_txt'] = 'Filtr';
 $wb['delete_txt'] = 'Smazat';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_del.lng b/interface/web/client/lib/lang/cz_client_del.lng
index 5374ea6f75..255b54217f 100644
--- a/interface/web/client/lib/lang/cz_client_del.lng
+++ b/interface/web/client/lib/lang/cz_client_del.lng
@@ -5,3 +5,4 @@ $wb['btn_save_txt'] = 'Smazat klienta';
 $wb['btn_cancel_txt'] = 'Zrušit bez smazání klienta';
 $wb['confirm_client_delete_txt'] = 'Jste si jisti, že chcete smazat tohoto klienta ?';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_message.lng b/interface/web/client/lib/lang/cz_client_message.lng
index 3710cbd254..72ee184b3e 100644
--- a/interface/web/client/lib/lang/cz_client_message.lng
+++ b/interface/web/client/lib/lang/cz_client_message.lng
@@ -18,3 +18,4 @@ $wb['variables_txt'] = 'Výběr (možnosti):';
 $wb['gender_m_txt'] = 'Pan';
 $wb['gender_f_txt'] = 'Paní';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_message_template.lng b/interface/web/client/lib/lang/cz_client_message_template.lng
index b5e0b73039..2892f4dd1a 100644
--- a/interface/web/client/lib/lang/cz_client_message_template.lng
+++ b/interface/web/client/lib/lang/cz_client_message_template.lng
@@ -9,3 +9,4 @@ $wb['variables_txt'] = 'Proměnné';
 $wb['variables_description_txt'] = 'Proměnné uživatelské jméno a heslo jsou k dispozici (funkční) jako volba pouze v uvítacím e-mailu.';
 $wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_message_template_list.lng b/interface/web/client/lib/lang/cz_client_message_template_list.lng
index d4c2f63857..f96a284192 100644
--- a/interface/web/client/lib/lang/cz_client_message_template_list.lng
+++ b/interface/web/client/lib/lang/cz_client_message_template_list.lng
@@ -3,3 +3,4 @@ $wb['list_head_txt'] = 'E-mailové šablony';
 $wb['template_type_txt'] = 'Zpráva pro';
 $wb['template_name_txt'] = 'Název šablony';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_template.lng b/interface/web/client/lib/lang/cz_client_template.lng
index 0eab20fc2f..b6b4257f5b 100644
--- a/interface/web/client/lib/lang/cz_client_template.lng
+++ b/interface/web/client/lib/lang/cz_client_template.lng
@@ -121,3 +121,4 @@ $wb['web_servers_txt'] = 'Webové servery';
 $wb['db_servers_txt'] = 'Databázové servery';
 $wb['mail_servers_txt'] = 'E-mailové servery';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_client_template_list.lng b/interface/web/client/lib/lang/cz_client_template_list.lng
index 3abbd09adc..d560efbe53 100644
--- a/interface/web/client/lib/lang/cz_client_template_list.lng
+++ b/interface/web/client/lib/lang/cz_client_template_list.lng
@@ -4,3 +4,4 @@ $wb['template_type_txt'] = 'Typ';
 $wb['template_name_txt'] = 'Název šablony';
 $wb['template_id_txt'] = 'ID šablony';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_clients_list.lng b/interface/web/client/lib/lang/cz_clients_list.lng
index 3a28bf93e6..1a8b6d57a3 100644
--- a/interface/web/client/lib/lang/cz_clients_list.lng
+++ b/interface/web/client/lib/lang/cz_clients_list.lng
@@ -9,3 +9,4 @@ $wb['add_new_record_txt'] = 'Vytvořit klienta';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['customer_no_txt'] = 'Zákaznické číslo';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_domain.lng b/interface/web/client/lib/lang/cz_domain.lng
index 08b113fc4d..eabdb6df34 100644
--- a/interface/web/client/lib/lang/cz_domain.lng
+++ b/interface/web/client/lib/lang/cz_domain.lng
@@ -4,3 +4,4 @@ $wb['domain_error_unique'] = 'Doména již existuje';
 $wb['domain_error_regex'] = 'Toto doménové jméno je zakázáno';
 $wb['Domain'] = 'Doména';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_domain_list.lng b/interface/web/client/lib/lang/cz_domain_list.lng
index 25adf20c25..6c174c18da 100644
--- a/interface/web/client/lib/lang/cz_domain_list.lng
+++ b/interface/web/client/lib/lang/cz_domain_list.lng
@@ -4,3 +4,4 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['domain_txt'] = 'Doména';
 $wb['user_txt'] = 'Klient';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng
index 6c7267f1bc..8726d846ce 100644
--- a/interface/web/client/lib/lang/cz_reseller.lng
+++ b/interface/web/client/lib/lang/cz_reseller.lng
@@ -202,5 +202,6 @@ $wb['limit_database_user_txt'] = 'Max. počet databázových uživatelů';
 $wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
 $wb['limit_database_quota_txt'] = 'Databázové kvóty';
 $wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['password_click_to_set_txt'] = 'Pro nastavení klikni zde';
 ?>
+
diff --git a/interface/web/client/lib/lang/cz_resellers_list.lng b/interface/web/client/lib/lang/cz_resellers_list.lng
index 13202ff743..b20375b1bc 100644
--- a/interface/web/client/lib/lang/cz_resellers_list.lng
+++ b/interface/web/client/lib/lang/cz_resellers_list.lng
@@ -9,3 +9,4 @@ $wb['add_new_record_txt'] = 'Vytvořit distributora';
 $wb['customer_no_txt'] = 'Zákaznické číslo';
 $wb['username_txt'] = 'Uživatelské jméno';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz.lng b/interface/web/dashboard/lib/lang/cz.lng
index 9d2a3211cb..15063c03fa 100644
--- a/interface/web/dashboard/lib/lang/cz.lng
+++ b/interface/web/dashboard/lib/lang/cz.lng
@@ -2,3 +2,4 @@
 $wb['welcome_user_txt'] = 'Vítejte %s';
 $wb['available_modules_txt'] = 'Dostupné moduly';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng b/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
index f337141de6..29bf03cdbe 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_customer.lng
@@ -2,3 +2,4 @@
 $wb['customerdata_txt'] = 'My Data';
 $wb['edit_txt'] = 'Editovat';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
index 93be2e3425..9e3fd41776 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_databasequota.lng
@@ -5,3 +5,4 @@ $wb['quota_txt'] = 'Kvóta';
 $wb['no_database_accounts_txt'] = 'Nebyla nalezena žádná databáze.';
 $wb['databasequota_txt'] = 'Kvóty databází';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_donate.lng b/interface/web/dashboard/lib/lang/cz_dashlet_donate.lng
index c3dfe21ca0..622e5f2714 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_donate.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_donate.lng
@@ -1,7 +1,8 @@
 <?php
-$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
-$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
-$wb['hide_btn_txt'] = 'Hide';
-$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
-$wb['more_btn_txt'] = 'More';
+$wb['donate_txt'] = 'ISPConfig Hosting Ovládací panel je svobodný software. Možná jste si vědomi, že to vyžaduje hodně času a úsilí rozvíjet, udržovat a podporovat softwarový projekt této složitosti. Chcete-li podpořit další rozvoj ISPConfigu, prosím zvažte poskytnutí daru. Jako bonus dostanete kopii nového ISPConfig manuálu.';
+$wb['donate2_txt'] = 'Výše daru může být 5 EUR nebo více, částku si zvolíte při objednávce manuálu. Způsob platby je PayPal. Obdržíte pokladní lístek jako PDF z ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Skrýt';
+$wb['donate_btn_txt'] = 'Podpořit ISPConfig a získat manuál';
+$wb['more_btn_txt'] = 'Více';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
index 113d919c00..f5922e7f50 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoice_client_settings.lng
@@ -2,3 +2,4 @@
 $wb['invoice_client_settings_txt'] = 'Invoice Client Settings';
 $wb['edit_txt'] = 'Editovat';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
index 9666ed2b08..d4caf8fc01 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng
@@ -16,3 +16,4 @@ $wb['invoice_type_proforma_txt'] = 'Proforma';
 $wb['invoice_type_refund_txt'] = 'Refund';
 $wb['invoice_type_reminder_txt'] = 'Reminder';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
index 0b75ac3c1c..078b13e6ef 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng
@@ -29,3 +29,4 @@ $wb['limit_database_txt'] = 'Počet databází';
 $wb['limit_mailmailinglist_txt'] = 'Počet e-mailových konferencí';
 $wb['limit_domain_txt'] = 'Počet domén';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
index 742721c5ff..19dc161f9c 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
@@ -6,3 +6,4 @@ $wb['used_txt'] = 'Využité místo';
 $wb['quota_txt'] = 'Kvóta';
 $wb['no_email_accounts_txt'] = 'Nenalezeny žádné e-mailové účty.';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng b/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
index b4cade4795..7935f25301 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_modules.lng
@@ -2,3 +2,4 @@
 $wb['available_modules_txt'] = 'Dostupné moduly';
 $wb['go_to_txt'] = 'Vstoupit do sekce:';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_products.lng b/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
index 83749f6db9..a4d0bf542c 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_products.lng
@@ -7,3 +7,4 @@ $wb['no_products_txt'] = 'No products found.';
 $wb['edit_txt'] = 'Editovat';
 $wb['cancellation_date_txt'] = 'Cancelled by';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
index 0c2074a996..0e3db11eba 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
@@ -6,3 +6,4 @@ $wb['hard_txt'] = 'Kvóta max. obsazení';
 $wb['soft_txt'] = 'Kvóta pro upozornění';
 $wb['no_sites_txt'] = 'Nenalezeny žádné webové stránky.';
 ?>
+
diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng b/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
index 1e0b5361d7..96b4ea0f65 100644
--- a/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
+++ b/interface/web/dashboard/lib/lang/cz_dashlet_shop.lng
@@ -6,3 +6,4 @@ $wb['setup_fee_txt'] = 'Setup Fee';
 $wb['no_products_txt'] = 'No products found.';
 $wb['order_txt'] = 'Order';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz.lng b/interface/web/dns/lib/lang/cz.lng
index 74a1c457a7..3f4bd9005c 100644
--- a/interface/web/dns/lib/lang/cz.lng
+++ b/interface/web/dns/lib/lang/cz.lng
@@ -20,3 +20,4 @@ $wb['Templates'] = 'Å ablony DNS';
 $wb['Secondary Zones'] = 'Sekundární DNS zóny';
 $wb['Import Zone File'] = 'Importovat DNS zonový soubor';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_a.lng b/interface/web/dns/lib/lang/cz_dns_a.lng
index 17e5b5ff7f..58394ac770 100644
--- a/interface/web/dns/lib/lang/cz_dns_a.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'IP adresa';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -15,3 +15,4 @@ $wb['data_error_duplicate'] = 'Duplikace A záznamu';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_a_list.lng b/interface/web/dns/lib/lang/cz_dns_a_list.lng
index 5096f96127..54f78945b6 100644
--- a/interface/web/dns/lib/lang/cz_dns_a_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a_list.lng
@@ -13,3 +13,4 @@ $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Skutečně chcete smazat tento záznam ?';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_aaaa.lng b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
index e2e0fe184c..ec29372427 100644
--- a/interface/web/dns/lib/lang/cz_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'IPv6 adresa';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'IP adresa je prázdná';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_alias.lng b/interface/web/dns/lib/lang/cz_dns_alias.lng
index a8ef6bdbbb..f871b13209 100644
--- a/interface/web/dns/lib/lang/cz_dns_alias.lng
+++ b/interface/web/dns/lib/lang/cz_dns_alias.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'Cílový název hostitele';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'Cílový název hostitele je prázdný';
 $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_cname.lng b/interface/web/dns/lib/lang/cz_dns_cname.lng
index 8f38f227f0..bb51f15805 100644
--- a/interface/web/dns/lib/lang/cz_dns_cname.lng
+++ b/interface/web/dns/lib/lang/cz_dns_cname.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'Cílový název hostitele';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -15,3 +15,4 @@ $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
 $wb['data_error_duplicate'] = 'Duplikace A záznamu nebo CNAME-záznamu';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_dkim.lng b/interface/web/dns/lib/lang/cz_dns_dkim.lng
index 77ac3cd818..b344f528ad 100644
--- a/interface/web/dns/lib/lang/cz_dns_dkim.lng
+++ b/interface/web/dns/lib/lang/cz_dns_dkim.lng
@@ -9,3 +9,4 @@ $wb['no_zone_perm'] = 'Nemáte povolení k přidat záznam do této zóny DNS.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['selector_txt'] = 'DKIM selektor';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_dmarc.lng b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
index c5952552a6..f6ec0236a9 100644
--- a/interface/web/dns/lib/lang/cz_dns_dmarc.lng
+++ b/interface/web/dns/lib/lang/cz_dns_dmarc.lng
@@ -48,3 +48,4 @@ $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account i
 $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_ds.lng b/interface/web/dns/lib/lang/cz_dns_ds.lng
index 3d25095d3b..259dd8f066 100644
--- a/interface/web/dns/lib/lang/cz_dns_ds.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ds.lng
@@ -15,3 +15,4 @@ $wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['invalid_type_ds'] = 'DS-Record has a wrong format.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_hinfo.lng b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
index 2b257d2234..cf2eba6560 100644
--- a/interface/web/dns/lib/lang/cz_dns_hinfo.lng
+++ b/interface/web/dns/lib/lang/cz_dns_hinfo.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'Informace o hostovi';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'Informace o hostovi je prázdná';
 $wb['data_error_regex'] = 'Informace o hostovi má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_import.lng b/interface/web/dns/lib/lang/cz_dns_import.lng
index 3b41baa1be..9f5721af8d 100644
--- a/interface/web/dns/lib/lang/cz_dns_import.lng
+++ b/interface/web/dns/lib/lang/cz_dns_import.lng
@@ -14,3 +14,4 @@ $wb['zone_file_import_txt'] = 'Importovat DNS zonový soubor';
 $wb['error_no_server_id'] = 'No server provided.';
 $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_loc.lng b/interface/web/dns/lib/lang/cz_dns_loc.lng
index 90ddd3533b..89486380f1 100644
--- a/interface/web/dns/lib/lang/cz_dns_loc.lng
+++ b/interface/web/dns/lib/lang/cz_dns_loc.lng
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'Text empty';
 $wb['data_error_regex'] = 'Text format invalid';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_mx.lng b/interface/web/dns/lib/lang/cz_dns_mx.lng
index af1599e1de..7a64f701da 100644
--- a/interface/web/dns/lib/lang/cz_dns_mx.lng
+++ b/interface/web/dns/lib/lang/cz_dns_mx.lng
@@ -7,7 +7,7 @@ $wb['data_txt'] = 'Název hostitele e-mailového serveru';
 $wb['aux_txt'] = 'Priorita';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -16,3 +16,4 @@ $wb['data_error_regex'] = 'Název hostitele e-mailového serveru má chybný for
 $wb['duplicate_mx_record_txt'] = 'Duplicitní MX záznam.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_ns.lng b/interface/web/dns/lib/lang/cz_dns_ns.lng
index b2ca2a69fe..00359e6dc7 100644
--- a/interface/web/dns/lib/lang/cz_dns_ns.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ns.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'Název hostitele jmenného serveru';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Zóna je prázdná.';
 $wb['name_error_regex'] = 'Zóna má chybný formát.';
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'Jmenný server je prázdný';
 $wb['data_error_regex'] = 'Jmenný server má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_ptr.lng b/interface/web/dns/lib/lang/cz_dns_ptr.lng
index c0a9a10922..88a0e4149e 100644
--- a/interface/web/dns/lib/lang/cz_dns_ptr.lng
+++ b/interface/web/dns/lib/lang/cz_dns_ptr.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'Kanonický název hostitele';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název je prázdný.';
 $wb['name_error_regex'] = 'Název má chybný formát.';
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'Kanonický hostname je prázdný';
 $wb['data_error_regex'] = 'Kanonického hostname má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_rp.lng b/interface/web/dns/lib/lang/cz_dns_rp.lng
index f401a80810..abebae9866 100644
--- a/interface/web/dns/lib/lang/cz_dns_rp.lng
+++ b/interface/web/dns/lib/lang/cz_dns_rp.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'Odpovědná osoba';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'Odpovědná osoba je prázdná';
 $wb['data_error_regex'] = 'Odpovědná osoba má chybný formát';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_slave.lng b/interface/web/dns/lib/lang/cz_dns_slave.lng
index 16617f6c59..99fafebb5f 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave.lng
@@ -3,7 +3,7 @@ $wb['server_id_txt'] = 'Server';
 $wb['origin_txt'] = 'DNS Zóna';
 $wb['ns_txt'] = 'NS';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_slave_zone_txt'] = 'Byl dosažen maximální počet sekundárních DNS zón pro Váš účet.';
+$wb['limit_dns_slave_zone_txt'] = 'Byl Byl dosažen maximální počet sekundárních DNS zón pro Váš účet.';
 $wb['client_txt'] = 'Klient';
 $wb['xfer_txt'] = 'Povolit přesun zóny<br />těmto IP adresám<br />(oddělte čárkou)';
 $wb['server_id_error_empty'] = 'Není zvolen žádný server';
@@ -15,3 +15,4 @@ $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 $wb['ipv4_form_txt'] = 'IPV4 formát, např. 1.2.3.4';
 $wb['secondary_zone_txt'] = 'Sekundární DNS zóna';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
index 2b4160735a..ad202832f9 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng
@@ -8,3 +8,4 @@ $wb['add_new_record_txt'] = 'Vytvořit novou Sekundarní DNS-Zónu';
 $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_slave_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_list.lng
index a0d68bc201..642615e1ab 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave_list.lng
@@ -7,3 +7,4 @@ $wb['ns_txt'] = 'NS';
 $wb['add_new_record_txt'] = 'Vytvořit sekundární DNS zónu';
 $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_soa.lng b/interface/web/dns/lib/lang/cz_dns_soa.lng
index af93a3e1b3..7ee46a62ee 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa.lng
@@ -11,7 +11,7 @@ $wb['minimum_txt'] = 'Minimum';
 $wb['ttl_txt'] = 'TTL';
 $wb['xfer_txt'] = 'Povolot přenos zóny do <br />těchto IP adres (položky oddělené čárkami)';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_zone_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_zone_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['client_txt'] = 'Klient';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['server_id_error_empty'] = 'Není vybrán server';
@@ -42,3 +42,4 @@ $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for thi
 $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
 $wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
index 0ec5de4f6d..93d468cc06 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng
@@ -9,3 +9,4 @@ $wb['add_new_record_wizard_txt'] = 'Vytvořit DNS zónu pomocí průvodce';
 $wb['add_new_record_txt'] = 'Vytvořit DNS zónu manuálně';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_soa_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_list.lng
index 6168c8b808..096a91644b 100644
--- a/interface/web/dns/lib/lang/cz_dns_soa_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_soa_list.lng
@@ -9,3 +9,4 @@ $wb['add_new_record_txt'] = 'Vytvořit DNS zónu (SOA záznam)';
 $wb['add_new_record_wizard_txt'] = 'Vytvořit DNS zónu (dle šablony)';
 $wb['import_zone_file_txt'] = 'Importovat DNS zonový soubor';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_spf.lng b/interface/web/dns/lib/lang/cz_dns_spf.lng
index 755e01f11e..95229a85bf 100644
--- a/interface/web/dns/lib/lang/cz_dns_spf.lng
+++ b/interface/web/dns/lib/lang/cz_dns_spf.lng
@@ -23,3 +23,4 @@ $wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account i
 $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_srv.lng b/interface/web/dns/lib/lang/cz_dns_srv.lng
index 00b1fc4cf1..9f40199f2d 100644
--- a/interface/web/dns/lib/lang/cz_dns_srv.lng
+++ b/interface/web/dns/lib/lang/cz_dns_srv.lng
@@ -18,3 +18,4 @@ $wb['srv_error_regex'] = 'Neplatný formát záznamu serveru. Záznam serveru mu
 $wb['aux_txt'] = 'Priorita';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_template.lng b/interface/web/dns/lib/lang/cz_dns_template.lng
index be4ac0e949..82e207a83f 100644
--- a/interface/web/dns/lib/lang/cz_dns_template.lng
+++ b/interface/web/dns/lib/lang/cz_dns_template.lng
@@ -4,3 +4,4 @@ $wb['fields_txt'] = 'Pole';
 $wb['template_txt'] = 'Å ablona';
 $wb['visible_txt'] = 'Viditelný';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_template_list.lng b/interface/web/dns/lib/lang/cz_dns_template_list.lng
index a4b2e40657..5acac0e70d 100644
--- a/interface/web/dns/lib/lang/cz_dns_template_list.lng
+++ b/interface/web/dns/lib/lang/cz_dns_template_list.lng
@@ -4,3 +4,4 @@ $wb['visible_txt'] = 'Viditelný';
 $wb['name_txt'] = 'Název';
 $wb['add_new_record_txt'] = 'Vytvořit záznam';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_tlsa.lng b/interface/web/dns/lib/lang/cz_dns_tlsa.lng
index b92da1d45b..3683d46a27 100644
--- a/interface/web/dns/lib/lang/cz_dns_tlsa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_tlsa.lng
@@ -14,3 +14,4 @@ $wb['data_error_empty'] = 'TLSA-Data empty';
 $wb['data_error_regex'] = 'TLSA dataformat is wrong. Correct: n n n HASH';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_txt.lng b/interface/web/dns/lib/lang/cz_dns_txt.lng
index 556e4dc5a6..a68e25aa56 100644
--- a/interface/web/dns/lib/lang/cz_dns_txt.lng
+++ b/interface/web/dns/lib/lang/cz_dns_txt.lng
@@ -6,7 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['data_txt'] = 'Text';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_dns_record_txt'] = 'Dosažen maximální počet DNS záznamů pro Váš účet.';
+$wb['limit_dns_record_txt'] = 'Byl dosažen maximální počet DNS záznamů pro Váš účet.';
 $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
@@ -17,3 +17,4 @@ $wb['invalid_type_dkim'] = 'Přímá editace DKIM záznamu zde není povolena. E
 $wb['invalid_type_dmarc'] = 'Přímá editace DMARC záznamu zde není povolena. Editujte záznam pomocí tlačítka DMARC.';
 $wb['invalid_type_spf'] = 'Přímá editace SPF záznamu zde není povolena. Editujte záznam pomocí tlačítka SPF.';
 ?>
+
diff --git a/interface/web/dns/lib/lang/cz_dns_wizard.lng b/interface/web/dns/lib/lang/cz_dns_wizard.lng
index 548b90d702..1488888f8b 100644
--- a/interface/web/dns/lib/lang/cz_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/cz_dns_wizard.lng
@@ -43,3 +43,4 @@ $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for thi
 $wb['dnssec_txt'] = 'Podepsat zónu (DNSSEC)';
 $wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz.lng b/interface/web/help/lib/lang/cz.lng
index 55279c6a69..72581c93e0 100644
--- a/interface/web/help/lib/lang/cz.lng
+++ b/interface/web/help/lib/lang/cz.lng
@@ -12,3 +12,4 @@ $wb['Manage Sections'] = 'Spravovat sekce';
 $wb['Manage Questions'] = 'Spravovat dotazy';
 $wb['Add a Question & Answer Pair'] = 'Vytvořit otázku a odpověď';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz_faq_form.lng b/interface/web/help/lib/lang/cz_faq_form.lng
index 73feee6955..c71ddfa9ac 100644
--- a/interface/web/help/lib/lang/cz_faq_form.lng
+++ b/interface/web/help/lib/lang/cz_faq_form.lng
@@ -4,3 +4,4 @@ $wb['faq_question_txt'] = 'Otázka';
 $wb['faq_answer_txt'] = 'Odpověď';
 $wb['faq_section_txt'] = 'Sekce';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng b/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
index 34a03b3175..d5950c6d33 100644
--- a/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
+++ b/interface/web/help/lib/lang/cz_faq_manage_questions_list.lng
@@ -7,3 +7,4 @@ $wb['faq_sections_txt'] = 'Sekce';
 $wb['faq_faq_questions_txt'] = 'Často kladené dotazy';
 $wb['faq_new_question_txt'] = 'Vytvořit nový dotaz';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz_faq_sections_form.lng b/interface/web/help/lib/lang/cz_faq_sections_form.lng
index f9de704d8a..70403c39c5 100644
--- a/interface/web/help/lib/lang/cz_faq_sections_form.lng
+++ b/interface/web/help/lib/lang/cz_faq_sections_form.lng
@@ -1,3 +1,4 @@
 <?php
 $wb['faq_section_name_txt'] = 'Název sekce';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz_help_faq_list.lng b/interface/web/help/lib/lang/cz_help_faq_list.lng
index 923d9b892a..0dcf23b3ba 100644
--- a/interface/web/help/lib/lang/cz_help_faq_list.lng
+++ b/interface/web/help/lib/lang/cz_help_faq_list.lng
@@ -1,3 +1,4 @@
 <?php
 $wb['edit_txt'] = 'Upravit';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
index e9f8f2ea88..1f79cb6cf8 100644
--- a/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
+++ b/interface/web/help/lib/lang/cz_help_faq_sections_list.lng
@@ -6,3 +6,4 @@ $wb['faq_sections_txt'] = 'Sekce';
 $wb['faq_faq_sections_txt'] = 'Sekce FAQ - Často kladené dotazy';
 $wb['faq_new_section_txt'] = 'Vytvořit sekci';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz_support_message.lng b/interface/web/help/lib/lang/cz_support_message.lng
index e2b2f4072c..bba40e5d7b 100644
--- a/interface/web/help/lib/lang/cz_support_message.lng
+++ b/interface/web/help/lib/lang/cz_support_message.lng
@@ -14,3 +14,4 @@ $wb['support_request_sent_txt'] = 'Your support request has been sent. Please do
 $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Zprávu nelze odeslat, protože e-mailová adresa příjemce a/nebo odesílatele není platná.';
 $wb['subject_is_empty'] = 'The subject can not be empty.';
 ?>
+
diff --git a/interface/web/help/lib/lang/cz_support_message_list.lng b/interface/web/help/lib/lang/cz_support_message_list.lng
index 23f80584f9..f31449c9ce 100644
--- a/interface/web/help/lib/lang/cz_support_message_list.lng
+++ b/interface/web/help/lib/lang/cz_support_message_list.lng
@@ -5,3 +5,4 @@ $wb['subject_txt'] = 'Předmět';
 $wb['add_new_record_txt'] = 'Vytvořit zprávu pro podporu';
 $wb['date_txt'] = 'Datum';
 ?>
+
diff --git a/interface/web/login/lib/lang/cz_login_as.lng b/interface/web/login/lib/lang/cz_login_as.lng
index 0326e3d853..be41642680 100644
--- a/interface/web/login/lib/lang/cz_login_as.lng
+++ b/interface/web/login/lib/lang/cz_login_as.lng
@@ -8,5 +8,6 @@ $wb['active_txt'] = 'Aktivní';
 $wb['firewall_error_unique'] = 'Pro tento server již existuje záznam firewallu.';
 $wb['tcp_ports_error_regex'] = 'Znak není povole v definici TCP portu. Povolené symboly jsou čísla, : a ,.';
 $wb['udp_ports_error_regex'] = 'Znak není povole v definici UDP portu. Povolené symboly jsou čísla, : a ,.';
-$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
+$wb['login_as_or_logout_txt'] = 'Chcete se znovu přihlásit jako uživatel {UTYPE} nebo se chcete odhlásit ?';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng
index d0f6157cb4..4cd0815cb8 100644
--- a/interface/web/mail/lib/lang/cz.lng
+++ b/interface/web/mail/lib/lang/cz.lng
@@ -46,3 +46,4 @@ $wb['Relay Recipients'] = 'Relay adresáti';
 $wb['Statistics'] = 'Statistiky';
 $wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_backup_stats_list.lng b/interface/web/mail/lib/lang/cz_backup_stats_list.lng
index d37348978d..0c8a531c6c 100644
--- a/interface/web/mail/lib/lang/cz_backup_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_backup_stats_list.lng
@@ -7,3 +7,4 @@ $wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Velikost zálohy';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_alias.lng b/interface/web/mail/lib/lang/cz_mail_alias.lng
index b7067bca51..6d1e6bcdff 100644
--- a/interface/web/mail/lib/lang/cz_mail_alias.lng
+++ b/interface/web/mail/lib/lang/cz_mail_alias.lng
@@ -6,7 +6,7 @@ $wb['email_error_isemail'] = 'E-mail adresa je chybná.';
 $wb['email_error_unique'] = 'Duplikování e-mail adresy.';
 $wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu.';
 $wb['destination_error_isemail'] = 'Cílová e-mail adresa je chybná.';
-$wb['limit_mailalias_txt'] = 'Dosažen maximální počet e-mail aliasů pro Váš účet.';
+$wb['limit_mailalias_txt'] = 'Byl dosažen maximální počet e-mail aliasů pro Váš účet.';
 $wb['duplicate_mailbox_txt'] = 'Mailbox s touto adresou již existuje';
 $wb['domain_txt'] = 'Doména';
 $wb['duplicate_email_alias_txt'] = 'Tento e-mail alias již existuje.';
@@ -15,3 +15,4 @@ $wb['send_as_txt'] = 'Odeslat jako';
 $wb['send_as_exp'] = 'Allow target to send mail using this alias as origin';
 $wb['greylisting_txt'] = 'Povolit greylisting';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_alias_list.lng b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
index 240c15acba..26fe99ec54 100644
--- a/interface/web/mail/lib/lang/cz_mail_alias_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_alias_list.lng
@@ -6,3 +6,4 @@ $wb['destination_txt'] = 'Cíl';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailovou přezdívku';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng b/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
index 74611c2de0..965d8058e3 100644
--- a/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
+++ b/interface/web/mail/lib/lang/cz_mail_aliasdomain.lng
@@ -3,9 +3,10 @@ $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
 $wb['active_txt'] = 'Aktivní';
 $wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu.';
-$wb['limit_mailaliasdomain_txt'] = 'Dosažen maximální počet emailových doménových aliasů pro Váš účet.';
+$wb['limit_mailaliasdomain_txt'] = 'Byl dosažen maximální počet e-mailových doménových přezdívek pro Váš účet.';
 $wb['source_destination_identical_txt'] = 'Zdrojová a cílová doména jsou stejné.';
 $wb['source_error_empty'] = 'Zdrojová doména je prázdná.';
 $wb['source_error_unique'] = 'Duplikování zdrojové domény.';
 $wb['source_error_regex'] = 'Chybná zdrojová doména.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
index d71da95dc0..915063d56b 100644
--- a/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_aliasdomain_list.lng
@@ -5,3 +5,4 @@ $wb['source_txt'] = 'Zdroj';
 $wb['destination_txt'] = 'Cíl';
 $wb['add_new_record_txt'] = 'Vytvořit doménovou přezdívku';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_backup_list.lng b/interface/web/mail/lib/lang/cz_mail_backup_list.lng
index 91ea1ad49f..6ae5115d36 100644
--- a/interface/web/mail/lib/lang/cz_mail_backup_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_backup_list.lng
@@ -14,3 +14,4 @@ $wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['filesize_txt'] = 'Velikost souboru';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_blacklist.lng b/interface/web/mail/lib/lang/cz_mail_blacklist.lng
index e1e6dab48f..16a078e339 100644
--- a/interface/web/mail/lib/lang/cz_mail_blacklist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_blacklist.lng
@@ -5,5 +5,6 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['active_txt'] = 'Aktivní';
 $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
-$wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.';
+$wb['limit_mailfilter_txt'] = 'Byl dosažen maximální počet e-mail filtrů pro Váš účet.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
index 282e109209..0c15596131 100644
--- a/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_blacklist_list.lng
@@ -8,3 +8,4 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['add_new_record_txt'] = 'Přidat na černou listinu';
 $wb['access_txt'] = 'Přístup';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_content_filter.lng b/interface/web/mail/lib/lang/cz_mail_content_filter.lng
index 459ca228a2..240de670e3 100644
--- a/interface/web/mail/lib/lang/cz_mail_content_filter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_content_filter.lng
@@ -7,3 +7,4 @@ $wb['action_txt'] = 'Akce';
 $wb['active_txt'] = 'Aktivní';
 $wb['pattern_error_empty'] = 'Vzor je prázdný.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng b/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
index ccb9fc0b1f..b782177f9c 100644
--- a/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_content_filter_list.lng
@@ -6,3 +6,4 @@ $wb['pattern_txt'] = 'Vzor';
 $wb['action_txt'] = 'Akce';
 $wb['add_new_record_txt'] = 'Vytvořit obsahový filtr';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain.lng b/interface/web/mail/lib/lang/cz_mail_domain.lng
index 98a7b7fd03..beff306ac5 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain.lng
@@ -7,7 +7,7 @@ $wb['domain_error_empty'] = 'Doména je prázdná.';
 $wb['domain_error_unique'] = 'E-mailová doména s tímto doménovým jménem na serveru již existuje.';
 $wb['domain_error_regex'] = 'Chybný název domény.';
 $wb['client_txt'] = 'Klient';
-$wb['limit_maildomain_txt'] = 'Dosažen maximální počet e-mailových domén pro Váš účet.';
+$wb['limit_maildomain_txt'] = 'Byl dosažen maximální počet e-mailových domén pro Váš účet.';
 $wb['dkim_txt'] = 'DKIM aktivní';
 $wb['dkim_private_txt'] = 'DKIM soukromý klíč';
 $wb['dkim_public_txt'] = 'DKIM veřejný klíč pouze pro informaci';
@@ -21,3 +21,4 @@ $wb['policy_txt'] = 'Spamový filtr';
 $wb['no_policy'] = '- nepovoleno -';
 $wb['error_not_allowed_server_id'] = 'Zvolený server není povolen pro tento účet.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
index c2aed68625..e3201cc55e 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_admin_list.lng
@@ -6,3 +6,4 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
index 1bb4a04577..1c24fade2c 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng
@@ -5,7 +5,8 @@ $wb['active_txt'] = 'Aktivní';
 $wb['domain_error_unique'] = 'Pro tuto doménu již existuje koš.';
 $wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu.';
 $wb['domain_error_regex'] = 'Chybné doménové jméno nebo doména obsahuje chybné znaky.';
-$wb['limit_mailcatchall_txt'] = 'Dosažen maximální počet košů účtů pro Váš účet.';
+$wb['limit_mailcatchall_txt'] = 'Byl dosažen maximální počet košů účtů pro Váš účet.';
 $wb['source_txt'] = 'Zdroj';
 $wb['destination_error_isemail'] = 'Cílová e-mailová adresa není platná.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
index ab502529af..a60d3b3686 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall_list.lng
@@ -7,3 +7,4 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'E-malová doména';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailový koš';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_domain_list.lng b/interface/web/mail/lib/lang/cz_mail_domain_list.lng
index 9bd9770e33..97b626564b 100644
--- a/interface/web/mail/lib/lang/cz_mail_domain_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_domain_list.lng
@@ -5,3 +5,4 @@ $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_forward.lng b/interface/web/mail/lib/lang/cz_mail_forward.lng
index f75cfc6a75..93406afa66 100644
--- a/interface/web/mail/lib/lang/cz_mail_forward.lng
+++ b/interface/web/mail/lib/lang/cz_mail_forward.lng
@@ -2,7 +2,7 @@
 $wb['email_txt'] = 'E-mail';
 $wb['destination_txt'] = 'Cílový e-mail';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_mailforward_txt'] = 'Dosažen maximální počet email předávání pro Váš účet.';
+$wb['limit_mailforward_txt'] = 'Byl dosažen maximální počet e-mail předávání pro Váš účet.';
 $wb['duplicate_mailbox_txt'] = 'Mailbox s touto adresou již existuje';
 $wb['domain_txt'] = 'Doména';
 $wb['source_txt'] = 'Zdrojový e-mail';
@@ -11,3 +11,4 @@ $wb['send_as_txt'] = 'Odeslat jako';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
 $wb['greylisting_txt'] = 'Povolit greylisting';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_forward_list.lng b/interface/web/mail/lib/lang/cz_mail_forward_list.lng
index 17fd716406..34c095ec70 100644
--- a/interface/web/mail/lib/lang/cz_mail_forward_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_forward_list.lng
@@ -6,3 +6,4 @@ $wb['destination_txt'] = 'Cíl';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit přesměrování';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_get.lng b/interface/web/mail/lib/lang/cz_mail_get.lng
index d8bc32fbac..6e82280fe6 100644
--- a/interface/web/mail/lib/lang/cz_mail_get.lng
+++ b/interface/web/mail/lib/lang/cz_mail_get.lng
@@ -7,7 +7,7 @@ $wb['source_password_txt'] = 'Heslo';
 $wb['source_delete_txt'] = 'Smazat e-maily po obdržení';
 $wb['destination_txt'] = 'Cíl';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_fetchmail_txt'] = 'Dosažen maximální počet záznamů externího získávání e-mailů pro Váš účet.';
+$wb['limit_fetchmail_txt'] = 'Byl dosažen maximální počet záznamů externího získávání e-mailů pro Váš účet.';
 $wb['source_server_error_isempty'] = 'Server je prázdný.';
 $wb['source_username_error_isempty'] = 'Uživatelské jméno je prázdné.';
 $wb['source_password_error_isempty'] = 'Heslo je prázdné.';
@@ -17,3 +17,4 @@ $wb['source_read_all_txt'] = 'Načíst všechny e-maily (včetně již přečten
 $wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes';
 $wb['source_delete_note_txt'] = 'Prosím, zkontrolujte nejprve, zda příjímání e-mailů funguje, než aktivujete tuto možnost.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_get_list.lng b/interface/web/mail/lib/lang/cz_mail_get_list.lng
index d1a412407d..67d08e3631 100644
--- a/interface/web/mail/lib/lang/cz_mail_get_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_get_list.lng
@@ -7,3 +7,4 @@ $wb['source_username_txt'] = 'Uživatelské jméno';
 $wb['destination_txt'] = 'Cíl';
 $wb['add_new_record_txt'] = 'Vytvořit účet';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
index e1f7dfbfa5..7723f1f0e9 100644
--- a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng
@@ -20,3 +20,4 @@ $wb['listname_error_unique'] = 'Na serveru je již shodný \\"název seznamu\\".
 $wb['email_error_isemail'] = 'E-mailová adresa je neplatná.';
 $wb['mailinglist_txt'] = 'E-mailové konference';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
index db31273f59..abd9737338 100644
--- a/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_mailinglist_list.lng
@@ -3,3 +3,4 @@ $wb['list_head_txt'] = 'E-mailové konference';
 $wb['domain_txt'] = 'Doména';
 $wb['listname_txt'] = 'Název seznamu';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng b/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
index 1928c31e14..d74606ca4f 100644
--- a/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
+++ b/interface/web/mail/lib/lang/cz_mail_relay_recipient.lng
@@ -5,5 +5,6 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['active_txt'] = 'Aktivní';
 $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
-$wb['limit_mailfilter_txt'] = 'Dosažen maximální počet e-mail filtrů pro Váš účet.';
+$wb['limit_mailfilter_txt'] = 'Byl dosažen maximální počet e-mail filtrů pro Váš účet.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
index 3f8c4987a4..085b9aa167 100644
--- a/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_relay_recipient_list.lng
@@ -7,3 +7,4 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['add_new_record_txt'] = 'Vytvořit relay adresáta';
 $wb['access_txt'] = 'Přístup';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_spamfilter.lng b/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
index 4b6cc2b5d8..b538ad044a 100644
--- a/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_spamfilter.lng
@@ -15,3 +15,4 @@ $wb['email_error_unique'] = 'Pro tuto email adresu již existuje filtrovací zá
 $wb['spam_redirect_maildir_purge_txt'] = 'Vyčistit poté mailový adresář';
 $wb['days_txt'] = 'Dny.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
index 0e4b885be1..28422bd178 100644
--- a/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_spamfilter_list.lng
@@ -6,3 +6,4 @@ $wb['server_name_txt'] = 'server_name';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit nový záznam spamfiltru';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_transport.lng b/interface/web/mail/lib/lang/cz_mail_transport.lng
index 508ca764b6..ebf7703086 100644
--- a/interface/web/mail/lib/lang/cz_mail_transport.lng
+++ b/interface/web/mail/lib/lang/cz_mail_transport.lng
@@ -6,6 +6,7 @@ $wb['type_txt'] = 'Typ';
 $wb['mx_txt'] = 'Neprovádět MX lookup';
 $wb['sort_order_txt'] = 'Třídit podle';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_mailrouting_txt'] = 'Dosažen maximální počet e-mail směrování pro Váš účet.';
+$wb['limit_mailrouting_txt'] = 'Byl dosažen maximální počet e-mail směrování pro Váš účet.';
 $wb['transport_txt'] = 'Transport';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_transport_list.lng b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
index 8bdd31d7ce..1749f5bcf3 100644
--- a/interface/web/mail/lib/lang/cz_mail_transport_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_transport_list.lng
@@ -7,3 +7,4 @@ $wb['transport_txt'] = 'E-mailové směrování';
 $wb['sort_order_txt'] = 'Třídit podle';
 $wb['add_new_record_txt'] = 'Vytvořit e-mailové směrování';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng
index e0e2e8cf0f..beac55de91 100644
--- a/interface/web/mail/lib/lang/cz_mail_user.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user.lng
@@ -23,7 +23,7 @@ $wb['postfix_txt'] = 'Povolit příjem';
 $wb['access_txt'] = 'Povolit přístup';
 $wb['policy_txt'] = 'Spamový filtr';
 $wb['no_policy'] = '- nepovoleno -';
-$wb['limit_mailbox_txt'] = 'Dosažen maximální počet mailboxů pro Váš účet.';
+$wb['limit_mailbox_txt'] = 'Byl dosažen maximální počet mailboxů pro Váš účet.';
 $wb['limit_mailquota_txt'] = 'Dosažen maximální prostor pro mailboxy. Max. dostupné místo v MB je';
 $wb['disableimap_txt'] = 'Zakázat IMAP';
 $wb['disablepop3_txt'] = 'Zakázat POP3';
@@ -61,5 +61,6 @@ $wb['daily_backup_txt'] = 'Denní';
 $wb['weekly_backup_txt'] = 'Týdenní';
 $wb['monthly_backup_txt'] = 'Měsíční';
 $wb['sender_cc_note_txt'] = '(Při posílání kopií na více e-mailových adres, oddělte čárkami.) ';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['password_click_to_set_txt'] = 'Pro nastavení klikni zde';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_filter.lng b/interface/web/mail/lib/lang/cz_mail_user_filter.lng
index 9bd3580635..799c3cfe64 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_filter.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_filter.lng
@@ -27,3 +27,4 @@ $wb['reject_txt'] = 'Reject';
 $wb['stop_txt'] = 'Stop';
 $wb['move_to_txt'] = 'Přesunout';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng b/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
index 9a78b26b69..d1f40be3ed 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_filter_list.lng
@@ -5,3 +5,4 @@ $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Opravdu smazat mailový filtr ?';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_list.lng b/interface/web/mail/lib/lang/cz_mail_user_list.lng
index e4e2241599..aa0821a7c1 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_list.lng
@@ -10,3 +10,4 @@ $wb['disablesmtp_txt'] = 'SMTP (odesílání)';
 $wb['disableimap_txt'] = 'IMAP';
 $wb['disablepop3_txt'] = 'POP3';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng b/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
index 50cbc31d5c..9c7602dc38 100644
--- a/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_user_stats_list.lng
@@ -6,3 +6,4 @@ $wb['last_month_txt'] = 'Minulý měsíc';
 $wb['this_year_txt'] = 'Tento rok';
 $wb['last_year_txt'] = 'Minulý rok';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_whitelist.lng b/interface/web/mail/lib/lang/cz_mail_whitelist.lng
index db55c18a0b..34a3adefe8 100644
--- a/interface/web/mail/lib/lang/cz_mail_whitelist.lng
+++ b/interface/web/mail/lib/lang/cz_mail_whitelist.lng
@@ -5,5 +5,6 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['active_txt'] = 'Aktivní';
 $wb['source_error_notempty'] = 'Adresa je prázdná.';
 $wb['type_txt'] = 'Typ';
-$wb['limit_mailfilter_txt'] = 'Dosažen maximální počet email filtrů pro Váš účet.';
+$wb['limit_mailfilter_txt'] = 'Byl dosažen maximální počet e-mail filtrů pro Váš účet.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
index ee3b0b8bdd..5aa33a3de3 100644
--- a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng
@@ -8,3 +8,4 @@ $wb['recipient_txt'] = 'Příjemce (adresát)';
 $wb['add_new_record_txt'] = 'Přidat na bílou listinu';
 $wb['access_txt'] = 'Přístup';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
index 4d47c28671..26e72ab9a1 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_blacklist.lng
@@ -5,8 +5,9 @@ $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-mail';
 $wb['priority_txt'] = 'Priorita';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_spamfilter_wblist_txt'] = 'Dosažen maximální počet záznamů pro bílou / černou listinu pro Váš účet.';
+$wb['limit_spamfilter_wblist_txt'] = 'Byl dosažen maximální počet záznamů pro bílou / černou listinu pro Váš účet.';
 $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
index d634d7242c..74193ec85c 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_blacklist_list.lng
@@ -7,3 +7,4 @@ $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-maily na černé listině';
 $wb['add_new_record_txt'] = 'Přidat na černou listinu';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_config.lng b/interface/web/mail/lib/lang/cz_spamfilter_config.lng
index 0d4218498e..d1c7ebda90 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_config.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_config.lng
@@ -18,3 +18,4 @@ $wb['mailbox_size_limit_txt'] = 'Limit velikosti e-mailové schránky';
 $wb['message_size_limit_txt'] = 'Limit velikosti zprávy';
 $wb['hostname_txt'] = 'Název hostitele';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
index fe2ee8d51c..348fe9b0e5 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_config_list.lng
@@ -3,3 +3,4 @@ $wb['list_head_txt'] = 'Konfigurace serveru';
 $wb['server_name_txt'] = 'Server';
 $wb['server_id_txt'] = 'server_id';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
index c5765e807f..638d5c1a8b 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng
@@ -36,3 +36,4 @@ $wb['spam_admin_txt'] = 'SPAM admin';
 $wb['message_size_limit_txt'] = 'Limit velikosti zprávy';
 $wb['banned_rulenames_txt'] = 'Název pravidel zabanované';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
index 5b7cde522f..321fa28a8a 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_policy_list.lng
@@ -7,3 +7,4 @@ $wb['banned_files_lover_txt'] = 'Zabanované soubory';
 $wb['bad_header_lover_txt'] = 'Špatné hlavičky';
 $wb['add_new_record_txt'] = 'Vytvořit záznam politiky';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users.lng b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
index 3473064e21..d6f1b1903e 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_users.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_users.lng
@@ -11,3 +11,4 @@ $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
index 5f823362cf..0f8ea31672 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_users_list.lng
@@ -8,3 +8,4 @@ $wb['fullname_txt'] = 'Jméno';
 $wb['email_txt'] = 'E-mail';
 $wb['add_new_record_txt'] = 'Vytvořit spamfiltr uživatele';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
index 4d47c28671..26e72ab9a1 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist.lng
@@ -5,8 +5,9 @@ $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-mail';
 $wb['priority_txt'] = 'Priorita';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_spamfilter_wblist_txt'] = 'Dosažen maximální počet záznamů pro bílou / černou listinu pro Váš účet.';
+$wb['limit_spamfilter_wblist_txt'] = 'Byl dosažen maximální počet záznamů pro bílou / černou listinu pro Váš účet.';
 $wb['10 - highest'] = '10 - nejvyšší';
 $wb['5 - medium'] = '5 - střední';
 $wb['1 - lowest'] = '1 - nejnižší';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
index 27202c19ed..11884da667 100644
--- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng
@@ -7,3 +7,4 @@ $wb['rid_txt'] = 'Uživatel';
 $wb['email_txt'] = 'E-maily na bílé listině';
 $wb['add_new_record_txt'] = 'Přidat na bílou listinu';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
index b55af94171..2c99357fd2 100755
--- a/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
@@ -6,3 +6,4 @@ $wb['email_txt'] = 'E-mailová adresa';
 $wb['used_txt'] = 'Využité místo';
 $wb['percentage_txt'] = 'Využité místo v %';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain.lng b/interface/web/mail/lib/lang/cz_xmpp_domain.lng
index 64d49cba18..8f70f19b90 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain.lng
@@ -34,12 +34,12 @@ $wb['ssl_state_txt'] = 'Stát (např. Czech Republic)';
 $wb['ssl_locality_txt'] = 'Název města';
 $wb['ssl_organisation_txt'] = 'Organizace (společnost)';
 $wb['ssl_organisation_unit_txt'] = 'Organizační jednotka (pobočka,oddělení)';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_country_txt'] = 'ZemÄ›';
+$wb['ssl_key_txt'] = 'SSL klíč';
+$wb['ssl_request_txt'] = 'SSL žádost';
+$wb['ssl_cert_txt'] = 'SSL certifikát';
 $wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
+$wb['ssl_action_txt'] = 'SSL akce';
 $wb['ssl_email_txt'] = 'E-mailová adresa';
 $wb['ssl_txt'] = 'SSL';
 $wb['error_ssl_state_empty'] = 'SSL State is empty.';
@@ -53,10 +53,11 @@ $wb['ssl_locality_error_regex'] = 'Neplatný SSL řádek - Název města. Platn
 $wb['ssl_organisation_error_regex'] = 'Neplatný SSL řádek - Organizace. Platné znaky jsou: a-z, 0-9 a .,-_ (žádná diakritika)';
 $wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
 $wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['none_txt'] = 'Žádný';
+$wb['none_txt'] = 'Žádná';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
 $wb['delete_certificate_txt'] = 'Delete certificate';
 $wb['ssl_error_isemail'] = 'Please enter a valid email adress for generation of the SSL certificate';
 $wb['limit_xmppdomain_txt'] = 'The max. number of XMPP domains for your account is reached.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
index 9a4885fa96..ae07d88591 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain_admin_list.lng
@@ -6,3 +6,4 @@ $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng b/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
index c031c30849..fbd7985d1b 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_domain_list.lng
@@ -5,3 +5,4 @@ $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit doménu';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_user.lng b/interface/web/mail/lib/lang/cz_xmpp_user.lng
index eaa73b08a3..c0660c966e 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_user.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_user.lng
@@ -13,3 +13,4 @@ $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['no_domain_perm'] = 'Nemáte oprávnění pro tuto doménu.';
 $wb['limit_xmpp_user_txt'] = 'The max. number of xmpp accounts for your account is reached.';
 ?>
+
diff --git a/interface/web/mail/lib/lang/cz_xmpp_user_list.lng b/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
index f611f1c4ff..3ffcaccd3c 100644
--- a/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
+++ b/interface/web/mail/lib/lang/cz_xmpp_user_list.lng
@@ -6,3 +6,4 @@ $wb['is_muc_admin_txt'] = 'MUC admin';
 $wb['add_new_record_txt'] = 'Přidat uživatele';
 $wb['active_txt'] = 'Aktivní';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz.lng b/interface/web/mailuser/lib/lang/cz.lng
index 8b4b58bc42..4c947bd5f8 100644
--- a/interface/web/mailuser/lib/lang/cz.lng
+++ b/interface/web/mailuser/lib/lang/cz.lng
@@ -7,3 +7,4 @@ $wb['Send copy'] = 'Poslat kopii na e-mail';
 $wb['Spamfilter'] = 'Spamový filtr';
 $wb['Email Filters'] = 'E-mailové filtry';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz_index.lng b/interface/web/mailuser/lib/lang/cz_index.lng
index 45af56ee8d..cb39d65ad6 100644
--- a/interface/web/mailuser/lib/lang/cz_index.lng
+++ b/interface/web/mailuser/lib/lang/cz_index.lng
@@ -10,3 +10,4 @@ $wb['unlimited_txt'] = 'Neomezený';
 $wb['mb_txt'] = 'MB';
 $wb['none_txt'] = 'Nenastaveno';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
index ef3aeb42da..5ed9a1f46e 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng
@@ -11,3 +11,4 @@ $wb['autoresponder_active'] = 'Povolit automatický odpovídač';
 $wb['now_txt'] = 'Nyní';
 $wb['autoresponder_subject_txt'] = 'Předmět e-mailu';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
index 57ecd90b9a..386d6d8ac5 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_cc.lng
@@ -7,3 +7,4 @@ $wb['email_is_cc_error'] = 'Vyplněná e-mailová adresa a poslat kopii na e-mai
 $wb['name_optional_txt'] = '(Volitelné)';
 $wb['cc_note_txt'] = '(Při posílání kopií na více e-mailových adres, oddělte čárkami.)';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
index 27b54c1bc7..4dbffe8662 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng
@@ -19,3 +19,4 @@ $wb['move_to_txt'] = 'Přesunout do';
 $wb['delete_txt'] = 'Smazat';
 $wb['mailbox_filter_txt'] = 'Mailbox filter';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
index 546c148509..59fd6a3e27 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter_list.lng
@@ -6,3 +6,4 @@ $wb['page_txt'] = 'Stránka';
 $wb['page_of_txt'] = 'z';
 $wb['delete_confirmation'] = 'Opravdu chcete odstranit e-mail filter?';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
index d7072cfe52..d6b3bf289e 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_password.lng
@@ -7,5 +7,6 @@ $wb['generate_password_txt'] = 'Generovat heslo';
 $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['password_click_to_set_txt'] = 'Pro nastavení klikni zde';
 ?>
+
diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
index 2a53036be6..00720f859d 100644
--- a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
+++ b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng
@@ -5,3 +5,4 @@ $wb['email_txt'] = 'E-mail';
 $wb['no_policy'] = '- nepovoleno -';
 $wb['policy_txt'] = 'Politika';
 ?>
+
diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng
index a4e670df63..87649d4ccf 100644
--- a/interface/web/monitor/lib/lang/cz.lng
+++ b/interface/web/monitor/lib/lang/cz.lng
@@ -161,3 +161,4 @@ $wb['monitor_database_domain_txt'] = 'Doména';
 $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:';
 $wb['monitor_title_mongodb_txt'] = 'MongoDB Log';
 ?>
+
diff --git a/interface/web/monitor/lib/lang/cz_datalog_list.lng b/interface/web/monitor/lib/lang/cz_datalog_list.lng
index c9e9a86555..29d8cbb448 100644
--- a/interface/web/monitor/lib/lang/cz_datalog_list.lng
+++ b/interface/web/monitor/lib/lang/cz_datalog_list.lng
@@ -6,3 +6,4 @@ $wb['dbtable_txt'] = 'DB tabulka';
 $wb['action_txt'] = 'Akce';
 $wb['status_txt'] = 'Stav';
 ?>
+
diff --git a/interface/web/monitor/lib/lang/cz_syslog_list.lng b/interface/web/monitor/lib/lang/cz_syslog_list.lng
index 990662552b..864232ed0d 100644
--- a/interface/web/monitor/lib/lang/cz_syslog_list.lng
+++ b/interface/web/monitor/lib/lang/cz_syslog_list.lng
@@ -5,3 +5,4 @@ $wb['server_id_txt'] = 'Server';
 $wb['loglevel_txt'] = 'Logovací úroveň';
 $wb['message_txt'] = 'Zpráva';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz.lng b/interface/web/sites/lib/lang/cz.lng
index 4c16438e34..6580b3f2c5 100644
--- a/interface/web/sites/lib/lang/cz.lng
+++ b/interface/web/sites/lib/lang/cz.lng
@@ -33,3 +33,4 @@ $wb['Update Packagelist'] = 'Aktualizace seznamu balíčků';
 $wb['Subdomain (Vhost)'] = 'Subdoména (Vhost)';
 $wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng
index 5ec94945d1..a8e954b1a7 100644
--- a/interface/web/sites/lib/lang/cz_aps.lng
+++ b/interface/web/sites/lib/lang/cz_aps.lng
@@ -56,3 +56,4 @@ $wb['btn_install_txt'] = 'Instalovat';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['limit_aps_txt'] = 'Max. počet APS  instancí u vašeho účtu je dosaženo.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_aps_instances_list.lng b/interface/web/sites/lib/lang/cz_aps_instances_list.lng
index 8d712878d7..8f7c248a60 100644
--- a/interface/web/sites/lib/lang/cz_aps_instances_list.lng
+++ b/interface/web/sites/lib/lang/cz_aps_instances_list.lng
@@ -9,3 +9,4 @@ $wb['pkg_delete_confirmation'] = 'Opravdu chcete smazat tuto instalaci ?';
 $wb['filter_txt'] = 'Hledat';
 $wb['delete_txt'] = 'Smazat';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_aps_packages_list.lng b/interface/web/sites/lib/lang/cz_aps_packages_list.lng
index 52ef6ebcd9..cf0d2b69d9 100644
--- a/interface/web/sites/lib/lang/cz_aps_packages_list.lng
+++ b/interface/web/sites/lib/lang/cz_aps_packages_list.lng
@@ -6,3 +6,4 @@ $wb['category_txt'] = 'Kategorie';
 $wb['status_txt'] = 'Odemčený';
 $wb['filter_txt'] = 'Hledat';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng b/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
index 8f4124b47e..edf9c2a081 100644
--- a/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
+++ b/interface/web/sites/lib/lang/cz_aps_update_packagelist.lng
@@ -5,3 +5,4 @@ $wb['btn_start_txt'] = 'Aktualizace seznamu balíčků';
 $wb['btn_cancel_txt'] = 'Zrušit';
 $wb['legend_txt'] = 'Zde si můžete aktualizovat seznam dostupných balíčků. Vezměte prosím na vědomí, že aktualizace může trvat až několik minut. Po spuštění aktualizace můžete následně opustit tuto sekci. Tento proces bude pokračovat na pozadí.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_backup_stats_list.lng b/interface/web/sites/lib/lang/cz_backup_stats_list.lng
index 29a84fd015..5609ffbc16 100644
--- a/interface/web/sites/lib/lang/cz_backup_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_backup_stats_list.lng
@@ -8,3 +8,4 @@ $wb['backup_server_txt'] = 'Server';
 $wb['backup_interval_txt'] = 'Interval / cnt.';
 $wb['backup_size_txt'] = 'Velikost zálohy';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_cron.lng b/interface/web/sites/lib/lang/cz_cron.lng
index 05c62e7f01..32e4ff62c4 100644
--- a/interface/web/sites/lib/lang/cz_cron.lng
+++ b/interface/web/sites/lib/lang/cz_cron.lng
@@ -9,7 +9,7 @@ $wb['run_mday_txt'] = 'Dny měsíce';
 $wb['run_month_txt'] = 'Měsíce';
 $wb['run_wday_txt'] = 'Dny týdne';
 $wb['command_txt'] = 'Příkaz ke spuštění (příkazy jsou spuštěny přes sh, url přes wget)';
-$wb['limit_cron_txt'] = 'Dosažen maximální počet cron úloh pro Váš účet.';
+$wb['limit_cron_txt'] = 'Byl dosažen maximální počet cron úloh pro Váš účet.';
 $wb['limit_cron_frequency_txt'] = 'Frekvence cron úloh překročila povolený limit (standardní povolená nejnižší hodnota je 1 x za 5 min. */5)';
 $wb['run_min_error_format'] = 'Chybný formát pro minuty.';
 $wb['run_hour_error_format'] = 'Chybný formát pror hodiny.';
@@ -24,3 +24,4 @@ $wb['command_error_empty'] = 'Command is empty.';
 $wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
 $wb['log_output_txt'] = 'Log output';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_cron_list.lng b/interface/web/sites/lib/lang/cz_cron_list.lng
index 5fdc8352f0..3b1b6c18a7 100644
--- a/interface/web/sites/lib/lang/cz_cron_list.lng
+++ b/interface/web/sites/lib/lang/cz_cron_list.lng
@@ -11,3 +11,4 @@ $wb['command_txt'] = 'Příkaz';
 $wb['add_new_cron_txt'] = 'Vytvořit cron úlohu';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_database.lng b/interface/web/sites/lib/lang/cz_database.lng
index 1a7b0d7173..45afdd0f83 100644
--- a/interface/web/sites/lib/lang/cz_database.lng
+++ b/interface/web/sites/lib/lang/cz_database.lng
@@ -17,7 +17,7 @@ $wb['database_name_error_regex'] = 'Chybný název databáze. Název může obsa
 $wb['database_user_error_empty'] = 'Uživatel databáze je prázdný.';
 $wb['database_user_error_unique'] = 'Uživatel s tímto jménem již existuje. Pro unikátnost jména použijte jako předponu název domény.';
 $wb['database_user_error_regex'] = 'Chybné jméno uživatele. Jméno uživatele může obsahovat tyto znaky: a-z, A-Z, 0-9 a podtržítko. Délka: 2 - 16 znaků.';
-$wb['limit_database_txt'] = 'Dosažen maximální počet databází.';
+$wb['limit_database_txt'] = 'Byl dosažen maximální počet databází.';
 $wb['database_name_change_txt'] = 'Jméno databáze nemůže být změněno';
 $wb['database_charset_change_txt'] = 'Znaková sada databáze nemůže být změněna';
 $wb['database_name_error_len'] = 'Název databáze - {db} - je příliš dlouhý. Maximální délka včetně prefixu je 64 znaků.';
@@ -47,3 +47,4 @@ $wb['limit_database_quota_txt'] = 'Kvóta databáze';
 $wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.';
 $wb['limit_database_quota_free_txt'] = 'Max. available DB quota ';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_database_admin_list.lng b/interface/web/sites/lib/lang/cz_database_admin_list.lng
index 79f4bd8d47..c79d18016d 100644
--- a/interface/web/sites/lib/lang/cz_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_admin_list.lng
@@ -10,3 +10,4 @@ $wb['sys_groupid_txt'] = 'Klient';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['type_txt'] = 'Typ';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_database_list.lng b/interface/web/sites/lib/lang/cz_database_list.lng
index ca82f150d7..e1deb293b4 100644
--- a/interface/web/sites/lib/lang/cz_database_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_list.lng
@@ -9,3 +9,4 @@ $wb['add_new_record_txt'] = 'Vytvořit databázi';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['type_txt'] = 'Typ';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
index 31e9eeedd7..c96fcc0423 100644
--- a/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_quota_stats_list.lng
@@ -5,5 +5,6 @@ $wb['client_txt'] = 'Klient';
 $wb['used_txt'] = 'Využité místo';
 $wb['quota_txt'] = 'Kvóta';
 $wb['percentage_txt'] = 'Využito v %';
-$wb['list_head_txt'] = 'Database Quota';
+$wb['list_head_txt'] = 'Kvóty databází';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_database_user.lng b/interface/web/sites/lib/lang/cz_database_user.lng
index 165bcf8ec0..a465347253 100644
--- a/interface/web/sites/lib/lang/cz_database_user.lng
+++ b/interface/web/sites/lib/lang/cz_database_user.lng
@@ -20,6 +20,7 @@ $wb['globalsearch_noresults_text_txt'] = 'Žádné výsledky.';
 $wb['globalsearch_noresults_limit_txt'] = '0 výsledků';
 $wb['globalsearch_searchfield_watermark_txt'] = 'Hledat';
 $wb['globalsearch_suggestions_text_txt'] = 'Návrhy';
-$wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
-$wb['database_password_error_empty'] = 'Database password is empty.';
+$wb['limit_database_user_txt'] = 'Byl dosažen maximální počet uživatelů databáze.';
+$wb['database_password_error_empty'] = 'Databázové heslo je prázdné.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
index 7a13c03697..85f1f45f46 100644
--- a/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_user_admin_list.lng
@@ -4,3 +4,4 @@ $wb['database_user_txt'] = 'Uživatel databáze';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele databáze';
 $wb['sys_groupid_txt'] = 'Klient';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_database_user_list.lng b/interface/web/sites/lib/lang/cz_database_user_list.lng
index 1acb6ac4c1..38777a3b6c 100644
--- a/interface/web/sites/lib/lang/cz_database_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_database_user_list.lng
@@ -3,3 +3,4 @@ $wb['list_head_txt'] = 'Uživatelé databáze';
 $wb['database_user_txt'] = 'Uživatelé databáze';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele databáze';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
index a90ec16003..80a2f4181b 100644
--- a/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_sites_stats_list.lng
@@ -8,3 +8,4 @@ $wb['sum_txt'] = 'Součet (Stažení + Odeslání)';
 $wb['in_out_txt'] = 'DL/UL';
 $wb['last_year_txt'] = 'Last year';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_ftp_user.lng b/interface/web/sites/lib/lang/cz_ftp_user.lng
index 768a05ae62..da93214a1d 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user.lng
@@ -15,7 +15,7 @@ $wb['password_txt'] = 'Heslo';
 $wb['password_strength_txt'] = 'Bezpečnost hesla';
 $wb['quota_size_txt'] = 'Disková kvóta';
 $wb['active_txt'] = 'Aktivní';
-$wb['limit_ftp_user_txt'] = 'Dosažen maximální počet FTP uživatelů pro Váš účet.';
+$wb['limit_ftp_user_txt'] = 'Byl dosažen maximální počet FTP uživatelů pro Váš účet.';
 $wb['username_error_empty'] = 'Uživatelské jméno je prázdné.';
 $wb['username_error_unique'] = 'Uživatelské jméno musí být unikátní.';
 $wb['username_error_regex'] = 'Uživatelské jméno obsahuje nepovolené znaky.';
@@ -33,3 +33,4 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['expires_txt'] = 'Expire at';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_ftp_user_list.lng b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
index 2b052e29c9..13c4d7cf97 100644
--- a/interface/web/sites/lib/lang/cz_ftp_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_ftp_user_list.lng
@@ -6,3 +6,4 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit FTP uživatele';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng
index eb66108057..76814af975 100644
--- a/interface/web/sites/lib/lang/cz_shell_user.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user.lng
@@ -34,3 +34,4 @@ $wb['shell_error_regex'] = 'Invalid shell';
 $wb['invalid_username_txt'] = 'Invalid Username';
 $wb['directory_error_notinweb'] = 'The directory has to be inside the web root.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_shell_user_list.lng b/interface/web/sites/lib/lang/cz_shell_user_list.lng
index f67bb99050..3c46ea3dd5 100644
--- a/interface/web/sites/lib/lang/cz_shell_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_shell_user_list.lng
@@ -6,3 +6,4 @@ $wb['parent_domain_id_txt'] = 'Stránka';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit shell uživatele';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
index 8e3a8ccd4b..f7c3b1f65a 100644
--- a/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_user_quota_stats_list.lng
@@ -7,3 +7,4 @@ $wb['hard_txt'] = 'Kvóta max. obsazení';
 $wb['soft_txt'] = 'Kvóta pro upozornění';
 $wb['files_txt'] = 'Jednotlivé soubory';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
index 6e2669a8f8..24ee96c0bb 100644
--- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng
@@ -6,13 +6,13 @@ $wb['ssl_state_txt'] = 'Stát (např. Czech Republic)';
 $wb['ssl_locality_txt'] = 'Název města';
 $wb['ssl_organisation_txt'] = 'Organizace (společnost)';
 $wb['ssl_organisation_unit_txt'] = 'Organizační jednotka (pobočka,oddělení)';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_country_txt'] = 'ZemÄ›';
+$wb['ssl_key_txt'] = 'SSL klíč';
+$wb['ssl_request_txt'] = 'SSL žádost';
+$wb['ssl_cert_txt'] = 'SSL certifikát';
 $wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
-$wb['ssl_domain_txt'] = 'SSL Domain';
+$wb['ssl_action_txt'] = 'SSL akce';
+$wb['ssl_domain_txt'] = 'Doména';
 $wb['server_id_txt'] = 'Server';
 $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
 $wb['type_txt'] = 'Typ';
@@ -113,3 +113,4 @@ $wb['proxy_directives_txt'] = 'Proxy Directives';
 $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
 $wb['Domain'] = 'Přezdívky domén webové stránky';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
index 52941756f7..a3285c5598 100644
--- a/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_aliasdomain_list.lng
@@ -6,9 +6,10 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Alias doména';
 $wb['add_new_record_txt'] = 'Vytvořit alias doménu';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
-$wb['domain_error_unique'] = 'Doména musí být unkátní.';
+$wb['domain_error_unique'] = 'Doména musí být unikátní.';
 $wb['domain_error_regex'] = 'Doménové jméno je chybné.';
 $wb['no_redirect_txt'] = 'Žádné přesměrování';
 $wb['no_flag_txt'] = 'Žádný příznak';
 $wb['none_txt'] = 'Žádná';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_backup_list.lng b/interface/web/sites/lib/lang/cz_web_backup_list.lng
index 9674e6197a..9e713e38f7 100644
--- a/interface/web/sites/lib/lang/cz_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_backup_list.lng
@@ -19,3 +19,4 @@ $wb['delete_confirm_txt'] = 'Opravdu chcete smazat tuto zálohu ?';
 $wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
 $wb['backup_type_mongodb'] = 'MongoDB Database';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng
index 1e87c554c5..3202363487 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng
@@ -6,13 +6,13 @@ $wb['ssl_state_txt'] = 'Stát (např. Czech Republic)';
 $wb['ssl_locality_txt'] = 'Název města';
 $wb['ssl_organisation_txt'] = 'Organizace (společnost)';
 $wb['ssl_organisation_unit_txt'] = 'Organizační jednotka (pobočka,oddělení)';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
+$wb['ssl_country_txt'] = 'ZemÄ›';
+$wb['ssl_key_txt'] = 'SSL klíč';
+$wb['ssl_request_txt'] = 'SSL žádost';
+$wb['ssl_cert_txt'] = 'SSL certifikát';
 $wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
-$wb['ssl_domain_txt'] = 'SSL Domain';
+$wb['ssl_action_txt'] = 'SSL akce';
+$wb['ssl_domain_txt'] = 'Doména';
 $wb['server_id_txt'] = 'Server';
 $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
 $wb['type_txt'] = 'Typ';
@@ -30,14 +30,14 @@ $wb['traffic_quota_txt'] = 'Přenosová kvóta';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
 $wb['errordocs_txt'] = 'Own Error-Documents';
-$wb['subdomain_txt'] = 'Auto-Subdomain';
+$wb['subdomain_txt'] = 'Automatická subdoména';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Klient';
-$wb['limit_web_domain_txt'] = 'Dosažen maximální počet web domén pro Váš účet.';
-$wb['limit_web_aliasdomain_txt'] = 'Dosažen maximální počet alias domén pro Váš účet.';
-$wb['limit_web_subdomain_txt'] = 'Dosažen maximální počet subdomén pro Váš účet.';
+$wb['limit_web_domain_txt'] = 'Byl dosažen maximální počet web domén pro Váš účet.';
+$wb['limit_web_aliasdomain_txt'] = 'Byl dosažen maximální počet alias domén pro Váš účet.';
+$wb['limit_web_subdomain_txt'] = 'Byl dosažen maximální počet subdomén pro Váš účet.';
 $wb['apache_directives_txt'] = 'Apache direktivy';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
 $wb['domain_error_unique'] = 'Webová stránka nebo sub / alias doména s tímto doménovým jménem již existuje.';
@@ -76,7 +76,7 @@ $wb['ruby_txt'] = 'Ruby';
 $wb['stats_user_txt'] = 'Webstatistics username';
 $wb['stats_type_txt'] = 'Webstatistics program';
 $wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['none_txt'] = 'Žádný';
+$wb['none_txt'] = 'Žádná';
 $wb['disabled_txt'] = 'Vypnuto';
 $wb['save_certificate_txt'] = 'Save certificate';
 $wb['create_certificate_txt'] = 'Create certificate';
@@ -116,3 +116,4 @@ $wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Sni
 $wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
 $wb['Domain'] = 'Přezdívky domén webové stránky';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
index ce5fb8fdd5..e94c5edef3 100644
--- a/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_childdomain_list.lng
@@ -5,13 +5,14 @@ $wb['server_id_txt'] = 'Server';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Alias doména';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
-$wb['domain_error_unique'] = 'Doména musí být unkátní.';
+$wb['domain_error_unique'] = 'Doména musí být unikátní.';
 $wb['domain_error_regex'] = 'Doménové jméno je chybné.';
 $wb['no_redirect_txt'] = 'Žádné přesměrování';
 $wb['no_flag_txt'] = 'Žádný příznak';
 $wb['none_txt'] = 'Žádná';
 $wb['add_new_subdomain_txt'] = 'Vytvořit subdoménu';
 $wb['add_new_aliasdomain_txt'] = 'Vytvořit přezdívku domény';
-$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
-$wb['subdomain_list_head_txt'] = 'Subdomains';
+$wb['aliasdomain_list_head_txt'] = 'Přezdívky domén';
+$wb['subdomain_list_head_txt'] = 'Subdomény';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_directive_snippets.lng b/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
index d2590e53cf..a17efa214e 100644
--- a/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
+++ b/interface/web/sites/lib/lang/cz_web_directive_snippets.lng
@@ -1,3 +1,4 @@
 <?php
 $wb['directive_snippets_id_txt'] = 'Desired configuration';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng
index d229d788d6..4b5d0c44a3 100644
--- a/interface/web/sites/lib/lang/cz_web_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain.lng
@@ -4,7 +4,7 @@ $wb['ssl_locality_txt'] = 'Název města';
 $wb['ssl_organisation_txt'] = 'Organizace (společnost)';
 $wb['ssl_organisation_unit_txt'] = 'Organizační jednotka (pobočka,oddělení)';
 $wb['ssl_country_txt'] = 'ZemÄ›';
-$wb['ssl_request_txt'] = 'SSL požadavek';
+$wb['ssl_request_txt'] = 'SSL žádost';
 $wb['ssl_cert_txt'] = 'SSL certifikát';
 $wb['ssl_bundle_txt'] = 'SSL bundle';
 $wb['ssl_action_txt'] = 'SSL akce';
@@ -30,9 +30,9 @@ $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Klient';
-$wb['limit_web_domain_txt'] = 'Dosažen maximální počet web domén pro Váš účet.';
-$wb['limit_web_aliasdomain_txt'] = 'Dosažen maximální počet alias domén pro Váš účet.';
-$wb['limit_web_subdomain_txt'] = 'Dosažen maximální počet subdomén pro Váš účet.';
+$wb['limit_web_domain_txt'] = 'Byl dosažen maximální počet web domén pro Váš účet.';
+$wb['limit_web_aliasdomain_txt'] = 'Byl dosažen maximální počet alias domén pro Váš účet.';
+$wb['limit_web_subdomain_txt'] = 'Byl dosažen maximální počet subdomén pro Váš účet.';
 $wb['apache_directives_txt'] = 'Apache direktivy';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
 $wb['domain_error_unique'] = 'Webová stránka nebo sub / alias doména s tímto doménovým jménem již existuje.';
@@ -134,3 +134,4 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng b/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
index 33a836ae56..ce2e3b2d57 100644
--- a/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain_admin_list.lng
@@ -7,3 +7,4 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_domain_list.lng b/interface/web/sites/lib/lang/cz_web_domain_list.lng
index 86968d01d3..d718ab14da 100644
--- a/interface/web/sites/lib/lang/cz_web_domain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_domain_list.lng
@@ -6,3 +6,4 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder.lng b/interface/web/sites/lib/lang/cz_web_folder.lng
index 69310b5558..7d520e068b 100644
--- a/interface/web/sites/lib/lang/cz_web_folder.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder.lng
@@ -6,3 +6,4 @@ $wb['active_txt'] = 'Aktivní';
 $wb['path_error_regex'] = 'Neplatná cesta ke složce.';
 $wb['error_folder_already_protected_txt'] = 'Záznam pro tuto složku již existuje';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder_list.lng b/interface/web/sites/lib/lang/cz_web_folder_list.lng
index 216a483451..a7f899872f 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_list.lng
@@ -6,3 +6,4 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['path_txt'] = 'Cesta';
 $wb['add_new_record_txt'] = 'Vytvořit složku';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder_user.lng b/interface/web/sites/lib/lang/cz_web_folder_user.lng
index ca4cf5d9a6..1c8a018f0d 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_user.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_user.lng
@@ -12,3 +12,4 @@ $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['no_folder_perm'] = 'Nemáte oprávnění pro tuto složku.';
 $wb['error_user_exists_already_txt'] = 'There is already a record for this user.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
index ee38e93c2f..3d44486080 100644
--- a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng
@@ -5,3 +5,4 @@ $wb['web_folder_id_txt'] = 'Složka';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit uživatele složky';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng b/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
index ed93596824..a70ccfb9b7 100644
--- a/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_sites_stats_list.lng
@@ -7,3 +7,4 @@ $wb['this_year_txt'] = 'Tento rok';
 $wb['last_year_txt'] = 'Minulý rok';
 $wb['sum_txt'] = 'Součet';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_subdomain.lng b/interface/web/sites/lib/lang/cz_web_subdomain.lng
index f01101f185..96dbc05552 100644
--- a/interface/web/sites/lib/lang/cz_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_subdomain.lng
@@ -4,7 +4,7 @@ $wb['ssl_locality_txt'] = 'Název města';
 $wb['ssl_organisation_txt'] = 'Organizace (společnost)';
 $wb['ssl_organisation_unit_txt'] = 'Organizační jednotka (pobočka,oddělení)';
 $wb['ssl_country_txt'] = 'ZemÄ›';
-$wb['ssl_request_txt'] = 'SSL požadavek';
+$wb['ssl_request_txt'] = 'SSL žádost';
 $wb['ssl_cert_txt'] = 'SSL certifikát';
 $wb['ssl_bundle_txt'] = 'SSL bundle';
 $wb['ssl_action_txt'] = 'SSL akce';
@@ -28,9 +28,9 @@ $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Klient';
-$wb['limit_web_domain_txt'] = 'Dosažen maximální počet web domén pro Váš účet.';
-$wb['limit_web_aliasdomain_txt'] = 'Dosažen maximální počet alias domén pro Váš účet.';
-$wb['limit_web_subdomain_txt'] = 'Dosažen maximální počet subdomén pro Váš účet.';
+$wb['limit_web_domain_txt'] = 'Byl dosažen maximální počet web domén pro Váš účet.';
+$wb['limit_web_aliasdomain_txt'] = 'Byl dosažen maximální počet alias domén pro Váš účet.';
+$wb['limit_web_subdomain_txt'] = 'Byl dosažen maximální počet subdomén pro Váš účet.';
 $wb['apache_directives_txt'] = 'Apache direktivy';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
 $wb['domain_error_unique'] = 'Webová stránka nebo sub / alias doména s tímto doménovým jménem již existuje.';
@@ -48,3 +48,4 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_subdomain_list.lng b/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
index 7e5774ad11..a23ed8f0fd 100644
--- a/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_subdomain_list.lng
@@ -6,3 +6,4 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Subdoména';
 $wb['add_new_record_txt'] = 'Vytvořit subdoménu';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
index df881a8954..87c7afae93 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
@@ -1,6 +1,6 @@
 <?php
 $wb['parent_domain_id_txt'] = 'Rodičovská webová stránka';
-$wb['web_folder_txt'] = 'Web folder';
+$wb['web_folder_txt'] = 'Webové složky';
 $wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.';
 $wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
 $wb['backup_interval_txt'] = 'Interval zálohování';
@@ -10,7 +10,7 @@ $wb['ssl_locality_txt'] = 'Název města';
 $wb['ssl_organisation_txt'] = 'Organizace (společnost)';
 $wb['ssl_organisation_unit_txt'] = 'Organizační jednotka (pobočka,oddělení)';
 $wb['ssl_country_txt'] = 'ZemÄ›';
-$wb['ssl_request_txt'] = 'SSL požadavek';
+$wb['ssl_request_txt'] = 'SSL žádost';
 $wb['ssl_cert_txt'] = 'SSL certifikát';
 $wb['ssl_bundle_txt'] = 'SSL bundle';
 $wb['ssl_action_txt'] = 'SSL akce';
@@ -37,9 +37,9 @@ $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Klient';
-$wb['limit_web_domain_txt'] = 'Dosažen maximální počet web domén pro Váš účet.';
-$wb['limit_web_aliasdomain_txt'] = 'Dosažen maximální počet alias domén pro Váš účet.';
-$wb['limit_web_subdomain_txt'] = 'Dosažen maximální počet subdomén pro Váš účet.';
+$wb['limit_web_domain_txt'] = 'Byl dosažen maximální počet web domén pro Váš účet.';
+$wb['limit_web_aliasdomain_txt'] = 'Byl dosažen maximální počet alias domén pro Váš účet.';
+$wb['limit_web_subdomain_txt'] = 'Byl dosažen maximální počet subdomén pro Váš účet.';
 $wb['apache_directives_txt'] = 'Apache direktivy';
 $wb['domain_error_empty'] = 'Doména je prázdná.';
 $wb['domain_error_unique'] = 'Webová stránka nebo sub / alias doména s tímto doménovým jménem již existuje.';
@@ -149,3 +149,4 @@ $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 $wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
index 0e9dc6d00e..1557d0c6ee 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_admin_list.lng
@@ -6,9 +6,10 @@ $wb['active_txt'] = 'Aktivní';
 $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webové stránky';
-$wb['add_new_subdomain_txt'] = 'Add new subdomain';
-$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
-$wb['domain_list_head_txt'] = 'Websites';
-$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
-$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
+$wb['add_new_subdomain_txt'] = 'Přidat subdoménu';
+$wb['add_new_aliasdomain_txt'] = 'Přidat přezdívku domény';
+$wb['domain_list_head_txt'] = 'Webové stránky';
+$wb['aliasdomain_list_head_txt'] = 'Přezdívky domén (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomény (Vhost)';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
index 5dee883a70..d7ddf2b4da 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain_list.lng
@@ -6,9 +6,10 @@ $wb['server_id_txt'] = 'Server';
 $wb['domain_txt'] = 'Doména';
 $wb['add_new_record_txt'] = 'Vytvořit webovou stránku';
 $wb['parent_domain_id_txt'] = 'Webové stránky';
-$wb['add_new_subdomain_txt'] = 'Add new subdomain';
-$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
-$wb['domain_list_head_txt'] = 'Websites';
-$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
-$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
+$wb['add_new_subdomain_txt'] = 'Přidat subdoménu';
+$wb['add_new_aliasdomain_txt'] = 'Přidat přezdívku domény';
+$wb['domain_list_head_txt'] = 'Webové stránky';
+$wb['aliasdomain_list_head_txt'] = 'Přezdívky domén (Vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomény (Vhost)';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
index fd4cd0a002..d0c9a799aa 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng
@@ -11,7 +11,7 @@ $wb['ssl_organisation_txt'] = 'Organizace (společnost)';
 $wb['ssl_organisation_unit_txt'] = 'Organizační jednotka (pobočka,oddělení)';
 $wb['ssl_country_txt'] = 'ZemÄ›';
 $wb['ssl_key_txt'] = 'SSL klíč';
-$wb['ssl_request_txt'] = 'SSL požadavek';
+$wb['ssl_request_txt'] = 'SSL žádost';
 $wb['ssl_cert_txt'] = 'SSL certifikát';
 $wb['ssl_bundle_txt'] = 'SSL Bundle';
 $wb['ssl_action_txt'] = 'SSL akce';
@@ -129,3 +129,4 @@ $wb['https_port_txt'] = 'HTTPS Port';
 $wb['http_port_error_regex'] = 'HTTP Port invalid.';
 $wb['https_port_error_regex'] = 'HTTPS Port invalid.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
index 6fe2d6930d..9a51299212 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain_list.lng
@@ -6,3 +6,4 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['domain_txt'] = 'Subdoména';
 $wb['add_new_record_txt'] = 'Vytvořit poddoménu';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_webdav_user.lng b/interface/web/sites/lib/lang/cz_webdav_user.lng
index 659cf3e8cc..8870c365ce 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user.lng
@@ -19,3 +19,4 @@ $wb['repeat_password_txt'] = 'Opakujte heslo';
 $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 ?>
+
diff --git a/interface/web/sites/lib/lang/cz_webdav_user_list.lng b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
index c424df16c6..900aa8fd8c 100644
--- a/interface/web/sites/lib/lang/cz_webdav_user_list.lng
+++ b/interface/web/sites/lib/lang/cz_webdav_user_list.lng
@@ -6,3 +6,4 @@ $wb['parent_domain_id_txt'] = 'Webové stránky';
 $wb['username_txt'] = 'Uživatelské jméno';
 $wb['add_new_record_txt'] = 'Vytvořit WebDAV uživatele';
 ?>
+
diff --git a/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
index cff29d541a..136f5e2273 100644
--- a/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
+++ b/interface/web/strengthmeter/lib/lang/cz_strengthmeter.lng
@@ -6,3 +6,4 @@ $wb['password_strength_3_txt'] = 'Dobré';
 $wb['password_strength_4_txt'] = 'Silné';
 $wb['password_strength_5_txt'] = 'Velmi silné';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz.lng b/interface/web/tools/lib/lang/cz.lng
index 66bcaf49ae..2379ffb8e5 100644
--- a/interface/web/tools/lib/lang/cz.lng
+++ b/interface/web/tools/lib/lang/cz.lng
@@ -11,3 +11,4 @@ $wb['ISPConfig 3 mail'] = 'ISPConfig 3 vzdalený e-mail server';
 $wb['PDNS Tupa'] = 'PowerDNS Tupa';
 $wb['Interface'] = 'Rozhraní';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz_import_ispconfig.lng b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
index 8ebf71795c..97d213ad82 100644
--- a/interface/web/tools/lib/lang/cz_import_ispconfig.lng
+++ b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
@@ -21,3 +21,4 @@ $wb['import_forward_txt'] = 'Import forward';
 $wb['import_user_filter_txt'] = 'Importovat uživatelský filter';
 $wb['import_spamfilter_txt'] = 'Importovat spamový filter';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz_import_vpopmail.lng b/interface/web/tools/lib/lang/cz_import_vpopmail.lng
index c9a9cb32c4..bbe515380b 100644
--- a/interface/web/tools/lib/lang/cz_import_vpopmail.lng
+++ b/interface/web/tools/lib/lang/cz_import_vpopmail.lng
@@ -5,3 +5,4 @@ $wb['btn_start_txt'] = 'Start Import';
 $wb['btn_connect_txt'] = 'Connect to remote server';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz_index.lng b/interface/web/tools/lib/lang/cz_index.lng
index 5ebf1ec341..c3db96e19d 100644
--- a/interface/web/tools/lib/lang/cz_index.lng
+++ b/interface/web/tools/lib/lang/cz_index.lng
@@ -2,3 +2,4 @@
 $wb['page_head_txt'] = 'ISPConfig nástroje';
 $wb['page_desc_txt'] = 'Změna uživatelského nastavení';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz_interface.lng b/interface/web/tools/lib/lang/cz_interface.lng
index 507b7c3cbe..1ac22ec6ca 100644
--- a/interface/web/tools/lib/lang/cz_interface.lng
+++ b/interface/web/tools/lib/lang/cz_interface.lng
@@ -5,3 +5,4 @@ $wb['language_txt'] = 'Jazyk';
 $wb['startmodule_txt'] = 'Výchozí modul po přihlášení';
 $wb['app_theme_txt'] = 'Výchozí grafické téma';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz_resync.lng b/interface/web/tools/lib/lang/cz_resync.lng
index e8bf0027c3..009df39b8b 100644
--- a/interface/web/tools/lib/lang/cz_resync.lng
+++ b/interface/web/tools/lib/lang/cz_resync.lng
@@ -47,3 +47,4 @@ $wb['do_mail_spamfilter_txt'] = 'Resynced Spamfilter';
 $wb['do_mailget_txt'] = 'Proběhla resynchronizace externího získávání e-mailů';
 $wb['resync_mailget_txt'] = 'Externí získávání e-mailů';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz_tpl_default.lng b/interface/web/tools/lib/lang/cz_tpl_default.lng
index 0bc79e972f..e6da4e7876 100644
--- a/interface/web/tools/lib/lang/cz_tpl_default.lng
+++ b/interface/web/tools/lib/lang/cz_tpl_default.lng
@@ -5,3 +5,4 @@ $wb['no_settings_txt'] = 'Nejsou žádné nastavení pro výchozí motiv.';
 $wb['btn_start_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
 ?>
+
diff --git a/interface/web/tools/lib/lang/cz_usersettings.lng b/interface/web/tools/lib/lang/cz_usersettings.lng
index ab76b2261d..6f16f309b7 100644
--- a/interface/web/tools/lib/lang/cz_usersettings.lng
+++ b/interface/web/tools/lib/lang/cz_usersettings.lng
@@ -10,3 +10,4 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodují.';
 $wb['password_match_txt'] = 'Hesla se shodují.';
 $wb['password_txt'] = 'Heslo';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz.lng b/interface/web/vm/lib/lang/cz.lng
index 556a593564..5160018036 100644
--- a/interface/web/vm/lib/lang/cz.lng
+++ b/interface/web/vm/lib/lang/cz.lng
@@ -5,3 +5,4 @@ $wb['VM Templates'] = 'VM Å ablony';
 $wb['IP addresses'] = 'IP adresy';
 $wb['OpenVZ'] = 'OpenVZ';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_action.lng b/interface/web/vm/lib/lang/cz_openvz_action.lng
index 3e2e3e0b84..84682fc15a 100644
--- a/interface/web/vm/lib/lang/cz_openvz_action.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_action.lng
@@ -14,3 +14,4 @@ $wb['ostemplate_name_error'] = 'The OSTemplate name conatains unallowed characte
 $wb['ostemplate_name_unique_error'] = 'There is already a OSTemplate with that name.';
 $wb['ostemplate_exec_txt'] = 'The command to create a OSTemplate has been sent to the host server. It will take several minutes until the OSTemplate has been created.';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ip.lng b/interface/web/vm/lib/lang/cz_openvz_ip.lng
index e749c28648..12b7a40de9 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ip.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ip.lng
@@ -7,3 +7,4 @@ $wb['ip_error_wrong'] = 'Please fill in a valid IPv4 address.';
 $wb['ip_error_unique'] = 'This IP address does already exist.';
 $wb['IP address'] = 'IP adresa';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ip_list.lng b/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
index 7778c6d8c7..c3494d6701 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ip_list.lng
@@ -5,3 +5,4 @@ $wb['ip_address_txt'] = 'IP adresa';
 $wb['reserved_txt'] = 'Rezervováno';
 $wb['vm_id_txt'] = 'VM';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng b/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
index 72838a20de..97741100e4 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ostemplate.lng
@@ -9,3 +9,4 @@ $wb['template_name_error_empty'] = 'Template name is empty.';
 $wb['template_file_error_empty'] = 'Template filename is empty.';
 $wb['Template'] = 'Å ablona';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
index 7705a4d18f..930b33f5bb 100644
--- a/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_ostemplate_list.lng
@@ -6,3 +6,4 @@ $wb['server_id_txt'] = 'Server';
 $wb['allservers_txt'] = 'Exists on all servers';
 $wb['ostemplate_id_txt'] = 'ID';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_template.lng b/interface/web/vm/lib/lang/cz_openvz_template.lng
index e54a2a9dbb..d26a806212 100644
--- a/interface/web/vm/lib/lang/cz_openvz_template.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_template.lng
@@ -95,3 +95,4 @@ $wb['custom_txt'] = 'Custom settings';
 $wb['custom_error'] = 'Not allowed in Custom settings: ';
 $wb['hostname_txt'] = 'Název hostitele';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_template_list.lng b/interface/web/vm/lib/lang/cz_openvz_template_list.lng
index 89c11ef5d1..353e760ea6 100644
--- a/interface/web/vm/lib/lang/cz_openvz_template_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_template_list.lng
@@ -3,3 +3,4 @@ $wb['list_head_txt'] = 'OpenVZ Virtual Machine Template';
 $wb['active_txt'] = 'Aktivní';
 $wb['template_name_txt'] = 'Název šablony';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_vm.lng b/interface/web/vm/lib/lang/cz_openvz_vm.lng
index 7c610fbe04..3add1557fe 100644
--- a/interface/web/vm/lib/lang/cz_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_vm.lng
@@ -43,3 +43,4 @@ $wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boo
 $wb['hostname_txt'] = 'Název hostitele';
 $wb['hostname_error_empty'] = 'Název hostitele je prázdný';
 ?>
+
diff --git a/interface/web/vm/lib/lang/cz_openvz_vm_list.lng b/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
index c402181601..54671720a5 100644
--- a/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_vm_list.lng
@@ -8,3 +8,4 @@ $wb['ip_address_txt'] = 'IP adresa';
 $wb['veid_txt'] = 'VEID';
 $wb['hostname_txt'] = 'Název hostitele';
 ?>
+
-- 
GitLab


From dd349627052dbd8508e10c22afd26465078e9191 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Wed, 28 Sep 2016 17:24:49 +0200
Subject: [PATCH 274/313] fixed truncate-query for update.php

---
 install/lib/update.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php
index 89ad82e0e5..581e2d69cb 100644
--- a/install/lib/update.lib.php
+++ b/install/lib/update.lib.php
@@ -396,7 +396,7 @@ function updateDbAndIni() {
 	unset($new_ini);
 
 	// Truncate sys_session
-	$inst->db->query("TRUNCATE sys_session");
+	$inst->db->query('TRUNCATE ??', $conf['mysql']['database'].'sys_session');
 }
 
 
-- 
GitLab


From 568430f2f01a5ff6ac67814ca611a71bac14b11f Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 29 Sep 2016 13:26:22 +0200
Subject: [PATCH 275/313] Fixed error: RewriteCond: bad flag delimiters

---
 server/conf/vhost.conf.master | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 541133fc0d..103be06b3f 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -416,17 +416,23 @@
 </tmpl_if>
 <tmpl_if name='seo_redirect_enabled'>
 		RewriteCond %{HTTP_HOST} <tmpl_var name='seo_redirect_operator'>^<tmpl_var name='seo_redirect_origin_domain'>$ [NC]
-		<tmpl_if name='apache_version' op='<' value='2.4' format='version'>RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/</tmpl_if>
+		<tmpl_if name='apache_version' op='<' value='2.4' format='version'>
+		RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
+		</tmpl_if>
 		RewriteRule ^(.*)$ http<tmpl_if name='ssl_enabled'>s</tmpl_if>://<tmpl_var name='seo_redirect_target_domain'>$1 [R=301,NE,L]
 </tmpl_if>
 <tmpl_loop name="alias_seo_redirects">
 		RewriteCond %{HTTP_HOST} <tmpl_var name='alias_seo_redirect_operator'>^<tmpl_var name='alias_seo_redirect_origin_domain'>$ [NC]
-		<tmpl_if name='apache_version' op='<' value='2.4' format='version'>RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/</tmpl_if>
+		<tmpl_if name='apache_version' op='<' value='2.4' format='version'>
+		RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
+		</tmpl_if>
 		RewriteRule ^(.*)$ http<tmpl_if name='ssl_enabled'>s</tmpl_if>://<tmpl_var name='alias_seo_redirect_target_domain'>$1 [R=301,NE,L]
 </tmpl_loop>
 <tmpl_loop name="redirects">
 		RewriteCond %{HTTP_HOST}   <tmpl_var name='rewrite_domain'>$ [NC]
-		<tmpl_if name='apache_version' op='<' value='2.4' format='version'>RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/</tmpl_if>
+		<tmpl_if name='apache_version' op='<' value='2.4' format='version'>
+		RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
+		</tmpl_if>
 <tmpl_if name="rewrite_is_url" op="==" value="n">
 		RewriteCond %{REQUEST_URI} !^/webdav/
 		RewriteCond %{REQUEST_URI} !^/php5-fcgi/
-- 
GitLab


From efe163de7b8735268ec060d278850e425ad830f3 Mon Sep 17 00:00:00 2001
From: enavn <hostmaster@dotserv.com>
Date: Fri, 30 Sep 2016 14:36:55 +0200
Subject: [PATCH 276/313] Fix xfs_quota

---
 server/plugins-available/cron_plugin.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php
index 1a13a57fcd..83537beb13 100644
--- a/server/plugins-available/cron_plugin.inc.php
+++ b/server/plugins-available/cron_plugin.inc.php
@@ -145,10 +145,10 @@ class cron_plugin {
               exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
             } elseif ($file_system == 'xfs') {
                 
-              exec("xfs_quota -x -c 'limit -g bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
+              exec("xfs_quota -x -c 'limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
 
               // xfs only supports timers globally, not per user.
-              exec("xfs_quota -x -c 'timer -bir -i 604800'");
+              exec("xfs_quota -x -c 'timer -bir -i 604800' $primitive_root");
 
               unset($project_uid, $username_position, $xfs_projects);
               unset($primitive_root, $df_output, $mb_hard, $mb_soft);
-- 
GitLab


From 18e02970b85f4b99fabbd753878097f1eac8ebf6 Mon Sep 17 00:00:00 2001
From: enavn <hostmaster@dotserv.com>
Date: Fri, 30 Sep 2016 14:36:58 +0200
Subject: [PATCH 277/313] Fix xfs_quota

---
 server/plugins-available/nginx_plugin.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index f7bf24ae27..27d710d395 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -748,10 +748,10 @@ class nginx_plugin {
           $primitive_root = $df_output[1];
 
           if($file_system == 'xfs') {
-			exec("xfs_quota -x -c 'limit -g bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
+			exec("xfs_quota -x -c 'limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
 
             // xfs only supports timers globally, not per user.
-            exec("xfs_quota -x -c 'timer -bir -i 604800'");
+            exec("xfs_quota -x -c 'timer -bir -i 604800' $primitive_root");
 
             unset($project_uid, $username_position, $xfs_projects);
             unset($primitive_root, $df_output, $mb_hard, $mb_soft);
-- 
GitLab


From 1cccf01764ec74a400a26abc45fdbf12db848d0f Mon Sep 17 00:00:00 2001
From: enavn <hostmaster@dotserv.com>
Date: Fri, 30 Sep 2016 14:37:01 +0200
Subject: [PATCH 278/313] Fix xfs_quota

---
 server/plugins-available/apache2_plugin.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 46f08dbd30..157f994488 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -890,10 +890,10 @@ class apache2_plugin {
           $primitive_root = $df_output[1];
 
 		  if($file_system == 'xfs') {
-			exec("xfs_quota -x -c 'limit -g bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
+			exec("xfs_quota -x -c 'limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
 
             // xfs only supports timers globally, not per user.
-            exec("xfs_quota -x -c 'timer -bir -i 604800'");
+            exec("xfs_quota -x -c 'timer -bir -i 604800' $primitive_root");
 
             unset($project_uid, $username_position, $xfs_projects);
             unset($primitive_root, $df_output, $mb_hard, $mb_soft);
-- 
GitLab


From 6d2655f5ad4b5c129d1019ab46c7f710706903f1 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Sun, 2 Oct 2016 22:03:57 +0200
Subject: [PATCH 279/313] Fixes wrong query errors (fixes #4231, #4240)

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 6cc2486b3c..a2e2136238 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -585,7 +585,7 @@ class installer_base {
 					$this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
 				}
 
-				$query = "GRANT SELECT, UPDATE (`ssl_request`, `ssl_cert`, `ssl_action`, `ssl_key`) ON ?? TO ?@?";
+				$query = "GRANT SELECT, UPDATE (`ssl`, `ssl_letsencrypt`, `ssl_request`, `ssl_cert`, `ssl_action`, `ssl_key`) ON ?? TO ?@?";
 				if ($verbose){
 					echo $query ."\n";
 				}
-- 
GitLab


From 0e3cf6f51b4fd056ec70dcf11c5dedc309342377 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Mon, 3 Oct 2016 17:16:04 +0200
Subject: [PATCH 280/313] - use idn constants only if defined, fixes #4237

---
 interface/lib/classes/functions.inc.php | 12 ++++++++++--
 server/lib/classes/functions.inc.php    | 12 ++++++++++--
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php
index 03bd11d390..3a9fcb9a10 100644
--- a/interface/lib/classes/functions.inc.php
+++ b/interface/lib/classes/functions.inc.php
@@ -302,7 +302,11 @@ class functions {
 
 		if($encode == true) {
 			if(function_exists('idn_to_ascii')) {
-				$domain = idn_to_ascii($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				if(defined('IDNA_NONTRANSITIONAL_TO_ASCII') && defined('INTL_IDNA_VARIANT_UTS46') && constant('IDNA_NONTRANSITIONAL_TO_ASCII')) {
+					$domain = idn_to_ascii($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				} else {
+					$domain = idn_to_ascii($domain);
+				}
 			} elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) {
 				/* use idna class:
                  * @author  Matthias Sommerfeld <mso@phlylabs.de>
@@ -319,7 +323,11 @@ class functions {
 			}
 		} else {
 			if(function_exists('idn_to_utf8')) {
-				$domain = idn_to_utf8($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				if(defined('IDNA_NONTRANSITIONAL_TO_ASCII') && defined('INTL_IDNA_VARIANT_UTS46') && constant('IDNA_NONTRANSITIONAL_TO_ASCII')) {
+					$domain = idn_to_utf8($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				} else {
+					$domain = idn_to_utf8($domain);
+				}
 			} elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) {
 				/* use idna class:
                  * @author  Matthias Sommerfeld <mso@phlylabs.de>
diff --git a/server/lib/classes/functions.inc.php b/server/lib/classes/functions.inc.php
index 6a46d5e7fc..1f9c6b6efc 100644
--- a/server/lib/classes/functions.inc.php
+++ b/server/lib/classes/functions.inc.php
@@ -354,7 +354,11 @@ class functions {
 
 		if($encode == true) {
 			if(function_exists('idn_to_ascii')) {
-				$domain = idn_to_ascii($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				if(defined('IDNA_NONTRANSITIONAL_TO_ASCII') && defined('INTL_IDNA_VARIANT_UTS46') && constant('IDNA_NONTRANSITIONAL_TO_ASCII')) {
+					$domain = idn_to_ascii($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				} else {
+					$domain = idn_to_ascii($domain);
+				}
 			} elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) {
 				/* use idna class:
                  * @author  Matthias Sommerfeld <mso@phlylabs.de>
@@ -371,7 +375,11 @@ class functions {
 			}
 		} else {
 			if(function_exists('idn_to_utf8')) {
-				$domain = idn_to_utf8($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				if(defined('IDNA_NONTRANSITIONAL_TO_ASCII') && defined('INTL_IDNA_VARIANT_UTS46') && constant('IDNA_NONTRANSITIONAL_TO_ASCII')) {
+					$domain = idn_to_utf8($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
+				} else {
+					$domain = idn_to_utf8($domain);
+				}
 			} elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) {
 				/* use idna class:
                  * @author  Matthias Sommerfeld <mso@phlylabs.de>
-- 
GitLab


From 0d35fef998ad4e41655f9fc5bd6b950a33388143 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 4 Oct 2016 18:48:51 +0200
Subject: [PATCH 281/313] Updated BR translation.

---
 interface/lib/lang/br.lng                     | 230 ++++----
 interface/web/admin/lib/lang/br.lng           |  60 +-
 .../admin/lib/lang/br_directive_snippets.lng  |  20 +-
 .../lib/lang/br_directive_snippets_list.lng   |  12 +-
 interface/web/admin/lib/lang/br_firewall.lng  |   4 +-
 .../web/admin/lib/lang/br_firewall_list.lng   |   6 +-
 interface/web/admin/lib/lang/br_groups.lng    |   2 +-
 .../web/admin/lib/lang/br_groups_list.lng     |   2 +-
 interface/web/admin/lib/lang/br_iptables.lng  |  22 +-
 .../web/admin/lib/lang/br_iptables_list.lng   |  26 +-
 .../web/admin/lib/lang/br_language_add.lng    |  10 +-
 .../admin/lib/lang/br_language_complete.lng   |   4 +-
 .../web/admin/lib/lang/br_language_edit.lng   |   4 +-
 .../web/admin/lib/lang/br_language_import.lng |   8 +-
 .../web/admin/lib/lang/br_language_list.lng   |   4 +-
 .../web/admin/lib/lang/br_package_install.lng |   8 +-
 .../web/admin/lib/lang/br_remote_action.lng   |   8 +-
 .../web/admin/lib/lang/br_remote_user.lng     |  78 +--
 .../admin/lib/lang/br_remote_user_list.lng    |   4 +-
 interface/web/admin/lib/lang/br_server.lng    |  20 +-
 .../web/admin/lib/lang/br_server_config.lng   | 532 +++++++++---------
 .../admin/lib/lang/br_server_config_list.lng  |   2 +-
 interface/web/admin/lib/lang/br_server_ip.lng |  12 +-
 .../web/admin/lib/lang/br_server_ip_list.lng  |  10 +-
 .../web/admin/lib/lang/br_server_ip_map.lng   |  20 +-
 .../admin/lib/lang/br_server_ip_map_list.lng  |  10 +-
 .../web/admin/lib/lang/br_server_list.lng     |  10 +-
 .../web/admin/lib/lang/br_server_php.lng      |  28 +-
 .../web/admin/lib/lang/br_server_php_list.lng |  10 +-
 .../admin/lib/lang/br_software_package.lng    |   8 +-
 .../lib/lang/br_software_package_install.lng  |   8 +-
 .../lib/lang/br_software_package_list.lng     |  16 +-
 .../web/admin/lib/lang/br_software_repo.lng   |   2 +-
 .../lib/lang/br_software_update_list.lng      |   4 +-
 .../web/admin/lib/lang/br_system_config.lng   | 150 ++---
 .../admin/lib/lang/br_tpl_default_admin.lng   |  30 +-
 interface/web/admin/lib/lang/br_users.lng     |  24 +-
 .../web/admin/lib/lang/br_users_list.lng      |  12 +-
 interface/web/client/lib/lang/br.lng          |  44 +-
 interface/web/client/lib/lang/br_client.lng   | 350 ++++++------
 .../web/client/lib/lang/br_client_circle.lng  |  14 +-
 .../client/lib/lang/br_client_circle_list.lng |  16 +-
 .../web/client/lib/lang/br_client_del.lng     |   4 +-
 .../web/client/lib/lang/br_client_message.lng |  36 +-
 .../lib/lang/br_client_message_template.lng   |  18 +-
 .../lang/br_client_message_template_list.lng  |   6 +-
 .../client/lib/lang/br_client_template.lng    | 234 ++++----
 .../lib/lang/br_client_template_list.lng      |   4 +-
 .../web/client/lib/lang/br_clients_list.lng   |   8 +-
 interface/web/client/lib/lang/br_domain.lng   |   8 +-
 .../web/client/lib/lang/br_domain_list.lng    |   4 +-
 interface/web/client/lib/lang/br_reseller.lng | 358 ++++++------
 .../web/client/lib/lang/br_resellers_list.lng |   8 +-
 interface/web/dashboard/lib/lang/br.lng       |   2 +-
 .../lib/lang/br_dashlet_customer.lng          |   4 +-
 .../lib/lang/br_dashlet_databasequota.lng     |  10 +-
 .../dashboard/lib/lang/br_dashlet_donate.lng  |  10 +-
 .../br_dashlet_invoice_client_settings.lng    |   4 +-
 .../lib/lang/br_dashlet_invoices.lng          |  28 +-
 .../dashboard/lib/lang/br_dashlet_limits.lng  |  56 +-
 .../lib/lang/br_dashlet_mailquota.lng         |  12 +-
 .../dashboard/lib/lang/br_dashlet_modules.lng |   2 +-
 .../lib/lang/br_dashlet_products.lng          |  14 +-
 .../dashboard/lib/lang/br_dashlet_quota.lng   |  12 +-
 .../dashboard/lib/lang/br_dashlet_shop.lng    |  12 +-
 interface/web/dns/lib/lang/br.lng             |  32 +-
 interface/web/dns/lib/lang/br_dns_a.lng       |  20 +-
 interface/web/dns/lib/lang/br_dns_a_list.lng  |   2 +-
 interface/web/dns/lib/lang/br_dns_aaaa.lng    |  18 +-
 interface/web/dns/lib/lang/br_dns_alias.lng   |  20 +-
 interface/web/dns/lib/lang/br_dns_cname.lng   |  22 +-
 interface/web/dns/lib/lang/br_dns_dkim.lng    |  16 +-
 interface/web/dns/lib/lang/br_dns_dmarc.lng   |  86 +--
 interface/web/dns/lib/lang/br_dns_ds.lng      |  26 +-
 interface/web/dns/lib/lang/br_dns_hinfo.lng   |  20 +-
 interface/web/dns/lib/lang/br_dns_import.lng  |  28 +-
 interface/web/dns/lib/lang/br_dns_loc.lng     |  24 +-
 interface/web/dns/lib/lang/br_dns_mx.lng      |  22 +-
 interface/web/dns/lib/lang/br_dns_ns.lng      |  20 +-
 interface/web/dns/lib/lang/br_dns_ptr.lng     |  20 +-
 interface/web/dns/lib/lang/br_dns_rp.lng      |  20 +-
 interface/web/dns/lib/lang/br_dns_slave.lng   |  22 +-
 .../dns/lib/lang/br_dns_slave_admin_list.lng  |  14 +-
 .../web/dns/lib/lang/br_dns_slave_list.lng    |   6 +-
 interface/web/dns/lib/lang/br_dns_soa.lng     |  56 +-
 .../dns/lib/lang/br_dns_soa_admin_list.lng    |  16 +-
 .../web/dns/lib/lang/br_dns_soa_list.lng      |  10 +-
 interface/web/dns/lib/lang/br_dns_spf.lng     |  44 +-
 interface/web/dns/lib/lang/br_dns_srv.lng     |  26 +-
 .../web/dns/lib/lang/br_dns_template_list.lng |   4 +-
 interface/web/dns/lib/lang/br_dns_tlsa.lng    |  26 +-
 interface/web/dns/lib/lang/br_dns_txt.lng     |  24 +-
 interface/web/dns/lib/lang/br_dns_wizard.lng  |  60 +-
 interface/web/help/lib/lang/br.lng            |  14 +-
 .../lib/lang/br_faq_manage_questions_list.lng |   4 +-
 .../web/help/lib/lang/br_help_faq_list.lng    |   2 +-
 .../lib/lang/br_help_faq_sections_list.lng    |   2 +-
 .../web/help/lib/lang/br_support_message.lng  |  16 +-
 .../help/lib/lang/br_support_message_list.lng |   6 +-
 interface/web/login/lib/lang/br.lng           |  54 +-
 interface/web/login/lib/lang/br_login_as.lng  |  20 +-
 interface/web/mail/lib/lang/br.lng            |  80 +--
 .../mail/lib/lang/br_backup_stats_list.lng    |  14 +-
 interface/web/mail/lib/lang/br_mail_alias.lng |  20 +-
 .../web/mail/lib/lang/br_mail_alias_list.lng  |   6 +-
 .../web/mail/lib/lang/br_mail_aliasdomain.lng |  10 +-
 .../lib/lang/br_mail_aliasdomain_list.lng     |   4 +-
 .../web/mail/lib/lang/br_mail_backup_list.lng |  28 +-
 .../web/mail/lib/lang/br_mail_blacklist.lng   |   6 +-
 .../mail/lib/lang/br_mail_blacklist_list.lng  |   8 +-
 .../mail/lib/lang/br_mail_content_filter.lng  |   2 +-
 .../lib/lang/br_mail_content_filter_list.lng  |   4 +-
 .../web/mail/lib/lang/br_mail_domain.lng      |  24 +-
 .../lib/lang/br_mail_domain_admin_list.lng    |   2 +-
 .../mail/lib/lang/br_mail_domain_catchall.lng |  10 +-
 .../lib/lang/br_mail_domain_catchall_list.lng |   6 +-
 .../web/mail/lib/lang/br_mail_domain_list.lng |   4 +-
 .../web/mail/lib/lang/br_mail_forward.lng     |  18 +-
 .../mail/lib/lang/br_mail_forward_list.lng    |   8 +-
 interface/web/mail/lib/lang/br_mail_get.lng   |  12 +-
 .../web/mail/lib/lang/br_mail_get_list.lng    |   6 +-
 .../web/mail/lib/lang/br_mail_mailinglist.lng |  40 +-
 .../lib/lang/br_mail_mailinglist_list.lng     |   6 +-
 .../mail/lib/lang/br_mail_relay_recipient.lng |   8 +-
 .../lib/lang/br_mail_relay_recipient_list.lng |   8 +-
 .../web/mail/lib/lang/br_mail_spamfilter.lng  |  24 +-
 .../mail/lib/lang/br_mail_spamfilter_list.lng |   8 +-
 .../web/mail/lib/lang/br_mail_transport.lng   |   4 +-
 .../mail/lib/lang/br_mail_transport_list.lng  |   4 +-
 interface/web/mail/lib/lang/br_mail_user.lng  | 102 ++--
 .../web/mail/lib/lang/br_mail_user_filter.lng |  28 +-
 .../lib/lang/br_mail_user_filter_list.lng     |   4 +-
 .../web/mail/lib/lang/br_mail_user_list.lng   |  16 +-
 .../mail/lib/lang/br_mail_user_stats_list.lng |  12 +-
 .../web/mail/lib/lang/br_mail_whitelist.lng   |   8 +-
 .../mail/lib/lang/br_mail_whitelist_list.lng  |   8 +-
 .../mail/lib/lang/br_spamfilter_blacklist.lng |  10 +-
 .../lib/lang/br_spamfilter_blacklist_list.lng |   6 +-
 .../mail/lib/lang/br_spamfilter_config.lng    |  26 +-
 .../lib/lang/br_spamfilter_config_list.lng    |   4 +-
 .../mail/lib/lang/br_spamfilter_policy.lng    |  72 +--
 .../lib/lang/br_spamfilter_policy_list.lng    |  12 +-
 .../web/mail/lib/lang/br_spamfilter_users.lng |  12 +-
 .../lib/lang/br_spamfilter_users_list.lng     |   6 +-
 .../mail/lib/lang/br_spamfilter_whitelist.lng |  10 +-
 .../lib/lang/br_spamfilter_whitelist_list.lng |   6 +-
 .../lib/lang/br_user_quota_stats_list.lng     |  12 +-
 .../web/mail/lib/lang/br_xmpp_domain.lng      | 118 ++--
 .../lib/lang/br_xmpp_domain_admin_list.lng    |  12 +-
 .../web/mail/lib/lang/br_xmpp_domain_list.lng |  10 +-
 interface/web/mail/lib/lang/br_xmpp_user.lng  |  26 +-
 interface/web/mailuser/lib/lang/br.lng        |  12 +-
 interface/web/mailuser/lib/lang/br_index.lng  |  18 +-
 .../lib/lang/br_mail_user_autoresponder.lng   |  22 +-
 .../web/mailuser/lib/lang/br_mail_user_cc.lng |  14 +-
 .../mailuser/lib/lang/br_mail_user_filter.lng |  38 +-
 .../lib/lang/br_mail_user_filter_list.lng     |  12 +-
 .../lib/lang/br_mail_user_password.lng        |  18 +-
 .../lib/lang/br_mail_user_spamfilter.lng      |  10 +-
 interface/web/monitor/lib/lang/br.lng         | 232 ++++----
 .../web/monitor/lib/lang/br_datalog_list.lng  |   4 +-
 interface/web/sites/lib/lang/br.lng           |  48 +-
 interface/web/sites/lib/lang/br_aps.lng       | 112 ++--
 .../sites/lib/lang/br_aps_instances_list.lng  |  18 +-
 .../sites/lib/lang/br_aps_packages_list.lng   |  12 +-
 .../lib/lang/br_aps_update_packagelist.lng    |   8 +-
 .../sites/lib/lang/br_backup_stats_list.lng   |  16 +-
 interface/web/sites/lib/lang/br_cron.lng      |  18 +-
 interface/web/sites/lib/lang/br_cron_list.lng |   4 +-
 interface/web/sites/lib/lang/br_database.lng  |  82 +--
 .../sites/lib/lang/br_database_admin_list.lng |  20 +-
 .../web/sites/lib/lang/br_database_list.lng   |  10 +-
 .../lib/lang/br_database_quota_stats_list.lng |  14 +-
 .../web/sites/lib/lang/br_database_user.lng   |  46 +-
 .../lib/lang/br_database_user_admin_list.lng  |   8 +-
 .../sites/lib/lang/br_database_user_list.lng  |   6 +-
 .../lib/lang/br_ftp_sites_stats_list.lng      |  14 +-
 interface/web/sites/lib/lang/br_ftp_user.lng  |  48 +-
 .../web/sites/lib/lang/br_ftp_user_list.lng   |   4 +-
 .../web/sites/lib/lang/br_shell_user.lng      |  44 +-
 .../web/sites/lib/lang/br_shell_user_list.lng |   4 +-
 .../lib/lang/br_user_quota_stats_list.lng     |  10 +-
 .../web/sites/lib/lang/br_web_aliasdomain.lng | 210 +++----
 .../lib/lang/br_web_aliasdomain_list.lng      |  18 +-
 .../web/sites/lib/lang/br_web_backup_list.lng |  38 +-
 .../web/sites/lib/lang/br_web_childdomain.lng | 190 +++----
 .../lib/lang/br_web_childdomain_list.lng      |  24 +-
 .../lib/lang/br_web_directive_snippets.lng    |   2 +-
 .../web/sites/lib/lang/br_web_domain.lng      | 212 +++----
 .../lib/lang/br_web_domain_admin_list.lng     |  12 +-
 .../web/sites/lib/lang/br_web_domain_list.lng |   4 +-
 .../web/sites/lib/lang/br_web_folder.lng      |  12 +-
 .../web/sites/lib/lang/br_web_folder_list.lng |  12 +-
 .../web/sites/lib/lang/br_web_folder_user.lng |  24 +-
 .../lib/lang/br_web_folder_user_list.lng      |  10 +-
 .../lib/lang/br_web_sites_stats_list.lng      |   4 +-
 .../web/sites/lib/lang/br_web_subdomain.lng   |  56 +-
 .../sites/lib/lang/br_web_subdomain_list.lng  |   8 +-
 .../sites/lib/lang/br_web_vhost_domain.lng    | 236 ++++----
 .../lang/br_web_vhost_domain_admin_list.lng   |  22 +-
 .../lib/lang/br_web_vhost_domain_list.lng     |  16 +-
 .../sites/lib/lang/br_web_vhost_subdomain.lng | 238 ++++----
 .../lib/lang/br_web_vhost_subdomain_list.lng  |  12 +-
 .../web/sites/lib/lang/br_webdav_user.lng     |  38 +-
 .../sites/lib/lang/br_webdav_user_list.lng    |  12 +-
 .../lib/lang/br_strengthmeter.lng             |   6 +-
 interface/web/tools/lib/lang/br.lng           |  14 +-
 .../tools/lib/lang/br_import_ispconfig.lng    |  42 +-
 .../web/tools/lib/lang/br_import_vpopmail.lng |  10 +-
 interface/web/tools/lib/lang/br_index.lng     |   4 +-
 interface/web/tools/lib/lang/br_interface.lng |  10 +-
 interface/web/tools/lib/lang/br_resync.lng    |  94 ++--
 .../web/tools/lib/lang/br_tpl_default.lng     |  10 +-
 .../web/tools/lib/lang/br_usersettings.lng    |  14 +-
 interface/web/vm/lib/lang/br.lng              |   8 +-
 .../web/vm/lib/lang/br_openvz_action.lng      |  28 +-
 interface/web/vm/lib/lang/br_openvz_ip.lng    |  14 +-
 .../web/vm/lib/lang/br_openvz_ip_list.lng     |   8 +-
 .../web/vm/lib/lang/br_openvz_ostemplate.lng  |  18 +-
 .../vm/lib/lang/br_openvz_ostemplate_list.lng |  10 +-
 .../web/vm/lib/lang/br_openvz_template.lng    | 152 ++---
 .../vm/lib/lang/br_openvz_template_list.lng   |   6 +-
 interface/web/vm/lib/lang/br_openvz_vm.lng    |  84 +--
 .../web/vm/lib/lang/br_openvz_vm_list.lng     |  14 +-
 224 files changed, 3648 insertions(+), 3648 deletions(-)

diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng
index 55fa9e71d0..c1057db638 100644
--- a/interface/lib/lang/br.lng
+++ b/interface/lib/lang/br.lng
@@ -7,14 +7,14 @@ $wb['conf_format_datetime'] = 'd/m/Y H:i';
 $wb['number_format_decimals'] = '4';
 $wb['number_format_decimals_client'] = '2';
 $wb['number_format_dec_point'] = '.';
-$wb['number_format_thousands_sep'] = '';
-$wb['error_301'] = 'Módulo não permitido para o usuário corrente.';
-$wb['error_302'] = 'Módulo Inválido';
-$wb['error_1001'] = 'O nome de usuário e senha não podem estar em branco!';
-$wb['error_1002'] = 'Nome de usuário ou senha incorretos!';
-$wb['error_1003'] = 'O Usuário está inativo!';
+$wb['number_format_thousands_sep'] = '.';
+$wb['error_301'] = 'Módulo não permitido para o usuário atual.';
+$wb['error_302'] = 'Módulo inválido.';
+$wb['error_1001'] = 'Usuário ou senha em branco!';
+$wb['error_1002'] = 'Usuário ou senha incorretos!';
+$wb['error_1003'] = 'Usuário inativo!';
 $wb['delete_confirmation'] = 'Tem certeza de que deseja remover este registro?';
-$wb['error_no_view_permission'] = 'Você não tem permissão para ver este registro ou o mesmo não existe!';
+$wb['error_no_view_permission'] = 'Você não tem permissão para visualizar este registro ou o mesmo não existe!';
 $wb['error_no_delete_permission'] = 'Você não tem permissão para remover este registro!';
 $wb['page_txt'] = 'Página';
 $wb['page_of_txt'] = 'de';
@@ -22,14 +22,14 @@ $wb['page_next_txt'] = 'Próximo';
 $wb['page_back_txt'] = 'Voltar';
 $wb['delete_txt'] = 'Remover';
 $wb['filter_txt'] = 'Filtrar';
-$wb['add_new_record_txt'] = 'Adcionar novo registro';
+$wb['add_new_record_txt'] = 'Adicionar novo registro';
 $wb['btn_save_txt'] = 'Salvar';
 $wb['btn_cancel_txt'] = 'Voltar';
 $wb['toolsarea_head_txt'] = 'Extras';
 $wb['page_and_txt'] = 'e';
 $wb['top_menu_system'] = 'Sistema';
-$wb['top_menu_client'] = 'Cliente';
-$wb['top_menu_email'] = 'Correio';
+$wb['top_menu_client'] = 'Clientes';
+$wb['top_menu_email'] = 'e-Mails';
 $wb['top_menu_monitor'] = 'Monitor';
 $wb['top_menu_sites'] = 'Sites';
 $wb['top_menu_dns'] = 'DNS';
@@ -40,116 +40,116 @@ $wb['top_menu_domain'] = 'Domínios';
 $wb['top_menu_dashboard'] = 'Início';
 $wb['latest_news_txt'] = 'Últimas notícias';
 $wb['top_menu_vm'] = 'VM';
-$wb['daynamesmin_su'] = 'Su';
-$wb['daynamesmin_mo'] = 'Mo';
-$wb['daynamesmin_tu'] = 'Tu';
-$wb['daynamesmin_we'] = 'We';
-$wb['daynamesmin_th'] = 'Th';
-$wb['daynamesmin_fr'] = 'Fr';
+$wb['daynamesmin_su'] = 'Do';
+$wb['daynamesmin_mo'] = 'Se';
+$wb['daynamesmin_tu'] = 'Te';
+$wb['daynamesmin_we'] = 'Qa';
+$wb['daynamesmin_th'] = 'Qi';
+$wb['daynamesmin_fr'] = 'Se';
 $wb['daynamesmin_sa'] = 'Sa';
-$wb['daynames_sunday'] = 'Sunday';
-$wb['daynames_monday'] = 'Monday';
-$wb['daynames_tuesday'] = 'Tuesday';
-$wb['daynames_wednesday'] = 'Wednesday';
-$wb['daynames_thursday'] = 'Thursday';
-$wb['daynames_friday'] = 'Friday';
-$wb['daynames_saturday'] = 'Saturday';
+$wb['daynames_sunday'] = 'Domingo';
+$wb['daynames_monday'] = 'Segunda';
+$wb['daynames_tuesday'] = 'Terça';
+$wb['daynames_wednesday'] = 'Quarta';
+$wb['daynames_thursday'] = 'Quinta';
+$wb['daynames_friday'] = 'Sexta';
+$wb['daynames_saturday'] = 'Sábado';
 $wb['monthnamesshort_jan'] = 'Jan';
-$wb['monthnamesshort_feb'] = 'Feb';
+$wb['monthnamesshort_feb'] = 'Fev';
 $wb['monthnamesshort_mar'] = 'Mar';
-$wb['monthnamesshort_apr'] = 'Apr';
-$wb['monthnamesshort_may'] = 'May';
+$wb['monthnamesshort_apr'] = 'Abr';
+$wb['monthnamesshort_may'] = 'Mai';
 $wb['monthnamesshort_jun'] = 'Jun';
 $wb['monthnamesshort_jul'] = 'Jul';
-$wb['monthnamesshort_aug'] = 'Aug';
-$wb['monthnamesshort_sep'] = 'Sep';
-$wb['monthnamesshort_oct'] = 'Oct';
+$wb['monthnamesshort_aug'] = 'Ago';
+$wb['monthnamesshort_sep'] = 'Set';
+$wb['monthnamesshort_oct'] = 'Out';
 $wb['monthnamesshort_nov'] = 'Nov';
-$wb['monthnamesshort_dec'] = 'Dec';
-$wb['datepicker_nextText'] = 'Next';
-$wb['datepicker_prevText'] = 'Prev';
-$wb['logout_txt'] = 'Logout';
-$wb['conf_format_dateshort_human_readable'] = 'yyyy-mm-dd';
-$wb['submit_confirmation'] = 'Do you really want to perform this action?';
-$wb['top_menu_mailuser'] = 'Mailuser';
-$wb['globalsearch_resultslimit_of_txt'] = 'of';
-$wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
-$wb['global_tabchange_warning_txt'] = 'Changed data in this tab will be changed if you press OK. On cancel they will be discarded.';
-$wb['global_tabchange_discard_txt'] = 'You have unsaved changes in this tab. Changes will be discarded if you continue.';
-$wb['datalog_changes_txt'] = 'The following changes are not yet populated to all servers:';
-$wb['datalog_changes_end_txt'] = 'Storing updates can take up to one minute. Please be patient.';
-$wb['datalog_status_i_web_database'] = 'Create new database';
-$wb['datalog_status_u_web_database'] = 'Update database';
-$wb['datalog_status_d_web_database'] = 'Delete database';
-$wb['datalog_status_i_web_database_user'] = 'Create database user for database';
-$wb['datalog_status_u_web_database_user'] = 'Update database user';
-$wb['datalog_status_d_web_database_user'] = 'Delete database user';
-$wb['datalog_status_i_web_domain'] = 'Create new website';
-$wb['datalog_status_u_web_domain'] = 'Update website settings';
-$wb['datalog_status_d_web_domain'] = 'Delete website';
-$wb['datalog_status_i_ftp_user'] = 'Create FTP user';
-$wb['datalog_status_u_ftp_user'] = 'Update FTP user';
-$wb['datalog_status_d_ftp_user'] = 'Delete FTP user';
-$wb['datalog_status_i_mail_domain'] = 'Create email domain';
-$wb['datalog_status_u_mail_domain'] = 'Update email domain';
-$wb['datalog_status_d_mail_domain'] = 'Delete email domain';
-$wb['datalog_status_i_mail_user'] = 'Create email user';
-$wb['datalog_status_u_mail_user'] = 'Update email user';
-$wb['datalog_status_d_mail_user'] = 'Delete email user';
-$wb['datalog_status_i_mail_forwarding'] = 'Create email address';
-$wb['datalog_status_u_mail_forwarding'] = 'Update email address';
-$wb['datalog_status_d_mail_forwarding'] = 'Delete email address';
-$wb['datalog_status_i_dns_rr'] = 'Create DNS record';
-$wb['datalog_status_u_dns_rr'] = 'Update DNS record';
-$wb['datalog_status_d_dns_rr'] = 'Delete DNS record';
-$wb['datalog_status_i_dns_soa'] = 'Create DNS zone';
-$wb['datalog_status_u_dns_soa'] = 'Update DNS zone';
-$wb['datalog_status_d_dns_soa'] = 'Delete DNS zone';
-$wb['datalog_status_i_cron'] = 'Create cron job';
-$wb['datalog_status_u_cron'] = 'Update cron job';
-$wb['datalog_status_d_cron'] = 'Delete cron job';
-$wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
-$wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
-$wb['datalog_status_d_mail_get'] = 'Delete mail fetcher account';
-$wb['datalog_status_i_mail_mailinglist'] = 'Create mailing list';
-$wb['datalog_status_u_mail_mailinglist'] = 'Update mailing list';
-$wb['datalog_status_d_mail_mailinglist'] = 'Delete mailing list';
-$wb['datalog_status_i_shell_user'] = 'Create shell user';
-$wb['datalog_status_u_shell_user'] = 'Update shell user';
-$wb['datalog_status_d_shell_user'] = 'Delete shell user';
-$wb['datalog_status_i_web_folder'] = 'Create folder protection';
-$wb['datalog_status_u_web_folder'] = 'Update folder protection';
-$wb['datalog_status_d_web_folder'] = 'Delete folder protection';
-$wb['datalog_status_i_web_folder_user'] = 'Create folder protection user';
-$wb['datalog_status_u_web_folder_user'] = 'Update folder protection user';
-$wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user';
-$wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings';
-$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
-$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
-$wb['login_as_txt'] = 'Log in as';
-$wb['no_domain_perm'] = 'You have no permission for this domain.';
-$wb['no_destination_perm'] = 'You have no permission for this destination.';
-$wb['client_you_are_locked'] = 'You have no permission to change any settings.';
-$wb['gender_m_txt'] = 'Mr.';
-$wb['gender_f_txt'] = 'Ms.';
-$wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'This client has records in the billing module, therefore he cannot be deleted.';
-$wb['yes_txt'] = 'Yes';
-$wb['no_txt'] = 'No';
+$wb['monthnamesshort_dec'] = 'Dez';
+$wb['datepicker_nextText'] = 'Próximo';
+$wb['datepicker_prevText'] = 'Anterior';
+$wb['logout_txt'] = 'Sair';
+$wb['conf_format_dateshort_human_readable'] = 'dd-mm-aaaa';
+$wb['submit_confirmation'] = 'Você tem certeza que gostaria de executar esta ação?';
+$wb['top_menu_mailuser'] = 'e-Mails';
+$wb['globalsearch_resultslimit_of_txt'] = 'de';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultados';
+$wb['globalsearch_noresults_text_txt'] = 'Sem resultados.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultados';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar';
+$wb['globalsearch_suggestions_text_txt'] = 'Sugestões';
+$wb['global_tabchange_warning_txt'] = 'As alterações efetuadas nesta aba terão efeito após você pressionar OK. Se cancelar, as alterações serão descartadas.';
+$wb['global_tabchange_discard_txt'] = 'Você não salvou as alterações nesta aba. As alterações serão descartadas se continuar.';
+$wb['datalog_changes_txt'] = 'As seguintes alterações ainda não foram realizadas em todos os servidores.';
+$wb['datalog_changes_end_txt'] = 'Gravar as atualizações pode demorar alguns minutos. Por favor, seja paciente.';
+$wb['datalog_status_i_web_database'] = 'Adicionar novo banco de dados';
+$wb['datalog_status_u_web_database'] = 'Atualizar banco de dados';
+$wb['datalog_status_d_web_database'] = 'Remover banco de dados';
+$wb['datalog_status_i_web_database_user'] = 'Adicionar usuário do banco de dados';
+$wb['datalog_status_u_web_database_user'] = 'Atualizar usuário do banco de dados';
+$wb['datalog_status_d_web_database_user'] = 'Remover usuário do banco de dados';
+$wb['datalog_status_i_web_domain'] = 'Adicionar novo site';
+$wb['datalog_status_u_web_domain'] = 'Atualizar site';
+$wb['datalog_status_d_web_domain'] = 'Remover site';
+$wb['datalog_status_i_ftp_user'] = 'Adicionar usuário ftp';
+$wb['datalog_status_u_ftp_user'] = 'Atualizar usuário ftp';
+$wb['datalog_status_d_ftp_user'] = 'Remover usuário ftp';
+$wb['datalog_status_i_mail_domain'] = 'Adicionar domínio de e-mail';
+$wb['datalog_status_u_mail_domain'] = 'Atualizar domínio de e-mail';
+$wb['datalog_status_d_mail_domain'] = 'Remover domínio de e-mail';
+$wb['datalog_status_i_mail_user'] = 'Adicionar conta de e-mail';
+$wb['datalog_status_u_mail_user'] = 'Atualizar conta de e-mail';
+$wb['datalog_status_d_mail_user'] = 'Remover conta de e-mail';
+$wb['datalog_status_i_mail_forwarding'] = 'Adicionar encaminhamento de e-mail';
+$wb['datalog_status_u_mail_forwarding'] = 'Atualizar encaminhamento de e-mail';
+$wb['datalog_status_d_mail_forwarding'] = 'Remover encaminhamento de e-mail';
+$wb['datalog_status_i_dns_rr'] = 'Adicionar registro dns';
+$wb['datalog_status_u_dns_rr'] = 'Atualizar registro dns';
+$wb['datalog_status_d_dns_rr'] = 'Remover registro dns';
+$wb['datalog_status_i_dns_soa'] = 'Adicionar zona dns';
+$wb['datalog_status_u_dns_soa'] = 'Atualizar zona dns';
+$wb['datalog_status_d_dns_soa'] = 'Remover zona dns';
+$wb['datalog_status_i_cron'] = 'Adicionar tarefa no cron';
+$wb['datalog_status_u_cron'] = 'Atualizar tarefa no cron';
+$wb['datalog_status_d_cron'] = 'Remover tarefa no cron';
+$wb['datalog_status_i_mail_get'] = 'Adicionar conta de busca de e-mails';
+$wb['datalog_status_u_mail_get'] = 'Atualizar conta de busca de e-mails';
+$wb['datalog_status_d_mail_get'] = 'Remover conta de busca de e-mails';
+$wb['datalog_status_i_mail_mailinglist'] = 'Adicionar lista de e-mails';
+$wb['datalog_status_u_mail_mailinglist'] = 'Atualizar lista de e-mails';
+$wb['datalog_status_d_mail_mailinglist'] = 'Remover lista de e-mails';
+$wb['datalog_status_i_shell_user'] = 'Adicionar usuário shell';
+$wb['datalog_status_u_shell_user'] = 'Atualizar usuário shell';
+$wb['datalog_status_d_shell_user'] = 'Remover usuário shell';
+$wb['datalog_status_i_web_folder'] = 'Adicionar pasta protegida';
+$wb['datalog_status_u_web_folder'] = 'Atualizar pasta protegida';
+$wb['datalog_status_d_web_folder'] = 'Remover pasta protegida';
+$wb['datalog_status_i_web_folder_user'] = 'Adicionar usuário de pasta protegida';
+$wb['datalog_status_u_web_folder_user'] = 'Atualizar usuário de pasta protegida';
+$wb['datalog_status_d_web_folder_user'] = 'Remover usuário de pasta protegida';
+$wb['datalog_status_i_spamfilter_users'] = 'Adicionar configurações de filtro antispam';
+$wb['datalog_status_u_spamfilter_users'] = 'Atualizar configurações de filtro antispam';
+$wb['datalog_status_d_spamfilter_users'] = 'Remover configurações de filtro antispam';
+$wb['login_as_txt'] = 'Acessar como';
+$wb['no_domain_perm'] = 'Você não tem permissão para este domínio.';
+$wb['no_destination_perm'] = 'Você não tem permissão para este destino.';
+$wb['client_you_are_locked'] = 'Você não tem permissão para alterar quaisquer configurações.';
+$wb['gender_m_txt'] = 'Sr.';
+$wb['gender_f_txt'] = 'Sra.';
+$wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'Este cliente possui registros no módulo de faturamento, portanto não pode ser removido.';
+$wb['yes_txt'] = 'Sim';
+$wb['no_txt'] = 'Não';
+$wb['strength_1'] = 'Fraca';
+$wb['strength_2'] = 'Razoável';
+$wb['strength_3'] = 'Boa';
+$wb['strength_4'] = 'Forte';
+$wb['strength_5'] = 'Muito Forte';
+$wb['weak_password_txt'] = 'A senha escolhida não corresponde às diretrizes de segurança. São necessários no mínimo {chars} caracteres e dificuldade \"{strength}\".';
+$wb['weak_password_length_txt'] = 'A senha escolhida não corresponde às diretrizes de segurança. São necessários no mínimo {chars} caracteres.';
+$wb['security_check1_txt'] = 'Verifique se há permissão de segurança:';
+$wb['security_check2_txt'] = 'falha';
+$wb['err_csrf_attempt_blocked'] = 'CSRF temporariamente bloqueado.';
+$wb['select_directive_snippet_txt'] = 'Diretiva de fragmentação';
+$wb['select_master_directive_snippet_txt'] = 'Diretiva de fragmentação mestre';
 $wb['None'] = 'None';
-$wb['strength_1'] = 'Weak';
-$wb['strength_2'] = 'Fair';
-$wb['strength_3'] = 'Good';
-$wb['strength_4'] = 'Strong';
-$wb['strength_5'] = 'Very Strong';
-$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".';
-$wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.';
-$wb['security_check1_txt'] = 'Check for security permission:';
-$wb['security_check2_txt'] = 'failed.';
-$wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
-$wb['select_directive_snippet_txt'] = 'Directive Snippets';
-$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 ?>
diff --git a/interface/web/admin/lib/lang/br.lng b/interface/web/admin/lib/lang/br.lng
index c5c205304b..477edcd9ef 100644
--- a/interface/web/admin/lib/lang/br.lng
+++ b/interface/web/admin/lib/lang/br.lng
@@ -1,52 +1,52 @@
 <?php
-$wb['1001'] = 'Username or password is empty.';
-$wb['1002'] = 'Username or password is wrong.';
+$wb['1001'] = 'Usuário ou senha em branco.';
+$wb['1002'] = 'Usuário ou senha errados.';
 $wb['Groups'] = 'Grupos';
-$wb['groups_description'] = 'Formulário para edição dos Grupos de usuários do sistema.';
+$wb['groups_description'] = 'Edição dos grupos de usuários do sistema';
 $wb['Servers'] = 'Servidores';
 $wb['Config'] = 'Configuração';
-$wb['Add user'] = 'Adicionar Usuário';
-$wb['Edit user'] = 'Editar Usuário';
-$wb['Add group'] = 'Adicionar Grupo';
-$wb['Edit group'] = 'Editar Grupo';
-$wb['Edit server'] = 'Editar Servidor';
+$wb['Add user'] = 'Adicionar usuário';
+$wb['Edit user'] = 'Editar usuário';
+$wb['Add group'] = 'Adicionar grupo';
+$wb['Edit group'] = 'Editar grupo';
+$wb['Edit server'] = 'Editar servidor';
 $wb['Sync. Now'] = 'Sincronizar agora';
-$wb['DB Sync.'] = 'Sincronizar Banco de Dados';
-$wb['User Management'] = 'User Management';
-$wb['CP Users'] = 'Usuários CP';
-$wb['Remote Users'] = 'Usuários Remotos';
+$wb['DB Sync.'] = 'Sincronizar banco de dados';
+$wb['User Management'] = 'Gerenciamento de usuários';
+$wb['CP Users'] = 'Usuários do painel';
+$wb['Remote Users'] = 'Usuários remotos';
 $wb['System'] = 'Sistema';
-$wb['Server Services'] = 'Serviços do Servidor';
+$wb['Server Services'] = 'Serviços do servidor';
 $wb['Services'] = 'Serviços';
-$wb['Server Config'] = 'Configuração do Servidor';
-$wb['Server'] = 'Servidor';
-$wb['Mail'] = 'Mail';
+$wb['Server Config'] = 'Configuração do servidor';
+$wb['Mail'] = 'E-mails';
 $wb['Getmail'] = 'Getmail';
-$wb['Web'] = 'Web';
+$wb['Web'] = 'Sites';
 $wb['FastCGI'] = 'FastCGI';
 $wb['Jailkit'] = 'Jailkit';
-$wb['Rescue'] = 'Rescue';
-$wb['Server IP addresses'] = 'Endereço IP do Servidor';
-$wb['Additional PHP Versions'] = 'Additional PHP Versions';
+$wb['Rescue'] = 'Manutenção';
+$wb['Server IP addresses'] = 'Endereço IP do servidor';
+$wb['Additional PHP Versions'] = 'Versões adicionais do php';
 $wb['Firewall'] = 'Firewall';
 $wb['Interface'] = 'Interface';
-$wb['Interface Config'] = 'Main Config';
-$wb['Domains'] = 'Domains';
-$wb['Misc'] = 'Misc';
+$wb['Interface Config'] = 'Configuração principal';
+$wb['Domains'] = 'Domínios';
+$wb['Misc'] = 'Diversos';
 $wb['Software'] = 'Software';
 $wb['Repositories'] = 'Repositórios';
 $wb['Packages'] = 'Pacotes';
-$wb['Updates'] = 'Updates';
-$wb['Language Editor'] = 'Editor de Idiomas';
+$wb['Language Editor'] = 'Editor de idiomas';
 $wb['Languages'] = 'Idiomas';
-$wb['New Language'] = 'Novo Idioma';
+$wb['New Language'] = 'Novo idioma';
 $wb['Merge'] = 'Mesclar';
 $wb['Export'] = 'Exportar';
 $wb['Import'] = 'Importar';
-$wb['Remote Actions'] = 'Ações Remotas';
-$wb['Do OS-Update'] = 'Fazer Atualização do SO';
-$wb['Do ISPConfig-Update'] = 'Fazer Atualização do ISPConfig';
-$wb['Directive Snippets'] = 'Directive Snippets';
+$wb['Remote Actions'] = 'Ações remotas';
+$wb['Do OS-Update'] = 'Atualização do SO';
+$wb['Do ISPConfig-Update'] = 'Atualização do ISPConfig';
+$wb['Directive Snippets'] = 'Diretivas de fragmentação';
 $wb['Sites'] = 'Sites';
 $wb['DNS'] = 'DNS';
+$wb['Server'] = 'Server';
+$wb['Updates'] = 'Updates';
 ?>
diff --git a/interface/web/admin/lib/lang/br_directive_snippets.lng b/interface/web/admin/lib/lang/br_directive_snippets.lng
index 0616afad8b..fe55c5ecae 100644
--- a/interface/web/admin/lib/lang/br_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/br_directive_snippets.lng
@@ -1,12 +1,12 @@
 <?php
-$wb['Directive Snippets'] = 'Directive Snippets';
-$wb['name_txt'] = 'Name of Snippet';
-$wb['type_txt'] = 'Type';
-$wb['snippet_txt'] = 'Snippet';
-$wb['active_txt'] = 'Active';
-$wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.';
-$wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.';
-$wb['variables_txt'] = 'Variables';
-$wb['customer_viewable_txt'] = 'Customer viewable';
-$wb['required_php_snippets_txt'] = 'Requiered PHP Snippet';
+$wb['Directive Snippets'] = 'Diretiva de fragmentação';
+$wb['name_txt'] = 'Nome da diretiva';
+$wb['type_txt'] = 'Tipo';
+$wb['snippet_txt'] = 'Diretiva';
+$wb['active_txt'] = 'Ativo';
+$wb['directive_snippets_name_empty'] = 'Por favor, insira um nome para a diretiva';
+$wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva de fragmentação com este nome.';
+$wb['variables_txt'] = 'Variáveis';
+$wb['customer_viewable_txt'] = 'Visualizada pelo cliente';
+$wb['required_php_snippets_txt'] = 'Diretiva obrigatória para PHP';
 ?>
diff --git a/interface/web/admin/lib/lang/br_directive_snippets_list.lng b/interface/web/admin/lib/lang/br_directive_snippets_list.lng
index 8e189f9f79..d1154c9bf4 100644
--- a/interface/web/admin/lib/lang/br_directive_snippets_list.lng
+++ b/interface/web/admin/lib/lang/br_directive_snippets_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Directive Snippets';
-$wb['active_txt'] = 'Active';
-$wb['name_txt'] = 'Name of Snippet';
-$wb['type_txt'] = 'Type';
-$wb['add_new_record_txt'] = 'Add Directive Snippet';
-$wb['customer_viewable_txt'] = 'Customer viewable';
+$wb['list_head_txt'] = 'Diretivas de fragmentação';
+$wb['active_txt'] = 'Ativo';
+$wb['name_txt'] = 'Nome da diretiva';
+$wb['type_txt'] = 'Tipo';
+$wb['add_new_record_txt'] = 'Adicionar nova diretiva';
+$wb['customer_viewable_txt'] = 'Visível para o cliente';
 ?>
diff --git a/interface/web/admin/lib/lang/br_firewall.lng b/interface/web/admin/lib/lang/br_firewall.lng
index 40a7496af0..e43c40c9da 100644
--- a/interface/web/admin/lib/lang/br_firewall.lng
+++ b/interface/web/admin/lib/lang/br_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separado por vírgula';
 $wb['udp_port_help_txt'] = 'Separado por vírgula';
 $wb['active_txt'] = 'Ativo';
 $wb['firewall_error_unique'] = 'Já existe uma regra de firewall para este servidor!';
-$wb['tcp_ports_error_regex'] = 'Caratere não permitido para definição de porta tcp. São permitidos somente números, : e ,.';
-$wb['udp_ports_error_regex'] = 'Caratere não permitido para definição de porta udp. São permitidos somente números, : e ,.';
+$wb['tcp_ports_error_regex'] = 'Caractere não permitido para definição de porta tcp. São permitidos somente números, : e ,.';
+$wb['udp_ports_error_regex'] = 'Caractere não permitido para definição de porta udp. São permitidos somente números, : e ,.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_firewall_list.lng b/interface/web/admin/lib/lang/br_firewall_list.lng
index d299957124..8ff52ee241 100644
--- a/interface/web/admin/lib/lang/br_firewall_list.lng
+++ b/interface/web/admin/lib/lang/br_firewall_list.lng
@@ -2,7 +2,7 @@
 $wb['list_head_txt'] = 'Firewall';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['tcp_port_txt'] = 'Portas TCP abertas';
-$wb['udp_port_txt'] = 'Portas UDP abertas';
-$wb['add_new_record_txt'] = 'Adcionar registro de firewall';
+$wb['tcp_port_txt'] = 'Portas tcp abertas';
+$wb['udp_port_txt'] = 'Portas udp abertas';
+$wb['add_new_record_txt'] = 'Adicionar regra de firewall';
 ?>
diff --git a/interface/web/admin/lib/lang/br_groups.lng b/interface/web/admin/lib/lang/br_groups.lng
index 41afadbfef..735bd864a9 100644
--- a/interface/web/admin/lib/lang/br_groups.lng
+++ b/interface/web/admin/lib/lang/br_groups.lng
@@ -1,5 +1,5 @@
 <?php
 $wb['description_txt'] = 'Descrição';
 $wb['name_txt'] = 'Grupo';
-$wb['name_err'] = 'O Nome do Grupo deve conter de 1 a 30 caracteres!';
+$wb['name_err'] = 'O nome do grupo deve conter de 1 a 30 caracteres!';
 ?>
diff --git a/interface/web/admin/lib/lang/br_groups_list.lng b/interface/web/admin/lib/lang/br_groups_list.lng
index 73a6f438ff..f31a85d126 100644
--- a/interface/web/admin/lib/lang/br_groups_list.lng
+++ b/interface/web/admin/lib/lang/br_groups_list.lng
@@ -3,5 +3,5 @@ $wb['list_head_txt'] = 'Grupos de usuários do sistema';
 $wb['description_txt'] = 'Descrição';
 $wb['name_txt'] = 'Grupo';
 $wb['add_new_record_txt'] = 'Adicionar novo Grupo';
-$wb['warning_txt'] = '<b>AVISO:</b> Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de cliente ou revendedor. Modificar ou alterar usuários e grupos aqui pode ocasionar perda de dados!';
+$wb['warning_txt'] = '<b>AVISO:</b> Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de clientes ou revendas. Modificar ou alterar usuários e grupos aqui pode ocasionar perda de dados!';
 ?>
diff --git a/interface/web/admin/lib/lang/br_iptables.lng b/interface/web/admin/lib/lang/br_iptables.lng
index 40760b9498..e44fcf1e68 100644
--- a/interface/web/admin/lib/lang/br_iptables.lng
+++ b/interface/web/admin/lib/lang/br_iptables.lng
@@ -1,13 +1,13 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['multiport_txt'] = 'Multi Port';
-$wb['singleport_txt'] = 'Single Port';
-$wb['protocol_txt'] = 'Protocol';
-$wb['table_txt'] = 'Table';
-$wb['target_txt'] = 'Target';
-$wb['state_txt'] = 'State';
-$wb['destination_ip_txt'] = 'Destination Address';
-$wb['source_ip_txt'] = 'Source Address';
-$wb['active_txt'] = 'Active';
-$wb['iptables_error_unique'] = 'There is already a firewall record for this server.';
+$wb['server_id_txt'] = 'Servidor';
+$wb['multiport_txt'] = 'Múltiplas portas';
+$wb['singleport_txt'] = 'Porta simples';
+$wb['protocol_txt'] = 'Protocolo';
+$wb['table_txt'] = 'Tabela';
+$wb['target_txt'] = 'Alvo';
+$wb['state_txt'] = 'Estado';
+$wb['destination_ip_txt'] = 'Endereço IP de destino';
+$wb['source_ip_txt'] = 'Endereço IP de origem';
+$wb['active_txt'] = 'Ativo';
+$wb['iptables_error_unique'] = 'Já existe um registro de firewall igual para este servidor.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_iptables_list.lng b/interface/web/admin/lib/lang/br_iptables_list.lng
index 15c8baddcb..2cd7fdfb53 100644
--- a/interface/web/admin/lib/lang/br_iptables_list.lng
+++ b/interface/web/admin/lib/lang/br_iptables_list.lng
@@ -1,15 +1,15 @@
 <?php
-$wb['list_head_txt'] = 'IPTables';
-$wb['add_new_rule_txt'] = 'Add IPTables Rule';
-$wb['server_id_txt'] = 'Server';
-$wb['multiport_txt'] = 'Multi Port';
-$wb['singleport_txt'] = 'Single Port';
-$wb['protocol_txt'] = 'Protocol';
-$wb['table_txt'] = 'Table';
-$wb['target_txt'] = 'Target';
-$wb['state_txt'] = 'State';
-$wb['destination_ip_txt'] = 'Destination Address';
-$wb['source_ip_txt'] = 'Source Address';
-$wb['active_txt'] = 'Active';
-$wb['iptables_error_unique'] = 'There is already a firewall record for this server.';
+$wb['list_head_txt'] = 'Firewall';
+$wb['add_new_rule_txt'] = 'Adicionar nova regra';
+$wb['server_id_txt'] = 'Servidor';
+$wb['multiport_txt'] = 'Multi portas';
+$wb['singleport_txt'] = 'Porta simples';
+$wb['protocol_txt'] = 'Protocolo';
+$wb['table_txt'] = 'Tabela';
+$wb['target_txt'] = 'Alvo';
+$wb['state_txt'] = 'Estado';
+$wb['destination_ip_txt'] = 'Endereço IP de destino';
+$wb['source_ip_txt'] = 'Endereço IP de origem';
+$wb['active_txt'] = 'Ativo';
+$wb['iptables_error_unique'] = 'Já existe um registro de firewall igual para este servidor.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_language_add.lng b/interface/web/admin/lib/lang/br_language_add.lng
index 064b9eaf0a..eaa0808199 100644
--- a/interface/web/admin/lib/lang/br_language_add.lng
+++ b/interface/web/admin/lib/lang/br_language_add.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Adcionar novo idioma';
-$wb['language_select_txt'] = 'Selecione o idioma base';
-$wb['language_new_txt'] = 'Novo Idioma';
-$wb['language_new_hint_txt'] = '2 letras código ISO 639-1 (Veja http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
-$wb['btn_save_txt'] = 'Criar um novo conjunto de idioma';
+$wb['list_head_txt'] = 'Adicionar novo idioma';
+$wb['language_select_txt'] = 'Selecionar o idioma base';
+$wb['language_new_txt'] = 'Novo idioma';
+$wb['language_new_hint_txt'] = '2 letras código ISO 639-1 (veja http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
+$wb['btn_save_txt'] = 'Adicionar novo conjunto de idiomas';
 $wb['btn_cancel_txt'] = 'Voltar';
 ?>
diff --git a/interface/web/admin/lib/lang/br_language_complete.lng b/interface/web/admin/lib/lang/br_language_complete.lng
index c4c0b1453e..84d5e3393c 100644
--- a/interface/web/admin/lib/lang/br_language_complete.lng
+++ b/interface/web/admin/lib/lang/br_language_complete.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Mesclar Idioma';
+$wb['list_head_txt'] = 'Mesclar idioma';
 $wb['list_desc_txt'] = 'Mesclar o arquivo de idioma selecionado com o arquivo de idioma principal (em inglês). <br />Isto permite completar qualquer falha de tradução, com o arquivo principal original em inglês.';
-$wb['language_select_txt'] = 'Selecionar Idioma';
+$wb['language_select_txt'] = 'Selecionar idioma';
 $wb['btn_save_txt'] = 'Mesclar arquivos agora';
 $wb['btn_cancel_txt'] = 'Voltar';
 ?>
diff --git a/interface/web/admin/lib/lang/br_language_edit.lng b/interface/web/admin/lib/lang/br_language_edit.lng
index 2a3f572d19..887080b6d5 100644
--- a/interface/web/admin/lib/lang/br_language_edit.lng
+++ b/interface/web/admin/lib/lang/br_language_edit.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Editor de Arquivos de Idioma';
+$wb['list_head_txt'] = 'Editor de idiomas';
 $wb['language_select_txt'] = 'Selecione o idioma';
 $wb['module_txt'] = 'Módulo';
-$wb['lang_file_txt'] = 'Arquivo de Idioma';
+$wb['lang_file_txt'] = 'Arquivo de idioma';
 $wb['btn_save_txt'] = 'Salvar';
 $wb['btn_cancel_txt'] = 'Voltar';
 ?>
diff --git a/interface/web/admin/lib/lang/br_language_import.lng b/interface/web/admin/lib/lang/br_language_import.lng
index ba519c5fe6..76921d76c7 100644
--- a/interface/web/admin/lib/lang/br_language_import.lng
+++ b/interface/web/admin/lib/lang/br_language_import.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['list_head_txt'] = 'Importar arquivo de idioma';
 $wb['language_import_txt'] = 'Buscar arquivo de idioma';
-$wb['btn_save_txt'] = 'Importar Arquivo de Idioma Selecionado';
-$wb['language_overwrite_txt'] = 'Sobre escrever o arquivo se existir.';
+$wb['btn_save_txt'] = 'Importar arquivo de idioma selecionado';
+$wb['language_overwrite_txt'] = 'Sobrescrever o arquivo se existir.';
 $wb['btn_cancel_txt'] = 'Voltar';
-$wb['ignore_version_txt'] = 'Pular checagem de versão do ISPConfig';
-$wb['list_desc_txt'] = 'WARNING: Do not import language files from untrustworthy sources.';
+$wb['ignore_version_txt'] = 'Pular verificação da versão do ISPConfig';
+$wb['list_desc_txt'] = 'ATENÇÃO: Não importe arquivos de idioma de fontes desconhecidas.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_language_list.lng b/interface/web/admin/lib/lang/br_language_list.lng
index 348b94aaf1..cd00833419 100644
--- a/interface/web/admin/lib/lang/br_language_list.lng
+++ b/interface/web/admin/lib/lang/br_language_list.lng
@@ -2,6 +2,6 @@
 $wb['list_head_txt'] = 'Editor de arquivo de idioma';
 $wb['language_select_txt'] = 'Selecione o idioma';
 $wb['module_txt'] = 'Módulo';
-$wb['lang_file_txt'] = 'Arquido de Idioma';
-$wb['lang_file_date_txt'] = 'Ultima Modificação';
+$wb['lang_file_txt'] = 'Arquido de idioma';
+$wb['lang_file_date_txt'] = 'Última modificação';
 ?>
diff --git a/interface/web/admin/lib/lang/br_package_install.lng b/interface/web/admin/lib/lang/br_package_install.lng
index 574dd11629..5b54c3080a 100644
--- a/interface/web/admin/lib/lang/br_package_install.lng
+++ b/interface/web/admin/lib/lang/br_package_install.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['repo_name_txt'] = 'Repository';
+$wb['repo_name_txt'] = 'Repositório';
 $wb['repo_url_txt'] = 'URL';
-$wb['repo_username_txt'] = 'User (optional)';
-$wb['repo_password_txt'] = 'Password (optional)';
-$wb['active_txt'] = 'Active';
+$wb['repo_username_txt'] = 'Usuário (opcional)';
+$wb['repo_password_txt'] = 'Senha (opcional)';
+$wb['active_txt'] = 'Ativo';
 ?>
diff --git a/interface/web/admin/lib/lang/br_remote_action.lng b/interface/web/admin/lib/lang/br_remote_action.lng
index 420f2cc56c..e06a6382b9 100644
--- a/interface/web/admin/lib/lang/br_remote_action.lng
+++ b/interface/web/admin/lib/lang/br_remote_action.lng
@@ -1,12 +1,12 @@
 <?php
 $wb['select_server_txt'] = 'Selecione o Servidor';
 $wb['btn_do_txt'] = 'Executar ação';
-$wb['do_osupdate_caption'] = 'Faça Atualização do SO no servidor remoto';
+$wb['do_osupdate_caption'] = 'Atualização do sistema operacional no servidor';
 $wb['do_osupdate_desc'] = 'Este comando fará um aptitude -y upgrade no servidor selecionado.<br><br><strong>UTILIZE POR SUA CONTA E RISCO!</strong>';
-$wb['do_ispcupdate_caption'] = 'Faça uma atualização do ISPConfig 3 no servidor remoto';
+$wb['do_ispcupdate_caption'] = 'Atualização do ISPConfig 3 no servidor';
 $wb['do_ispcupdate_desc'] = 'Esta ação fará uma atualização do ISPConfig3 no servidor selecionado.<br><br><strong>UTILIZE POR SUA CONTA E RISCO!</strong>';
 $wb['action_scheduled'] = 'Esta ação está agendada para execução';
 $wb['select_all_server'] = 'Todos os servidores';
-$wb['ispconfig_update_title'] = 'ISPConfig update instructions';
-$wb['ispconfig_update_text'] = 'Login as root user on the shell of your server and execute the command<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />to start the ISPConfig update.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Click here for detailed update instructions</a>';
+$wb['ispconfig_update_title'] = 'Instruções de atualização do ISPConfig';
+$wb['ispconfig_update_text'] = 'Acesse como root no shell do seu servidor e execute os seguintes comandos<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />para iniciar a atualização do ISPConfig.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Clique aqui para instruções detalhadas sobre atualização</a>';
 ?>
diff --git a/interface/web/admin/lib/lang/br_remote_user.lng b/interface/web/admin/lib/lang/br_remote_user.lng
index e38e02e20f..ac03c8dea5 100644
--- a/interface/web/admin/lib/lang/br_remote_user.lng
+++ b/interface/web/admin/lib/lang/br_remote_user.lng
@@ -2,46 +2,46 @@
 $wb['username_txt'] = 'Nome do usuário';
 $wb['password_txt'] = 'Senha';
 $wb['function_txt'] = 'Funções';
-$wb['username_error_unique'] = 'O nome de usuário deve ser único';
+$wb['username_error_unique'] = 'O nome de usuário deve ser exclusivo';
 $wb['username_error_empty'] = 'O nome de usuário não pode estar em branco';
 $wb['password_error_empty'] = 'A senha não pode estar em branco';
-$wb['password_strength_txt'] = 'Segurança da senha';
-$wb['Mail domain functions'] = 'Funções de domínio de correio';
-$wb['Mail user functions'] = 'Funções de usuário de correio';
-$wb['Mail alias functions'] = 'Funções de aliases de correio';
-$wb['Mail forward functions'] = 'Funções de encaminhamento de correio';
-$wb['Mail catchall functions'] = 'Funções de catchall de correio';
-$wb['Mail transport functions'] = 'Funções de transporte de correio';
-$wb['Mail whitelist functions'] = 'Funções de lista branca de correio';
-$wb['Mail blacklist functions'] = 'Funções de lista negra de correio';
-$wb['Mail spamfilter user functions'] = 'Funções de spamfilter de usuário de correio';
-$wb['Mail spamfilter policy functions'] = 'Funções de política de spamfilter de correio';
-$wb['Mail fetchmail functions'] = 'Funções de fetchmail';
-$wb['Mail user filter functions'] = 'Funções de filtro de correio de usuário';
-$wb['Mail filter functions'] = 'Funções de filtro de correio';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['Mail domain functions'] = 'Funções de domínios de e-mail';
+$wb['Mail user functions'] = 'Funções de usuários de e-mail';
+$wb['Mail alias functions'] = 'Funções de apelidos de domínio de e-mail';
+$wb['Mail forward functions'] = 'Funções de encaminhamento de e-mail';
+$wb['Mail catchall functions'] = 'Funções de de contas cata tudo';
+$wb['Mail transport functions'] = 'Funções de transporte de e-mail';
+$wb['Mail whitelist functions'] = 'Funções de lista branca de e-mail';
+$wb['Mail blacklist functions'] = 'Funções de lista negra de e-mail';
+$wb['Mail spamfilter user functions'] = 'Funções de filtros antispam para contas de e-mail';
+$wb['Mail spamfilter policy functions'] = 'Funções de política de antispam para contas de e-mail';
+$wb['Mail fetchmail functions'] = 'Funções de contas de busca de e-mails';
+$wb['Mail user filter functions'] = 'Funções de filtro de e-mails para contas de e-mail';
+$wb['Mail filter functions'] = 'Funções de filtros de e-mail';
 $wb['Client functions'] = 'Funções de cliente';
-$wb['Sites cron functions'] = 'Funções de cron (Sites)';
-$wb['Sites database functions'] = 'Funções de Banco de Dados (Sites)';
-$wb['Sites FTP-User functions'] = 'Funções de Usuários FTP (Sites)';
-$wb['Sites Shell-User functions'] = 'Funções de Usuários de Shell (Sites)';
-$wb['Sites Domain functions'] = 'Funções de Domínio (Sites)';
-$wb['Sites Aliasdomain functions'] = 'Função de Aliasdomain (Sites)';
-$wb['Sites Subdomain functions'] = 'Função de Subdomain (Sites)';
-$wb['DNS zone functions'] = 'Funções de Zona DNS';
-$wb['DNS a functions'] = 'Funções de a DNS';
-$wb['DNS aaaa functions'] = 'Funções de aaaa DNS';
-$wb['DNS alias functions'] = 'Funções de alias DNS';
-$wb['DNS cname functions'] = 'Funções de cname DNS';
-$wb['DNS hinfo functions'] = 'Funções de hinfo DNS';
-$wb['DNS mx functions'] = 'Funções de mx DNS';
-$wb['DNS ns functions'] = 'Funções de ns DNS';
-$wb['DNS ptr functions'] = 'Funções de ptr DNS';
-$wb['DNS rp functions'] = 'Funções de rp DNS';
-$wb['DNS srv functions'] = 'Funções de srv DNS';
-$wb['DNS txt functions'] = 'Funções de txt DNS';
-$wb['Mail mailing list functions'] = 'Funções de mailinglist';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['Sites cron functions'] = 'Funções de tarefas no cron para sites';
+$wb['Sites database functions'] = 'Funções de banco de dados para sites';
+$wb['Sites FTP-User functions'] = 'Funções de usuários ftp para sites';
+$wb['Sites Shell-User functions'] = 'Funções de usuários shell para sites';
+$wb['Sites Domain functions'] = 'Funções de domínios de sites';
+$wb['Sites Aliasdomain functions'] = 'Função de apelidos de domínio de sites';
+$wb['Sites Subdomain functions'] = 'Função de subdomínio de sites';
+$wb['DNS zone functions'] = 'Funções de zona dns';
+$wb['DNS a functions'] = 'Funções de registro A dns';
+$wb['DNS aaaa functions'] = 'Funções de registro AAAA dns';
+$wb['DNS alias functions'] = 'Funções de registro Alias dns';
+$wb['DNS cname functions'] = 'Funções de registro CNAME dns';
+$wb['DNS hinfo functions'] = 'Funções de registro HINFO dns';
+$wb['DNS mx functions'] = 'Funções de registro MX dns';
+$wb['DNS ns functions'] = 'Funções de registro NS dns';
+$wb['DNS ptr functions'] = 'Funções de registro PTR dns';
+$wb['DNS rp functions'] = 'Funções de registro RP dns';
+$wb['DNS srv functions'] = 'Funções de registro SRV dns';
+$wb['DNS txt functions'] = 'Funções de registro TXT dns';
+$wb['Mail mailing list functions'] = 'Funções de lista de e-mails';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_remote_user_list.lng b/interface/web/admin/lib/lang/br_remote_user_list.lng
index d84321ddbd..f95d782ce6 100644
--- a/interface/web/admin/lib/lang/br_remote_user_list.lng
+++ b/interface/web/admin/lib/lang/br_remote_user_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Usuários Remotos';
+$wb['list_head_txt'] = 'Usuários remotos';
 $wb['list_desc_txt'] = '';
-$wb['add_new_record_txt'] = 'Adcionar novo usuário';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
 $wb['parent_remote_userid_txt'] = 'ID';
 $wb['username_txt'] = 'Nome do usuário';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server.lng b/interface/web/admin/lib/lang/br_server.lng
index 43e8334264..11ba1f78ad 100644
--- a/interface/web/admin/lib/lang/br_server.lng
+++ b/interface/web/admin/lib/lang/br_server.lng
@@ -1,16 +1,16 @@
 <?php
 $wb['config_txt'] = 'Configuração';
-$wb['server_name_txt'] = 'Nome do Servidor';
-$wb['mail_server_txt'] = 'Servidor de Mail';
-$wb['web_server_txt'] = 'Servidor Web';
-$wb['dns_server_txt'] = 'Servidor DNS';
-$wb['file_server_txt'] = 'Servidor de Arquivo';
-$wb['db_server_txt'] = 'Servidor de Banco de Dados';
-$wb['vserver_server_txt'] = 'Servidor VServer';
+$wb['server_name_txt'] = 'Nome do servidor';
+$wb['mail_server_txt'] = 'Servidor de e-mails';
+$wb['web_server_txt'] = 'Servidor de páginas';
+$wb['dns_server_txt'] = 'Servidor dns';
+$wb['file_server_txt'] = 'Servidor de arquivo';
+$wb['db_server_txt'] = 'Servidor de banco de dados';
+$wb['vserver_server_txt'] = 'Servidor vserver';
 $wb['active_txt'] = 'Ativado';
 $wb['mirror_server_id_txt'] = 'É um espelho de servidor';
 $wb['- None -'] = '- Não -';
-$wb['proxy_server_txt'] = 'Proxy-Server';
-$wb['firewall_server_txt'] = 'Firewall-Server';
-$wb['xmpp_server_txt'] = 'XMPP Server';
+$wb['proxy_server_txt'] = 'Servidor proxy';
+$wb['firewall_server_txt'] = 'Servidor de firewall';
+$wb['xmpp_server_txt'] = 'Servidor XMPP';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index d682d2ecf2..83b3f36ac3 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -1,284 +1,284 @@
 <?php
-$wb['jailkit_chroot_home_txt'] = 'Raiz do Chroot Jailkit';
-$wb['jailkit_chroot_app_sections_txt'] = 'Aplicações Jailkit chroot (Sessões)';
-$wb['jailkit_chroot_app_programs_txt'] = 'Aplicações Jailkit em ambiente chroot';
-$wb['website_path_txt'] = 'Caminho do Website';
-$wb['website_symlinks_txt'] = 'Website symlinks: link simbólico';
-$wb['website_symlinks_rel_txt'] = 'Make relative symlinks';
-$wb['website_basedir_txt'] = 'Website basedir: Diretório base ';
-$wb['vhost_conf_dir_txt'] = 'Vhost config dir';
-$wb['vhost_conf_enabled_dir_txt'] = 'Vhost diretório de configuração ativo';
-$wb['getmail_config_dir_txt'] = 'Getmail config dir';
-$wb['fastcgi_starter_path_txt'] = 'FastCGI: Caminho diretório inicial';
-$wb['fastcgi_starter_script_txt'] = 'FastCGI: Script inicial';
-$wb['fastcgi_alias_txt'] = 'FastCGI: Alias';
+$wb['jailkit_chroot_home_txt'] = 'Raiz do chroot jailkit';
+$wb['jailkit_chroot_app_sections_txt'] = 'Aplicações no jailkit chroot (sessões)';
+$wb['jailkit_chroot_app_programs_txt'] = 'Aplicações no jailkit em ambiente chroot';
+$wb['website_path_txt'] = 'Caminho do site';
+$wb['website_symlinks_txt'] = 'Site symlinks: links simbólicos';
+$wb['website_symlinks_rel_txt'] = 'Criar links simbólicos relativos';
+$wb['website_basedir_txt'] = 'Site basedir: Diretório base ';
+$wb['vhost_conf_dir_txt'] = 'Diretório de configuração para vhost';
+$wb['vhost_conf_enabled_dir_txt'] = 'Diretório de configuração para vhost ativo';
+$wb['getmail_config_dir_txt'] = 'Diretório de configuração do getmail';
+$wb['fastcgi_starter_path_txt'] = 'FastCGI: Caminho do diretório do scritp de inicialização';
+$wb['fastcgi_starter_script_txt'] = 'FastCGI: Script de inicialização';
+$wb['fastcgi_alias_txt'] = 'FastCGI: Alias (apelido)';
 $wb['fastcgi_phpini_path_txt'] = 'FastCGI: Caminho do php.ini ';
 $wb['fastcgi_children_txt'] = 'FastCGI: Filhos';
-$wb['fastcgi_max_requests_txt'] = 'FastCGI: Requisições máximas';
-$wb['fastcgi_bin_txt'] = 'FastCGI Bin';
+$wb['fastcgi_max_requests_txt'] = 'FastCGI: Limite de requisições';
+$wb['fastcgi_bin_txt'] = 'Binário do FastCGI';
 $wb['module_txt'] = 'Módulo';
-$wb['maildir_path_txt'] = 'Caminho do diretório Maildir';
-$wb['maildir_format_txt'] = 'Maildir Format';
-$wb['homedir_path_txt'] = 'Caminho do diretório Home';
-$wb['mailuser_uid_txt'] = 'UID usuário de email';
-$wb['mailuser_gid_txt'] = 'GID usuário de email';
-$wb['mailuser_name_txt'] = 'Nome usuário de email';
-$wb['mailuser_group_txt'] = 'Grupo usuário de email';
-$wb['mailbox_virtual_uidgid_maps_txt'] = 'Use Websites Linux uid for mailbox';
-$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'only in single web and mail-server-setup';
-$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped in multi-server-setup.';
-$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.';
-$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.';
-$wb['relayhost_txt'] = 'Host Relay';
-$wb['relayhost_user_txt'] = 'Usuário do Host Relay';
-$wb['relayhost_password_txt'] = 'Senha do Host Relay';
-$wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch';
-$wb['mailbox_size_limit_txt'] = 'Tamanho máximo da Caixa Postal';
-$wb['message_size_limit_txt'] = 'Tamanho máximo de mensagem';
+$wb['maildir_path_txt'] = 'Caminho do diretório maildir';
+$wb['maildir_format_txt'] = 'Formato do maildir';
+$wb['homedir_path_txt'] = 'Caminho do diretório home';
+$wb['mailuser_uid_txt'] = 'UID do mailuser';
+$wb['mailuser_gid_txt'] = 'GID do mailuser';
+$wb['mailuser_name_txt'] = 'Nome do mailuser';
+$wb['mailuser_group_txt'] = 'Grupo do mailuser';
+$wb['mailbox_virtual_uidgid_maps_txt'] = 'Mapear UID Linux de sites para mailbox';
+$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'Configuração única para sites e servidor de e-mails permitida apenas em configuração de servidor individual';
+$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'UID não pode ser mapeado em uma configuração multiservidor.';
+$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Mapeamento de UID só pode ser usada com o dovecot.';
+$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Mapeamento de UID não pode ser modificada se já existirem e-mails cadastrados.';
+$wb['relayhost_txt'] = 'Hospedeiro de retransmissão';
+$wb['relayhost_user_txt'] = 'Usuário do hospedeiro de retransmissão';
+$wb['relayhost_password_txt'] = 'Senha do hospedeiro de retransmissão';
+$wb['reject_sender_login_mismatch_txt'] = 'Rejeitar remetente e acesso com erros';
+$wb['mailbox_size_limit_txt'] = 'Limite da conta de e-mail';
+$wb['message_size_limit_txt'] = 'Limite do tamanho máximo das mensagens';
 $wb['ip_address_txt'] = 'Endereço IP';
-$wb['netmask_txt'] = 'Máscara de Rede';
+$wb['netmask_txt'] = 'Máscara de rede';
 $wb['gateway_txt'] = 'Gateway';
-$wb['hostname_txt'] = 'Nome do Host';
-$wb['nameservers_txt'] = 'Servidores DNS';
-$wb['auto_network_configuration_txt'] = 'Configuração de Rede';
-$wb['ip_address_error_wrong'] = 'Formato do Endereço IP inválido!';
-$wb['netmask_error_wrong'] = 'Formato da Máscara de Rede inválio!';
+$wb['hostname_txt'] = 'Hospedeiro';
+$wb['nameservers_txt'] = 'Servidores dns';
+$wb['auto_network_configuration_txt'] = 'Configuração de rede';
+$wb['ip_address_error_wrong'] = 'Endereço IP inválido!';
+$wb['netmask_error_wrong'] = 'Máscara de rede inválida!';
 $wb['gateway_error_wrong'] = 'Gateway inválido!';
-$wb['hostname_error_empty'] = 'Por favor, entre com o nome do Host.';
-$wb['nameservers_error_empty'] = 'Por favor, entre com  o Servidor DNS.';
-$wb['jailkit_chroot_cron_programs_txt'] = 'Cron de aplicações Jailkit em ambiente chroot';
+$wb['hostname_error_empty'] = 'Por favor, insira o hospedeiro.';
+$wb['nameservers_error_empty'] = 'Por favor, insira  o servidor dns.';
+$wb['jailkit_chroot_cron_programs_txt'] = 'Tarefas do cron para aplicações no Jailkit em ambiente chroot';
 $wb['config_dir_txt'] = 'Diretório de configuração';
-$wb['init_script_txt'] = 'Cron init nome do script';
-$wb['crontab_dir_txt'] = 'Caminho para crontabs individuais';
+$wb['init_script_txt'] = 'Nome do script de inicialização do cron';
+$wb['crontab_dir_txt'] = 'Caminho para tabelas de tarefas individuais no cron';
 $wb['wget_txt'] = 'Caminho para o wget';
-$wb['web_user_txt'] = 'Usuário Apache';
-$wb['web_group_txt'] = 'Grupo Apache';
-$wb['security_level_txt'] = 'Nível de Segurança';
-$wb['loglevel_txt'] = 'Loglevel';
-$wb['apps_vhost_port_txt'] = 'Apps-vhost port';
-$wb['apps_vhost_ip_txt'] = 'Apps-vhost IP';
-$wb['apps_vhost_servername_txt'] = 'Apps-vhost Domain';
-$wb['bind_user_txt'] = 'Usuário BIND';
-$wb['bind_group_txt'] = 'Grupo BIND';
-$wb['bind_zonefiles_dir_txt'] = 'Diretório de arquivos de zona do BIND';
-$wb['named_conf_path_txt'] = 'Caminho do BIND named.conf';
-$wb['bind_user_error_empty'] = 'Usuário do BIND está em branco.';
-$wb['bind_group_error_empty'] = 'Grupo do BIND está em branco.';
-$wb['bind_zonefiles_dir_error_empty'] = 'Diretório de arquivos de zona está em branco.';
-$wb['named_conf_path_error_empty'] = 'Caminho do BIND named.conf.';
-$wb['named_conf_local_path_error_empty'] = 'Caminho do BIND named.conf.local está em branco.';
-$wb['mail_filter_syntax_txt'] = 'Sintaxe do Mailfilter';
-$wb['pop3_imap_daemon_txt'] = 'POP3/IMAP Daemon';
-$wb['php_open_basedir_txt'] = 'PHP open_basedir';
-$wb['php_open_basedir_error_empty'] = 'PHP open_basedir está em branco.';
-$wb['htaccess_allow_override_txt'] = '.htaccess AllowOverride';
-$wb['htaccess_allow_override_error_empty'] = '.htaccess AllowOverride está em branco.';
+$wb['web_user_txt'] = 'Usuário apache';
+$wb['web_group_txt'] = 'Grupo apache';
+$wb['security_level_txt'] = 'Nível de segurança';
+$wb['loglevel_txt'] = 'Nível do log (Loglevel)';
+$wb['apps_vhost_port_txt'] = 'Porta para apps-vhost';
+$wb['apps_vhost_ip_txt'] = 'IP para apps-vhost';
+$wb['apps_vhost_servername_txt'] = 'Domínio para apps-vhost';
+$wb['bind_user_txt'] = 'Usuário bind';
+$wb['bind_group_txt'] = 'Grupo bind';
+$wb['bind_zonefiles_dir_txt'] = 'Diretório de arquivos de zona do bind';
+$wb['named_conf_path_txt'] = 'Caminho do named.conf';
+$wb['bind_user_error_empty'] = 'Usuário do Bind em branco.';
+$wb['bind_group_error_empty'] = 'Grupo do Bind em branco.';
+$wb['bind_zonefiles_dir_error_empty'] = 'Diretório de arquivos de zona em branco.';
+$wb['named_conf_path_error_empty'] = 'Caminho do named.conf.';
+$wb['named_conf_local_path_error_empty'] = 'Caminho do named.conf.local em branco.';
+$wb['mail_filter_syntax_txt'] = 'Sintaxe do mailfilter';
+$wb['pop3_imap_daemon_txt'] = 'Serviço POP3/IMAP';
+$wb['php_open_basedir_txt'] = 'Diretório PHP open_basedir';
+$wb['php_open_basedir_error_empty'] = 'Diretório do PHP open_basedir em branco.';
+$wb['htaccess_allow_override_txt'] = 'Diretiva .htaccess AllowOverride';
+$wb['htaccess_allow_override_error_empty'] = 'Diretiva .htaccess AllowOverride em branco.';
 $wb['awstats_conf_dir_txt'] = 'Diretório de configuração do awstats';
 $wb['awstats_data_dir_txt'] = 'Diretório de dados do awstats';
-$wb['awstats_pl_txt'] = 'script awstats.pl';
-$wb['awstats_buildstaticpages_pl_txt'] = 'script awstats_buildstaticpages.pl';
-$wb['backup_dir_txt'] = 'Diretório de Backup';
-$wb['named_conf_local_path_txt'] = 'Caminho do named.conf.local do BIND';
-$wb['php_ini_path_cgi_txt'] = 'CGI php.ini path';
-$wb['php_ini_path_apache_txt'] = 'Caminho do php.ini do Apache';
-$wb['check_apache_config_txt'] = 'Testar a configuração do Apache ao reiniciar';
-$wb['network_config_warning_txt'] = 'A configuração de rede só está disponível para servidores Debian e Ubuntu. Não ative esta configuração de a sua placa de rede não for eth0.';
-$wb['CA_path_txt'] = 'CA Path';
-$wb['CA_pass_txt'] = 'CA passphrase';
-$wb['ufw_enable_txt'] = 'Enable';
-$wb['ufw_manage_builtins_txt'] = 'Manage Builtin Rules';
-$wb['ufw_ipv6_txt'] = 'Enable IPv6';
-$wb['ufw_default_input_policy_txt'] = 'Default Input Policy';
-$wb['ufw_default_output_policy_txt'] = 'Default Output Policy';
-$wb['ufw_default_forward_policy_txt'] = 'Default Forward Policy';
-$wb['ufw_default_application_policy_txt'] = 'Default Application Policy';
-$wb['ufw_log_level_txt'] = 'Log Level';
-$wb['fastcgi_config_syntax_txt'] = 'FastCGI config syntax';
-$wb['server_type_txt'] = 'Server Type';
-$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Vhost config dir';
-$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Nginx Vhost config enabled dir';
-$wb['nginx_user_txt'] = 'Nginx user';
-$wb['nginx_group_txt'] = 'Nginx group';
-$wb['nginx_cgi_socket_txt'] = 'Nginx CGI Socket';
-$wb['backup_dir_error_empty'] = 'Backup directory is empty.';
-$wb['maildir_path_error_empty'] = 'Maildir Path is empty.';
-$wb['homedir_path_error_empty'] = 'Homedir Path is empty.';
-$wb['mailuser_uid_error_empty'] = 'Mailuser UID is empty.';
-$wb['mailuser_gid_error_empty'] = 'Mailuser GID is empty.';
-$wb['mailuser_name_error_empty'] = 'Mailuser Name is empty.';
-$wb['mailuser_group_error_empty'] = 'Mailuser Group is empty.';
-$wb['getmail_config_dir_error_empty'] = 'Getmail config dir is empty.';
-$wb['website_basedir_error_empty'] = 'Website basedir is empty.';
-$wb['website_path_error_empty'] = 'Website path is empty.';
-$wb['website_symlinks_error_empty'] = 'Website symlinks is empty.';
-$wb['vhost_conf_dir_error_empty'] = 'Vhost config dir is empty.';
-$wb['vhost_conf_enabled_dir_error_empty'] = 'Vhost config enabled dir is empty.';
-$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx Vhost config dir is empty.';
-$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Nginx Vhost config enabled dir is empty.';
-$wb['apache_user_error_empty'] = 'Apache user is empty.';
-$wb['apache_group_error_empty'] = 'Apache group is empty.';
-$wb['nginx_user_error_empty'] = 'Nginx user is empty.';
-$wb['nginx_group_error_empty'] = 'Nginx group is empty.';
-$wb['php_ini_path_apache_error_empty'] = 'Apache php.ini path is empty.';
-$wb['php_ini_path_cgi_error_empty'] = 'CGI php.ini path is empty.';
-$wb['nginx_cgi_socket_empty'] = 'Nginx CGI Socket is empty.';
-$wb['apps_vhost_port_error_empty'] = 'Apps-vhost port is empty.';
-$wb['apps_vhost_ip_error_empty'] = 'Apps-vhost IP is empty.';
-$wb['fastcgi_starter_path_error_empty'] = 'FastCGI starter path is empty.';
-$wb['fastcgi_starter_script_error_empty'] = 'FastCGI starter script is empty.';
-$wb['fastcgi_alias_error_empty'] = 'FastCGI Alias is empty.';
-$wb['fastcgi_phpini_path_error_empty'] = 'FastCGI php.ini Path is empty.';
-$wb['fastcgi_children_error_empty'] = 'FastCGI Children is empty.';
-$wb['fastcgi_max_requests_error_empty'] = 'FastCGI max. Requests is empty.';
-$wb['fastcgi_bin_error_empty'] = 'FastCGI Bin is empty.';
-$wb['jailkit_chroot_home_error_empty'] = 'Jailkit chroot home is empty.';
-$wb['jailkit_chroot_app_sections_error_empty'] = 'Jailkit chroot app sections is empty.';
-$wb['jailkit_chroot_app_programs_error_empty'] = 'Jailkit chrooted applications is empty.';
-$wb['jailkit_chroot_cron_programs_error_empty'] = 'Jailkit cron chrooted applications is empty.';
-$wb['vlogger_config_dir_error_empty'] = 'Config directory is empty.';
-$wb['cron_init_script_error_empty'] = 'Cron init script name is empty.';
-$wb['crontab_dir_error_empty'] = 'Path for individual crontabs is empty.';
-$wb['cron_wget_error_empty'] = 'Path to wget program is empty.';
-$wb['php_fpm_init_script_txt'] = 'PHP-FPM init script';
-$wb['php_fpm_init_script_error_empty'] = 'PHP-FPM init script is empty.';
-$wb['php_fpm_ini_path_txt'] = 'PHP-FPM php.ini path';
-$wb['php_fpm_ini_path_error_empty'] = 'PHP-FPM php.ini path is empty.';
-$wb['php_fpm_pool_dir_txt'] = 'PHP-FPM pool directory';
-$wb['php_fpm_pool_dir_error_empty'] = 'PHP-FPM pool directory is empty.';
-$wb['php_fpm_start_port_txt'] = 'PHP-FPM start port';
-$wb['php_fpm_start_port_error_empty'] = 'PHP-FPM start port is empty.';
-$wb['php_fpm_socket_dir_txt'] = 'PHP-FPM socket directory';
-$wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM socket directory is empty.';
-$wb['try_rescue_txt'] = 'Enable service monitoring and restart on failure';
-$wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring';
-$wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring';
-$wb['rescue_description_txt'] = '<b>Information:</b> If you want to shut down mysql you have to select the Disable MySQL monitor checkbox and then wait 2-3 minutes.<br>if you do not wait 2-3 minutes, rescue will try to restart mysql!';
-$wb['enable_sni_txt'] = 'Enable SNI';
-$wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring';
-$wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update';
-$wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group';
-$wb['connect_userid_to_webid_txt'] = 'Connect Linux userid to webid';
-$wb['connect_userid_to_webid_start_txt'] = 'Start ID for userid/webid connect';
-$wb['website_autoalias_txt'] = 'Website auto alias';
-$wb['website_autoalias_note_txt'] = 'Placeholders:';
-$wb['backup_mode_txt'] = 'Backup mode';
-$wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip';
-$wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user';
-$wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List';
-$wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)';
-$wb['ssl_settings_txt'] = 'SSL Settings';
-$wb['permissions_txt'] = 'Permissions';
-$wb['php_settings_txt'] = 'PHP Settings';
-$wb['apps_vhost_settings_txt'] = 'Apps Vhost Settings';
-$wb['awstats_settings_txt'] = 'AWStats Settings';
+$wb['awstats_pl_txt'] = 'Script awstats.pl';
+$wb['awstats_buildstaticpages_pl_txt'] = 'Script awstats_buildstaticpages.pl';
+$wb['backup_dir_txt'] = 'Diretório de backup';
+$wb['named_conf_local_path_txt'] = 'Caminho do named.conf.local';
+$wb['php_ini_path_cgi_txt'] = 'Caminho do php.ini CGI';
+$wb['php_ini_path_apache_txt'] = 'Caminho do php.ini apache';
+$wb['check_apache_config_txt'] = 'Testar a configuração do apache ao reiniciar';
+$wb['network_config_warning_txt'] = 'A configuração de rede só está disponível para servidores Debian e Ubuntu. Não ative esta configuração se a adaptadora de rede no sistema for diferente de eth0.';
+$wb['CA_path_txt'] = 'Caminho do CA';
+$wb['CA_pass_txt'] = 'Senha do CA';
+$wb['ufw_enable_txt'] = 'Habilitar';
+$wb['ufw_manage_builtins_txt'] = 'Gerenciar regras embutidas';
+$wb['ufw_ipv6_txt'] = 'Habilitar IPv6';
+$wb['ufw_default_input_policy_txt'] = 'Política padrão para entrada';
+$wb['ufw_default_output_policy_txt'] = 'Política padrão para saída';
+$wb['ufw_default_forward_policy_txt'] = 'Política padrão para encaminhamento';
+$wb['ufw_default_application_policy_txt'] = 'Política padrão para aplicações';
+$wb['ufw_log_level_txt'] = 'Nível do log';
+$wb['fastcgi_config_syntax_txt'] = 'Sintaxe das configurações FastCGI';
+$wb['server_type_txt'] = 'Tipo de servidor';
+$wb['nginx_vhost_conf_dir_txt'] = 'Diretório de configuração do vhost nginx';
+$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Configuração do diretório do vhost nginx habilitada';
+$wb['nginx_user_txt'] = 'Usuário nginx';
+$wb['nginx_group_txt'] = 'Grupo nginx';
+$wb['nginx_cgi_socket_txt'] = 'Soquete CGI nginx';
+$wb['backup_dir_error_empty'] = 'Diretório de backup em branco.';
+$wb['maildir_path_error_empty'] = 'Caminho do maildir em branco.';
+$wb['homedir_path_error_empty'] = 'Caminho do homedir em branco.';
+$wb['mailuser_uid_error_empty'] = 'UID do mailuser em branco.';
+$wb['mailuser_gid_error_empty'] = 'GID do mailuser em branco.';
+$wb['mailuser_name_error_empty'] = 'Nome do mailuser em branco.';
+$wb['mailuser_group_error_empty'] = 'Grupo do mailuser em branco.';
+$wb['getmail_config_dir_error_empty'] = 'Configuração do diretório do getmail em branco.';
+$wb['website_basedir_error_empty'] = 'Diretório padrão (basedir) do site em branco.';
+$wb['website_path_error_empty'] = 'Caminho do diretório base (basedir) do site em branco.';
+$wb['website_symlinks_error_empty'] = 'Links simbólicos para site em branco.';
+$wb['vhost_conf_dir_error_empty'] = 'Configuração do diretório para vhost em branco.';
+$wb['vhost_conf_enabled_dir_error_empty'] = 'Configuração habilitada do diretório vhost em branco.';
+$wb['nginx_vhost_conf_dir_error_empty'] = 'Configuração do diretório vhost do nginx em branco.';
+$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Configuração habilitada do diretório vhost do nginx em branco.';
+$wb['apache_user_error_empty'] = 'Usuário apache em branco.';
+$wb['apache_group_error_empty'] = 'Grupo apache em branco.';
+$wb['nginx_user_error_empty'] = 'Usuário nginx em branco.';
+$wb['nginx_group_error_empty'] = 'Grupo nginx em branco.';
+$wb['php_ini_path_apache_error_empty'] = 'Caminho do php.ini apache em branco.';
+$wb['php_ini_path_cgi_error_empty'] = 'Caminho do php.ini CGI em branco.';
+$wb['nginx_cgi_socket_empty'] = 'Soquete do CGI nginx em branco.';
+$wb['apps_vhost_port_error_empty'] = 'Porta de apps-vhost em branco.';
+$wb['apps_vhost_ip_error_empty'] = 'IP para apps-vhost em branco.';
+$wb['fastcgi_starter_path_error_empty'] = 'Caminho do programa de inicialização do FastCGI está em branco.';
+$wb['fastcgi_starter_script_error_empty'] = 'Script de inicialização do FastCGI em branco.';
+$wb['fastcgi_alias_error_empty'] = 'Alias (apelido) do FastCGI em branco.';
+$wb['fastcgi_phpini_path_error_empty'] = 'Caminho do php.ini do FastCGI em branco.';
+$wb['fastcgi_children_error_empty'] = 'Filhos do FastCGI em branco.';
+$wb['fastcgi_max_requests_error_empty'] = 'Limite de requisições do FastCGI em branco.';
+$wb['fastcgi_bin_error_empty'] = 'Binário do FastCGI em branco.';
+$wb['jailkit_chroot_home_error_empty'] = 'Diretório raiz do jailkit em branco.';
+$wb['jailkit_chroot_app_sections_error_empty'] = 'Aplicações no jailkit chroot (sessões) em branco.';
+$wb['jailkit_chroot_app_programs_error_empty'] = 'Aplicações no jailkit em ambiente chroot em branco.';
+$wb['jailkit_chroot_cron_programs_error_empty'] = 'Tarefas no cron de aplicações no jailkit em ambiente chroot em branco.';
+$wb['vlogger_config_dir_error_empty'] = 'Diretório de configurações em branco.';
+$wb['cron_init_script_error_empty'] = 'Nome do script de inicialização do cron em branco.';
+$wb['crontab_dir_error_empty'] = 'Caminho para tabelas de tarefas individuais no cron em branco.';
+$wb['cron_wget_error_empty'] = 'Caminho do programa wget em branco.';
+$wb['php_fpm_init_script_txt'] = 'Script de inicialização do PHP-FPM';
+$wb['php_fpm_init_script_error_empty'] = 'Script de inicialização do PHP-FPM em branco.';
+$wb['php_fpm_ini_path_txt'] = 'Caminho do php.ini do PHP-FPM';
+$wb['php_fpm_ini_path_error_empty'] = 'Caminho do php.ini do PHP-FPM em branco.';
+$wb['php_fpm_pool_dir_txt'] = 'Diretório de faixas (pool) do PHP-FPM';
+$wb['php_fpm_pool_dir_error_empty'] = 'Diretório de faixas (pool) do PHP-FPM em branco.';
+$wb['php_fpm_start_port_txt'] = 'Porta de inicialização do PHP-FPM';
+$wb['php_fpm_start_port_error_empty'] = 'Porta de inicialização do PHP-FPM em branco.';
+$wb['php_fpm_socket_dir_txt'] = 'Diretório do soquete PHP-FPM';
+$wb['php_fpm_socket_dir_error_empty'] = 'Diretório do soquete PHP-FPM em branco.';
+$wb['try_rescue_txt'] = 'Habilitar serviço de monitoramento e reiniciar em caso de falha';
+$wb['do_not_try_rescue_mysql_txt'] = 'Desabilitar monitoramento do MySQL';
+$wb['do_not_try_rescue_mail_txt'] = 'Desabilitar monitoramento do servidor de e-mails';
+$wb['rescue_description_txt'] = '<b>Informação:</b> Se você deseja desligar o MySQL deverá selecionar \"Desabilitar monitoramento do MySQL\" e aguardar em torno de 2 a 3 minutos...<br>se não aguardar em torno de 2 a 3 minutos, o serviço tentará reiniciar o MySQL!';
+$wb['enable_sni_txt'] = 'Habilitar SNI';
+$wb['do_not_try_rescue_httpd_txt'] = 'Desabilitar monitoramento do HTTPD';
+$wb['set_folder_permissions_on_update_txt'] = 'Configurar permissões de pasta na atualização';
+$wb['add_web_users_to_sshusers_group_txt'] = 'Adicionar usuários de site (web) para grupo -sshusers-';
+$wb['connect_userid_to_webid_txt'] = 'Mapear userID Linux para webID';
+$wb['connect_userid_to_webid_start_txt'] = 'Iniciar ID para userID/webID se conectar';
+$wb['website_autoalias_txt'] = 'Auto apelido (alias) para sites';
+$wb['website_autoalias_note_txt'] = 'Área reservada:';
+$wb['backup_mode_txt'] = 'Modo do backup';
+$wb['backup_mode_userzip'] = 'Arquivos de backup com propriedade do usuário web e compactados como zip';
+$wb['backup_mode_rootgz'] = 'Todos os arquivos no diretório web com proprietário root';
+$wb['realtime_blackhole_list_txt'] = 'RBL em tempo real';
+$wb['realtime_blackhole_list_note_txt'] = '(Separar RBL\'s por vírgulas)';
+$wb['ssl_settings_txt'] = 'Configurações SSL';
+$wb['permissions_txt'] = 'Permissões';
+$wb['php_settings_txt'] = 'Configurações PHP';
+$wb['apps_vhost_settings_txt'] = 'Configurações apps-vhost';
+$wb['awstats_settings_txt'] = 'Configurações awstats';
 $wb['firewall_txt'] = 'Firewall';
-$wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics';
-$wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)';
-$wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
-$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
-$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
-$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
-$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
-$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
-$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
-$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
-$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
-$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
-$wb['no_notifications_txt'] = 'No Notifications';
-$wb['monit_url_txt'] = 'Monit URL';
-$wb['monit_user_txt'] = 'Monit User';
-$wb['monit_password_txt'] = 'Monit Password';
-$wb['monit_url_error_regex'] = 'Invalid Monit URL';
-$wb['monit_url_note_txt'] = 'Placeholder:';
-$wb['munin_url_txt'] = 'Munin URL';
-$wb['munin_user_txt'] = 'Munin User';
-$wb['munin_password_txt'] = 'Munin Password';
-$wb['munin_url_error_regex'] = 'Invalid Munin URL';
-$wb['munin_url_note_txt'] = 'Placeholder:';
-$wb['dkim_path_txt'] = 'DKIM Path';
-$wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
-$wb['v6_prefix_txt'] = 'IPv6 Prefix';
-$wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror';
-$wb['v6_prefix_length'] = 'Prefix too long according to defined IPv6 ';
-$wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?';
-$wb['monitor_system_updates_txt'] = 'Check for Linux updates';
-$wb['hostname_error_regex'] = 'Invalid Hostname.';
-$wb['invalid_apache_user_txt'] = 'Invalid apache user.';
-$wb['invalid_apache_group_txt'] = 'Invalid apache group.';
-$wb['backup_dir_error_regex'] = 'Invalid backup directory.';
-$wb['maildir_path_error_regex'] = 'Invalid maildir path.';
-$wb['homedir_path_error_regex'] = 'Invalid homedir path.';
-$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.';
-$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.';
-$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000';
-$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000';
-$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.';
-$wb['website_basedir_error_regex'] = 'Invalid website basedir.';
-$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.';
-$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.';
-$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.';
-$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.';
-$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.';
-$wb['ca_path_error_regex'] = 'Invalid CA path.';
-$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.';
-$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.';
-$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.';
-$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.';
-$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.';
-$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.';
-$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.';
-$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.';
-$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.';
-$wb['awstats_data_dir_empty'] = 'awstats data directory is empty';
-$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.';
-$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.';
-$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.';
-$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty';
-$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.';
-$wb['invalid_bind_user_txt'] = 'Invalid BIND user.';
-$wb['invalid_bind_group_txt'] = 'Invalid BIND group.';
-$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.';
-$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.';
-$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.';
-$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.';
-$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.';
-$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.';
-$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.';
-$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.';
-$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.';
-$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.';
-$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.';
-$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.';
-$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.';
-$wb['cron_init_script_error_regex'] = 'Invalid cron init script.';
-$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
-$wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
-$wb['network_filesystem_txt'] = 'Network Filesystem';
-$wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
-$wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
-$wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring';
-$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
-$wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin';
-$wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client';
-$wb['php_handler_txt'] = 'Default PHP Handler';
-$wb['disabled_txt'] = 'Disabled';
-$wb['dkim_strength_txt'] = 'DKIM strength';
-$wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
-$wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
-$wb['php_ini_check_minutes_info_txt'] = '0 = no check';
-$wb['enable_spdy_txt'] = 'Makes SPDY available';
-$wb['web_settings_txt'] = 'Web Server';
-$wb['xmpp_server_txt'] = 'XMPP Server';
-$wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
-$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time';
-$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360';
+$wb['mailbox_quota_stats_txt'] = 'Estatísticas de cota das contas de e-mail';
+$wb['enable_ip_wildcard_txt'] = 'Habilitar curingas (*) para IP';
+$wb['web_folder_protection_txt'] = 'Tornar pastas web imutáveis (atributos estendidos)';
+$wb['overtraffic_notify_admin_txt'] = 'Enviar notificação de cota de tráfego excedida para o administrador';
+$wb['overtraffic_notify_client_txt'] = 'Enviar notificação de cota de tráfego excedida para o cliente';
+$wb['rbl_error_regex'] = 'Por favor, insira um nome de hospedeiro válido para RBL.';
+$wb['overquota_notify_admin_txt'] = 'Enviar alertas de cota para o administrador';
+$wb['overquota_notify_client_txt'] = 'Enviar alertas de cota para o cliente';
+$wb['overquota_notify_onok_txt'] = 'Enviar mensagem de cota OK para o cliente';
+$wb['overquota_notify_freq_txt'] = 'Enviar alertas de cota a cada N dias';
+$wb['overquota_notify_freq_note_txt'] = '0 = enviar mensagem apenas uma vez, não repetir';
+$wb['admin_notify_events_txt'] = 'Enviar e-mail para o admin quando iniciando com o seguinte nível';
+$wb['no_notifications_txt'] = 'Sem Notificações';
+$wb['monit_url_txt'] = 'URL do Monit';
+$wb['monit_user_txt'] = 'Usuário do Monit';
+$wb['monit_password_txt'] = 'Senha do Monit';
+$wb['monit_url_error_regex'] = 'URL do Monit inválida.';
+$wb['monit_url_note_txt'] = 'Área reservada:';
+$wb['munin_url_txt'] = 'URL do Munin';
+$wb['munin_user_txt'] = 'Usuário do Munin';
+$wb['munin_password_txt'] = 'Senha do Munin';
+$wb['munin_url_error_regex'] = 'URL do Munin inválida.';
+$wb['munin_url_note_txt'] = 'Área reservada:';
+$wb['dkim_path_txt'] = 'Caminho do DKIM';
+$wb['backup_delete_txt'] = 'Remover backups do domínio/site';
+$wb['v6_prefix_txt'] = 'Prefixo IPv6';
+$wb['vhost_rewrite_v6_txt'] = 'Reescrever prefixo IPv6 no espelho';
+$wb['v6_prefix_length'] = 'Prefixo longo definido de acordo com IPv6';
+$wb['backup_dir_is_mount_txt'] = 'Diretório de backup está montado?';
+$wb['monitor_system_updates_txt'] = 'Verificar por atualizações Linux';
+$wb['hostname_error_regex'] = 'Nome do hospedeiro inválido.';
+$wb['invalid_apache_user_txt'] = 'Usuário do Apache inválido.';
+$wb['invalid_apache_group_txt'] = 'Grupo do Apache inválido.';
+$wb['backup_dir_error_regex'] = 'Diretório de backup inválido.';
+$wb['maildir_path_error_regex'] = 'Caminho do Maildir inválido.';
+$wb['homedir_path_error_regex'] = 'Caminho do Home inválido.';
+$wb['mailuser_name_error_regex'] = 'Nome do Mailuser inválido.';
+$wb['mailuser_group_name_error_regex'] = 'Grupo do Mailuser inválido.';
+$wb['mailuser_uid_error_range'] = 'A UID do Mailuser deve ser >= 2000';
+$wb['mailuser_gid_error_range'] = 'A GID do Mailuser deve ser >= 2000';
+$wb['getmail_config_dir_error_regex'] = 'Configuração do diretório do getmail inválida.';
+$wb['website_basedir_error_regex'] = 'Diretório base (basedir) para sites inválido.';
+$wb['website_symlinks_error_regex'] = 'Links simbólicos para sites inválido.';
+$wb['vhost_conf_dir_error_regex'] = 'Diretório de configurações para vhost inválido.';
+$wb['vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações para vhost habilitado inválido.';
+$wb['nginx_vhost_conf_dir_error_regex'] = 'Diretório de configurações do nginx inválido.';
+$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações nginx habilitado inválido.';
+$wb['ca_path_error_regex'] = 'Caminho do CA inválido.';
+$wb['invalid_nginx_user_txt'] = 'Usuário do nginx inválido.';
+$wb['invalid_nginx_group_txt'] = 'Grupo do nginx inválido.';
+$wb['php_ini_path_apache_error_regex'] = 'Caminho do php.ini apache inválido.';
+$wb['php_ini_path_cgi_error_regex'] = 'Caminho do php.ini CGI inválido.';
+$wb['php_fpm_init_script_error_regex'] = 'Caminho do script de inicialização do PHP-FPM inválido.';
+$wb['php_fpm_ini_path_error_regex'] = 'Caminho do php.ini PHP-FPM inválido.';
+$wb['php_fpm_pool_dir_error_regex'] = 'Diretório de faixas (pool) PHP-FPM inválido.';
+$wb['php_fpm_socket_dir_error_regex'] = 'Diretório do sqouete PHP-FPM inválido.';
+$wb['php_open_basedir_error_regex'] = 'Diretório base (open_basedir) PHP inválido.';
+$wb['awstats_data_dir_empty'] = 'Diretório de dados do awstats em branco.';
+$wb['awstats_data_dir_error_regex'] = 'Diretório de dados do do awstats inválido.';
+$wb['awstats_pl_empty'] = 'Configuração do script awstats.pl em branco.';
+$wb['awstats_pl_error_regex'] = 'Caminho do script awstats.pl inválido.';
+$wb['awstats_buildstaticpages_pl_empty'] = 'Script awstats_buildstaticpages.pl em branco.';
+$wb['awstats_buildstaticpages_pl_error_regex'] = 'Camindho do script awstats_buildstaticpages.pl inválido.';
+$wb['invalid_bind_user_txt'] = 'Usuário bind inválido.';
+$wb['invalid_bind_group_txt'] = 'Grupo bind inválido.';
+$wb['bind_zonefiles_dir_error_regex'] = 'Diretório de zonas do bind inválido.';
+$wb['named_conf_path_error_regex'] = 'Caminho do named.conf inválido.';
+$wb['named_conf_local_path_error_regex'] = 'Caminho do named.conf.local inválido.';
+$wb['fastcgi_starter_path_error_regex'] = 'Caminho do scritp de inicialização FASTCGI inválido.';
+$wb['fastcgi_starter_script_error_regex'] = 'Script de inicizalização FASTCGI inválido.';
+$wb['fastcgi_alias_error_regex'] = 'Apelido (alias) do FASTCGI inválido.';
+$wb['fastcgi_phpini_path_error_regex'] = 'Caminho do FASTCGI inválido.';
+$wb['fastcgi_bin_error_regex'] = 'Binário do FASTCGI inválido.';
+$wb['jailkit_chroot_home_error_regex'] = 'Raiz do chroot jailkit inválida.';
+$wb['jailkit_chroot_app_sections_error_regex'] = 'Aplicações no jailkit chroot (sessões) inválidas.';
+$wb['jailkit_chroot_app_programs_error_regex'] = 'Aplicações no jailkit em ambiente chroot inválidas.';
+$wb['jailkit_chroot_cron_programs_error_regex'] = 'Programas no cron em ambiente chroot jailkit inválidos.';
+$wb['vlogger_config_dir_error_regex'] = 'Diretório de configuração do vlogger inválido.';
+$wb['cron_init_script_error_regex'] = 'Script de inicialização do Cron inválido.';
+$wb['crontab_dir_error_regex'] = 'Diretório para tabelas de tarefas individuais no cron inválido.';
+$wb['cron_wget_error_regex'] = 'Caminho do inválido do wget para cron.';
+$wb['network_filesystem_txt'] = 'Sistema de arquivos de rede';
+$wb['disable_bind_log_txt'] = 'Desabilitar mensagens de alerta no log para bind9.';
+$wb['apps_vhost_enabled_txt'] = 'Habilitar apps-vhost';
+$wb['do_not_try_rescue_mongodb_txt'] = 'Desabilitar monitoramento do MongoDB';
+$wb['backup_dir_mount_cmd_txt'] = 'Usar o comando mount, se o diretório de backups não estiver montado';
+$wb['overquota_db_notify_admin_txt'] = 'Enviar mensagens de alerta de cota para banco de dados para o administrador';
+$wb['overquota_db_notify_client_txt'] = 'Enviar mensagens de alerta de cota para banco de dados para o cliente';
+$wb['php_handler_txt'] = 'Manipulador padrão PHP';
+$wb['disabled_txt'] = 'Desabilitado';
+$wb['dkim_strength_txt'] = 'Dificuldade do DKIM';
+$wb['php_ini_check_minutes_txt'] = 'Verificar modificações do php.ini a cada N minutos';
+$wb['php_ini_check_minutes_error_empty'] = 'Por favor, insira um valor de quantas vezes o php.ini deve ser verificado por modificações.';
+$wb['php_ini_check_minutes_info_txt'] = '0 = sem verificação';
+$wb['enable_spdy_txt'] = 'Tornar SPDY disponível';
+$wb['web_settings_txt'] = 'Servidor de páginas';
+$wb['xmpp_server_txt'] = 'Servidor XMPP';
+$wb['xmpp_use_ipv6_txt'] = 'Usar IPv6';
+$wb['xmpp_bosh_max_inactivity_txt'] = 'O limite de tempo para falta de atividade BOSH';
+$wb['xmpp_bosh_timeout_range_wrong'] = 'Por favor, insira uma faixa de tempo - entre 15 e 360 - para verificar falta de atividade BOSH.';
 $wb['xmpp_module_saslauth'] = 'saslauth';
-$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)';
-$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)';
-$wb['xmpp_ports_txt'] = 'Component ports';
+$wb['xmpp_server_admins_txt'] = 'Administradores do servidor (JIDs)';
+$wb['xmpp_modules_enabled_txt'] = 'Habilitar plugins no lado servidor (um por linha)';
+$wb['xmpp_ports_txt'] = 'Portas dos componentes';
 $wb['xmpp_port_http_txt'] = 'HTTP';
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
-$wb['backup_time_txt'] = 'Backup time';
+$wb['backup_time_txt'] = 'Hora do backup';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_config_list.lng b/interface/web/admin/lib/lang/br_server_config_list.lng
index 60047d5c18..b9329de9b4 100644
--- a/interface/web/admin/lib/lang/br_server_config_list.lng
+++ b/interface/web/admin/lib/lang/br_server_config_list.lng
@@ -1,4 +1,4 @@
 <?php
-$wb['list_head_txt'] = 'Configuração do Servidor';
+$wb['list_head_txt'] = 'Configuração do servidor';
 $wb['server_name_txt'] = 'Servidor';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_ip.lng b/interface/web/admin/lib/lang/br_server_ip.lng
index 62f9ad351a..a2e78d0de1 100644
--- a/interface/web/admin/lib/lang/br_server_ip.lng
+++ b/interface/web/admin/lib/lang/br_server_ip.lng
@@ -1,11 +1,11 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['ip_address_txt'] = 'Endereço IP';
-$wb['virtualhost_txt'] = 'Nome VirtualHost HTTP';
+$wb['virtualhost_txt'] = 'Nome do virtualHost http';
 $wb['ip_error_wrong'] = 'Endereço IP inválido!';
-$wb['ip_error_unique'] = 'O endereço IP deve ser único';
-$wb['client_id_txt'] = 'Client';
-$wb['ip_type_txt'] = 'Type';
-$wb['virtualhost_port_txt'] = 'HTTP Ports';
-$wb['error_port_syntax'] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443';
+$wb['ip_error_unique'] = 'O endereço IP deve ser exclusivo';
+$wb['client_id_txt'] = 'Cliente';
+$wb['ip_type_txt'] = 'Tipo';
+$wb['virtualhost_port_txt'] = 'Portas http';
+$wb['error_port_syntax'] = 'Caracteres inválidos no campo -Portas http-, insira somente números separados por vírgula. Exemplo: 80,443';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_ip_list.lng b/interface/web/admin/lib/lang/br_server_ip_list.lng
index 47be46d5af..c7b22097bf 100644
--- a/interface/web/admin/lib/lang/br_server_ip_list.lng
+++ b/interface/web/admin/lib/lang/br_server_ip_list.lng
@@ -2,9 +2,9 @@
 $wb['list_head_txt'] = 'Endereço IP';
 $wb['server_id_txt'] = 'Servidor';
 $wb['ip_address_txt'] = 'Endereço IP';
-$wb['add_new_record_txt'] = 'Adicionar novo Endereço IP';
-$wb['client_id_txt'] = 'Client';
-$wb['virtualhost_txt'] = 'HTTP Vhost';
-$wb['virtualhost_port_txt'] = 'HTTP Ports';
-$wb['ip_type_txt'] = 'Type';
+$wb['add_new_record_txt'] = 'Adicionar novo endereço IP';
+$wb['client_id_txt'] = 'Cliente';
+$wb['virtualhost_txt'] = 'Vhost http';
+$wb['virtualhost_port_txt'] = 'Portas http';
+$wb['ip_type_txt'] = 'Tipo';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_ip_map.lng b/interface/web/admin/lib/lang/br_server_ip_map.lng
index 68b196fb23..3e83fa4ca7 100644
--- a/interface/web/admin/lib/lang/br_server_ip_map.lng
+++ b/interface/web/admin/lib/lang/br_server_ip_map.lng
@@ -1,12 +1,12 @@
 <?php
-$wb['server_id_txt'] = 'Rewrite on Server';
-$wb['source_txt'] = 'Source IP';
-$wb['destination_txt'] = 'Destination IP';
-$wb['active_txt'] = 'Active';
-$wb['ip_error_wrong'] = 'The Destination IP address is invalid';
-$wb['destination_ip_empty'] = 'The Destination IP is empty.';
-$wb['source_ip_empty'] = 'The Source IP is empty.';
-$wb['server_empty_error'] = 'The Server is empty.';
-$wb['duplicate_mapping_error'] = 'Mapping already exists.';
-$wb['ip_mapping_error'] = 'Source IP can not be an IP of the Rewrite-Server';
+$wb['server_id_txt'] = 'Servidor';
+$wb['source_txt'] = 'Endereço IP de origem';
+$wb['destination_txt'] = 'Endereço IP de destino';
+$wb['active_txt'] = 'Ativo';
+$wb['ip_error_wrong'] = 'Endereço IP inválido.';
+$wb['destination_ip_empty'] = 'Endereço IP de destino em branco.';
+$wb['source_ip_empty'] = 'Endereço IP de origem em branco.';
+$wb['server_empty_error'] = 'Servidor em branco.';
+$wb['duplicate_mapping_error'] = 'Mapeamento já existe.';
+$wb['ip_mapping_error'] = 'Endereço IP de origem não pode ser um endereço IP do servidor.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_ip_map_list.lng b/interface/web/admin/lib/lang/br_server_ip_map_list.lng
index 1fedc10b2e..aa0e7d09ae 100644
--- a/interface/web/admin/lib/lang/br_server_ip_map_list.lng
+++ b/interface/web/admin/lib/lang/br_server_ip_map_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'IP Mappings';
-$wb['server_id_txt'] = 'Server';
-$wb['source_ip_txt'] = 'Source IP';
-$wb['destination_ip_txt'] = 'Destination IP';
-$wb['active_txt'] = 'Active';
+$wb['list_head_txt'] = 'Mapeamento IP';
+$wb['server_id_txt'] = 'Servidor';
+$wb['source_ip_txt'] = 'IP de origem';
+$wb['destination_ip_txt'] = 'IP de destino';
+$wb['active_txt'] = 'Ativo';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_list.lng b/interface/web/admin/lib/lang/br_server_list.lng
index c4fd078aa6..e138928fdc 100644
--- a/interface/web/admin/lib/lang/br_server_list.lng
+++ b/interface/web/admin/lib/lang/br_server_list.lng
@@ -1,13 +1,13 @@
 <?php
 $wb['list_head_txt'] = 'Servidor';
 $wb['server_name_txt'] = 'Nome';
-$wb['mail_server_txt'] = 'Mail';
-$wb['web_server_txt'] = 'Web';
+$wb['mail_server_txt'] = 'e-Mails';
+$wb['web_server_txt'] = 'Sites';
 $wb['dns_server_txt'] = 'DNS';
-$wb['file_server_txt'] = 'Arquivo';
-$wb['db_server_txt'] = 'Banco de Dados';
+$wb['file_server_txt'] = 'Arquivos';
+$wb['db_server_txt'] = 'Banco de dados';
 $wb['vserver_server_txt'] = 'VServer';
-$wb['add_new_record_txt'] = 'Adicionar novo Servidor';
+$wb['add_new_record_txt'] = 'Adicionar novo servidor';
 $wb['proxy_server_txt'] = 'Proxy';
 $wb['firewall_server_txt'] = 'Firewall';
 $wb['xmpp_server_txt'] = 'XMPP';
diff --git a/interface/web/admin/lib/lang/br_server_php.lng b/interface/web/admin/lib/lang/br_server_php.lng
index addbfa4935..0ce567dfbf 100644
--- a/interface/web/admin/lib/lang/br_server_php.lng
+++ b/interface/web/admin/lib/lang/br_server_php.lng
@@ -1,16 +1,16 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['client_id_txt'] = 'Client';
-$wb['name_txt'] = 'PHP Name';
-$wb['Name'] = 'Name';
-$wb['FastCGI Settings'] = 'FastCGI Settings';
-$wb['PHP-FPM Settings'] = 'PHP-FPM Settings';
-$wb['Additional PHP Versions'] = 'Additional PHP Versions';
-$wb['Form to edit additional PHP versions'] = 'Form to edit additional PHP versions';
-$wb['server_php_name_error_empty'] = 'The Name field must not be empty.';
-$wb['php_fastcgi_binary_txt'] = 'Path to the PHP FastCGI binary';
-$wb['php_fastcgi_ini_dir_txt'] = 'Path to the php.ini directory';
-$wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script';
-$wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory';
-$wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory';
+$wb['server_id_txt'] = 'Servidor';
+$wb['client_id_txt'] = 'Cliente';
+$wb['name_txt'] = 'Nome do php';
+$wb['Name'] = 'Nome';
+$wb['FastCGI Settings'] = 'Configurações FastCGI';
+$wb['PHP-FPM Settings'] = 'Configurações PHP-FPM';
+$wb['Additional PHP Versions'] = 'Versões adicionais do php';
+$wb['Form to edit additional PHP versions'] = 'Formulário de edição de versões adicionais do php';
+$wb['server_php_name_error_empty'] = 'Nome em branco.';
+$wb['php_fastcgi_binary_txt'] = 'Caminho do binário FastCGI';
+$wb['php_fastcgi_ini_dir_txt'] = 'Caminho do diretório do php.ini';
+$wb['php_fpm_init_script_txt'] = 'Caminho do script de inicialização do PHP-FPM';
+$wb['php_fpm_ini_dir_txt'] = 'Caminho do diretório do php.ini';
+$wb['php_fpm_pool_dir_txt'] = 'Caminho do diretório de faixas (pool) do PHP-FPM';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_php_list.lng b/interface/web/admin/lib/lang/br_server_php_list.lng
index b402fd1ed1..31a2b13eb8 100644
--- a/interface/web/admin/lib/lang/br_server_php_list.lng
+++ b/interface/web/admin/lib/lang/br_server_php_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Additional PHP Versions';
-$wb['server_id_txt'] = 'Server';
-$wb['add_new_record_txt'] = 'Add new PHP version';
-$wb['client_id_txt'] = 'Client';
-$wb['name_txt'] = 'PHP Name';
+$wb['list_head_txt'] = 'Versões adicionais do php';
+$wb['server_id_txt'] = 'Servidor';
+$wb['add_new_record_txt'] = 'Adicionar nova versão do php';
+$wb['client_id_txt'] = 'Cliente';
+$wb['name_txt'] = 'Nome da versão do php';
 ?>
diff --git a/interface/web/admin/lib/lang/br_software_package.lng b/interface/web/admin/lib/lang/br_software_package.lng
index faffe38217..94ccc930de 100644
--- a/interface/web/admin/lib/lang/br_software_package.lng
+++ b/interface/web/admin/lib/lang/br_software_package.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['package_title_txt'] = 'Package Title';
-$wb['package_key_txt'] = 'Package Key';
-$wb['Software Package'] = 'Software Package';
-$wb['Modify software package details'] = 'Modify software package details';
+$wb['package_title_txt'] = 'Título do pacote';
+$wb['package_key_txt'] = 'Chave do pacote';
+$wb['Software Package'] = 'Pacote de software';
+$wb['Modify software package details'] = 'Alterar detalhes do pacote de software';
 ?>
diff --git a/interface/web/admin/lib/lang/br_software_package_install.lng b/interface/web/admin/lib/lang/br_software_package_install.lng
index 5c8b756434..0fcccf939e 100644
--- a/interface/web/admin/lib/lang/br_software_package_install.lng
+++ b/interface/web/admin/lib/lang/br_software_package_install.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['head_txt'] = 'Install software package';
-$wb['install_key_txt'] = 'Enter install key';
-$wb['btn_save_txt'] = 'Start Installation';
-$wb['btn_cancel_txt'] = 'Cancel';
+$wb['head_txt'] = 'Instalar pacote de software';
+$wb['install_key_txt'] = 'Insira a chave de instalação';
+$wb['btn_save_txt'] = 'Iniciar instalação';
+$wb['btn_cancel_txt'] = 'Cancelar';
 ?>
diff --git a/interface/web/admin/lib/lang/br_software_package_list.lng b/interface/web/admin/lib/lang/br_software_package_list.lng
index fd4f41e6d0..093f52bca3 100644
--- a/interface/web/admin/lib/lang/br_software_package_list.lng
+++ b/interface/web/admin/lib/lang/br_software_package_list.lng
@@ -1,13 +1,13 @@
 <?php
-$wb['list_head_txt'] = 'Pacotes de Software';
-$wb['installed_txt'] = 'Status';
+$wb['list_head_txt'] = 'Pacotes de software';
+$wb['installed_txt'] = 'Estado';
 $wb['package_title_txt'] = 'Pacote';
 $wb['package_description_txt'] = 'Descrição';
 $wb['action_txt'] = 'Acão';
-$wb['toolsarea_head_txt'] = 'Packages';
-$wb['repoupdate_txt'] = 'Update package list';
-$wb['package_id_txt'] = 'local App-ID';
-$wb['no_packages_txt'] = 'No packages available';
-$wb['edit_txt'] = 'Edit';
-$wb['delete_txt'] = 'Delete';
+$wb['toolsarea_head_txt'] = 'Pacotes';
+$wb['repoupdate_txt'] = 'Atualizar lista de pacotes';
+$wb['package_id_txt'] = 'ID local do app';
+$wb['no_packages_txt'] = 'Nenhum pacote disponível';
+$wb['edit_txt'] = 'Editar';
+$wb['delete_txt'] = 'Remover';
 ?>
diff --git a/interface/web/admin/lib/lang/br_software_repo.lng b/interface/web/admin/lib/lang/br_software_repo.lng
index dc89937425..b535850138 100644
--- a/interface/web/admin/lib/lang/br_software_repo.lng
+++ b/interface/web/admin/lib/lang/br_software_repo.lng
@@ -4,5 +4,5 @@ $wb['repo_url_txt'] = 'URL';
 $wb['repo_username_txt'] = 'Usuário (opcional)';
 $wb['repo_password_txt'] = 'Senha (opcional)';
 $wb['active_txt'] = 'Ativo';
-$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
+$wb['Software Repository which may contain addons or updates'] = 'Repositório de softwares podem conter complementos ou atualizações';
 ?>
diff --git a/interface/web/admin/lib/lang/br_software_update_list.lng b/interface/web/admin/lib/lang/br_software_update_list.lng
index 3bb6d6ee83..0592ca7f26 100644
--- a/interface/web/admin/lib/lang/br_software_update_list.lng
+++ b/interface/web/admin/lib/lang/br_software_update_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Atualizações de Programas';
+$wb['list_head_txt'] = 'Atualizações de programas';
 $wb['server_select_txt'] = 'Selecione o servidor';
 $wb['installed_txt'] = 'Ações';
 $wb['update_title_txt'] = 'Atualizar';
 $wb['version_txt'] = 'Versão';
 $wb['action_txt'] = 'Ação';
-$wb['no_updates_txt'] = 'No updates available';
+$wb['no_updates_txt'] = 'Nenhuma atualização disponível';
 ?>
diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng
index 556f696ccb..ec12c14ef4 100644
--- a/interface/web/admin/lib/lang/br_system_config.lng
+++ b/interface/web/admin/lib/lang/br_system_config.lng
@@ -1,84 +1,84 @@
 <?php
 $wb['system_config_desc_txt'] = '';
 $wb['warning'] = 'Edite estes valores com cuidado! Não remova os prefixos em um sistema com mais de um cliente!!';
-$wb['dbname_prefix_txt'] = 'Prefixo Nome do Banco de Dados';
-$wb['dbuser_prefix_txt'] = 'Prefixo Usuário do Banco de Dados';
-$wb['shelluser_prefix_txt'] = 'Prefixo Usuário de Shell';
-$wb['ftpuser_prefix_txt'] = 'Prefixo Usuário FTP';
-$wb['dbname_prefix_error_regex'] = 'Caractere não permitido para o prefixo do nome do Banco de Dados!';
-$wb['dbuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do Usuário do Banco de Dados!';
-$wb['ftpuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do Usuário FTP!';
-$wb['shelluser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do Usuário Shell!';
-$wb['dblist_phpmyadmin_link_txt'] = 'Link para phpmyadmin';
+$wb['dbname_prefix_txt'] = 'Prefixo do banco de dados';
+$wb['dbuser_prefix_txt'] = 'Prefixo do usuário do banco de dados';
+$wb['shelluser_prefix_txt'] = 'Prefixo do usuário shell';
+$wb['ftpuser_prefix_txt'] = 'Prefixo do usuário ftp';
+$wb['dbname_prefix_error_regex'] = 'Caractere não permitido para o prefixo do banco de dados!';
+$wb['dbuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do usuário do banco de dados!';
+$wb['ftpuser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do usuário ftp!';
+$wb['shelluser_prefix_error_regex'] = 'Caractere não permitido para o prefixo do usuário shell!';
+$wb['dblist_phpmyadmin_link_txt'] = 'Link para o phpmyadmin';
 $wb['mailboxlist_webmail_link_txt'] = 'Link para o webmail';
-$wb['webmail_url_txt'] = 'URL do Webmail';
-$wb['phpmyadmin_url_txt'] = 'URL do PHPMyAdmin';
-$wb['use_domain_module_txt'] = 'Use o módulo domínios para adcionar novos domínios';
-$wb['use_domain_module_hint'] = 'Se você usar este módulo, os clientes podem selecionar apenas um dos domínios do administrador cria para eles. Eles não podem editar o campo domínio livremente.Você deve relogar-se depois de alterar esse valor, para que as mudanças sejam visíveis.';
+$wb['webmail_url_txt'] = 'URL do webmail';
+$wb['phpmyadmin_url_txt'] = 'URL do phpmyadmin';
+$wb['use_domain_module_txt'] = 'Use o módulo domínios para adicionar novos domínios';
+$wb['use_domain_module_hint'] = 'Se você usar este módulo, os clientes podem selecionar apenas um dos domínios que o administrador cria para eles. Eles não podem editar o campo domínio livremente. Você deve sair e acessar novamente depois de alterar este valor para que as mudanças sejam visíveis.';
 $wb['new_domain_txt'] = 'HTML para criar um novo domínio';
-$wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)';
-$wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)';
-$wb['dashboard_atom_url_client_txt'] = 'Dashboard atom feed URL (client)';
-$wb['webdavuser_prefix_txt'] = 'Prefixo do usuário Webdav';
-$wb['webdavuser_prefix_error_regex'] = 'Caractere não permitido no prefixo de usuário webdav.';
-$wb['webftp_url_txt'] = 'URL do WebFTP';
-$wb['mailmailinglist_link_txt'] = 'Link to mailing list';
-$wb['mailmailinglist_url_txt'] = 'Mailing list URL';
+$wb['dashboard_atom_url_admin_txt'] = 'URL do Dashboard atom (admin)';
+$wb['dashboard_atom_url_reseller_txt'] = 'URL do Dashboard atom (revendas)';
+$wb['dashboard_atom_url_client_txt'] = 'URL do Dashboard atom  (clientes)';
+$wb['webdavuser_prefix_txt'] = 'Prefixo do usuário webdav';
+$wb['webdavuser_prefix_error_regex'] = 'Caractere não permitido no prefixo do usuário webdav.';
+$wb['webftp_url_txt'] = 'URL do webFTP';
+$wb['mailmailinglist_link_txt'] = 'Link para lista de e-mails';
+$wb['mailmailinglist_url_txt'] = 'URL para lista de e-mails';
 $wb['admin_mail_txt'] = 'E-mail do administrador';
 $wb['admin_name_txt'] = 'Nome do administrador';
-$wb['enable_custom_login_txt'] = 'Allow custom login name';
-$wb['monitor_key_txt'] = 'Monitor keyword';
-$wb['maintenance_mode_txt'] = 'Maintenance Mode';
-$wb['smtp_enabled_txt'] = 'Use SMTP to send system mails';
-$wb['smtp_host_txt'] = 'SMTP host';
-$wb['smtp_port_txt'] = 'SMTP port';
-$wb['smtp_user_txt'] = 'SMTP user';
-$wb['smtp_pass_txt'] = 'SMTP password';
-$wb['smtp_crypt_txt'] = 'Use SSL/TLS encrypted connection for SMTP';
-$wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail address if you want to use smtp mail sending.';
-$wb['tab_change_discard_txt'] = 'Discard changes on tab change';
-$wb['tab_change_warning_txt'] = 'Tab change warning';
-$wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.';
-$wb['vhost_subdomains_txt'] = 'Create subdomains as web site';
-$wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!';
-$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site';
-$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!';
-$wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL';
-$wb['use_combobox_txt'] = 'Use jQuery UI Combobox';
-$wb['use_loadindicator_txt'] = 'Use Load Indicator';
-$wb['f5_to_reload_js_txt'] = 'If you change this, you might have to press F5 to make the browser reload JavaScript libraries or empty your browser cache.';
-$wb['client_username_web_check_disabled_txt'] = 'Disable client username check for the word \'web\'.';
-$wb['backups_include_into_web_quota_txt'] = 'Include backup files into web quota.';
-$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
-$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
-$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
-$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
-$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
-$wb['webmail_url_note_txt'] = 'Placeholder:';
-$wb['available_dashlets_note_txt'] = 'Available Dashlets:';
-$wb['admin_dashlets_left_txt'] = 'Left Admin Dashlets';
-$wb['admin_dashlets_right_txt'] = 'Right Admin Dashlets';
-$wb['reseller_dashlets_left_txt'] = 'Left Reseller Dashlets';
-$wb['reseller_dashlets_right_txt'] = 'Right Reseller Dashlets';
-$wb['client_dashlets_left_txt'] = 'Left Client Dashlets';
-$wb['client_dashlets_right_txt'] = 'Right Client Dashlets';
-$wb['customer_no_template_txt'] = 'Customer No. template';
-$wb['customer_no_template_error_regex_txt'] = 'The customer No. template contains invalid characters';
-$wb['customer_no_start_txt'] = 'Customer No. start value';
-$wb['customer_no_counter_txt'] = 'Customer No. counter';
-$wb['session_timeout_txt'] = 'Session timeout (minutes)';
-$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"';
+$wb['enable_custom_login_txt'] = 'Permite nome de acesso personalizado';
+$wb['monitor_key_txt'] = 'Monitorar palavra reservada';
+$wb['maintenance_mode_txt'] = 'Modo manutenção';
+$wb['smtp_enabled_txt'] = 'Usar SMPT para enviar e-mails do sistema';
+$wb['smtp_host_txt'] = 'Hospedeiro SMTP';
+$wb['smtp_port_txt'] = 'Porta SMTP';
+$wb['smtp_user_txt'] = 'Usuário SMTP';
+$wb['smtp_pass_txt'] = 'Senha SMTP';
+$wb['smtp_crypt_txt'] = 'Usar criptografia SSL/TLS para conexões SMTP';
+$wb['smtp_missing_admin_mail_txt'] = 'Por favor, insira um nome e e-mail do administrador se você usar smtp para envio dos e-mails do sistema.';
+$wb['tab_change_discard_txt'] = 'Descartar modificações nesta aba';
+$wb['tab_change_warning_txt'] = 'Alerta de modificações';
+$wb['tab_change_warning_note_txt'] = 'Exibir alertas de modificações nesta aba se qualquer dados for modificado pelo usuário.';
+$wb['vhost_subdomains_txt'] = 'Adicionar subdomínios vhost como site';
+$wb['vhost_subdomains_note_txt'] = 'Você não pode desabilitar esta configuração enquanto existirem subdomínios vhost no sistema!';
+$wb['vhost_aliasdomains_txt'] = 'Adicionar apelidos de domínios vhost como site';
+$wb['vhost_aliasdomains_note_txt'] = 'Você nao pode desabilitar esta configuração enquanto existirem apelidos de domínio vhost no sistema!';
+$wb['phpmyadmin_url_error_regex'] = 'URL do phpmyadmin inválida.';
+$wb['use_combobox_txt'] = 'Usar jQuery UI Combobox';
+$wb['use_loadindicator_txt'] = 'Usar indicador de carga';
+$wb['f5_to_reload_js_txt'] = 'Se você modificar esta configuração, talvez será necessário pressionar F5 no seu navegador para recarregar as bibliotecas do JavaScript ou esvaziar o cache.';
+$wb['client_username_web_check_disabled_txt'] = 'Desabilitar verificação da palavra reservada \'web\' para nome do usuário (não recomendado!).';
+$wb['backups_include_into_web_quota_txt'] = 'Incluir arquivos de backup na cota para site.';
+$wb['mailbox_show_autoresponder_tab_txt'] = 'Exir aba autoresposta nos detalhes da conta de e-mail';
+$wb['mailbox_show_mail_filter_tab_txt'] = 'Exibir aba filtros de e-mail nos detalhes da conta de e-mail';
+$wb['mailbox_show_custom_rules_tab_txt'] = 'Exibir aba filtros de e-mail personalizados nos detalhes da conta de e-mail';
+$wb['webmail_url_error_regex'] = 'URL do webmail inválida';
+$wb['phpmyadmin_url_note_txt'] = 'Área reservada:';
+$wb['webmail_url_note_txt'] = 'Área reservada:';
+$wb['available_dashlets_note_txt'] = 'Dashlets disponíveis:';
+$wb['admin_dashlets_left_txt'] = 'Restrições de dashlets para administradores';
+$wb['admin_dashlets_right_txt'] = 'Permissões de dashlets para administradores';
+$wb['reseller_dashlets_left_txt'] = 'Restrições de dashlets para revendas';
+$wb['reseller_dashlets_right_txt'] = 'Permissões de dashlets para revendas';
+$wb['client_dashlets_left_txt'] = 'Restrições de dashlets para clientes';
+$wb['client_dashlets_right_txt'] = 'Permissões de dashlets para clientes';
+$wb['customer_no_template_txt'] = 'No. do gabarito do cliente';
+$wb['customer_no_template_error_regex_txt'] = 'O número do gabarito do cliente contém caracteres inválidos.';
+$wb['customer_no_start_txt'] = 'Valor inicial do código do cliente';
+$wb['customer_no_counter_txt'] = 'Contador de código do cliente';
+$wb['session_timeout_txt'] = 'Duração da sessão (minutos)';
+$wb['session_allow_endless_txt'] = 'Habilitar \\"manter-me conectado\\"';
+$wb['min_password_length_txt'] = 'Comprimento mínimo da senha';
+$wb['min_password_strength_txt'] = 'Dificuldade mínima da senha';
+$wb['company_name_txt'] = 'Nome da empresa no título da página';
+$wb['reseller_can_use_options_txt'] = 'Revendas podem usar o menu sites';
+$wb['custom_login_text_txt'] = 'Texto personalizado para página de acesso';
+$wb['custom_login_link_txt'] = 'Link personalizado para página de acesso';
+$wb['login_link_error_regex'] = 'Link personalizado para acesso inválido';
+$wb['default_mailserver_txt'] = 'Servidor de e-mails padrão';
+$wb['default_webserver_txt'] = 'Servidor de páginas padrão';
+$wb['default_dnsserver_txt'] = 'Servidor dns padrão';
+$wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão';
+$wb['default_dbserver_txt'] = 'Seridor de banco de dados padrão';
 $wb['No'] = 'No';
-$wb['min_password_length_txt'] = 'Minimum password length';
-$wb['min_password_strength_txt'] = 'Minimum password strength';
-$wb['company_name_txt'] = 'Company Name for the page title';
-$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites';
-$wb['custom_login_text_txt'] = 'Custom Text on Login-Page';
-$wb['custom_login_link_txt'] = 'Custom Link on Login-Page';
-$wb['login_link_error_regex'] = 'Invalid Link for Custom Login';
-$wb['default_mailserver_txt'] = 'Default Mailserver';
-$wb['default_webserver_txt'] = 'Default Webserver';
-$wb['default_dnsserver_txt'] = 'Default DNS Server';
-$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
-$wb['default_dbserver_txt'] = 'Default Database Server';
 ?>
diff --git a/interface/web/admin/lib/lang/br_tpl_default_admin.lng b/interface/web/admin/lib/lang/br_tpl_default_admin.lng
index eee3af5fe4..e29d77d53a 100644
--- a/interface/web/admin/lib/lang/br_tpl_default_admin.lng
+++ b/interface/web/admin/lib/lang/br_tpl_default_admin.lng
@@ -1,18 +1,18 @@
 <?php
-$wb['tpl_default_admin_head_txt'] = 'Global Default-Theme Settings';
+$wb['tpl_default_admin_head_txt'] = 'Configurações de tema global padrão';
 $wb['tpl_default_admin_desc_txt'] = '';
-$wb['server_id_txt'] = 'Server';
-$wb['client_id_txt'] = 'Client';
-$wb['name_txt'] = 'PHP Name';
-$wb['Name'] = 'Name';
-$wb['FastCGI Settings'] = 'FastCGI Settings';
-$wb['PHP-FPM Settings'] = 'PHP-FPM Settings';
-$wb['Additional PHP Versions'] = 'Additional PHP Versions';
-$wb['Form to edit additional PHP versions'] = 'Form to edit additional PHP versions';
-$wb['server_php_name_error_empty'] = 'The Name field must not be empty.';
-$wb['php_fastcgi_binary_txt'] = 'Path to the PHP FastCGI binary';
-$wb['php_fastcgi_ini_dir_txt'] = 'Path to the php.ini directory';
-$wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script';
-$wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory';
-$wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory';
+$wb['server_id_txt'] = 'Servidor';
+$wb['client_id_txt'] = 'Cliente';
+$wb['name_txt'] = 'Nome do PHP';
+$wb['Name'] = 'Nome';
+$wb['FastCGI Settings'] = 'Configurações do FastCGI';
+$wb['PHP-FPM Settings'] = 'Configurações do PHP-FPM';
+$wb['Additional PHP Versions'] = 'Versões adicionais do php';
+$wb['Form to edit additional PHP versions'] = 'Formulário de edição de versões adicionais do php';
+$wb['server_php_name_error_empty'] = 'Nome em branco.';
+$wb['php_fastcgi_binary_txt'] = 'Caminho do binário FastCGI';
+$wb['php_fastcgi_ini_dir_txt'] = 'Caminho do diretório do php.ini';
+$wb['php_fpm_init_script_txt'] = 'Caminho do script de inicialização PHP-FPM';
+$wb['php_fpm_ini_dir_txt'] = 'Caminho do diretório php.ini';
+$wb['php_fpm_pool_dir_txt'] = 'Caminho do diretório de faixas (pool) do PHP-FPM';
 ?>
diff --git a/interface/web/admin/lib/lang/br_users.lng b/interface/web/admin/lib/lang/br_users.lng
index 63e47b2915..b1be5f6da7 100644
--- a/interface/web/admin/lib/lang/br_users.lng
+++ b/interface/web/admin/lib/lang/br_users.lng
@@ -1,10 +1,10 @@
 <?php
 $wb['username_txt'] = 'Usuário';
-$wb['username_err'] = 'O Nome do Usuário é muito longo ou contém caracteres inválidos!';
-$wb['username_empty'] = 'Por favor, entre com o nome do Usuário.';
-$wb['username_unique'] = 'Já existe um Usuário com este nome!';
+$wb['username_err'] = 'O nome do usuário é muito longo ou contém caracteres inválidos!';
+$wb['username_empty'] = 'Por favor, entre com o nome do usuário.';
+$wb['username_unique'] = 'Já existe um usuário com este nome!';
 $wb['passwort_txt'] = 'Senha';
-$wb['password_strength_txt'] = 'Segurança da Senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
 $wb['modules_txt'] = 'Módulos';
 $wb['startmodule_txt'] = 'Módulo Inicial';
 $wb['app_theme_txt'] = 'Tema';
@@ -18,18 +18,18 @@ $wb['strasse_txt'] = 'Endereço';
 $wb['ort_txt'] = 'Cidade';
 $wb['plz_txt'] = 'CEP';
 $wb['land_txt'] = 'País';
-$wb['email_txt'] = 'E-mail';
+$wb['email_txt'] = 'e-mail';
 $wb['url_txt'] = 'Site';
 $wb['telefon_txt'] = 'Telefone';
 $wb['fax_txt'] = 'Fax';
 $wb['groups_txt'] = 'Grupos';
 $wb['default_group_txt'] = 'Grupo Padrão';
 $wb['startmodule_err'] = 'O módulo inicial não está contido nos módulos.';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"';
-$wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin';
-$wb['lost_password_function_txt'] = 'Forgot password function is available';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['username_error_collision'] = 'O nome do usuário não pode conter as palavras reservadas -web- ou -web- seguidas por um número.';
+$wb['client_not_admin_err'] = 'Um usuário definido como cliente não pode ser configurado com o tipo: admin (administrador).';
+$wb['lost_password_function_txt'] = 'Função reconfigurar senha perdida disponível';
 ?>
diff --git a/interface/web/admin/lib/lang/br_users_list.lng b/interface/web/admin/lib/lang/br_users_list.lng
index 40a3062aed..3422f78355 100644
--- a/interface/web/admin/lib/lang/br_users_list.lng
+++ b/interface/web/admin/lib/lang/br_users_list.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['list_head_txt'] = 'Usuários';
-$wb['username_txt'] = 'Nome de Usuário';
-$wb['client_id_txt'] = 'Client ID';
-$wb['active_txt'] = 'Active';
-$wb['add_new_record_txt'] = 'Adcionar novo usuário';
-$wb['warning_txt'] = '<b>AVISO:</b> Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de cliente ou revendedor. Modificar ou alterar usuários e grupos aqui pode ocasionar perda de dados!';
-$wb['groups_txt'] = 'Groups';
+$wb['username_txt'] = 'Nome do usuário';
+$wb['client_id_txt'] = 'ID do cliente';
+$wb['active_txt'] = 'Ativo';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
+$wb['warning_txt'] = '<b>AVISO:</b> Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de clientes ou revendas. Modificar ou alterar usuários e grupos nesta aba pode ocasionar perda de dados!';
+$wb['groups_txt'] = 'Grupos';
 ?>
diff --git a/interface/web/client/lib/lang/br.lng b/interface/web/client/lib/lang/br.lng
index bb71c28a8c..025e0d1fd2 100644
--- a/interface/web/client/lib/lang/br.lng
+++ b/interface/web/client/lib/lang/br.lng
@@ -2,27 +2,27 @@
 $wb['Client'] = 'Cliente';
 $wb['Address'] = 'Endereço';
 $wb['Limits'] = 'Limites';
-$wb['Add Client'] = 'Adcionar Cliente';
-$wb['Edit Client'] = 'Editar Cliente';
+$wb['Add Client'] = 'Adicionar cliente';
+$wb['Edit Client'] = 'Editar cliente';
 $wb['Clients'] = 'Clientes';
-$wb['Templates'] = 'Templates';
-$wb['Limit-Templates'] = 'Limit-Templates';
-$wb['Add Reseller'] = 'Adcionar Revendedor';
-$wb['Edit Reseller'] = 'Editar Revendedor';
-$wb['Resellers'] = 'Revendedores';
-$wb['error_has_clients'] = 'Este revendedor possui clientes. Você deve remover os clientes primeiro.';
-$wb['add_additional_template_txt'] = 'Add additional template';
-$wb['delete_additional_template_txt'] = 'Delete additional template';
-$wb['Messaging'] = 'Messaging';
-$wb['Send email'] = 'Send Email';
-$wb['Edit Client Circle'] = 'Edit Client Circle';
-$wb['Domains'] = 'Domains';
-$wb['domain_txt'] = 'Domain';
-$wb['client_txt'] = 'Client';
-$wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain';
-$wb['error_domain_in webuse'] = 'This domain cannot be deleted, because it is in use as web-domain';
-$wb['error_client_can_not_add_domain'] = 'You cannot add a new domain';
-$wb['error_client_group_id_empty'] = 'You have to select a customer<br>';
-$wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone';
-$wb['error_domain_in dnsslaveuse'] = 'This domain cannot be deleted, because it is in use as secondary dns zone';
+$wb['Templates'] = 'Gabaritos';
+$wb['Limit-Templates'] = 'Gabaritos de limites';
+$wb['Add Reseller'] = 'Adicionar revenda';
+$wb['Edit Reseller'] = 'Editar revenda';
+$wb['Resellers'] = 'Revendas';
+$wb['error_has_clients'] = 'Esta revenda possui clientes. Você deve remover os clientes primeiro.';
+$wb['add_additional_template_txt'] = 'Adicionar gabarito personalizado';
+$wb['delete_additional_template_txt'] = 'Remover gabarito personalizado';
+$wb['Messaging'] = 'Círculos';
+$wb['Send email'] = 'Enviar e-mail';
+$wb['Edit Client Circle'] = 'Editar círculo';
+$wb['Domains'] = 'Domínios';
+$wb['domain_txt'] = 'Domínio';
+$wb['client_txt'] = 'Cliente';
+$wb['error_domain_in mailuse'] = 'Este domínio não pode ser removido porque está em uso como um domínio de e-mail.';
+$wb['error_domain_in webuse'] = 'Este domínio não pode ser removido porque está em uso como um domínio de site.';
+$wb['error_client_can_not_add_domain'] = 'Você não pode adicionar um novo domínio.';
+$wb['error_client_group_id_empty'] = 'Você deve selecionar um cliente<br>';
+$wb['error_domain_in dnsuse'] = 'Este domínio não pode ser removido porque está em uso como uma zona dns.';
+$wb['error_domain_in dnsslaveuse'] = 'Este domínio não pode ser removido porque está em uso como uma zona dns secundária.';
 ?>
diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng
index 4c8de8942d..a4e1e88ddf 100644
--- a/interface/web/client/lib/lang/br_client.lng
+++ b/interface/web/client/lib/lang/br_client.lng
@@ -1,23 +1,23 @@
 <?php
-$wb['limit_maildomain_txt'] = 'Número máximo de domínios de correio';
-$wb['limit_mailbox_txt'] = 'Número máximo de caixas de correio';
-$wb['limit_mailalias_txt'] = 'Número máximo de aliases de correio';
-$wb['limit_mailforward_txt'] = 'Número máximo de redirecionamento de correio';
-$wb['limit_mailcatchall_txt'] = 'Número máximo de catchall de correio';
-$wb['limit_mailrouting_txt'] = 'Número máximo de rotas de correio';
-$wb['limit_mailfilter_txt'] = 'Número máximo de filtros de correio';
-$wb['limit_fetchmail_txt'] = 'Número máximo de fetchmail de correio';
-$wb['limit_mailquota_txt'] = 'Quota de Correio';
-$wb['limit_spamfilter_wblist_txt'] = 'Número máximo de filtros spam lista branca / negra';
-$wb['limit_spamfilter_user_txt'] = 'Número máximo de usuários de filtros spam';
-$wb['limit_spamfilter_policy_txt'] = 'Número máximo de políticas de filtros spam';
-$wb['default_mailserver_txt'] = 'Servidor de Correio Padrão';
+$wb['limit_maildomain_txt'] = 'Limite de domínios de e-mail';
+$wb['limit_mailbox_txt'] = 'Limite de caixas postais';
+$wb['limit_mailalias_txt'] = 'Limite de apelidos de domínio de e-mail';
+$wb['limit_mailforward_txt'] = 'Limite de redirecionamentos de e-mail';
+$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo';
+$wb['limit_mailrouting_txt'] = 'Limite de transportes de e-mail';
+$wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mail';
+$wb['limit_fetchmail_txt'] = 'Limite de contas de busca';
+$wb['limit_mailquota_txt'] = 'Cota de e-mail';
+$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros antispam lista branca/negra';
+$wb['limit_spamfilter_user_txt'] = 'Limite de usuários de filtros antispam';
+$wb['limit_spamfilter_policy_txt'] = 'Limite de políticas antispam';
+$wb['default_mailserver_txt'] = 'Servidor de e-mails padrão';
 $wb['company_name_txt'] = 'Empresa';
-$wb['contact_firstname_txt'] = 'Contact firstname';
+$wb['contact_firstname_txt'] = 'Contato';
 $wb['contact_name_txt'] = 'Contato';
-$wb['username_txt'] = 'Nome de Usuário';
+$wb['username_txt'] = 'Nome do usuário';
 $wb['password_txt'] = 'Senha';
-$wb['password_strength_txt'] = 'Segurança da senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
 $wb['language_txt'] = 'Idioma';
 $wb['usertheme_txt'] = 'Tema';
 $wb['street_txt'] = 'Rua';
@@ -28,7 +28,7 @@ $wb['country_txt'] = 'País';
 $wb['telephone_txt'] = 'Telefone';
 $wb['mobile_txt'] = 'Celular';
 $wb['fax_txt'] = 'Fax';
-$wb['email_txt'] = 'Correio Eletrônico';
+$wb['email_txt'] = 'e-mail';
 $wb['internet_txt'] = 'Internet';
 $wb['icq_txt'] = 'ICQ';
 $wb['notes_txt'] = 'Notas';
@@ -36,167 +36,167 @@ $wb['company_txt'] = 'Empresa';
 $wb['title_txt'] = 'Título';
 $wb['firstname_txt'] = 'Nome';
 $wb['surname_txt'] = 'Sobrenome';
-$wb['limit_domain_txt'] = 'limite_dominio';
-$wb['limit_subdomain_txt'] = 'limit_subdominio';
-$wb['limit_webquota_txt'] = 'limit_webquota';
-$wb['limit_database_txt'] = 'Número máximo de banco de dados';
-$wb['ip_address_txt'] = 'endereco_ip';
-$wb['limit_client_error_notint'] = 'O limite de um sub-cliente deve ser um número';
-$wb['firstname_error_empty'] = 'Nome está em branco.';
-$wb['contact_error_empty'] = 'Contato está em branco.';
-$wb['default_webserver_txt'] = 'Servidor Web Padrão';
-$wb['limit_web_domain_txt'] = 'Número máximo de domínios web';
-$wb['limit_web_aliasdomain_txt'] = 'Número máximo de domínios alias';
-$wb['limit_web_subdomain_txt'] = 'Número máximo de sub-domínios';
-$wb['limit_ftp_user_txt'] = 'Número máximo de usuários FTP';
-$wb['default_dnsserver_txt'] = 'Servidor de Nomes Padrão';
-$wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS';
-$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones';
-$wb['limit_dns_record_txt'] = 'Número máximo de registros DNS';
-$wb['limit_shell_user_txt'] = 'Número máximo de usuários de shell';
-$wb['limit_client_txt'] = 'Número máximo de clientes';
-$wb['username_error_empty'] = 'Nome do usuário está em branco';
-$wb['username_error_unique'] = 'O nome do usuário deve ser único';
-$wb['limit_maildomain_error_notint'] = 'O limite de caixas de correio no domínio deve ser um número.';
-$wb['limit_mailbox_error_notint'] = 'Limite da caixa de correio deve ser um número.';
-$wb['limit_mailalias_error_notint'] = 'Limite do aliase de correio deve ser um número.';
-$wb['limit_mailforward_error_notint'] = 'Limite de redirecionamento de correio deve ser um número';
-$wb['limit_mailcatchall_error_notint'] = 'Limite de catchall deve ser um número.';
-$wb['limit_mailrouting_error_notint'] = 'Limite de rotas de correio deve ser um número.';
-$wb['limit_mailfilter_error_notint'] = 'Limite de filtros de correio deve ser um número.';
-$wb['limit_mailfetchmail_error_notint'] = 'Limite de fetchmail deve ser um número.';
-$wb['limit_mailquota_error_notint'] = 'A quota de correio deve ser um número';
-$wb['limit_spamfilter_wblist_error_notint'] = 'O limite de filtros spam lista branca / negra deve ser um número.';
-$wb['limit_spamfilter_user_error_notint'] = 'O limite de filtros spam do usuário deve ser um número.';
-$wb['limit_spamfilter_policy_error_notint'] = 'O limite de políticas de filtros spam deve ser um número.';
-$wb['limit_web_domain_error_notint'] = 'O limite de sites deve ser um número.';
-$wb['limit_web_aliasdomain_error_notint'] = 'O limite de alias de domínios de sites deve ser um número.';
-$wb['limit_web_subdomain_error_notint'] = 'O limite de sub-domínios de sites deve ser um número';
-$wb['limit_ftp_user_error_notint'] = 'O limite de usuários de FTP deve ser um número.';
-$wb['limit_shell_user_error_notint'] = 'O limite de usuários de Shell deve ser um número.';
-$wb['limit_dns_zone_error_notint'] = 'O limite de registros de DNS deve ser um número';
-$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.';
-$wb['default_dbserver_txt'] = 'Servidor de Banco de Dados Padrão';
-$wb['limit_database_error_notint'] = 'O limite de banco de dados deve ser um número';
-$wb['username_error_regex'] = 'O nome de usuário contem caracteres inválidos.';
-$wb['template_master_txt'] = 'Gabarito Principal';
-$wb['template_additional_txt'] = 'Template Adcional';
-$wb['ssh_chroot_txt'] = 'Opções de SSH Chroot';
+$wb['limit_domain_txt'] = 'Limite de domínios';
+$wb['limit_subdomain_txt'] = 'Limite de subdomínios';
+$wb['limit_webquota_txt'] = 'Limite da cota de site';
+$wb['limit_database_txt'] = 'Limite de banco de dados';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['limit_client_error_notint'] = 'Limite de clientes deve ser um número';
+$wb['firstname_error_empty'] = 'Nome em branco.';
+$wb['contact_error_empty'] = 'Contato em branco.';
+$wb['default_webserver_txt'] = 'Servidor de páginas padrão';
+$wb['limit_web_domain_txt'] = 'Limite de de domínios de site';
+$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos de domínio';
+$wb['limit_web_subdomain_txt'] = 'Limite de subdomínios';
+$wb['limit_ftp_user_txt'] = 'Limite de usuários ftp';
+$wb['default_dnsserver_txt'] = 'Servidor dns padrão';
+$wb['limit_dns_zone_txt'] = 'Limite de zonas dns';
+$wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias';
+$wb['limit_dns_record_txt'] = 'Limite de registros dns';
+$wb['limit_shell_user_txt'] = 'Limite de usuários shell';
+$wb['limit_client_txt'] = 'Limite de clientes';
+$wb['username_error_empty'] = 'Nome do usuário em branco';
+$wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo';
+$wb['limit_maildomain_error_notint'] = 'Limite de contas de e-mail deve ser um número.';
+$wb['limit_mailbox_error_notint'] = 'Limite da contas de e-mail deve ser um número.';
+$wb['limit_mailalias_error_notint'] = 'Limite do apelidos de e-mail deve ser um número.';
+$wb['limit_mailforward_error_notint'] = 'Limite de redirecionamentos de e-mail deve ser um número';
+$wb['limit_mailcatchall_error_notint'] = 'Limite de contas cata tudo deve ser um número.';
+$wb['limit_mailrouting_error_notint'] = 'Limite de transportes de e-mail deve ser um número.';
+$wb['limit_mailfilter_error_notint'] = 'Limite de filtros de e-mail deve ser um número.';
+$wb['limit_mailfetchmail_error_notint'] = 'Limite de contas de busca deve ser um número.';
+$wb['limit_mailquota_error_notint'] = 'A cota de e-mail deve ser um número';
+$wb['limit_spamfilter_wblist_error_notint'] = 'Limite de filtros antispam lista branca/negra deve ser um número.';
+$wb['limit_spamfilter_user_error_notint'] = 'Limite de filtros antispam por usuário deve ser um número.';
+$wb['limit_spamfilter_policy_error_notint'] = 'Limite de políticas de filtros antispam deve ser um número.';
+$wb['limit_web_domain_error_notint'] = 'Limite de sites deve ser um número.';
+$wb['limit_web_aliasdomain_error_notint'] = 'Limite de apelidos de domínios deve ser um número.';
+$wb['limit_web_subdomain_error_notint'] = 'Limite de subdomínios deve ser um número';
+$wb['limit_ftp_user_error_notint'] = 'Limite de usuários ftp deve ser um número.';
+$wb['limit_shell_user_error_notint'] = 'Limite de usuários shell deve ser um número.';
+$wb['limit_dns_zone_error_notint'] = 'Limite de registros dns deve ser um número';
+$wb['limit_dns_slave_zone_error_notint'] = 'Limite de zonas dns secundárias deve ser um número.';
+$wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão';
+$wb['limit_database_error_notint'] = 'Limite de banco de dados deve ser um número';
+$wb['username_error_regex'] = 'O nome de usuário contém caracteres inválidos.';
+$wb['template_master_txt'] = 'Gabarito principal';
+$wb['template_additional_txt'] = 'Gabarito personalizado';
+$wb['ssh_chroot_txt'] = 'Opções do SSH Chroot';
 $wb['web_php_options_txt'] = 'Opções do PHP';
-$wb['limit_client_error'] = 'O número máximo de clientes foi atingido.';
-$wb['limit_cron_txt'] = 'Número máximo de tarefas no cron.';
-$wb['limit_cron_type_txt'] = 'Máximo de tipos de tarefas no cron (em chroot e url completas)';
+$wb['limit_client_error'] = 'O limite de clientes foi alcançado.';
+$wb['limit_cron_txt'] = 'Limite de tarefas no cron.';
+$wb['limit_cron_type_txt'] = 'Limite de tipos de tarefas no cron (em chroot e url completas)';
 $wb['limit_cron_frequency_txt'] = 'Intervalo mínimo entre as execuções';
-$wb['limit_cron_error_notint'] = 'O limite do cron deve ser um número.';
-$wb['limit_cron_error_frequency'] = 'O limite de frequência do cron deve ser um número.';
-$wb['limit_mailaliasdomain_txt'] = 'Número máximo de domínios aliases';
-$wb['limit_mailaliasdomain_error_notint'] = 'O domínio aliases de correio precisa ser um número.';
-$wb['limit_web_quota_txt'] = 'Cota Web';
-$wb['limit_traffic_quota_txt'] = 'Cota de Tráfego';
-$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego precisa ser um número..';
-$wb['limit_webdav_user_txt'] = 'Número máximo de usuários Webdav';
-$wb['limit_webdav_user_error_notint'] = 'O limite de usuários webdav deve ser um número.';
-$wb['limit_backup_txt'] = 'Backupfunction available';
+$wb['limit_cron_error_notint'] = 'Limite do cron deve ser um número.';
+$wb['limit_cron_error_frequency'] = 'Limite de frequência do cron deve ser um número.';
+$wb['limit_mailaliasdomain_txt'] = 'Limite de apelidos de domínios';
+$wb['limit_mailaliasdomain_error_notint'] = 'Limite de apelidos de domínio deve ser um número.';
+$wb['limit_web_quota_txt'] = 'Cota de site';
+$wb['limit_traffic_quota_txt'] = 'Cota de tráfego';
+$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego dever ser um número.';
+$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav';
+$wb['limit_webdav_user_error_notint'] = 'Limite de usuários webdav deve ser um número.';
+$wb['limit_backup_txt'] = 'Função de backup disponível';
 $wb['customer_no_txt'] = 'Código do cliente.';
 $wb['vat_id_txt'] = 'VAT ID';
-$wb['required_fields_txt'] = '* Campos requeridos';
-$wb['limit_mailmailinglist_txt'] = 'Número máximo de mailing lists';
-$wb['limit_mailmailinglist_error_notint'] = 'O limite do  mailing list deve ser um número.';
-$wb['company_id_txt'] = 'Empresa ID';
-$wb['limit_openvz_vm_txt'] = 'Max. number of virtual servers';
-$wb['limit_openvz_vm_template_id_txt'] = 'Force virtual server template';
-$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
-$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
-$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
-$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
-$wb['add_additional_template_txt'] = 'Add additional template';
-$wb['delete_additional_template_txt'] = 'Delete additional template';
-$wb['limit_cgi_txt'] = 'CGI available';
-$wb['limit_ssi_txt'] = 'SSI available';
-$wb['limit_perl_txt'] = 'Perl available';
-$wb['limit_ruby_txt'] = 'Ruby available';
-$wb['limit_python_txt'] = 'Python available';
-$wb['force_suexec_txt'] = 'SuEXEC forced';
-$wb['limit_hterror_txt'] = 'Custom error docs available';
-$wb['limit_wildcard_txt'] = 'Wildcard subdomain available';
-$wb['limit_ssl_txt'] = 'SSL available';
-$wb['bank_account_number_txt'] = 'Bank account no.';
-$wb['bank_code_txt'] = 'Bank code';
-$wb['bank_name_txt'] = 'Bank name';
+$wb['required_fields_txt'] = '*Campos obrigatórios';
+$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mail';
+$wb['limit_mailmailinglist_error_notint'] = 'Limite do listas de e-mail deve ser um número.';
+$wb['company_id_txt'] = 'ID da Empresa';
+$wb['limit_openvz_vm_txt'] = 'Limite de servidores virtuais';
+$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de servidor virtual';
+$wb['limit_openvz_vm_error_notint'] = 'Limite de servidores virtuais deve ser um número.';
+$wb['web_php_options_notempty'] = 'Nenhuma opção PHP selecionada. Selecione ao menos uma opção.';
+$wb['ssh_chroot_notempty'] = 'Nenhuma opção de SSH chroot selecionada. Selecione ao menos uma opção.';
+$wb['username_error_collision'] = 'O usuário não pode ter como iniciais as palavras -web- ou -web- seguida por um número.';
+$wb['add_additional_template_txt'] = 'Adicionar gabarito personalizado';
+$wb['delete_additional_template_txt'] = 'Remover gabarito personalizado';
+$wb['limit_cgi_txt'] = 'CGI disponível';
+$wb['limit_ssi_txt'] = 'SSI disponível';
+$wb['limit_perl_txt'] = 'Perl disponível';
+$wb['limit_ruby_txt'] = 'Ruby disponível';
+$wb['limit_python_txt'] = 'Python disponível';
+$wb['force_suexec_txt'] = 'Forçar SuEXEC';
+$wb['limit_hterror_txt'] = 'Custom error docs disponível';
+$wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponíveis';
+$wb['limit_ssl_txt'] = 'SSL disponível';
+$wb['bank_account_number_txt'] = 'Conta corrente no.';
+$wb['bank_code_txt'] = 'Código do banco';
+$wb['bank_name_txt'] = 'Nome do banco';
 $wb['bank_account_iban_txt'] = 'IBAN';
-$wb['bank_account_swift_txt'] = 'BIC / Swift';
-$wb['web_limits_txt'] = 'Web Limits';
-$wb['email_limits_txt'] = 'Email Limits';
-$wb['database_limits_txt'] = 'Database Limits';
-$wb['cron_job_limits_txt'] = 'Cron Job Limits';
-$wb['dns_limits_txt'] = 'DNS Limits';
-$wb['virtualization_limits_txt'] = 'Virtualization Limits';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['active_template_additional_txt'] = 'Active Addons';
-$wb['bank_account_owner_txt'] = 'Bank account owner';
-$wb['email_error_isemail'] = 'Please enter a valid email address.';
-$wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).';
-$wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.';
-$wb['paypal_email_txt'] = 'PayPal Email';
-$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.';
-$wb['aps_limits_txt'] = 'APS Installer Limits';
-$wb['limit_aps_txt'] = 'Max. number of APS instances';
-$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
-$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
-$wb['locked_txt'] = 'Locked (disables all webs etc.)';
-$wb['canceled_txt'] = 'Canceled (disables client login)';
-$wb['gender_txt'] = 'Title';
-$wb['gender_m_txt'] = 'Mr.';
-$wb['gender_f_txt'] = 'Ms.';
-$wb['added_by_txt'] = 'Added by';
-$wb['added_date_txt'] = 'Added date';
-$wb['parent_client_id_txt'] = 'Client of reseller';
-$wb['none_txt'] = 'none';
-$wb['email_error_empty'] = 'Email is empty';
-$wb['xmpp_limits_txt'] = 'XMPP Limits';
-$wb['web_servers_txt'] = 'Webservers';
-$wb['web_servers_placeholder'] = 'Select webservers';
-$wb['no_web_server_error'] = 'At least one webserver must be selected.';
-$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before you remove it.';
-$wb['dns_servers_txt'] = 'DNS servers';
-$wb['dns_servers_placeholder'] = 'Select DNS servers';
-$wb['no_dns_server_error'] = 'At least one DNS server must be selected.';
-$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before you remove it.';
-$wb['db_servers_txt'] = 'Database servers';
-$wb['db_servers_placeholder'] = 'Select database servers';
-$wb['no_db_server_error'] = 'At least one Database server must be selected.';
-$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before you remove it.';
-$wb['mail_servers_txt'] = 'Mailservers';
-$wb['mail_servers_placeholder'] = 'Select mailservers';
-$wb['no_mail_server_error'] = 'At least one mailserver must be selected.';
-$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before you remove it.';
-$wb['xmpp_servers_txt'] = 'XMPP Servers';
-$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
-$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
-$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
-$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
-$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
-$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains';
-$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts';
-$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available';
-$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available';
-$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available';
-$wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
-$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
-$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
-$wb['limit_xmpp_status_txt'] = 'Status host available';
-$wb['limit_database_quota_txt'] = 'Database quota';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
-$wb['reseller_txt'] = 'Reseller';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['invalid_vat_id'] = 'The VAT ID is invalid.';
-$wb['limit_database_user_txt'] = 'Max. Database users';
-$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
-$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['bank_account_swift_txt'] = 'BIC/Swift';
+$wb['web_limits_txt'] = 'Limites web';
+$wb['email_limits_txt'] = 'Limites de e-mails';
+$wb['database_limits_txt'] = 'Limites de banco de dados';
+$wb['cron_job_limits_txt'] = 'Limites de tarefas no cron';
+$wb['dns_limits_txt'] = 'Limites de DNS';
+$wb['virtualization_limits_txt'] = 'Limites de virtualização';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['active_template_additional_txt'] = 'Complementos ativos';
+$wb['bank_account_owner_txt'] = 'Proprietário da conta corrente';
+$wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.';
+$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou em branco).';
+$wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.';
+$wb['paypal_email_txt'] = 'e-mail do PayPal';
+$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \"personalizado\" for selecionado.';
+$wb['aps_limits_txt'] = 'Limites de apps instaladas';
+$wb['limit_aps_txt'] = 'Limite de instâncias de apps';
+$wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.';
+$wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão';
+$wb['locked_txt'] = 'Bloqueado (web desabilitado)';
+$wb['canceled_txt'] = 'Cancelado (acesso do cliente desabilitado)';
+$wb['gender_txt'] = 'Título';
+$wb['gender_m_txt'] = 'Sr.';
+$wb['gender_f_txt'] = 'Sra.';
+$wb['added_by_txt'] = 'Cadastrado por';
+$wb['added_date_txt'] = 'Data do cadastro';
+$wb['parent_client_id_txt'] = 'Cliente da revenda';
+$wb['none_txt'] = 'nenhum';
+$wb['email_error_empty'] = 'e-mail em branco';
+$wb['xmpp_limits_txt'] = 'Limites XMPP';
+$wb['web_servers_txt'] = 'Servidores web';
+$wb['web_servers_placeholder'] = 'Selecionar servidores web';
+$wb['no_web_server_error'] = 'Ao menos um servidor de páginas deve ser selecionado.';
+$wb['web_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor de páginas. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['dns_servers_txt'] = 'Servidores dns';
+$wb['dns_servers_placeholder'] = 'Selecionar servidores dns';
+$wb['no_dns_server_error'] = 'Ao menos um servidor dns deve ser selecionado.';
+$wb['dns_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor dns. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['db_servers_txt'] = 'Servidor de banco de dados';
+$wb['db_servers_placeholder'] = 'Selecione o servidor de banco de dados';
+$wb['no_db_server_error'] = 'Ao menos um servidor de banco de dados deve ser selecionado.';
+$wb['db_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor de banco de dados. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['mail_servers_txt'] = 'Servidores de e-mail';
+$wb['mail_servers_placeholder'] = 'Selecione os servidores de e-mail';
+$wb['no_mail_server_error'] = 'Ao menos um servidor de e-mail deve ser selecionado';
+$wb['mail_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor de e-mail. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['xmpp_servers_txt'] = 'Servidores XMPP';
+$wb['xmpp_servers_placeholder'] = 'Selecione os servidores XMPP';
+$wb['no_xmpp_server_error'] = 'Ao menos um servidor XMPP deve ser selecionado.';
+$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor XMPP. Tenha certeza que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['limit_xmpp_domain_error_notint'] = 'Limite de domínios XMPP deve ser um número.';
+$wb['limit_xmpp_user_error_notint'] = 'Limite de usuários XMPP deve ser um número.';
+$wb['limit_xmpp_domain_txt'] = 'Limite de domínios XMPP';
+$wb['limit_xmpp_user_txt'] = 'Limite de contas XMPP';
+$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário disponível';
+$wb['limit_xmpp_pastebin_txt'] = 'Pastebin para MUC disponível';
+$wb['limit_xmpp_httparchive_txt'] = 'Arquivo HTTP para MUC disponível';
+$wb['limit_xmpp_anon_txt'] = 'Host anônimo disponível';
+$wb['limit_xmpp_vjud_txt'] = 'Diretório de usuário VJUD disponível';
+$wb['limit_xmpp_proxy_txt'] = 'Proxy Bytestream disponível';
+$wb['limit_xmpp_status_txt'] = 'Estado do host disponível';
+$wb['limit_database_quota_txt'] = 'Cota para banco de dados';
+$wb['limit_database_quota_error_notint'] = 'A cota para banco de dados deve ser um número.';
+$wb['reseller_txt'] = 'Revenda';
+$wb['btn_save_txt'] = 'Salvar';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['invalid_vat_id'] = 'O VAT ID é inválido.';
+$wb['limit_database_user_txt'] = 'Limite de usuários de banco de dados';
+$wb['limit_database_user_error_notint'] = 'Limite de usuários de banco de dados deve ser um número.';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponível';
+$wb['limit_directive_snippets_txt'] = 'Exibir seleção de configurações do servidor de páginas';
+$wb['password_click_to_set_txt'] = 'Selecionar para configurar';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_circle.lng b/interface/web/client/lib/lang/br_client_circle.lng
index f98a1447fc..364172f1ae 100644
--- a/interface/web/client/lib/lang/br_client_circle.lng
+++ b/interface/web/client/lib/lang/br_client_circle.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['Client Circle'] = 'Client Circle';
-$wb['Circle'] = 'Circle';
-$wb['circle_txt'] = 'Circle';
-$wb['circle_name_txt'] = 'Circle Name';
-$wb['client_ids_txt'] = 'Clients/Resellers';
-$wb['description_txt'] = 'Description';
-$wb['active_txt'] = 'Active';
+$wb['Client Circle'] = 'Círculo de cliente';
+$wb['Circle'] = 'Círculo';
+$wb['circle_txt'] = 'Círculo';
+$wb['circle_name_txt'] = 'Nome do círculo';
+$wb['client_ids_txt'] = 'Clientes/Revendas';
+$wb['description_txt'] = 'Descrição';
+$wb['active_txt'] = 'Ativo';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_circle_list.lng b/interface/web/client/lib/lang/br_client_circle_list.lng
index 00fd0b3998..857984f892 100644
--- a/interface/web/client/lib/lang/br_client_circle_list.lng
+++ b/interface/web/client/lib/lang/br_client_circle_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Client Circles';
-$wb['circle_id_txt'] = 'Circle ID';
-$wb['circle_name_txt'] = 'Circle Name';
-$wb['description_txt'] = 'Description';
-$wb['add_new_record_txt'] = 'Add new circle';
-$wb['filter_txt'] = 'Filter';
-$wb['delete_txt'] = 'Delete';
-$wb['active_txt'] = 'Active';
+$wb['list_head_txt'] = 'Círculos de Clientes';
+$wb['circle_id_txt'] = 'ID do Círculo';
+$wb['circle_name_txt'] = 'Nome do Círculo';
+$wb['description_txt'] = 'Descrição';
+$wb['add_new_record_txt'] = 'Adicionar novo círculo';
+$wb['filter_txt'] = 'Filtro';
+$wb['delete_txt'] = 'Remover';
+$wb['active_txt'] = 'Ativo';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_del.lng b/interface/web/client/lib/lang/br_client_del.lng
index 3b879b05d4..6c3e4e668a 100644
--- a/interface/web/client/lib/lang/br_client_del.lng
+++ b/interface/web/client/lib/lang/br_client_del.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['confirm_action_txt'] = 'Confirmar ação';
-$wb['delete_explanation'] = 'Atenção: está ação ira remover todos os objetos associados ao cliente!';
+$wb['delete_explanation'] = 'Atenção: está ação removerá todos os objetos associados ao cliente!';
 $wb['btn_save_txt'] = 'Remover o cliente';
 $wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente';
-$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
+$wb['confirm_client_delete_txt'] = 'Você tem certeza que deseja remover este cliente?';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_message.lng b/interface/web/client/lib/lang/br_client_message.lng
index 6b2a872f10..5c847ac8a3 100644
--- a/interface/web/client/lib/lang/br_client_message.lng
+++ b/interface/web/client/lib/lang/br_client_message.lng
@@ -1,20 +1,20 @@
 <?php
-$wb['btn_send_txt'] = 'Send email';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['sender_txt'] = 'Sender email address';
-$wb['subject_txt'] = 'Subject';
-$wb['message_txt'] = 'Message';
-$wb['form_legend_client_txt'] = 'Send email message to all clients.';
-$wb['form_legend_admin_txt'] = 'Send email message to all clients and resellers.';
-$wb['sender_invalid_error'] = 'Sender email invalid.';
-$wb['subject_invalid_error'] = 'Subject is empty.';
-$wb['message_invalid_error'] = 'Message is empty.';
-$wb['email_sent_to_txt'] = 'Email sent to:';
-$wb['page_head_txt'] = 'Send customer information';
-$wb['recipient_txt'] = 'Recipient';
-$wb['all_clients_resellers_txt'] = 'All clients and resellers';
-$wb['all_clients_txt'] = 'All clients';
-$wb['variables_txt'] = 'Variables:';
-$wb['gender_m_txt'] = 'Mr.';
-$wb['gender_f_txt'] = 'Ms.';
+$wb['btn_send_txt'] = 'Enviar e-mail';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['sender_txt'] = 'Remetente';
+$wb['subject_txt'] = 'Assunto';
+$wb['message_txt'] = 'Mensagem';
+$wb['form_legend_client_txt'] = 'Enviar mensagem a todos os clientes.';
+$wb['form_legend_admin_txt'] = 'Enviar mensagem a todos clientes e revendas.';
+$wb['sender_invalid_error'] = 'O e-mail do remetente é inválido.';
+$wb['subject_invalid_error'] = 'O assunto está em branco.';
+$wb['message_invalid_error'] = 'A mensagem está em branco.';
+$wb['email_sent_to_txt'] = 'Enviar e-mail para:';
+$wb['page_head_txt'] = 'Enviar informações aos clientes';
+$wb['recipient_txt'] = 'Destinatário';
+$wb['all_clients_resellers_txt'] = 'Todos os clientes e revendas';
+$wb['all_clients_txt'] = 'Todos os clientes';
+$wb['variables_txt'] = 'Variáveis:';
+$wb['gender_m_txt'] = 'Sr.';
+$wb['gender_f_txt'] = 'Sra.';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_message_template.lng b/interface/web/client/lib/lang/br_client_message_template.lng
index 65e5fbfba3..91c39bff5a 100644
--- a/interface/web/client/lib/lang/br_client_message_template.lng
+++ b/interface/web/client/lib/lang/br_client_message_template.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['template_type_txt'] = 'Email type';
-$wb['template_name_txt'] = 'Template name';
-$wb['subject_txt'] = 'Subject';
-$wb['message_txt'] = 'Message';
-$wb['Email template'] = 'Email template';
-$wb['Settings'] = 'Setting';
-$wb['variables_txt'] = 'Variables';
-$wb['variables_description_txt'] = '(The username and password variables are only available in welcome emails.)';
-$wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.';
+$wb['template_type_txt'] = 'Tipo de e-mail';
+$wb['template_name_txt'] = 'Nome do gabarito';
+$wb['subject_txt'] = 'Assunto';
+$wb['message_txt'] = 'Mensagem';
+$wb['Email template'] = 'Gabarito do e-mail';
+$wb['Settings'] = 'Configuração';
+$wb['variables_txt'] = 'Variáveis';
+$wb['variables_description_txt'] = '(As variáveis usuário e senha estão disponíveis apenas em e-mails de boas vindas.)';
+$wb['duplicate_welcome_error'] = 'Disponível apenas para o gabarito padrão de e-mail de boas vindas. Por favor edite o gabarito existente ou adicione um novo gabarito.';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_message_template_list.lng b/interface/web/client/lib/lang/br_client_message_template_list.lng
index d9c307ed52..9853a71ad3 100644
--- a/interface/web/client/lib/lang/br_client_message_template_list.lng
+++ b/interface/web/client/lib/lang/br_client_message_template_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Email templates';
-$wb['template_type_txt'] = 'Message for';
-$wb['template_name_txt'] = 'Template name';
+$wb['list_head_txt'] = 'Gabarito de e-mails';
+$wb['template_type_txt'] = 'Mensagem de';
+$wb['template_name_txt'] = 'Nome do gabarito';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng
index 5c419383ee..70cf66d984 100644
--- a/interface/web/client/lib/lang/br_client_template.lng
+++ b/interface/web/client/lib/lang/br_client_template.lng
@@ -1,123 +1,123 @@
 <?php
-$wb['limit_client_error_notint'] = 'O limite do cliente não é um número.';
-$wb['limit_maildomain_txt'] = 'Limite Máximo de domínios de correio';
-$wb['limit_mailbox_txt'] = 'Limite Máximo de caixas de correio';
-$wb['limit_mailalias_txt'] = 'Limite Máximo de alias de correio';
-$wb['limit_mailforward_txt'] = 'Limite Máximo de redirecionamentos de correio';
-$wb['limit_mailcatchall_txt'] = 'Limite máximo de contas catchall';
-$wb['limit_mailrouting_txt'] = 'Limite máximo de rotas de Correio';
-$wb['limit_mailfilter_txt'] = 'Número Máximo de Filtros de Correio';
-$wb['limit_fetchmail_txt'] = 'Número Máximo de Contas fetchmail';
-$wb['limit_mailquota_txt'] = 'Espaço de Caixa de Correio';
-$wb['limit_spamfilter_wblist_txt'] = 'Número máximo de spamfilter permitidos /lista negra';
-$wb['limit_spamfilter_user_txt'] = 'Número máx de usuários spamfilter';
-$wb['limit_spamfilter_policy_txt'] = 'Número máx de políticas spamfilter';
-$wb['limit_domain_txt'] = 'limite_dominio';
-$wb['limit_subdomain_txt'] = 'limite_subdominio';
-$wb['limit_webquota_txt'] = 'limite_webquota';
-$wb['limit_database_txt'] = 'Número máximo de banco de dados';
-$wb['limit_web_domain_txt'] = 'Número máximo de domínios web';
-$wb['limit_web_aliasdomain_txt'] = 'Número maximo de apelidos web';
-$wb['limit_web_subdomain_txt'] = 'Número máximo de sub-domínios';
-$wb['limit_ftp_user_txt'] = 'Número máximo de usuários de FTP';
-$wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS';
-$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones';
-$wb['limit_dns_record_txt'] = 'Número máximo de registros DNS';
-$wb['limit_shell_user_txt'] = 'Número máximo de usuários de Shell';
-$wb['limit_client_txt'] = 'Número máximo de clientes';
-$wb['limit_maildomain_error_notint'] = 'O limite de correio de domínio deve ser numérico';
-$wb['limit_mailbox_error_notint'] = 'O limite da caixa de correio deve ser numérico';
-$wb['limit_mailalias_error_notint'] = 'O limite do apelido de correio deve ser númerico';
-$wb['limit_mailforward_error_notint'] = 'O limite de direcionamento de correio deve ser um número';
-$wb['limit_mailcatchall_error_notint'] = 'O limite de catchall do domínio deve ser um número';
-$wb['limit_mailrouting_error_notint'] = 'Limite de rota de correio deve ser um número';
-$wb['limit_mailfilter_error_notint'] = 'O limite de filtro de correio deve ser um número.';
-$wb['limit_mailfetchmail_error_notint'] = 'Limite fetchmail deve ser um número.';
-$wb['limit_mailquota_error_notint'] = 'Cota de correio deve ser um número.';
-$wb['limit_spamfilter_wblist_error_notint'] = 'O limite de spamfilter permitido / lista negra deve ser um número';
-$wb['limit_spamfilter_user_error_notint'] = 'O limite do spamfilter deve ser um número.';
-$wb['limit_spamfilter_policy_error_notint'] = 'O limite da política do spamfilter deve ser um número.';
-$wb['limit_web_domain_error_notint'] = 'O limite de websites deve ser um número';
-$wb['limit_web_aliasdomain_error_notint'] = 'O limite de apelidos de domínio deve ser um número';
-$wb['limit_web_subdomain_error_notint'] = 'O limite de sub-domínios deve ser um número';
-$wb['limit_ftp_user_error_notint'] = 'O limite de contas FTP deve ser um número';
-$wb['limit_shell_user_error_notint'] = 'O limite de contas shell DNS deve ser um número';
-$wb['limit_dns_zone_error_notint'] = 'O limite de zonas DNS deve ser um número';
-$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.';
-$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.';
-$wb['limit_database_error_notint'] = 'O limite dos bancos de dados deve ser um número';
+$wb['limit_client_error_notint'] = 'Limite do cliente não é numérico.';
+$wb['limit_maildomain_txt'] = 'Limite de domínios de e-mail';
+$wb['limit_mailbox_txt'] = 'Limite de caixas postais';
+$wb['limit_mailalias_txt'] = 'Limite de apelidos de e-mail';
+$wb['limit_mailforward_txt'] = 'Limite de redirecionamentos de e-mail';
+$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo';
+$wb['limit_mailrouting_txt'] = 'Limite de transportes de e-mails';
+$wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mail';
+$wb['limit_fetchmail_txt'] = 'Limite de contas de busca';
+$wb['limit_mailquota_txt'] = 'Espaço da caixa postal';
+$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros antispam permitidos lista branca/negra';
+$wb['limit_spamfilter_user_txt'] = 'Limite de usuários de filtros antispam';
+$wb['limit_spamfilter_policy_txt'] = 'Limite de políticas antispam';
+$wb['limit_domain_txt'] = 'Limite de domínios';
+$wb['limit_subdomain_txt'] = 'Limite de subdomínios';
+$wb['limit_webquota_txt'] = 'Cota de site';
+$wb['limit_database_txt'] = 'Limite de banco de dados';
+$wb['limit_web_domain_txt'] = 'Limite de domínios de site';
+$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos de domínio de site';
+$wb['limit_web_subdomain_txt'] = 'Limite de subdomínios site';
+$wb['limit_ftp_user_txt'] = 'Limite de usuários ftp';
+$wb['limit_dns_zone_txt'] = 'Limite de zonas dns primárias';
+$wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias';
+$wb['limit_dns_record_txt'] = 'Limite de registros dns';
+$wb['limit_shell_user_txt'] = 'Limite de usuários shell';
+$wb['limit_client_txt'] = 'Limite de clientes';
+$wb['limit_maildomain_error_notint'] = 'Limite de e-mails deve ser um número';
+$wb['limit_mailbox_error_notint'] = 'Limite de caixas postais deve ser um número';
+$wb['limit_mailalias_error_notint'] = 'Limite de apelidos de domínio de e-mails deve ser um número';
+$wb['limit_mailforward_error_notint'] = 'Limite de redirecionamentos de e-mail deve ser um número';
+$wb['limit_mailcatchall_error_notint'] = 'Limite de contas cata tudo deve ser um número';
+$wb['limit_mailrouting_error_notint'] = 'Limite de transportes de e-mails deve ser um número';
+$wb['limit_mailfilter_error_notint'] = 'Limite de filtros de e-mails deve ser um número.';
+$wb['limit_mailfetchmail_error_notint'] = 'Limite de contas de busca deve ser um número.';
+$wb['limit_mailquota_error_notint'] = 'Cota de e-mail deve ser um número.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'Limite de filtros antispam lista branca/negra deve ser um número';
+$wb['limit_spamfilter_user_error_notint'] = 'Limite de filtros antispam deve ser um número.';
+$wb['limit_spamfilter_policy_error_notint'] = 'Limite de políticas antispam deve ser um número.';
+$wb['limit_web_domain_error_notint'] = 'Limite de sites deve ser um número';
+$wb['limit_web_aliasdomain_error_notint'] = 'Limite de apelidos de domínio de site deve ser um número';
+$wb['limit_web_subdomain_error_notint'] = 'Limite de subdomínios de site deve ser um número';
+$wb['limit_ftp_user_error_notint'] = 'Limite de contas FTP deve ser um número';
+$wb['limit_shell_user_error_notint'] = 'Limite de contas shell deve ser um número';
+$wb['limit_dns_zone_error_notint'] = 'Limite de zonas DNS primárias deve ser um número';
+$wb['limit_dns_slave_zone_error_notint'] = 'Limite de zonas DNS secundárias deve ser um número.';
+$wb['limit_dns_record_error_notint'] = 'Limite de registros DNS deve ser um número.';
+$wb['limit_database_error_notint'] = 'Limite de banco de dados deve ser um número';
 $wb['error_template_name_empty'] = 'Por favor insira o nome do gabarito';
-$wb['limit_cron_txt'] = 'Número máximo de tarefas no cron';
-$wb['limit_cron_type_txt'] = 'Máximo de tipos de tarefas no cron (em chroot e url completas)';
+$wb['limit_cron_txt'] = 'Limite de tarefas no cron';
+$wb['limit_cron_type_txt'] = 'Limite de tipos de tarefas no cron (em chroot e url completas)';
 $wb['limit_cron_frequency_txt'] = 'Intervalo mínimo entre as execuções';
-$wb['limit_cron_error_notint'] = 'O limite do cron deve ser um número.';
-$wb['limit_cron_error_frequency'] = 'O limite de frequência do cron deve ser um número.';
-$wb['limit_mailaliasdomain_txt'] = 'Número máximo de aliases de correio';
-$wb['limit_mailaliasdomain_error_notint'] = 'A alias de domínio de correio deve ser um número.';
-$wb['limit_web_quota_txt'] = 'Cota Web';
+$wb['limit_cron_error_notint'] = 'Limite  do cron deve ser um número.';
+$wb['limit_cron_error_frequency'] = 'Limite de frequência do cron deve ser um número.';
+$wb['limit_mailaliasdomain_txt'] = 'Limite de apelidos de domínio de e-mails';
+$wb['limit_mailaliasdomain_error_notint'] = 'Limite de apelidos de domínio de e-mails deve ser um número.';
+$wb['limit_web_quota_txt'] = 'Cota de site';
 $wb['limit_traffic_quota_txt'] = 'Cota de Tráfego';
-$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego precisa ser um número.';
+$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego deve ser um número.';
 $wb['template_del_aborted_txt'] = 'Remoção abortada. Ainda existem clientes com o gabarito selecionado.';
-$wb['limit_webdav_user_txt'] = 'Número máximo de usuários Webdav';
-$wb['limit_webdav_user_error_notint'] = 'O número de usuários webdav deve ser um número.';
-$wb['limit_backup_txt'] = 'Backupfunction available';
-$wb['limit_mailmailinglist_txt'] = 'Número máximo de mailing lists';
-$wb['limit_mailmailinglist_error_notint'] = 'O limite de mailing list deve ser um número.';
-$wb['limit_openvz_vm_txt'] = 'Max. number of virtual servers';
-$wb['limit_openvz_vm_template_id_txt'] = 'Force virtual server template';
-$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
-$wb['ssh_chroot_txt'] = 'SSH-Chroot Options';
-$wb['web_php_options_txt'] = 'PHP Options';
-$wb['template_type_txt'] = 'Template type';
-$wb['template_name_txt'] = 'Template name';
-$wb['limit_cgi_txt'] = 'CGI available';
-$wb['limit_ssi_txt'] = 'SSI available';
-$wb['limit_perl_txt'] = 'Perl available';
-$wb['limit_ruby_txt'] = 'Ruby available';
-$wb['limit_python_txt'] = 'Python available';
-$wb['force_suexec_txt'] = 'SuEXEC forced';
-$wb['limit_hterror_txt'] = 'Custom error docs available';
-$wb['limit_wildcard_txt'] = 'Wildcard subdomain available';
-$wb['limit_ssl_txt'] = 'SSL available';
-$wb['web_limits_txt'] = 'Web Limits';
-$wb['email_limits_txt'] = 'Email Limits';
-$wb['database_limits_txt'] = 'Database Limits';
-$wb['cron_job_limits_txt'] = 'Cron Job Limits';
-$wb['dns_limits_txt'] = 'DNS Limits';
-$wb['virtualization_limits_txt'] = 'Virtualization Limits';
-$wb['aps_limits_txt'] = 'APS Installer Limits';
-$wb['limit_aps_txt'] = 'Max. number of APS instances';
-$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
-$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
-$wb['client_limits_txt'] = 'Client Limits';
-$wb['default_mailserver_txt'] = 'Default Mailserver';
-$wb['default_webserver_txt'] = 'Default Webserver';
-$wb['default_dnsserver_txt'] = 'Default DNS Server';
-$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
-$wb['default_dbserver_txt'] = 'Default Database Server';
-$wb['limit_database_quota_txt'] = 'Database quota';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
-$wb['xmpp_limits_txt'] = 'XMPP Limits';
-$wb['xmpp_servers_txt'] = 'XMPP Servers';
-$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
-$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
-$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
-$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
-$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
-$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains';
-$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts';
-$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available';
-$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available';
-$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available';
-$wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
-$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
-$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
-$wb['limit_xmpp_status_txt'] = 'Status host available';
-$wb['dns_servers_txt'] = 'DNS servers';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
-$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['limit_database_user_txt'] = 'Max. Database users';
-$wb['web_servers_txt'] = 'Webservers';
-$wb['db_servers_txt'] = 'Database servers';
-$wb['mail_servers_txt'] = 'Mailservers';
+$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav';
+$wb['limit_webdav_user_error_notint'] = 'Limite de usuários webdav deve ser um número.';
+$wb['limit_backup_txt'] = 'Funções de backup disponíveis';
+$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mails';
+$wb['limit_mailmailinglist_error_notint'] = 'Limite de listas de e-mails deve ser um número.';
+$wb['limit_openvz_vm_txt'] = 'Limite de servidores virtuais';
+$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de servidor virtual';
+$wb['limit_openvz_vm_error_notint'] = 'Limite de servidores virtuais deve ser um número.';
+$wb['ssh_chroot_txt'] = 'Opções SSH-Chroot';
+$wb['web_php_options_txt'] = 'Opções PHP';
+$wb['template_type_txt'] = 'Tipo de Gabarito';
+$wb['template_name_txt'] = 'Nome do Gabarito';
+$wb['limit_cgi_txt'] = 'CGI disponível';
+$wb['limit_ssi_txt'] = 'SSI disponível';
+$wb['limit_perl_txt'] = 'Perl disponível';
+$wb['limit_ruby_txt'] = 'Ruby disponível';
+$wb['limit_python_txt'] = 'Python disponível';
+$wb['force_suexec_txt'] = 'Forçar SuEXEC';
+$wb['limit_hterror_txt'] = 'Diretório \"Custom error docs\" disponível';
+$wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponíveis';
+$wb['limit_ssl_txt'] = 'SSL disponível';
+$wb['web_limits_txt'] = 'Limites web';
+$wb['email_limits_txt'] = 'Limites de e-mail';
+$wb['database_limits_txt'] = 'Limites de banco de dados';
+$wb['cron_job_limits_txt'] = 'Limites de tarefas no cron';
+$wb['dns_limits_txt'] = 'Limites de DNS';
+$wb['virtualization_limits_txt'] = 'Limites de virtualização';
+$wb['aps_limits_txt'] = 'Limites de instalações de apps';
+$wb['limit_aps_txt'] = 'Limites de instâncias de apps';
+$wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.';
+$wb['limit_domainmodule_txt'] = 'Limites de módulos de domínio';
+$wb['client_limits_txt'] = 'Limites de clientes';
+$wb['default_mailserver_txt'] = 'Servidor de e-mails padrão';
+$wb['default_webserver_txt'] = 'Servidor de páginas padrão';
+$wb['default_dnsserver_txt'] = 'Servidor DNS padrão';
+$wb['default_slave_dnsserver_txt'] = 'Servidor DNS secundário padrão';
+$wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão';
+$wb['limit_database_quota_txt'] = 'Cota para banco de dados';
+$wb['limit_database_quota_error_notint'] = 'Limite da cota para banco de dados deve ser um número.';
+$wb['xmpp_limits_txt'] = 'Limites XMPP';
+$wb['xmpp_servers_txt'] = 'Servidores XMPP';
+$wb['xmpp_servers_placeholder'] = 'Selecionar servidores XMPP';
+$wb['no_xmpp_server_error'] = 'Ao menos um servidor XMPP deve ser selecionado.';
+$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é usado como um servidor XMPP. Tenha certeza que este servidor não é usando por este cliente antes de removê-lo.';
+$wb['limit_xmpp_domain_error_notint'] = 'Limite de domínios XMPP deve ser um número.';
+$wb['limit_xmpp_user_error_notint'] = 'Limite de usuários XMPP deve ser um número.';
+$wb['limit_xmpp_domain_txt'] = 'Limite de domínios XMPP';
+$wb['limit_xmpp_user_txt'] = 'Limite de contas XMPP';
+$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário disponível';
+$wb['limit_xmpp_pastebin_txt'] = 'Pastebin para MUC disponível';
+$wb['limit_xmpp_httparchive_txt'] = 'Arquivo HTTP para MUC disponível';
+$wb['limit_xmpp_anon_txt'] = 'Host anônimo disponível';
+$wb['limit_xmpp_vjud_txt'] = 'Diretório de usuário VJUD disponível';
+$wb['limit_xmpp_proxy_txt'] = 'Proxy Bytestream disponível';
+$wb['limit_xmpp_status_txt'] = 'Estado do host disponível';
+$wb['dns_servers_txt'] = 'Servidores DNS';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponível';
+$wb['limit_directive_snippets_txt'] = 'Exibir seleção de configuração do servidor de páginas';
+$wb['limit_database_user_txt'] = 'Limite de usuários de banco de dados';
+$wb['web_servers_txt'] = 'Servidores web';
+$wb['db_servers_txt'] = 'Servidores de banco de dados';
+$wb['mail_servers_txt'] = 'Servidores de e-mail';
 ?>
diff --git a/interface/web/client/lib/lang/br_client_template_list.lng b/interface/web/client/lib/lang/br_client_template_list.lng
index f5d9ee6d25..4621788016 100644
--- a/interface/web/client/lib/lang/br_client_template_list.lng
+++ b/interface/web/client/lib/lang/br_client_template_list.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['list_head_txt'] = 'Gabarito de Cliente ';
+$wb['list_head_txt'] = 'Gabarito de limites para clientes';
 $wb['template_type_txt'] = 'Tipo';
 $wb['template_name_txt'] = 'Nome do Gabarito';
-$wb['template_id_txt'] = 'Template ID';
+$wb['template_id_txt'] = 'ID do Gabarito';
 ?>
diff --git a/interface/web/client/lib/lang/br_clients_list.lng b/interface/web/client/lib/lang/br_clients_list.lng
index f16f6aee9e..92c1c3cad7 100644
--- a/interface/web/client/lib/lang/br_clients_list.lng
+++ b/interface/web/client/lib/lang/br_clients_list.lng
@@ -2,10 +2,10 @@
 $wb['list_head_txt'] = 'Clientes';
 $wb['client_id_txt'] = 'ID';
 $wb['company_name_txt'] = 'Empresa';
-$wb['contact_name_txt'] = 'Nome do contato';
+$wb['contact_name_txt'] = 'Contato';
 $wb['city_txt'] = 'Cidade';
 $wb['country_txt'] = 'País';
-$wb['add_new_record_txt'] = 'Adcionar novo cliente';
-$wb['username_txt'] = 'Username';
-$wb['customer_no_txt'] = 'Customer No.';
+$wb['add_new_record_txt'] = 'Adicionar novo cliente';
+$wb['username_txt'] = 'Usuário';
+$wb['customer_no_txt'] = 'Código do Cliente';
 ?>
diff --git a/interface/web/client/lib/lang/br_domain.lng b/interface/web/client/lib/lang/br_domain.lng
index e4e2224712..ca31f2effd 100644
--- a/interface/web/client/lib/lang/br_domain.lng
+++ b/interface/web/client/lib/lang/br_domain.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['domain_error_empty'] = 'O nome do domínio está em branco';
-$wb['domain_error_unique'] = 'Este nome de domínio já existe';
-$wb['domain_error_regex'] = 'Este nome de domínio não é permitido';
-$wb['Domain'] = 'Domínio';
+$wb['domain_error_empty'] = 'Nome do domínio em branco';
+$wb['domain_error_unique'] = 'Nome do domínio já existe';
+$wb['domain_error_regex'] = 'Nome do domínio não é permitido';
+$wb['Domain'] = 'Domain';
 ?>
diff --git a/interface/web/client/lib/lang/br_domain_list.lng b/interface/web/client/lib/lang/br_domain_list.lng
index 01d1a577df..57ec6c1064 100644
--- a/interface/web/client/lib/lang/br_domain_list.lng
+++ b/interface/web/client/lib/lang/br_domain_list.lng
@@ -1,6 +1,6 @@
 <?php
 $wb['list_head_txt'] = 'Domínios';
-$wb['add_new_record_txt'] = 'Adcionar um novo domínio';
+$wb['add_new_record_txt'] = 'Adicionar novo domínio';
 $wb['domain_txt'] = 'Domínio';
-$wb['user_txt'] = 'Client';
+$wb['user_txt'] = 'Cliente';
 ?>
diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng
index 349e6dbc3e..b58419dc03 100644
--- a/interface/web/client/lib/lang/br_reseller.lng
+++ b/interface/web/client/lib/lang/br_reseller.lng
@@ -1,23 +1,23 @@
 <?php
-$wb['limit_maildomain_txt'] = 'Número máximo de domínios de correio';
-$wb['limit_mailbox_txt'] = 'Número máximo de caixas de correio';
-$wb['limit_mailalias_txt'] = 'Número máximo de aliases de correio';
-$wb['limit_mailforward_txt'] = 'Número máximo de encaminhamentos de correio';
-$wb['limit_mailcatchall_txt'] = 'Número máximo de contas catchall';
-$wb['limit_mailrouting_txt'] = 'Número máximo de rotas de correio';
-$wb['limit_mailfilter_txt'] = 'Número máximo de filtros de correio';
-$wb['limit_fetchmail_txt'] = 'Número máximo de contas fetchmail ';
-$wb['limit_mailquota_txt'] = 'Quota de correio';
-$wb['limit_spamfilter_wblist_txt'] = 'Número máximo de filtros do spamfilter lista branca / negra';
-$wb['limit_spamfilter_user_txt'] = 'Número máximo de usuários de spamfilter';
-$wb['limit_spamfilter_policy_txt'] = 'Número máximo de políticas de spamfilter';
-$wb['default_mailserver_txt'] = 'Servidor de Correio Padrão';
+$wb['limit_maildomain_txt'] = 'Limite de domínios de e-mails';
+$wb['limit_mailbox_txt'] = 'Limite de contas de e-mails';
+$wb['limit_mailalias_txt'] = 'Limite de apelidos de domínio de e-mails';
+$wb['limit_mailforward_txt'] = 'Limite de encaminhamentos de e-mails';
+$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo';
+$wb['limit_mailrouting_txt'] = 'Limite de transportes de e-mails';
+$wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mails';
+$wb['limit_fetchmail_txt'] = 'Limite de contas de busca ';
+$wb['limit_mailquota_txt'] = 'Cota de e-mail';
+$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros antispam lista branca/negra';
+$wb['limit_spamfilter_user_txt'] = 'Limite de usuários de filtros antispam';
+$wb['limit_spamfilter_policy_txt'] = 'Limite de políticas antispam';
+$wb['default_mailserver_txt'] = 'Servidor de e-mails padrão';
 $wb['company_name_txt'] = 'Empresa';
-$wb['contact_firstname_txt'] = 'Contact firstname';
+$wb['contact_firstname_txt'] = 'Contato';
 $wb['contact_name_txt'] = 'Contato';
 $wb['username_txt'] = 'Usuário';
 $wb['password_txt'] = 'Senha';
-$wb['password_strength_txt'] = 'Segurança de senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
 $wb['language_txt'] = 'Idioma';
 $wb['usertheme_txt'] = 'Tema';
 $wb['street_txt'] = 'Rua';
@@ -28,179 +28,179 @@ $wb['country_txt'] = 'País';
 $wb['telephone_txt'] = 'Telefone';
 $wb['mobile_txt'] = 'Celular';
 $wb['fax_txt'] = 'Fax';
-$wb['email_txt'] = 'Correio Eletrônico';
+$wb['email_txt'] = 'e-mail';
 $wb['internet_txt'] = 'Internet';
-$wb['icq_txt'] = 'MSN ou ICQ';
+$wb['icq_txt'] = 'Skype';
 $wb['notes_txt'] = 'Notas';
 $wb['company_txt'] = 'Empresa';
 $wb['title_txt'] = 'Título';
 $wb['firstname_txt'] = 'Nome';
 $wb['surname_txt'] = 'Sobrenome';
-$wb['limit_domain_txt'] = 'limite_domínio';
-$wb['limit_subdomain_txt'] = 'limite_subdomínio';
-$wb['limit_webquota_txt'] = 'limite_webquota';
-$wb['limit_database_txt'] = 'Número máximo de bancos de dados';
-$wb['limit_cron_txt'] = 'Número máximo de tarefas no cron';
-$wb['limit_cron_type_txt'] = 'Máximo de tipos de tarefas no cron (em chroot e url completas)';
-$wb['limit_cron_frequency_txt'] = 'Mínimo de tempo entre as execuções';
-$wb['ip_address_txt'] = 'endereço_ip';
-$wb['limit_client_error_notint'] = 'O limite de clientes para revenda deve ser um número.';
-$wb['firstname_error_empty'] = 'O nome está em branco.';
-$wb['contact_error_empty'] = 'Nome do contato está em branco.';
-$wb['default_webserver_txt'] = 'Servidor web padrão';
-$wb['limit_web_domain_txt'] = 'Máximo de domínios web';
-$wb['limit_web_aliasdomain_txt'] = 'Número máximo de alias web';
-$wb['limit_web_subdomain_txt'] = 'Número máximo de subdomínios';
-$wb['limit_ftp_user_txt'] = 'Max. number of FTP users';
-$wb['default_dnsserver_txt'] = 'Servidor DNS Padrão';
-$wb['limit_dns_zone_txt'] = 'Máximo de zonas DNS';
-$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones';
-$wb['limit_dns_record_txt'] = 'Máximo de registros DNS';
-$wb['limit_shell_user_txt'] = 'Número máximo de usuários de shell';
-$wb['limit_client_txt'] = 'Número máximo de clientes';
-$wb['username_error_empty'] = 'O nome do usuário está em branco.';
-$wb['username_error_unique'] = 'O nome de usuário deve ser único.';
-$wb['limit_maildomain_error_notint'] = 'O limite de domínios de correio deve ser um número.';
-$wb['limit_mailbox_error_notint'] = 'O limite de caixas de correio deve ser um número.';
-$wb['limit_mailalias_error_notint'] = 'O limite de aliases de correio deve ser um número.';
-$wb['limit_mailforward_error_notint'] = 'O limite de encaminhamentos de correio deve ser um número.';
-$wb['limit_mailcatchall_error_notint'] = 'O limite de contas catchall deve ser um número.';
-$wb['limit_mailrouting_error_notint'] = 'O limite de rotas de correio deve ser um número.';
-$wb['limit_mailfilter_error_notint'] = 'O filtro de correio deve ser um número.';
-$wb['limit_mailfetchmail_error_notint'] = 'O limite de fetchmail deve ser um número.';
-$wb['limit_mailquota_error_notint'] = 'O limite de quota de correio deve ser um número.';
-$wb['limit_spamfilter_wblist_error_notint'] = 'O limite de lista branca / negra do spamfilter deve ser um número.';
-$wb['limit_spamfilter_user_error_notint'] = 'O limite de usuários de spamfilter deve ser um número.';
-$wb['limit_spamfilter_policy_error_notint'] = 'O limite de políticas de spamfilter deve ser um número.';
-$wb['limit_web_domain_error_notint'] = 'O limite de web sites deve ser um número.';
-$wb['limit_web_aliasdomain_error_notint'] = 'O limite de usuários de aliases de domínio deve ser um número.';
-$wb['limit_web_subdomain_error_notint'] = 'O limite de usuários de subdomínios web deve ser um número.';
-$wb['limit_ftp_user_error_notint'] = 'O limite de usuários de ftp deve ser um número.';
-$wb['limit_shell_user_error_notint'] = 'O limite de usuários de shell deve ser um número.';
-$wb['limit_dns_zone_error_notint'] = 'O limite de registros de dns deve ser um número.';
-$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.';
-$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.';
-$wb['default_dbserver_txt'] = 'Servidor de Banco de Dados Padrão';
-$wb['limit_database_error_notint'] = 'O limite de banco de dados deve ser um número.';
-$wb['limit_cron_error_notint'] = 'O limite do cron deve ser um número.';
-$wb['limit_cron_error_frequency'] = 'O limite de frequência no cron deve ser um número.';
+$wb['limit_domain_txt'] = 'Limite de domínios';
+$wb['limit_subdomain_txt'] = 'Limite de subdomínios';
+$wb['limit_webquota_txt'] = 'Cota de site';
+$wb['limit_database_txt'] = 'Limite de banco de dados';
+$wb['limit_cron_txt'] = 'Limite de tarefas no cron';
+$wb['limit_cron_type_txt'] = 'Limites de tarefas no cron (em chroot e url completas)';
+$wb['limit_cron_frequency_txt'] = 'Limite de tempo entre as execuções';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['limit_client_error_notint'] = 'Limite de clientes para revenda deve ser um número.';
+$wb['firstname_error_empty'] = 'Nome em branco.';
+$wb['contact_error_empty'] = 'Contato em branco.';
+$wb['default_webserver_txt'] = 'Servidor de páginas padrão';
+$wb['limit_web_domain_txt'] = 'Limite de domínios de site';
+$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos';
+$wb['limit_web_subdomain_txt'] = 'Limite de subdomínios';
+$wb['limit_ftp_user_txt'] = 'Limite de usuários ftp';
+$wb['default_dnsserver_txt'] = 'Servidor dns Padrão';
+$wb['limit_dns_zone_txt'] = 'Limite de de zonas dns';
+$wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias';
+$wb['limit_dns_record_txt'] = 'Limite de registros dns';
+$wb['limit_shell_user_txt'] = 'Limite de usuários shell';
+$wb['limit_client_txt'] = 'Limite de clientes';
+$wb['username_error_empty'] = 'Nome do usuário em branco.';
+$wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.';
+$wb['limit_maildomain_error_notint'] = 'Limite de domínios de e-mails deve ser um número.';
+$wb['limit_mailbox_error_notint'] = 'Limite de contas de e-mails deve ser um número.';
+$wb['limit_mailalias_error_notint'] = 'Limite de apelidos de domínio de e-mails deve ser um número.';
+$wb['limit_mailforward_error_notint'] = 'Limite de encaminhamentos de e-mails deve ser um número.';
+$wb['limit_mailcatchall_error_notint'] = 'Limite de contas cata tudo deve ser um número.';
+$wb['limit_mailrouting_error_notint'] = 'Limite de transportes de e-mails deve ser um número.';
+$wb['limit_mailfilter_error_notint'] = 'Limite de filtros de e-mails deve ser um número.';
+$wb['limit_mailfetchmail_error_notint'] = 'Limite de contas de busca deve ser um número.';
+$wb['limit_mailquota_error_notint'] = 'A cota de e-mail deve ser um número.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'Limite de filtros antispam lista branca/negra deve ser um número.';
+$wb['limit_spamfilter_user_error_notint'] = 'Limite de usuários de filtros antispam deve ser um número.';
+$wb['limit_spamfilter_policy_error_notint'] = 'Limite de políticas antispam deve ser um número.';
+$wb['limit_web_domain_error_notint'] = 'Limite de sites deve ser um número.';
+$wb['limit_web_aliasdomain_error_notint'] = 'Limite de apelidos de domínio de site deve ser um número.';
+$wb['limit_web_subdomain_error_notint'] = 'Limite de subdomínios de site deve ser um número.';
+$wb['limit_ftp_user_error_notint'] = 'Limite de usuários ftp deve ser um número.';
+$wb['limit_shell_user_error_notint'] = 'Limite de usuários shell deve ser um número.';
+$wb['limit_dns_zone_error_notint'] = 'Limite de registros dns deve ser um número.';
+$wb['limit_dns_slave_zone_error_notint'] = 'Limite de zonas dns secundárias deve ser um número.';
+$wb['limit_dns_record_error_notint'] = 'Limite de registros dns deve ser um número.';
+$wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão';
+$wb['limit_database_error_notint'] = 'Limite de banco de dados deve ser um número.';
+$wb['limit_cron_error_notint'] = 'Limite de tarefas no cron deve ser um número.';
+$wb['limit_cron_error_frequency'] = 'Limite de frequência no cron deve ser um número.';
 $wb['username_error_regex'] = 'O nome do usuário contém caracteres inválidos.';
-$wb['template_master_txt'] = 'Gabarito Mestre';
-$wb['template_additional_txt'] = 'Gabarito de Addon';
-$wb['ssh_chroot_txt'] = 'Opções do Chroot-SSH';
+$wb['template_master_txt'] = 'Gabarito mestre';
+$wb['template_additional_txt'] = 'Gabarito personalizado';
+$wb['ssh_chroot_txt'] = 'Opções do Chroot SSH';
 $wb['web_php_options_txt'] = 'Opções do PHP';
-$wb['limit_client_error'] = 'O número máximo de clientes foi atingido.';
-$wb['limit_client_error_positive_or_unlimited'] = 'O número de clientes precisa ser > 0';
-$wb['limit_web_quota_txt'] = 'Cota Web';
-$wb['limit_traffic_quota_txt'] = 'Cota de Tráfego';
-$wb['limit_trafficquota_error_notint'] = 'a cota de tráfego deve ser um número.';
-$wb['customer_no_txt'] = 'Código do Cliente.';
+$wb['limit_client_error'] = 'Limite de clientes foi alcançado.';
+$wb['limit_client_error_positive_or_unlimited'] = 'Limite de clientes deve ser > 0';
+$wb['limit_web_quota_txt'] = 'Cota de site';
+$wb['limit_traffic_quota_txt'] = 'Cota de tráfego';
+$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego deve ser um número.';
+$wb['customer_no_txt'] = 'Código do cliente.';
 $wb['vat_id_txt'] = 'VAT ID';
-$wb['required_fields_txt'] = '* Campos requeridos';
-$wb['limit_mailmailinglist_txt'] = 'Número máximo de  mailing lists';
-$wb['limit_mailmailinglist_error_notint'] = 'O número máximo de mailing list deve ser um número.';
-$wb['limit_webdav_user_txt'] = 'Max. number of Webdav users';
-$wb['limit_webdav_user_error_notint'] = 'The webdav user limit must be a number.';
-$wb['limit_backup_txt'] = 'Backupfunction available';
-$wb['limit_mailaliasdomain_txt'] = 'Max. number of domain aliases';
-$wb['limit_openvz_vm_txt'] = 'Max. number of virtual servers';
-$wb['limit_openvz_vm_template_id_txt'] = 'Force virtual server template';
-$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
-$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
-$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
-$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
-$wb['add_additional_template_txt'] = 'Add additional template';
-$wb['delete_additional_template_txt'] = 'Delete additional template';
-$wb['limit_cgi_txt'] = 'CGI available';
-$wb['limit_ssi_txt'] = 'SSI available';
-$wb['limit_perl_txt'] = 'Perl available';
-$wb['limit_ruby_txt'] = 'Ruby available';
-$wb['limit_python_txt'] = 'Python available';
+$wb['required_fields_txt'] = '*Campos obrigatórios';
+$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mails';
+$wb['limit_mailmailinglist_error_notint'] = 'Limite de listas de e-mails deve ser um número.';
+$wb['limit_webdav_user_txt'] = 'Limite de usuário webdav';
+$wb['limit_webdav_user_error_notint'] = 'Limite de usuários webdav deve ser um número.';
+$wb['limit_backup_txt'] = 'Função de backup disponível';
+$wb['limit_mailaliasdomain_txt'] = 'Limite de apelidos de domínio de e-mails';
+$wb['limit_openvz_vm_txt'] = 'Limite de servidores virtuais';
+$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de servidor virtual';
+$wb['limit_openvz_vm_error_notint'] = 'Limite de servidores virtuais deve ser um número.';
+$wb['web_php_options_notempty'] = 'Nenhuma opção do php selecionada. Selecione ao menos uma opção.';
+$wb['ssh_chroot_notempty'] = 'Nenhuma opção do ssh-chroot selecionada. Selecione ao menos uma opção.';
+$wb['username_error_collision'] = 'O nome do usuário não pode iniciar com a palavra -web- ou -web- seguida de um número.';
+$wb['add_additional_template_txt'] = 'Adicionar gabarito personalizado';
+$wb['delete_additional_template_txt'] = 'Remover gabarito personalizado';
+$wb['limit_cgi_txt'] = 'CGI disponível';
+$wb['limit_ssi_txt'] = 'SSI disponível';
+$wb['limit_perl_txt'] = 'Perl disponível';
+$wb['limit_ruby_txt'] = 'Ruby disponível';
+$wb['limit_python_txt'] = 'Python disponível';
 $wb['force_suexec_txt'] = 'SuEXEC forced';
-$wb['limit_hterror_txt'] = 'Custom error docs available';
-$wb['limit_wildcard_txt'] = 'Wildcard subdomain available';
-$wb['limit_ssl_txt'] = 'SSL available';
-$wb['web_limits_txt'] = 'Web Limits';
-$wb['email_limits_txt'] = 'Email Limits';
-$wb['database_limits_txt'] = 'Database Limits';
-$wb['cron_job_limits_txt'] = 'Cron Job Limits';
-$wb['dns_limits_txt'] = 'DNS Limits';
-$wb['virtualization_limits_txt'] = 'Virtualization Limits';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['email_error_isemail'] = 'Please enter a valid email address.';
-$wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).';
-$wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.';
-$wb['paypal_email_txt'] = 'PayPal Email';
-$wb['company_id_txt'] = 'Company/Entrepreneur ID';
-$wb['bank_account_number_txt'] = 'Bank account no.';
-$wb['bank_account_owner_txt'] = 'Bank account owner';
-$wb['bank_code_txt'] = 'Bank code';
-$wb['bank_name_txt'] = 'Bank name';
+$wb['limit_hterror_txt'] = 'Custom error docs disponível';
+$wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponíveis';
+$wb['limit_ssl_txt'] = 'SSL disponível';
+$wb['web_limits_txt'] = 'Limites web';
+$wb['email_limits_txt'] = 'Limites de e-mails';
+$wb['database_limits_txt'] = 'Limites de banco de dados';
+$wb['cron_job_limits_txt'] = 'Limites de tarefas no cron';
+$wb['dns_limits_txt'] = 'Limites de dns';
+$wb['virtualization_limits_txt'] = 'Limites de virtualização';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.';
+$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou deixe em branco).';
+$wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.';
+$wb['paypal_email_txt'] = 'e-mail do PayPal';
+$wb['company_id_txt'] = 'ID da empresa';
+$wb['bank_account_number_txt'] = 'Conta corrente';
+$wb['bank_account_owner_txt'] = 'Proprietário';
+$wb['bank_code_txt'] = 'Codigo do banco';
+$wb['bank_name_txt'] = 'Nome do banco';
 $wb['bank_account_iban_txt'] = 'IBAN';
-$wb['bank_account_swift_txt'] = 'BIC / Swift';
-$wb['aps_limits_txt'] = 'APS Installer Limits';
-$wb['limit_aps_txt'] = 'Max. number of APS instances';
-$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
-$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
-$wb['locked_txt'] = 'Locked';
-$wb['canceled_txt'] = 'Canceled';
-$wb['gender_m_txt'] = 'Mr.';
-$wb['gender_f_txt'] = 'Ms.';
-$wb['gender_txt'] = 'Title';
-$wb['customer_no_template_txt'] = 'Customer No. template';
-$wb['customer_no_template_error_regex_txt'] = 'The customer No. template contains invalid characters';
-$wb['customer_no_start_txt'] = 'Customer No. start value';
-$wb['customer_no_counter_txt'] = 'Customer No. counter';
-$wb['added_by_txt'] = 'Added by';
-$wb['added_date_txt'] = 'Added date';
-$wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.';
-$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
-$wb['client_limits_txt'] = 'Client Limits';
-$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['email_error_empty'] = 'Email is empty';
-$wb['web_servers_txt'] = 'Webservers';
-$wb['web_servers_placeholder'] = 'Select Webservers';
-$wb['no_web_server_error'] = 'At least one webserver must be selected.';
-$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before to remove it.';
-$wb['dns_servers_txt'] = 'DNS Server';
-$wb['dns_servers_placeholder'] = 'Select DNS Servers';
-$wb['no_dns_server_error'] = 'At least one DNS server must be selected.';
-$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before to remove it.';
-$wb['db_servers_txt'] = 'Database Server';
-$wb['db_servers_placeholder'] = 'Select Database Servers';
-$wb['no_db_server_error'] = 'At least one Database server must be selected.';
-$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before to remove it.';
-$wb['mail_servers_txt'] = 'Mailservers';
-$wb['mail_servers_placeholder'] = 'Select Mailservers';
-$wb['no_mail_server_error'] = 'At least one Mailserver must be selected.';
-$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before to remove it.';
-$wb['xmpp_limits_txt'] = 'XMPP Limits';
-$wb['xmpp_servers_txt'] = 'XMPP Servers';
-$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers';
-$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.';
-$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.';
-$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.';
-$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.';
-$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains';
-$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts';
-$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available';
-$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available';
-$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available';
-$wb['limit_xmpp_anon_txt'] = 'Anonymous host available';
-$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
-$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
-$wb['limit_xmpp_status_txt'] = 'Status host available';
-$wb['invalid_vat_id'] = 'The VAT ID is invalid.';
-$wb['limit_database_user_txt'] = 'Max. Database users';
-$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.';
-$wb['limit_database_quota_txt'] = 'Database quota';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
-$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available';
-$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['bank_account_swift_txt'] = 'BIC/Swift';
+$wb['aps_limits_txt'] = 'Limites de instalações de apps';
+$wb['limit_aps_txt'] = 'Limites de instâncias de apps';
+$wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.';
+$wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão';
+$wb['locked_txt'] = 'Bloqueado';
+$wb['canceled_txt'] = 'Cancelado';
+$wb['gender_m_txt'] = 'Sr.';
+$wb['gender_f_txt'] = 'Sra.';
+$wb['gender_txt'] = 'Título';
+$wb['customer_no_template_txt'] = 'No. do gabarito do cliente';
+$wb['customer_no_template_error_regex_txt'] = 'O número do gabarito contém caracteres inválidos.';
+$wb['customer_no_start_txt'] = 'Valor inicial do código do cliente';
+$wb['customer_no_counter_txt'] = 'Contador de código do cliente';
+$wb['added_by_txt'] = 'Cadastrado por';
+$wb['added_date_txt'] = 'Data do cadastro';
+$wb['limit_domainmodule_error_notint'] = 'Limite de módulos de domínio deve ser um número.';
+$wb['limit_domainmodule_txt'] = 'Limites de módulos de domínio';
+$wb['client_limits_txt'] = 'Limite de clientes';
+$wb['err_msg_master_tpl_set'] = 'Todas as configurações personalizadas de limites serão ignoradas se um gabarito mestre ou \"personalizado\" for selecionado.';
+$wb['btn_save_txt'] = 'Salvar';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['email_error_empty'] = 'e-mail em branco.';
+$wb['web_servers_txt'] = 'Servidores web';
+$wb['web_servers_placeholder'] = 'Selecionar servidores web';
+$wb['no_web_server_error'] = 'Ao menos um servidor de páginas deve ser selecionado.';
+$wb['web_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de páginas. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['dns_servers_txt'] = 'Servidores dns';
+$wb['dns_servers_placeholder'] = 'Selecione os servidores dns';
+$wb['no_dns_server_error'] = 'Ao menos um servidor dns deve ser selecionado.';
+$wb['dns_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor dns. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['db_servers_txt'] = 'Servidores de banco de dados';
+$wb['db_servers_placeholder'] = 'Selecione os servidores de banco de dados.';
+$wb['no_db_server_error'] = 'Ao menos um servidor de banco de dados deve ser selecionado.';
+$wb['db_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de banco de dados. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['mail_servers_txt'] = 'Servidores de e-mails';
+$wb['mail_servers_placeholder'] = 'Selecionar servidores de e-mails';
+$wb['no_mail_server_error'] = 'Ao menos um servidor de e-mail deve ser selecionado.';
+$wb['mail_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de e-mails. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['xmpp_limits_txt'] = 'Limites XMPP';
+$wb['xmpp_servers_txt'] = 'Servidores XMPP';
+$wb['xmpp_servers_placeholder'] = 'Selecione os servidores XMPP';
+$wb['no_xmpp_server_error'] = 'Ao menos um servidor XMPP deve ser selecionado.';
+$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor xmpp. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.';
+$wb['limit_xmpp_domain_error_notint'] = 'Limite de domínios xmpp deve ser um número.';
+$wb['limit_xmpp_user_error_notint'] = 'Limite de usuários xmpp deve ser um número.';
+$wb['limit_xmpp_domain_txt'] = 'Limite de domínios xmpp';
+$wb['limit_xmpp_user_txt'] = 'Limite de usuários xmpp';
+$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário disponível';
+$wb['limit_xmpp_pastebin_txt'] = 'Pastebin para MUC disponível';
+$wb['limit_xmpp_httparchive_txt'] = 'Arquivo HTTP para MUC disponível';
+$wb['limit_xmpp_anon_txt'] = 'Host anônimo disponível';
+$wb['limit_xmpp_vjud_txt'] = 'Diretório de usuário VJUD disponível';
+$wb['limit_xmpp_proxy_txt'] = 'Proxy bytestream disponível';
+$wb['limit_xmpp_status_txt'] = 'Estado do host disponível';
+$wb['invalid_vat_id'] = 'O VAT ID é inválido.';
+$wb['limit_database_user_txt'] = 'Limite de usuários de banco de dados';
+$wb['limit_database_user_error_notint'] = 'Limite de usuários de banco de dados deve ser um número.';
+$wb['limit_database_quota_txt'] = 'Cota para banco de dados';
+$wb['limit_database_quota_error_notint'] = 'A cota para banco de dados deve ser um número.';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponível';
+$wb['limit_directive_snippets_txt'] = 'Exibir seleção das configurações do servidor de páginas';
+$wb['password_click_to_set_txt'] = 'Configurar';
 ?>
diff --git a/interface/web/client/lib/lang/br_resellers_list.lng b/interface/web/client/lib/lang/br_resellers_list.lng
index a57555f25d..5a64358af9 100644
--- a/interface/web/client/lib/lang/br_resellers_list.lng
+++ b/interface/web/client/lib/lang/br_resellers_list.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'Revendedores';
+$wb['list_head_txt'] = 'Revendas';
 $wb['client_id_txt'] = 'ID';
 $wb['company_name_txt'] = 'Empresa';
 $wb['contact_name_txt'] = 'Contato';
 $wb['city_txt'] = 'Cidade';
 $wb['country_txt'] = 'País';
-$wb['add_new_record_txt'] = 'Adcionar um novo revendedor';
-$wb['customer_no_txt'] = 'Customer No.';
-$wb['username_txt'] = 'Username';
+$wb['add_new_record_txt'] = 'Adicionar nova revenda';
+$wb['customer_no_txt'] = 'Código do Cliente';
+$wb['username_txt'] = 'Usuário';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br.lng b/interface/web/dashboard/lib/lang/br.lng
index 17f7df406f..05935493bb 100644
--- a/interface/web/dashboard/lib/lang/br.lng
+++ b/interface/web/dashboard/lib/lang/br.lng
@@ -1,4 +1,4 @@
 <?php
-$wb['welcome_user_txt'] = 'Seja Bem-vindo %s';
+$wb['welcome_user_txt'] = 'Bem-vindo %s';
 $wb['available_modules_txt'] = 'Módulos Disponíveis';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_customer.lng b/interface/web/dashboard/lib/lang/br_dashlet_customer.lng
index 4fe6cb0ef7..5e73e41ff9 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_customer.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_customer.lng
@@ -1,4 +1,4 @@
 <?php
-$wb['customerdata_txt'] = 'My Data';
-$wb['edit_txt'] = 'Edit';
+$wb['customerdata_txt'] = 'Meus Dados';
+$wb['edit_txt'] = 'Editar';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng
index bd2402dbf6..de92eef6bf 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['databasequota_txt'] = 'Database Quota';
-$wb['database_txt'] = 'Database Name';
-$wb['used_txt'] = 'Used Space';
-$wb['quota_txt'] = 'Quota';
-$wb['no_database_accounts_txt'] = 'No databases found.';
+$wb['databasequota_txt'] = 'Cota para banco de dados';
+$wb['database_txt'] = 'Nome do banco de dados';
+$wb['used_txt'] = 'Espaço utilizado';
+$wb['quota_txt'] = 'Cota';
+$wb['no_database_accounts_txt'] = 'Nenhum banco de dados encontrado.';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_donate.lng b/interface/web/dashboard/lib/lang/br_dashlet_donate.lng
index c3dfe21ca0..a8ae8a69ef 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_donate.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_donate.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['donate_txt'] = 'The ISPConfig Hosting Control Panel is free software. Maybe you are aware, that it takes a lot of time and effort to develop, maintain and support a software project of this complexity. If you want to support the further development of ISPConfig, please consider making a donation. As a bonus you will get a copy of the new ISPConfig manual.';
-$wb['donate2_txt'] = 'The donation amount can be 5 EUR or more, the amount is chosen during checkout. The payment method is PayPal. You will receive an receipt as PDF from ISPConfig UG.';
-$wb['hide_btn_txt'] = 'Hide';
-$wb['donate_btn_txt'] = 'Support ISPConfig and get the Manual';
-$wb['more_btn_txt'] = 'More';
+$wb['donate_txt'] = 'O Painel de Controle de Hosting ISPConfig é um software livre. Você deve estar ciente que muito tempo e esforços estão envolvidos para desenvolver, manter e suportar um projeto desta complexidade. Caso você deseje apoiar o desenvolvimento do ISPConfig, por favor considere realizar uma doação. Como bônus você receberá uma cópia do manual do ISPConfig.';
+$wb['donate2_txt'] = 'O valor da doação pode ser 5 EUR ou mais, o qual é escolhido durante o pagamento. O método de pagamento é através do PayPal. Você receberá um recibo, em PDF, da ISPConfig UG.';
+$wb['hide_btn_txt'] = 'Ocultar';
+$wb['donate_btn_txt'] = 'Doar para ISPConfig e receber o manual';
+$wb['more_btn_txt'] = 'Mais';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng
index 8cae3dfb4f..413177c83d 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_invoice_client_settings.lng
@@ -1,4 +1,4 @@
 <?php
-$wb['invoice_client_settings_txt'] = 'Invoice Client Settings';
-$wb['edit_txt'] = 'Edit';
+$wb['invoice_client_settings_txt'] = 'Configuração de Faturas do Cliente';
+$wb['edit_txt'] = 'Editar';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng
index a680daa8f6..2a5a0d9bcc 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng
@@ -1,18 +1,18 @@
 <?php
-$wb['invoices_txt'] = 'Invoices';
-$wb['invoice_no_txt'] = 'Invoice No.';
-$wb['amount_txt'] = 'Amount';
-$wb['date_txt'] = 'Date';
-$wb['invoice_status_txt'] = 'Status';
-$wb['no_invoices_txt'] = 'No Invoices available.';
-$wb['paid_txt'] = 'Paid';
-$wb['unpaid_txt'] = 'Unpaid';
-$wb['paynow_txt'] = 'pay now';
+$wb['invoices_txt'] = 'Faturas';
+$wb['invoice_no_txt'] = 'No. da Fatura';
+$wb['amount_txt'] = 'Quantidade';
+$wb['date_txt'] = 'Data';
+$wb['invoice_status_txt'] = 'Estado';
+$wb['no_invoices_txt'] = 'Nenhuma fatura disponível.';
+$wb['paid_txt'] = 'Pago';
+$wb['unpaid_txt'] = 'Aberto';
+$wb['paynow_txt'] = 'pagar agora';
 $wb['proforma_txt'] = 'Proforma';
-$wb['refunded_txt'] = 'Refunded';
-$wb['not_refunded_txt'] = 'Not refunded';
-$wb['invoice_type_invoice_txt'] = 'Invoice';
+$wb['refunded_txt'] = 'Devolvido';
+$wb['not_refunded_txt'] = 'Sem devolução';
+$wb['invoice_type_invoice_txt'] = 'Fatura';
 $wb['invoice_type_proforma_txt'] = 'Proforma';
-$wb['invoice_type_refund_txt'] = 'Refund';
-$wb['invoice_type_reminder_txt'] = 'Reminder';
+$wb['invoice_type_refund_txt'] = 'Devolver';
+$wb['invoice_type_reminder_txt'] = 'Lembrar';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_limits.lng b/interface/web/dashboard/lib/lang/br_dashlet_limits.lng
index 693272a13e..896c474646 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_limits.lng
@@ -1,31 +1,31 @@
 <?php
-$wb['limits_txt'] = 'Limites da Conta';
+$wb['limits_txt'] = 'Limites das contas';
 $wb['of_txt'] = 'de';
-$wb['unlimited_txt'] = 'Ilimitado';
-$wb['limit_maildomain_txt'] = 'Número de domínios de correio';
-$wb['limit_mailbox_txt'] = 'Número de contas de correio';
-$wb['limit_mailalias_txt'] = 'Número de aliases de correio';
-$wb['limit_mailaliasdomain_txt'] = 'Número de aliases de domínio de correio';
-$wb['limit_mailforward_txt'] = 'Número de redirecionamentos de email';
-$wb['limit_mailcatchall_txt'] = 'Número de contas de email catchall';
-$wb['limit_mailrouting_txt'] = 'Número de rotas de email';
-$wb['limit_mailfilter_txt'] = 'Número de filtros de email';
-$wb['limit_fetchmail_txt'] = 'Número de contas fetchmail';
-$wb['limit_spamfilter_wblist_txt'] = 'Número de filtros spam white / blacklist';
-$wb['limit_spamfilter_user_txt'] = 'Número de usuários spamfilter';
-$wb['limit_spamfilter_policy_txt'] = 'Número de políticas spamfilter';
-$wb['limit_cron_txt'] = 'Número de tarefas Cron';
-$wb['limit_web_domain_txt'] = 'Número de domínios Web';
-$wb['limit_web_aliasdomain_txt'] = 'Número de aliases de domínio Web';
-$wb['limit_web_subdomain_txt'] = 'Número de subdomínios web';
-$wb['limit_ftp_user_txt'] = 'Número de contas FTP';
-$wb['limit_dns_zone_txt'] = 'Número de zonas DNS primárias';
-$wb['limit_dns_slave_zone_txt'] = 'Número de zonas DNS secundárias';
-$wb['limit_dns_record_txt'] = 'Número de registros DNS';
-$wb['limit_shell_user_txt'] = 'Número de usuários Shell';
-$wb['limit_webdav_user_txt'] = 'Número de usuários Webdav';
-$wb['limit_client_txt'] = 'Número de Clientes';
-$wb['limit_database_txt'] = 'Número de Banco de Dados';
-$wb['limit_mailmailinglist_txt'] = 'Número  de mailing lists';
-$wb['limit_domain_txt'] = 'Number of Domains';
+$wb['unlimited_txt'] = 'ilimitado';
+$wb['limit_maildomain_txt'] = 'Limite de domínios de e-mail';
+$wb['limit_mailbox_txt'] = 'Limite de contas de e-mail';
+$wb['limit_mailalias_txt'] = 'Limite de apelidos de domínio de e-mail';
+$wb['limit_mailaliasdomain_txt'] = 'Limite de subdomínios para e-mail';
+$wb['limit_mailforward_txt'] = 'Limite de redirecionamentos de e-mail';
+$wb['limit_mailcatchall_txt'] = 'Limite de contas cata tudo';
+$wb['limit_mailrouting_txt'] = 'Limite de transporte de e-mail';
+$wb['limit_mailfilter_txt'] = 'Limite de filtros de e-mail';
+$wb['limit_fetchmail_txt'] = 'Limite de contas de busca';
+$wb['limit_spamfilter_wblist_txt'] = 'Limite de filtros antispam lista branca/negra';
+$wb['limit_spamfilter_user_txt'] = 'Limite de usuários para filtros antispam';
+$wb['limit_spamfilter_policy_txt'] = 'Limite de políticas antispam';
+$wb['limit_cron_txt'] = 'Limite de tarefas no cron';
+$wb['limit_web_domain_txt'] = 'Limite de domínios de site';
+$wb['limit_web_aliasdomain_txt'] = 'Limite de apelidos de domínios de site';
+$wb['limit_web_subdomain_txt'] = 'Limite de subdomínios de site';
+$wb['limit_ftp_user_txt'] = 'Limite de contas ftp';
+$wb['limit_dns_zone_txt'] = 'Limite de zonas dns primárias';
+$wb['limit_dns_slave_zone_txt'] = 'Limite de zonas dns secundárias';
+$wb['limit_dns_record_txt'] = 'Limite de registros dns';
+$wb['limit_shell_user_txt'] = 'Limite de usuários shell';
+$wb['limit_webdav_user_txt'] = 'Limite de usuários webdav';
+$wb['limit_client_txt'] = 'Limite de clientes';
+$wb['limit_database_txt'] = 'Limite de banco de dados';
+$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mails';
+$wb['limit_domain_txt'] = 'Limite de domínios';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng
index 1ab1e66658..8aa300dffa 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['mailquota_txt'] = 'Mailbox Quota';
-$wb['email_txt'] = 'Email Address';
-$wb['name_txt'] = 'Name';
-$wb['used_txt'] = 'Used Space';
-$wb['quota_txt'] = 'Quota';
-$wb['no_email_accounts_txt'] = 'No email accounts found.';
+$wb['mailquota_txt'] = 'Cota para contas de e-mail';
+$wb['email_txt'] = 'e-mail';
+$wb['name_txt'] = 'Nome';
+$wb['used_txt'] = 'Espaço utilizado';
+$wb['quota_txt'] = 'Cota';
+$wb['no_email_accounts_txt'] = 'Nenhuma conta de e-mail encontrada.';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_modules.lng b/interface/web/dashboard/lib/lang/br_dashlet_modules.lng
index fab0506317..80af885820 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_modules.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_modules.lng
@@ -1,4 +1,4 @@
 <?php
 $wb['available_modules_txt'] = 'Módulos Disponíveis';
-$wb['go_to_txt'] = 'Go to';
+$wb['go_to_txt'] = 'Ir para';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_products.lng b/interface/web/dashboard/lib/lang/br_dashlet_products.lng
index a69b61d2fb..129b144801 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_products.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_products.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['products_txt'] = 'My Products';
-$wb['name_txt'] = 'Name';
-$wb['price_txt'] = 'Price';
-$wb['next_payment_date_txt'] = 'Next Invoice';
-$wb['no_products_txt'] = 'No products found.';
-$wb['edit_txt'] = 'Edit';
-$wb['cancellation_date_txt'] = 'Cancelled by';
+$wb['products_txt'] = 'Meus Produtos';
+$wb['name_txt'] = 'Nome';
+$wb['price_txt'] = 'Preço';
+$wb['next_payment_date_txt'] = 'Próxima Fatura';
+$wb['no_products_txt'] = 'Nenhum produto encontrado.';
+$wb['edit_txt'] = 'Editar';
+$wb['cancellation_date_txt'] = 'Cancelado por';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_quota.lng b/interface/web/dashboard/lib/lang/br_dashlet_quota.lng
index de7b5a8936..080e45d4e7 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_quota.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_quota.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['quota_txt'] = 'Website Harddisk Quota';
-$wb['domain_txt'] = 'Domain / Website';
-$wb['used_txt'] = 'Used space';
-$wb['hard_txt'] = 'Hard limit';
-$wb['soft_txt'] = 'Soft limit';
-$wb['no_sites_txt'] = 'No web sites found.';
+$wb['quota_txt'] = 'Cota para sites';
+$wb['domain_txt'] = 'Domínio/Site';
+$wb['used_txt'] = 'Espaço utilizado';
+$wb['hard_txt'] = 'Limite';
+$wb['soft_txt'] = 'Limite para alerta';
+$wb['no_sites_txt'] = 'Nenhum site encontrado.';
 ?>
diff --git a/interface/web/dashboard/lib/lang/br_dashlet_shop.lng b/interface/web/dashboard/lib/lang/br_dashlet_shop.lng
index 1e0b5361d7..48847abff4 100644
--- a/interface/web/dashboard/lib/lang/br_dashlet_shop.lng
+++ b/interface/web/dashboard/lib/lang/br_dashlet_shop.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['shop_txt'] = 'Order';
-$wb['name_txt'] = 'Name';
-$wb['price_txt'] = 'Price';
-$wb['setup_fee_txt'] = 'Setup Fee';
-$wb['no_products_txt'] = 'No products found.';
-$wb['order_txt'] = 'Order';
+$wb['shop_txt'] = 'Pedido';
+$wb['name_txt'] = 'Nome';
+$wb['price_txt'] = 'Preço';
+$wb['setup_fee_txt'] = 'Taxa Inicial';
+$wb['no_products_txt'] = 'Nenhum produto encontrado.';
+$wb['order_txt'] = 'Pedir';
 ?>
diff --git a/interface/web/dns/lib/lang/br.lng b/interface/web/dns/lib/lang/br.lng
index 6eebf3b47b..79d25833f4 100644
--- a/interface/web/dns/lib/lang/br.lng
+++ b/interface/web/dns/lib/lang/br.lng
@@ -1,22 +1,22 @@
 <?php
 $wb['DNS'] = 'DNS';
 $wb['Zones'] = 'Zonas';
-$wb['DNS A'] = 'DNS A';
-$wb['DNS ALIAS'] = 'ALIAS DNS';
-$wb['DNS CNAME'] = 'CNAME DNS';
-$wb['DNS hinfo'] = 'hinfo DNS';
-$wb['DNS mx'] = 'mx DNS';
-$wb['DNS ns'] = 'ns DNS';
-$wb['DNS ptr'] = 'ptr DNS';
-$wb['DNS RP'] = 'RP DNS';
-$wb['DNS Zone'] = 'Zona DNS';
+$wb['DNS A'] = 'A';
+$wb['DNS ALIAS'] = 'ALIAS';
+$wb['DNS CNAME'] = 'CNAME';
+$wb['DNS hinfo'] = 'hinfo';
+$wb['DNS mx'] = 'mx';
+$wb['DNS ns'] = 'ns';
+$wb['DNS ptr'] = 'ptr';
+$wb['DNS RP'] = 'RP';
+$wb['DNS Zone'] = 'Zona';
 $wb['Records'] = 'Registros';
-$wb['DNS SRV'] = 'SRV DNS';
-$wb['DNS TXT Record'] = 'Registro TXT DNS';
-$wb['DNS TXT'] = 'TXT DNS';
-$wb['DNS Wizard'] = 'Assistente de DNS';
-$wb['Add DNS Zone'] = 'Adcionar Zona DNS';
+$wb['DNS SRV'] = 'SRV';
+$wb['DNS TXT Record'] = 'Registro TXT';
+$wb['DNS TXT'] = 'TXT';
+$wb['DNS Wizard'] = 'Assistente dns';
+$wb['Add DNS Zone'] = 'Adicionar nova zona';
 $wb['Templates'] = 'Gabaritos';
-$wb['Secondary Zones'] = 'Secondary Zones';
-$wb['Import Zone File'] = 'Import Zone File';
+$wb['Secondary Zones'] = 'Zonas secundárias';
+$wb['Import Zone File'] = 'Importar arquivo de zona';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_a.lng b/interface/web/dns/lib/lang/br_dns_a.lng
index f1e44b7366..d151e36424 100644
--- a/interface/web/dns/lib/lang/br_dns_a.lng
+++ b/interface/web/dns/lib/lang/br_dns_a.lng
@@ -1,17 +1,17 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
 $wb['data_txt'] = 'Endereço IP';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'Hostname em branco.';
-$wb['name_error_regex'] = 'Hostname tem um formato inválido.';
-$wb['data_error_empty'] = 'Endereço IP em branco';
-$wb['ip_error_wrong'] = 'Endereço IP formato inválido';
-$wb['data_error_duplicate'] = 'Registro A duplicado';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Endereço IP em branco.';
+$wb['ip_error_wrong'] = 'Endereço IP inválido.';
+$wb['data_error_duplicate'] = 'Registro A duplicado.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_a_list.lng b/interface/web/dns/lib/lang/br_dns_a_list.lng
index 2175b4fe5c..0abaf5493d 100644
--- a/interface/web/dns/lib/lang/br_dns_a_list.lng
+++ b/interface/web/dns/lib/lang/br_dns_a_list.lng
@@ -8,7 +8,7 @@ $wb['data_txt'] = 'Data';
 $wb['aux_txt'] = 'Prioridade';
 $wb['type_txt'] = 'Tipo';
 $wb['ttl_txt'] = 'TTL';
-$wb['add_new_record_txt'] = 'Adcionar um novo registro DNS (A)';
+$wb['add_new_record_txt'] = 'Adicionar um novo registro (A)';
 $wb['page_txt'] = 'Página';
 $wb['page_of_txt'] = 'de';
 $wb['delete_confirmation'] = 'Tem certeza que deseja remover este registro?';
diff --git a/interface/web/dns/lib/lang/br_dns_aaaa.lng b/interface/web/dns/lib/lang/br_dns_aaaa.lng
index af5272a2a6..49ce60e3fd 100644
--- a/interface/web/dns/lib/lang/br_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/br_dns_aaaa.lng
@@ -1,16 +1,16 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
 $wb['data_txt'] = 'Endereço IPv6';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'O Hostname está em branco.';
-$wb['name_error_regex'] = 'O Hostname está com formato inválido.';
-$wb['data_error_empty'] = 'Endereço IP em branco';
-$wb['ip_error_wrong'] = 'Endereço IP com formato inválido';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Endereço IP em branco.';
+$wb['ip_error_wrong'] = 'Endereço IP inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_alias.lng b/interface/web/dns/lib/lang/br_dns_alias.lng
index 814ccb2625..b94b7f2d31 100644
--- a/interface/web/dns/lib/lang/br_dns_alias.lng
+++ b/interface/web/dns/lib/lang/br_dns_alias.lng
@@ -1,16 +1,16 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
-$wb['data_txt'] = 'Hostname Alvo';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Hospedeiro de destino';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de registros DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'Hostname está em branco.';
-$wb['name_error_regex'] = 'O hostname está em um formato inválido.';
-$wb['data_error_empty'] = 'Hostname de destino está em branco';
-$wb['data_error_regex'] = 'O hostname de destino está em um formato inválido.';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Hospedeiro de destino em branco.';
+$wb['data_error_regex'] = 'Hospedeiro de destino inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_cname.lng b/interface/web/dns/lib/lang/br_dns_cname.lng
index 7085854bc3..82adab5a19 100644
--- a/interface/web/dns/lib/lang/br_dns_cname.lng
+++ b/interface/web/dns/lib/lang/br_dns_cname.lng
@@ -1,17 +1,17 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
-$wb['data_txt'] = 'Hostname de Destino';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Hospedeiro de destino';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de registros DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'Hostname está em branco.';
-$wb['name_error_regex'] = 'O hostname está em um formato inválido.';
-$wb['data_error_empty'] = 'Hostname de destino está em branco';
-$wb['data_error_regex'] = 'O hostname de destino está em um formato inválido.';
-$wb['data_error_duplicate'] = 'Registros A ou CNAME duplicados';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Hospedeiro de destino em branco.';
+$wb['data_error_regex'] = 'Hospedeiro de destino inválido.';
+$wb['data_error_duplicate'] = 'Registros A ou CNAME duplicados.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_dkim.lng b/interface/web/dns/lib/lang/br_dns_dkim.lng
index b7a2b9be7d..9f4a805720 100644
--- a/interface/web/dns/lib/lang/br_dns_dkim.lng
+++ b/interface/web/dns/lib/lang/br_dns_dkim.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['public_key_txt'] = 'Public-Key';
+$wb['public_key_txt'] = 'Chave pública';
 $wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Active';
-$wb['record_exists_txt'] = 'DNS-Record already exists';
-$wb['dkim_disabled_txt'] = 'DKIM disabled for this mail-domain';
-$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
-$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
-$wb['selector_txt'] = 'DKIM-Selector';
+$wb['active_txt'] = 'Ativo';
+$wb['record_exists_txt'] = 'Registro dns já existe.';
+$wb['dkim_disabled_txt'] = 'DKIM desabilitado para este domínio.';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
+$wb['selector_txt'] = 'Seletor DKIM';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng
index cf78bb8eed..5e79ab0c72 100644
--- a/interface/web/dns/lib/lang/br_dns_dmarc.lng
+++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng
@@ -1,50 +1,50 @@
 <?php
-$wb['data_txt'] = 'DMARC Record';
-$wb['domain_txt'] = 'Domain';
-$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
-$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
-$wb['dmarc_policy_none_txt'] = 'none';
-$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
-$wb['dmarc_policy_reject_txt'] = 'reject';
-$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
-$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
-$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
-$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
-$wb['dmarc_fo_txt'] = 'Forensic reporting options';
-$wb['dmarc_fo0_txt'] = 'Generate reports if all underlying authentication mechanisms fail to produce a DMARC \'pass\' result.';
-$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
-$wb['dmarc_fod_txt'] = 'Generate report if DKIM signature failed to verify.';
-$wb['dmarc_fos_txt'] = 'Generate report if SPF failed.';
-$wb['dmarc_adkim_txt'] = 'DKIM identifier alignment';
-$wb['dmarc_adkim_note_txt'] = '\'strict\' requires exact matching between DKIM domain and email\'s from';
+$wb['data_txt'] = 'Registro DMARC';
+$wb['domain_txt'] = 'Domínio';
+$wb['dmarc_policy_txt'] = 'Política de recepção de e-mails';
+$wb['dmarc_policy_note_txt'] = 'Como os \"ISPs\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).';
+$wb['dmarc_policy_none_txt'] = 'não fazer nada';
+$wb['dmarc_policy_quarantine_txt'] = 'quarentena';
+$wb['dmarc_policy_reject_txt'] = 'rejeitar';
+$wb['dmarc_rua_txt'] = 'Agregrar os dados por endereço';
+$wb['dmarc_rua_note_txt'] = 'Endereços de e-mail para receber relatórios do sistema sobre mensagens com falha e controles DMARC do domínio (separados por espaço em branco)';
+$wb['dmarc_ruf_txt'] = 'Relatório forense de dados por endereço';
+$wb['dmarc_ruf_note_txt'] = 'Endereços de e-mail para receber amostras de mensagens com falha e controles DMARC do domínio (separados por espaço em branco)';
+$wb['dmarc_fo_txt'] = 'Opções de relatório forense';
+$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \'pass\'.';
+$wb['dmarc_fo1_txt'] = 'Gerar relatório se algum mecanismo falhar.';
+$wb['dmarc_fod_txt'] = 'Gerar relatório se assinatura DKIM falhar na verificação.';
+$wb['dmarc_fos_txt'] = 'Gerar relatório se o SPF falhar.';
+$wb['dmarc_adkim_txt'] = 'Parametrização do identificador DKIM';
+$wb['dmarc_adkim_note_txt'] = 'Modo \'strict\' exige combinação exata entre o DKIM do domínio e e-mails';
 $wb['dmarc_adkim_r_txt'] = 'relaxed';
 $wb['dmarc_adkim_s_txt'] = 'strict';
-$wb['dmarc_aspf_txt'] = 'SPF identifier alignment';
-$wb['dmarc_aspf_note_txt'] = '\'strict\' requires exact matching between SPF domain and email\'s from';
+$wb['dmarc_aspf_txt'] = 'Parametrização do identificador SPF';
+$wb['dmarc_aspf_note_txt'] = 'Modo \'strict\' exige combinação exata entre o SPF do domínio e e-mails';
 $wb['dmarc_aspf_r_txt'] = 'relaxed';
 $wb['dmarc_aspf_s_txt'] = 'strict';
-$wb['dmarc_rf_txt'] = 'Report Format';
-$wb['dmarc_rf_afrf_txt'] = 'Authentication Failure Reporting Format';
-$wb['dmarc_rf_iodef_txt'] = 'Incident Object Description Exchange Format';
-$wb['dmarc_pct_txt'] = 'Apply Policy to this Percentage';
-$wb['dmarc_pct_note_txt'] = '% (100 default). Messages in percent from the domain you want ISPs to check.';
-$wb['dmarc_ri_txt'] = 'Reporting Interval';
-$wb['dmarc_ri_note_txt'] = 'Seconds (default=86400). The time in seconds that aggregate reports should be generate (86400 represents 1 day).';
-$wb['dmarc_sp_txt'] = 'Subdomain Policy (Defaults to same as domain).';
-$wb['dmarc_sp_same_txt'] = 'same as domain';
-$wb['dmarc_sp_none_txt'] = 'none';
-$wb['dmarc_sp_quarantine_txt'] = 'quarantine';
-$wb['dmarc_sp_reject_txt'] = 'reject';
+$wb['dmarc_rf_txt'] = 'Formatação do relatório';
+$wb['dmarc_rf_afrf_txt'] = 'Falha de autenticação para formatação do relatório';
+$wb['dmarc_rf_iodef_txt'] = 'Formato da descrição de troca objeto de incidentes';
+$wb['dmarc_pct_txt'] = 'Aplicar políticas para este percentual';
+$wb['dmarc_pct_note_txt'] = '% (100 padrão). Percentual de mensagens do domínio que serão verificadas.';
+$wb['dmarc_ri_txt'] = 'Intervalo de relatórios';
+$wb['dmarc_ri_note_txt'] = 'Segundos (padrão=86400). Valor em segundos que os relatórios de agregação serão gerados (86400 representa 1 dia).';
+$wb['dmarc_sp_txt'] = 'Políticas de subdomínio (padrão é o mesmo do domínio).';
+$wb['dmarc_sp_same_txt'] = 'mesmo do domínio';
+$wb['dmarc_sp_none_txt'] = 'nenhum';
+$wb['dmarc_sp_quarantine_txt'] = 'quarentena';
+$wb['dmarc_sp_reject_txt'] = 'rejeitar';
 $wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Active';
-$wb['dmarc_policy_error_txt'] = 'Only policy \'none\' is allowed without DKIM-signed emails.';
-$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
-$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
-$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
-$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
-$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
-$wb['record_exists_txt'] = 'DNS-Record already exists';
-$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
-$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['active_txt'] = 'Ativo';
+$wb['dmarc_policy_error_txt'] = 'Somente a política \'nenhum\' é permitida para e-mails sem assinatura DKIM.';
+$wb['dmarc_no_dkim_txt'] = 'Nenhum registro DKIM ativo.';
+$wb['dmarc_no_spf_txt'] = 'Nenhum registro SPF ativo.';
+$wb['dmarc_more_spf_txt'] = 'Mais de um registro SPF ativo.';
+$wb['dmarc_invalid_email_txt'] = 'e-mail inválido.';
+$wb['dmarc_empty_txt'] = 'Registro DMARC em branco - especifique ao menos um';
+$wb['record_exists_txt'] = 'Registro dns já existe.';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_ds.lng b/interface/web/dns/lib/lang/br_dns_ds.lng
index c3622dc5b5..2f918c77f0 100644
--- a/interface/web/dns/lib/lang/br_dns_ds.lng
+++ b/interface/web/dns/lib/lang/br_dns_ds.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'type';
+$wb['server_id_txt'] = 'Servidor';
+$wb['zone_txt'] = 'Zona';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
 $wb['data_txt'] = 'Data';
 $wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Active';
-$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
-$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
-$wb['name_error_empty'] = 'The hostname is empty.';
-$wb['name_error_regex'] = 'The hostname has the wrong format.';
-$wb['data_error_empty'] = 'Text empty';
-$wb['data_error_regex'] = 'Text format invalid';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
-$wb['invalid_type_ds'] = 'DS-Record has a wrong format.';
+$wb['active_txt'] = 'Ativo';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Data em branco.';
+$wb['data_error_regex'] = 'Data inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
+$wb['invalid_type_ds'] = 'Registro DS inválido.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_hinfo.lng b/interface/web/dns/lib/lang/br_dns_hinfo.lng
index 2fd2543413..8ca96771ad 100644
--- a/interface/web/dns/lib/lang/br_dns_hinfo.lng
+++ b/interface/web/dns/lib/lang/br_dns_hinfo.lng
@@ -1,16 +1,16 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
-$wb['data_txt'] = 'Informações do Host';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Hospedeiro';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'Hostname em branco.';
-$wb['name_error_regex'] = 'Hostname tem um formato inválido.';
-$wb['data_error_empty'] = 'Endereço IP em branco';
-$wb['data_error_regex'] = 'Endereço IP formato inválido';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Endereço IP em branco.';
+$wb['data_error_regex'] = 'Endereço IP inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_import.lng b/interface/web/dns/lib/lang/br_dns_import.lng
index 8f67eba14c..69d68a24d6 100644
--- a/interface/web/dns/lib/lang/br_dns_import.lng
+++ b/interface/web/dns/lib/lang/br_dns_import.lng
@@ -1,16 +1,16 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['client_txt'] = 'Client';
-$wb['btn_save_txt'] = 'Import Zonefile';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['domain_txt'] = 'Domain';
-$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
-$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
-$wb['zonefile_to_import_txt'] = 'Zone File';
-$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
-$wb['title'] = 'Import Zone Files';
-$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-$wb['zone_file_import_txt'] = 'Zone File Import';
-$wb['error_no_server_id'] = 'No server provided.';
-$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
+$wb['server_id_txt'] = 'Servidor';
+$wb['client_txt'] = 'Cliente';
+$wb['btn_save_txt'] = 'Importar arquivo de zona';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['domain_txt'] = 'Domínio';
+$wb['zone_file_successfully_imported_txt'] = 'O arquivo de zona foi importado com sucesso!';
+$wb['error_no_valid_zone_file_txt'] = 'Este arquivo não parece ser um arquivo de zona válido!';
+$wb['zonefile_to_import_txt'] = 'Arquivo de zona';
+$wb['domain_field_desc_txt'] = 'Pode ficar em branco caso o domínio é o mesmo nome do arquivo ou faz parte do conteúdo do mesmo.';
+$wb['title'] = 'Importar arquivos de zonas';
+$wb['no_file_uploaded_error'] = 'Nenhum arquivo de zona importado.';
+$wb['zone_file_import_txt'] = 'Importar arquivo de zona';
+$wb['error_no_server_id'] = 'Nenhum servidor informado.';
+$wb['error_not_allowed_server_id'] = 'O servidor selecionado não tem permissão para esta conta.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_loc.lng b/interface/web/dns/lib/lang/br_dns_loc.lng
index dc9ad9a006..ad094a77e1 100644
--- a/interface/web/dns/lib/lang/br_dns_loc.lng
+++ b/interface/web/dns/lib/lang/br_dns_loc.lng
@@ -1,16 +1,16 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'type';
+$wb['server_id_txt'] = 'Servidor';
+$wb['zone_txt'] = 'Zona';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
 $wb['data_txt'] = 'Data';
 $wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Active';
-$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
-$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
-$wb['name_error_empty'] = 'The hostname is empty.';
-$wb['name_error_regex'] = 'The hostname has the wrong format.';
-$wb['data_error_empty'] = 'Text empty';
-$wb['data_error_regex'] = 'Text format invalid';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['active_txt'] = 'Ativo';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Upload (pastebin) para MUC';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Data em branco.';
+$wb['data_error_regex'] = 'Data inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_mx.lng b/interface/web/dns/lib/lang/br_dns_mx.lng
index 25d7643a60..0685c9533f 100644
--- a/interface/web/dns/lib/lang/br_dns_mx.lng
+++ b/interface/web/dns/lib/lang/br_dns_mx.lng
@@ -1,18 +1,18 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
-$wb['data_txt'] = 'Hostname do servidor de correio';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Hospedeiro do servidor de e-mails';
 $wb['aux_txt'] = 'Prioridade';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'Hostname em branco.';
-$wb['name_error_regex'] = 'Hostname tem um formato inválido.';
-$wb['data_error_empty'] = 'Hostname do servidor de correio em branco';
-$wb['data_error_regex'] = 'Hostname do servidor de correio formato inválido';
-$wb['duplicate_mx_record_txt'] = 'Duplicate MX record.';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Hospedeiro do servidor de e-mails em branco.';
+$wb['data_error_regex'] = 'Hospedeiro do servidor de e-mails inválido.';
+$wb['duplicate_mx_record_txt'] = 'Registro MX duplicado.';
+$wb['ttl_range_error'] = 'O ttl minímo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_ns.lng b/interface/web/dns/lib/lang/br_dns_ns.lng
index 76e11b53ea..3134fbcf19 100644
--- a/interface/web/dns/lib/lang/br_dns_ns.lng
+++ b/interface/web/dns/lib/lang/br_dns_ns.lng
@@ -1,16 +1,16 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Zona';
-$wb['type_txt'] = 'tipo';
-$wb['data_txt'] = 'Hostname Servidor de Nomes';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Servidor de nomes';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'A zona está em branco.';
-$wb['name_error_regex'] = 'A zona está com formato inválido.';
-$wb['data_error_empty'] = 'Servidor de nomes em branco';
-$wb['data_error_regex'] = 'Servidor de nomes com formato inválido';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Zona em branco.';
+$wb['name_error_regex'] = 'Zona inválida.';
+$wb['data_error_empty'] = 'Servidor de nomes em branco.';
+$wb['data_error_regex'] = 'Servidor de nomes inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_ptr.lng b/interface/web/dns/lib/lang/br_dns_ptr.lng
index 82ef5513a7..ccb4f8de75 100644
--- a/interface/web/dns/lib/lang/br_dns_ptr.lng
+++ b/interface/web/dns/lib/lang/br_dns_ptr.lng
@@ -1,16 +1,16 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Nnome';
-$wb['type_txt'] = 'tipo';
-$wb['data_txt'] = 'Hostname Canônico';
+$wb['name_txt'] = 'Nome';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Hospedeiro canônico';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'Hostname em branco.';
-$wb['name_error_regex'] = 'Hostname tem um formato inválido.';
-$wb['data_error_empty'] = 'Endereço IP em branco';
-$wb['data_error_regex'] = 'Endereço IP formato inválido';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Endereço IP em branco.';
+$wb['data_error_regex'] = 'Endereço IP inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_rp.lng b/interface/web/dns/lib/lang/br_dns_rp.lng
index 705c0c7548..5d0236b621 100644
--- a/interface/web/dns/lib/lang/br_dns_rp.lng
+++ b/interface/web/dns/lib/lang/br_dns_rp.lng
@@ -1,16 +1,16 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
-$wb['data_txt'] = 'Pessoa Responsável';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Responsável';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'O Hostname está em branco.';
-$wb['name_error_regex'] = 'O Hostname está com formato inválido.';
-$wb['data_error_empty'] = 'Pessoa responsável em branco';
-$wb['data_error_regex'] = 'Pessoa responsável formato inválido';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Responsável em branco.';
+$wb['data_error_regex'] = 'Responsável inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_slave.lng b/interface/web/dns/lib/lang/br_dns_slave.lng
index f0d6ff5ad5..bb0f925d62 100644
--- a/interface/web/dns/lib/lang/br_dns_slave.lng
+++ b/interface/web/dns/lib/lang/br_dns_slave.lng
@@ -1,17 +1,17 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
-$wb['origin_txt'] = 'Zona DNS';
+$wb['origin_txt'] = 'Zona dns';
 $wb['ns_txt'] = 'NS';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_slave_zone_txt'] = 'O número máximo de zonas DNS secundárias foi atingido.';
+$wb['limit_dns_slave_zone_txt'] = 'O limite de zonas dns secundárias para esta conta foi alcançado.';
 $wb['client_txt'] = 'Cliente';
-$wb['xfer_txt'] = 'Permitir transferência da zona para<br />estes IPs (IPs separados por vírgulas)';
-$wb['server_id_error_empty'] = 'Nenhum servidor selecionado';
-$wb['origin_error_empty'] = 'Zona vazia';
-$wb['origin_error_unique'] = 'Já existe um registro para esta zona.';
-$wb['origin_error_regex'] = 'Formato inválido para esta zona.';
-$wb['ns_error_regex'] = 'Formato inválido para este NS.';
-$wb['eg_domain_tld'] = 'e.x. dominio.ext.';
-$wb['ipv4_form_txt'] = 'Formato IPv4 - e.x. 1.2.3.4';
-$wb['secondary_zone_txt'] = 'Secondary DNS Zone';
+$wb['xfer_txt'] = 'Permitir transferência da zona para estes IPs (IPs separados por vírgulas)';
+$wb['server_id_error_empty'] = 'Nenhum servidor selecionado.';
+$wb['origin_error_empty'] = 'Zona em branco.';
+$wb['origin_error_unique'] = 'Já existe um registro igual para esta zona.';
+$wb['origin_error_regex'] = 'Zona inválida.';
+$wb['ns_error_regex'] = 'Registro NS inválido.';
+$wb['eg_domain_tld'] = 'ex.: dominio.com.';
+$wb['ipv4_form_txt'] = 'Formato IPv4 - ex.: 1.2.3.4';
+$wb['secondary_zone_txt'] = 'Zona dns secundária';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng
index 59d84877c6..31fa520d92 100644
--- a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng
+++ b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Secondary DNS-Zones';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['origin_txt'] = 'Zone';
+$wb['list_head_txt'] = 'Zonas dns secundárias';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'Servidor';
+$wb['origin_txt'] = 'Zona';
 $wb['ns_txt'] = 'NS';
-$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone';
-$wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['add_new_record_txt'] = 'Adicionar nova zona';
+$wb['eg_domain_tld'] = 'ex.: dominio.com.';
+$wb['sys_groupid_txt'] = 'Cliente';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_slave_list.lng b/interface/web/dns/lib/lang/br_dns_slave_list.lng
index 9741d07300..f9b774c03e 100644
--- a/interface/web/dns/lib/lang/br_dns_slave_list.lng
+++ b/interface/web/dns/lib/lang/br_dns_slave_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Zonas DNS Secundárias';
+$wb['list_head_txt'] = 'Zonas dns secundárias';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['origin_txt'] = 'Zona';
 $wb['ns_txt'] = 'NS';
-$wb['add_new_record_txt'] = 'Adicionar nova Zona DNS secundária';
-$wb['eg_domain_tld'] = 'e.x. dominio.ext.';
+$wb['add_new_record_txt'] = 'Adicionar nova zona';
+$wb['eg_domain_tld'] = 'ex.: dominio.com.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_soa.lng b/interface/web/dns/lib/lang/br_dns_soa.lng
index cf3bd7c6ae..632d254957 100644
--- a/interface/web/dns/lib/lang/br_dns_soa.lng
+++ b/interface/web/dns/lib/lang/br_dns_soa.lng
@@ -2,43 +2,43 @@
 $wb['server_id_txt'] = 'Servidor';
 $wb['origin_txt'] = 'Zona (SOA)';
 $wb['ns_txt'] = 'NS';
-$wb['mbox_txt'] = 'Correio';
+$wb['mbox_txt'] = 'e-mail';
 $wb['serial_txt'] = 'Serial';
 $wb['refresh_txt'] = 'Refresh';
 $wb['retry_txt'] = 'Retry';
 $wb['expire_txt'] = 'Expire';
 $wb['minimum_txt'] = 'Minimum';
 $wb['ttl_txt'] = 'TTL';
-$wb['xfer_txt'] = 'Permitir transferências de zona para <br />estes IPs (IPs separados por vírgula)';
+$wb['xfer_txt'] = 'Permitir transferências de zona para estes IPs (IPs separados por vírgula).';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_zone_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
+$wb['limit_dns_zone_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
 $wb['client_txt'] = 'Cliente';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['server_id_error_empty'] = 'Servidor não selecionado';
-$wb['origin_error_empty'] = 'Zona vazia.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['server_id_error_empty'] = 'Servidor não selecionado.';
+$wb['origin_error_empty'] = 'Zona em branco.';
 $wb['origin_error_unique'] = 'Este registro já existe nesta zona.';
-$wb['origin_error_regex'] = 'Formato de zona inválido.';
-$wb['ns_error_regex'] = 'NS tem um formato inválido.';
-$wb['mbox_error_empty'] = 'Correio está em branco.';
-$wb['mbox_error_regex'] = 'Correio com formato inválido.';
-$wb['also_notify_txt'] = 'Also Notify';
-$wb['also_notify_error_regex'] = 'Please use an IP address.';
+$wb['origin_error_regex'] = 'Zona inválida.';
+$wb['ns_error_regex'] = 'NS inválido.';
+$wb['mbox_error_empty'] = 'Endereço de e-mail em branco.';
+$wb['mbox_error_regex'] = 'Endereço de e-mail inválido.';
+$wb['also_notify_txt'] = 'Também notificar';
+$wb['also_notify_error_regex'] = 'Por favor, insira um endereço IP.';
 $wb['update_acl_txt'] = 'Atualizar ACL';
 $wb['seconds_txt'] = 'Segundos';
-$wb['eg_domain_tld'] = 'e.x. dominio.ext';
-$wb['eg_ns1_domain_tld'] = 'e.x. ns1.dominio.ext';
-$wb['eg_webmaster_domain_tld'] = 'e.x. webmaster@dominio.ext';
-$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'The Domain can not be changed. Please ask your Administrator if you want to change the domain name.';
-$wb['refresh_range_error'] = 'Min. Refresh time is 60 seconds.';
-$wb['retry_range_error'] = 'Min. Retry time is 60 seconds.';
-$wb['expire_range_error'] = 'Min. Expire time is 60 seconds.';
-$wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
-$wb['xfer_error_regex'] = 'Also notify: Please use an IP address.';
-$wb['dnssec_info_txt'] = 'DNSSEC DS-Data for registry';
-$wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)';
-$wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delievered in signed format afterwards.';
-$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.';
-$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
+$wb['eg_domain_tld'] = 'ex.: dominio.com';
+$wb['eg_ns1_domain_tld'] = 'ex.: ns1.dominio.com';
+$wb['eg_webmaster_domain_tld'] = 'ex.: webmaster@dominio.com';
+$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'O domínio não pode ser modificado. Por favor, entre em contato com o administrador do sistema se você deseja modificar este domínio.';
+$wb['refresh_range_error'] = 'Tempo mínimo de atualizações (refresh) são 60 segundos.';
+$wb['retry_range_error'] = 'Tempo mínimo de repetições (retry) são 60 segundos.';
+$wb['expire_range_error'] = 'Tempo mínimo para expirar (expire) são 60 segundos.';
+$wb['minimum_range_error'] = 'Tempo mínimo (minimum) são 60 segundos.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
+$wb['xfer_error_regex'] = 'Também notificar: Por favor, insira um endereço IP.';
+$wb['dnssec_info_txt'] = 'Registro para DNSSEC (DS-Data)';
+$wb['dnssec_wanted_txt'] = 'Zona assinada (DNSSEC)';
+$wb['dnssec_wanted_info'] = 'Quando desabilitar o DNSSEC as chaves não são eliminadas mas a zona não será disponibilizada assinada.';
+$wb['error_not_allowed_server_id'] = 'O servidor selecionado não tem permissão para esta conta.';
+$wb['soa_cannot_be_changed_txt'] = 'A zona SOA não pode ser modificada. Entre em contato com o administrador para alterar esta zona.';
+$wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng
index 183d1a8349..dd3169a830 100644
--- a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng
+++ b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'DNS-Zones';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['origin_txt'] = 'Zone';
+$wb['list_head_txt'] = 'Zonas dns';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'Servidor';
+$wb['origin_txt'] = 'Zona';
 $wb['ns_txt'] = 'NS';
-$wb['mbox_txt'] = 'Email';
-$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard';
-$wb['add_new_record_txt'] = 'Add new DNS Zone manually';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['mbox_txt'] = 'e-mail';
+$wb['add_new_record_wizard_txt'] = 'Adicionar nova zona dns através do assistente';
+$wb['add_new_record_txt'] = 'Adicionar nova zona dns manualmente';
+$wb['sys_groupid_txt'] = 'Cliente';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_soa_list.lng b/interface/web/dns/lib/lang/br_dns_soa_list.lng
index 4de41c269d..ddb24697e3 100644
--- a/interface/web/dns/lib/lang/br_dns_soa_list.lng
+++ b/interface/web/dns/lib/lang/br_dns_soa_list.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'Zonas DNS';
+$wb['list_head_txt'] = 'Zonas dns';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['origin_txt'] = 'Zona';
 $wb['ns_txt'] = 'NS';
-$wb['mbox_txt'] = 'Correio';
-$wb['add_new_record_txt'] = 'Adcionar uma nova Zona DNS';
-$wb['add_new_record_wizard_txt'] = 'Adicionar nova zona DNS com Assistente';
-$wb['import_zone_file_txt'] = 'Import Zone File';
+$wb['mbox_txt'] = 'e-mail';
+$wb['add_new_record_txt'] = 'Adicionar nova zona dns';
+$wb['add_new_record_wizard_txt'] = 'Adicionar nova zona dns através do assistente';
+$wb['import_zone_file_txt'] = 'Importar arquivo de zona';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_spf.lng b/interface/web/dns/lib/lang/br_dns_spf.lng
index df8d1fe145..ebd652ef16 100644
--- a/interface/web/dns/lib/lang/br_dns_spf.lng
+++ b/interface/web/dns/lib/lang/br_dns_spf.lng
@@ -1,25 +1,25 @@
 <?php
-$wb['data_txt'] = 'SPF-Record';
-$wb['spf_mechanism_txt'] = 'SPF Mechanism';
-$wb['spf_mechanism_pass_txt'] = 'Pass - allow mail from other senders';
-$wb['spf_mechanism_fail_txt'] = 'Fail - reject mail from other senders';
-$wb['spf_mechanism_softfail_txt'] = 'SoftFail - allow mail from other senders but mark the email';
-$wb['spf_mechanism_neutral_txt'] = 'Neutral - do nothing';
-$wb['spf_mx_txt'] = 'Allow servers listed as MX to send email for this domain';
-$wb['spf_a_txt'] = 'Allow current IP address of the domain to send email for this domain';
-$wb['spf_ip_txt'] = 'Additional IP addresses in CIDR format that deliver or relay mail for this domain';
-$wb['spf_ip_note_txt'] = '(Sepearate IPs with whitespaces)';
-$wb['spf_invalid_ip_txt'] = 'Invalid IP-address';
-$wb['spf_hostname_txt'] = 'Any other server hostname that may deliver or relay mail for this domain';
-$wb['spf_hostname_note_txt'] = '(Sepearate hostnames with whitespaces)';
-$wb['spf_invalid_hostname_txt'] = 'Invalid hostname';
-$wb['spf_domain_txt'] = 'Any domains that may deliver or relay mail for this domain';
-$wb['spf_domain_note_txt'] = '(Sepearate domains with whitespaces)';
-$wb['spf_invalid_domain_txt'] = 'Invalid domainname';
+$wb['data_txt'] = 'Registro SPF';
+$wb['spf_mechanism_txt'] = 'Mecanismo SPF';
+$wb['spf_mechanism_pass_txt'] = 'Pass - permite e-mail de outros remetentes';
+$wb['spf_mechanism_fail_txt'] = 'Fail - rejeita e-mails de outros remetentes';
+$wb['spf_mechanism_softfail_txt'] = 'SoftFail - permite e-mails de outros remetentes mas marca os mesmos';
+$wb['spf_mechanism_neutral_txt'] = 'Neutral - não faz nada';
+$wb['spf_mx_txt'] = 'Permite servidores listados como MX enviar e-mail deste domínio';
+$wb['spf_a_txt'] = 'Permite o endereço IP atual do domínio enviar e-mails deste domínio';
+$wb['spf_ip_txt'] = 'Endereço IP adicional no formato CIDR pode entregar ou retransmitir e-mails para este domínio';
+$wb['spf_ip_note_txt'] = '(endereços IPs separados por espaços em branco)';
+$wb['spf_invalid_ip_txt'] = 'Endereço IP inválido.';
+$wb['spf_hostname_txt'] = 'Qualquer outro servidor pode entregar ou retransmitir e-mails para este domínio';
+$wb['spf_hostname_note_txt'] = '(hospedeiros separados por espaço em branco)';
+$wb['spf_invalid_hostname_txt'] = 'Hospedeiro inválido';
+$wb['spf_domain_txt'] = 'Qualquer domínio pode entregar ou retransmitir e-mails para este domínio';
+$wb['spf_domain_note_txt'] = '(domínios separados por espaço em branco)';
+$wb['spf_invalid_domain_txt'] = 'Domínio inválido.';
 $wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Active';
-$wb['record_exists_txt'] = 'DNS-Record already exists';
-$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
-$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['active_txt'] = 'Ativo';
+$wb['record_exists_txt'] = 'Registro DS já existe.';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_srv.lng b/interface/web/dns/lib/lang/br_dns_srv.lng
index 5cce3acb17..39f069b405 100644
--- a/interface/web/dns/lib/lang/br_dns_srv.lng
+++ b/interface/web/dns/lib/lang/br_dns_srv.lng
@@ -1,20 +1,20 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
-$wb['target_txt'] = 'Target';
-$wb['weight_txt'] = 'Weight';
-$wb['port_txt'] = 'Port';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
+$wb['target_txt'] = 'Alvo';
+$wb['weight_txt'] = 'Peso';
+$wb['port_txt'] = 'Porta';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'O Hostname está em branco.';
-$wb['name_error_regex'] = 'O Hostname está com formato inválido.';
-$wb['data_error_empty'] = 'Registro do Servidor em branco';
-$wb['data_error_regex'] = 'Registro do Servidor com formato inválido';
-$wb['srv_error_regex'] = 'Registro do Servidor com formato inválido. São necessários 3 textos separados por espaços';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Servidor em branco.';
+$wb['data_error_regex'] = 'Servidor inválido.';
+$wb['srv_error_regex'] = 'Registro do servidor inválido. São necessários 3 textos separados por espaços.';
 $wb['aux_txt'] = 'Prioridade';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_template_list.lng b/interface/web/dns/lib/lang/br_dns_template_list.lng
index a4602aec97..f6455314d6 100644
--- a/interface/web/dns/lib/lang/br_dns_template_list.lng
+++ b/interface/web/dns/lib/lang/br_dns_template_list.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['list_head_txt'] = 'Assistente de Gabaritos DNS';
+$wb['list_head_txt'] = 'Assistente de gabaritos dns';
 $wb['visible_txt'] = 'Visível';
 $wb['name_txt'] = 'Nome';
-$wb['add_new_record_txt'] = 'Adcionar novo registro';
+$wb['add_new_record_txt'] = 'Adicionar novo gabarito';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_tlsa.lng b/interface/web/dns/lib/lang/br_dns_tlsa.lng
index 3b87e2ad59..362202ca71 100644
--- a/interface/web/dns/lib/lang/br_dns_tlsa.lng
+++ b/interface/web/dns/lib/lang/br_dns_tlsa.lng
@@ -1,16 +1,16 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Service-Descriptor';
-$wb['type_txt'] = 'type';
-$wb['data_txt'] = 'TLSA-Data';
+$wb['server_id_txt'] = 'Servidor';
+$wb['zone_txt'] = 'Zona';
+$wb['name_txt'] = 'Descritor de serviço';
+$wb['type_txt'] = 'Tipo';
+$wb['data_txt'] = 'Dados TLSA';
 $wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Active';
-$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.';
-$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.';
-$wb['name_error_empty'] = 'The hostname is empty.';
-$wb['name_error_regex'] = 'The hostname has the wrong format. Correct: _&lt;port&gt;._(tcp|udp).&lt;hostname&gt;';
-$wb['data_error_empty'] = 'TLSA-Data empty';
-$wb['data_error_regex'] = 'TLSA dataformat is wrong. Correct: n n n HASH';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
+$wb['active_txt'] = 'Ativo';
+$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido. Formato correto: \"_&lt;port&gt;._(tcp|udp).&lt;hostname&gt;\".';
+$wb['data_error_empty'] = 'Dados TLSA em branco.';
+$wb['data_error_regex'] = 'Dados TLSA inválidos. Formato correto: \"n n n HASH\".';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_txt.lng b/interface/web/dns/lib/lang/br_dns_txt.lng
index 64003f1461..d25cd756a0 100644
--- a/interface/web/dns/lib/lang/br_dns_txt.lng
+++ b/interface/web/dns/lib/lang/br_dns_txt.lng
@@ -1,19 +1,19 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['zone_txt'] = 'Zona';
-$wb['name_txt'] = 'Hostname';
-$wb['type_txt'] = 'tipo';
+$wb['name_txt'] = 'Hospedeiro';
+$wb['type_txt'] = 'Tipo';
 $wb['data_txt'] = 'Text';
 $wb['ttl_txt'] = 'TTL';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_dns_record_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.';
-$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.';
-$wb['name_error_empty'] = 'Hostname em branco.';
-$wb['name_error_regex'] = 'Hostname tem um formato inválido.';
-$wb['data_error_empty'] = 'Endereço IP em branco';
-$wb['data_error_regex'] = 'Endereço IP formato inválido';
-$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
-$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button';
-$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button';
-$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.';
+$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
+$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.';
+$wb['name_error_empty'] = 'Hospedeiro em branco.';
+$wb['name_error_regex'] = 'Hospedeiro inválido.';
+$wb['data_error_empty'] = 'Endereço IP em branco.';
+$wb['data_error_regex'] = 'Endereço IP inválido.';
+$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.';
+$wb['invalid_type_dkim'] = 'DKIM não permitido. Use o botão DKIM.';
+$wb['invalid_type_dmarc'] = 'DMARC não permitido. Use o botão DMARC.';
+$wb['invalid_type_spf'] = 'SPF não permitido. Use o botão SPF.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_wizard.lng b/interface/web/dns/lib/lang/br_dns_wizard.lng
index b405c8a298..3e2a569d56 100644
--- a/interface/web/dns/lib/lang/br_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/br_dns_wizard.lng
@@ -2,44 +2,44 @@
 $wb['template_id_txt'] = 'Gabarito';
 $wb['server_id_txt'] = 'Servidor';
 $wb['client_txt'] = 'Cliente';
-$wb['btn_save_txt'] = 'Criar Registro DNS';
+$wb['btn_save_txt'] = 'Adicionar registro dns';
 $wb['btn_cancel_txt'] = 'Cancelar';
 $wb['domain_txt'] = 'Domínio';
-$wb['email_txt'] = 'Correio';
+$wb['email_txt'] = 'e-mail';
 $wb['ns1_txt'] = 'NS 1';
 $wb['ns2_txt'] = 'NS 2';
 $wb['ip_txt'] = 'Endereço IP';
 $wb['ipv6_txt'] = 'Endereço IPv6';
 $wb['error_origin_empty'] = 'Origem em branco.';
-$wb['error_ns_empty'] = 'NS vazio.';
-$wb['error_mbox_empty'] = 'Mbox vazia.';
-$wb['error_refresh_empty'] = 'Refresh vazio.';
-$wb['error_retry_empty'] = 'Retry vazio.';
-$wb['error_expire_empty'] = 'Expire vazio.';
-$wb['error_minimum_empty'] = 'Minimum vazio.';
-$wb['error_ttl_empty'] = 'TTL vazio.';
-$wb['error_domain_empty'] = 'Domínio vazio';
-$wb['error_ip_empty'] = 'IP vazio.';
-$wb['error_ipv6_empty'] = 'IPv6 vazio.';
-$wb['error_ns1_empty'] = 'NS1 vazio.';
-$wb['error_ns2_empty'] = 'NS2 vazio.';
-$wb['error_email_empty'] = 'Correio vazio.';
+$wb['error_ns_empty'] = 'NS em branco.';
+$wb['error_mbox_empty'] = 'Endereço de e-mail em branco.';
+$wb['error_refresh_empty'] = 'Refresh em branco.';
+$wb['error_retry_empty'] = 'Retry em branco.';
+$wb['error_expire_empty'] = 'Expire em branco.';
+$wb['error_minimum_empty'] = 'Minimum em branco.';
+$wb['error_ttl_empty'] = 'TTL em branco.';
+$wb['error_domain_empty'] = 'Domínio em branco.';
+$wb['error_ip_empty'] = 'IP em branco.';
+$wb['error_ipv6_empty'] = 'IPv6 em branco.';
+$wb['error_ns1_empty'] = 'NS1 em branco.';
+$wb['error_ns2_empty'] = 'NS2 em branco.';
+$wb['error_email_empty'] = 'Endereço de e-mail em branco.';
 $wb['error_domain_regex'] = 'Domínio contém caracteres inválidos.';
 $wb['error_ns1_regex'] = 'NS1 contém caracteres inválidos.';
 $wb['error_ns2_regex'] = 'NS2 contém caracteres inválidos.';
-$wb['error_email_regex'] = 'Email não contém um endereço de correio válido.';
-$wb['dns_zone_txt'] = 'DNS Zone';
-$wb['globalsearch_resultslimit_of_txt'] = 'of';
-$wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
-$wb['list_head_txt'] = 'DNS Zone Wizard';
-$wb['list_desc_txt'] = 'Create a DNS Zone via a wizard';
-$wb['dkim_txt'] = 'DKIM enabled';
-$wb['error_no_server_id'] = 'No server provided.';
-$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.';
-$wb['dnssec_txt'] = 'Sign zone (DNSSEC)';
-$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.';
+$wb['error_email_regex'] = 'Endereço de e-mail inválido.';
+$wb['dns_zone_txt'] = 'Zona dns';
+$wb['globalsearch_resultslimit_of_txt'] = 'de';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultados';
+$wb['globalsearch_noresults_text_txt'] = 'Sem resultados';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultados';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar';
+$wb['globalsearch_suggestions_text_txt'] = 'Sugestões';
+$wb['list_head_txt'] = 'Assistente de zona dns';
+$wb['list_desc_txt'] = 'Adicionar zona dns através do assistente';
+$wb['dkim_txt'] = 'DKIM ativo';
+$wb['error_no_server_id'] = 'Nenhum servidor selecionado.';
+$wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.';
+$wb['dnssec_txt'] = 'Zona assinada (DNSSEC)';
+$wb['limit_dns_zone_txt'] = 'O limite de zonas dns para esta conta foi alcançado.';
 ?>
diff --git a/interface/web/help/lib/lang/br.lng b/interface/web/help/lib/lang/br.lng
index 7503b730c3..a745e60960 100644
--- a/interface/web/help/lib/lang/br.lng
+++ b/interface/web/help/lib/lang/br.lng
@@ -1,14 +1,14 @@
 <?php
-$wb['Support Message'] = 'Mensagem de Suporte';
+$wb['Support Message'] = 'Mensagem do suporte';
 $wb['Message'] = 'Mensagem';
-$wb['Send message'] = 'Enviar Mensagem';
-$wb['View messages'] = 'Ver Mensagem';
+$wb['Send message'] = 'Enviar mensagem';
+$wb['View messages'] = 'Visualizar mensagem';
 $wb['Support'] = 'Suporte';
 $wb['About ISPConfig'] = 'Sobre o ISPConfig';
 $wb['Version'] = 'Versão';
-$wb['Frequently Asked Questions'] = 'Perguntas Mais Frequentes';
+$wb['Frequently Asked Questions'] = 'Perguntas frequentes (FAQ)';
 $wb['FAQ Sections'] = 'Sessões FAQ';
-$wb['Manage Sections'] = 'Gerenciar Sessões';
-$wb['Add a Question & Answer Pair'] = 'Adcionar par Questã/Resposta';
-$wb['Manage Questions'] = 'Gerenciar Questões';
+$wb['Manage Sections'] = 'Gerenciar sessões';
+$wb['Add a Question & Answer Pair'] = 'Adicionar par pergunta/resposta';
+$wb['Manage Questions'] = 'Gerenciar perguntas';
 ?>
diff --git a/interface/web/help/lib/lang/br_faq_manage_questions_list.lng b/interface/web/help/lib/lang/br_faq_manage_questions_list.lng
index 75ec774f47..8bda9d7f42 100644
--- a/interface/web/help/lib/lang/br_faq_manage_questions_list.lng
+++ b/interface/web/help/lib/lang/br_faq_manage_questions_list.lng
@@ -4,6 +4,6 @@ $wb['faq_section_name_txt'] = 'Sessão';
 $wb['faq_delete_txt'] = 'Remover';
 $wb['faq_edit_txt'] = 'Editar';
 $wb['faq_sections_txt'] = 'Sessão';
-$wb['faq_faq_questions_txt'] = 'Perguntas Mais Frequentes (FAQ)';
-$wb['faq_new_question_txt'] = 'Adcionar um novo par de pergunta/resposta';
+$wb['faq_faq_questions_txt'] = 'Perguntas frequentes (FAQ)';
+$wb['faq_new_question_txt'] = 'Adicionar par pergunta/resposta';
 ?>
diff --git a/interface/web/help/lib/lang/br_help_faq_list.lng b/interface/web/help/lib/lang/br_help_faq_list.lng
index b6c7b460b9..64a02c0a74 100644
--- a/interface/web/help/lib/lang/br_help_faq_list.lng
+++ b/interface/web/help/lib/lang/br_help_faq_list.lng
@@ -1,3 +1,3 @@
 <?php
-$wb['edit_txt'] = 'Edit';
+$wb['edit_txt'] = 'Editar';
 ?>
diff --git a/interface/web/help/lib/lang/br_help_faq_sections_list.lng b/interface/web/help/lib/lang/br_help_faq_sections_list.lng
index 777f65338a..f1f549e615 100644
--- a/interface/web/help/lib/lang/br_help_faq_sections_list.lng
+++ b/interface/web/help/lib/lang/br_help_faq_sections_list.lng
@@ -4,5 +4,5 @@ $wb['faq_delete_txt'] = 'Remover';
 $wb['faq_edit_txt'] = 'Editar';
 $wb['faq_sections_txt'] = 'Sessões';
 $wb['faq_faq_sections_txt'] = 'Sessões FAQ';
-$wb['faq_new_section_txt'] = 'Adcionar uma nova sessão';
+$wb['faq_new_section_txt'] = 'Adicionar nova sessão';
 ?>
diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng
index 6b6b1e92b1..83097915bf 100644
--- a/interface/web/help/lib/lang/br_support_message.lng
+++ b/interface/web/help/lib/lang/br_support_message.lng
@@ -5,12 +5,12 @@ $wb['subject_txt'] = 'Assunto';
 $wb['message_txt'] = 'Mensagem';
 $wb['tstamp_txt'] = 'Dados';
 $wb['reply_txt'] = 'Responder';
-$wb['date_txt'] = 'Date';
-$wb['support_request_subject_txt'] = 'Support Request';
-$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
-$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
-$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
-$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
-$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
-$wb['subject_is_empty'] = 'The subject can not be empty.';
+$wb['date_txt'] = 'Data';
+$wb['support_request_subject_txt'] = 'Requisição para Suporte';
+$wb['support_request_txt'] = 'Você tem uma nova requisição para suporte. Por favor, não responda esse e-mail, mas processe a requisição de suporte dentro do ISPConfig.';
+$wb['answer_to_support_request_txt'] = 'Você tem uma nova resposta para requisição de suporte. Por favor, não responda esse e-mail, mas processe a requisição de suporte dentro do ISPConfig.';
+$wb['answer_to_support_request_sent_txt'] = 'Sua resposta para requisição de suporte foi enviada. Por favor, não responda esse e-mail.';
+$wb['support_request_sent_txt'] = 'Sua requisição de suporte foi enviada. Por favor não responda este e-mail.';
+$wb['recipient_or_sender_email_address_not_valid_txt'] = 'A mensagem não foi enviada porque o e-mail do destinatário e/ou remetente não é válido.';
+$wb['subject_is_empty'] = 'Não é permitido o campo \"Assunto\" em branco.';
 ?>
diff --git a/interface/web/help/lib/lang/br_support_message_list.lng b/interface/web/help/lib/lang/br_support_message_list.lng
index 734dd281a3..7d888659d8 100644
--- a/interface/web/help/lib/lang/br_support_message_list.lng
+++ b/interface/web/help/lib/lang/br_support_message_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Mensagens de Suporte';
+$wb['list_head_txt'] = 'Mensagens do Suporte';
 $wb['sender_id_txt'] = 'De';
 $wb['subject_txt'] = 'Assunto';
-$wb['add_new_record_txt'] = 'Crie uma nova mensagem de suporte';
-$wb['date_txt'] = 'Date';
+$wb['add_new_record_txt'] = 'Adicionar uma nova mensagem de suporte';
+$wb['date_txt'] = 'Data';
 ?>
diff --git a/interface/web/login/lib/lang/br.lng b/interface/web/login/lib/lang/br.lng
index 6e29c618b3..06f6431518 100644
--- a/interface/web/login/lib/lang/br.lng
+++ b/interface/web/login/lib/lang/br.lng
@@ -1,34 +1,34 @@
 <?php
-$wb['error_user_password_empty'] = 'Usuário ou Senha em branco.';
-$wb['error_user_password_incorrect'] = 'Usuário ou Senha incorretos.';
+$wb['error_user_password_empty'] = 'Usuário ou senha em branco.';
+$wb['error_user_password_incorrect'] = 'Usuário ou senha incorretos.';
 $wb['error_user_blocked'] = 'O usuário está bloqueado.';
-$wb['error_user_too_many_logins'] = 'Várias tentativas de logins incorretas, faça uma nova tentativa dentro de 15 minutos.';
-$wb['pass_reset_txt'] = 'Uma nova senha foi gerada e será enviada para você via correio eletrônico cadastrado no sistema.';
-$wb['pw_reset'] = 'Senha restabelecida! Será enviada para você via correio eletrônico cadastrado no sistema.';
-$wb['pw_error'] = 'Nome de usuário ou correio eletrônico não coincidem.';
-$wb['pw_error_noinput'] = 'Favor informar nome de usuário e endereço de correio válidos.';
-$wb['pw_reset_mail_msg'] = 'Sua senha do painel de controle foi restabelecida. A sua nova senha é: ';
-$wb['pw_reset_mail_title'] = 'Sua senha do painel de controle foi restabelecida.';
-$wb['user_regex_error'] = 'O nome de usuário contém < 1 or mais de 64 caracteres ou contém caracteres inválidos.';
+$wb['error_user_too_many_logins'] = 'Várias tentativas de acesso incorretas, faça uma nova tentativa dentro de 15 minutos.';
+$wb['pass_reset_txt'] = 'Uma nova senha foi gerada e será enviada para você no e-mail informado abaixo, caso o mesmo esteja cadastrado no sistema nas suas configurações de cliente.';
+$wb['pw_reset'] = 'Senha redefinida! Ela será enviada para você no e-mail cadastrado no sistema.';
+$wb['pw_error'] = 'Nome do usuário ou e-mail não coincidem.';
+$wb['pw_error_noinput'] = 'Favor informar nome do usuário e e-mail válidos.';
+$wb['pw_reset_mail_msg'] = 'A senha para esta conta no ISPConfig foi redefinida. A nova senha é: ';
+$wb['pw_reset_mail_title'] = 'A senha para esta conta no ISPConfig foi redefinida.';
+$wb['user_regex_error'] = 'O nome do usuário contém menos de 1 ou mais de 64 caracteres ou contém caracteres inválidos.';
 $wb['pw_error_length'] = 'Tamanho da senha não pode ser maior do que 64 caracteres.';
 $wb['username_txt'] = 'Usuário';
 $wb['password_txt'] = 'Senha';
 $wb['login_button_txt'] = 'Entrar';
-$wb['pw_lost_txt'] = 'Password lost';
-$wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.';
-$wb['login_txt'] = 'Login';
-$wb['pw_reset_txt'] = 'Password reset';
-$wb['pw_button_txt'] = 'Resend password';
-$wb['email_txt'] = 'Email';
-$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
-$wb['back_txt'] = 'Back';
-$wb['email_error'] = 'Email contains unallowed characters or has a invalid format.';
-$wb['stay_logged_in_txt'] = 'Keep me logged in';
-$wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.';
-$wb['pw_reset_act'] = 'You have been sent an activation link. Please visit the link to confirm your password request.';
-$wb['pw_reset_act_mail_title'] = 'Confirm ISPConfig 3 Control panel password reset';
-$wb['pw_reset_act_mail_msg'] = 'Please confirm that your want to reset your ISPConfig 3 control panel account password by visiting the following activation link: ';
-$wb['lost_password_function_wait_txt'] = 'You cannot request a new password, yet. Please wait a few minutes.';
-$wb['lost_password_function_expired_txt'] = 'This activation link has expired. Please request a new one.';
-$wb['lost_password_function_denied_txt'] = 'This activation link is not valid.';
+$wb['pw_lost_txt'] = 'Esqueceu a senha?';
+$wb['error_maintenance_mode'] = 'Esta instalação do ISPConfig atualmente está sob manutenção. Nós retornaremos em breve. Obrigado por sua paciência.';
+$wb['login_txt'] = 'Acesso';
+$wb['pw_reset_txt'] = 'Redefinir senha';
+$wb['pw_button_txt'] = 'Reenviar senha';
+$wb['email_txt'] = 'E-mail';
+$wb['theme_not_compatible'] = 'O tema escolhido não é compatível com a versão atual do ISPConfig. Por favor, procure por uma nova versão deste tema compatível com ISPConfig.<br />O tema padrão foi configurado automaticamente.';
+$wb['back_txt'] = 'Voltar';
+$wb['email_error'] = 'O e-mail contém caracteres não permitidos ou formato inválido.';
+$wb['stay_logged_in_txt'] = 'Manter-me conectado';
+$wb['lost_password_function_disabled_txt'] = 'Função de redefinir senha indisponível para este usuário.';
+$wb['pw_reset_act'] = 'Você receberá um link de ativação. Por favor, acesse o link de ativação para confirmar sua nova senha.';
+$wb['pw_reset_act_mail_title'] = 'Confirmar nova senha para o painel de controle ISPConfig';
+$wb['pw_reset_act_mail_msg'] = 'Por favor, confirme se você deseja reiniciar sua senha do painel de controle ISPConfig, acessando o link de ativação: ';
+$wb['lost_password_function_wait_txt'] = 'Você não pode requisitar uma nova senha ainda. Por favor, aguarde alguns minutos.';
+$wb['lost_password_function_expired_txt'] = 'Este link de ativação expirou. Por favor, faça uma nova requisição.';
+$wb['lost_password_function_denied_txt'] = 'Este link de ativação não é válido.';
 ?>
diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng
index cf75b54b47..80cb5d2cc9 100644
--- a/interface/web/login/lib/lang/br_login_as.lng
+++ b/interface/web/login/lib/lang/br_login_as.lng
@@ -1,12 +1,12 @@
 <?php
-$wb['login_1_txt'] = 'Do you want to login as user';
-$wb['login_2_txt'] = 'If you do so, you can \\"go back\\" by clicking at logout.';
-$wb['btn_yes_txt'] = 'Yes, login as Client';
-$wb['btn_back_txt'] = 'No, back to list';
-$wb['udp_port_help_txt'] = 'Separated by comma';
-$wb['active_txt'] = 'Active';
-$wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
-$wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?';
+$wb['login_1_txt'] = 'Você deseja acessar como usuário';
+$wb['login_2_txt'] = 'Para retornar ao administrador, você pode \"voltar\" selecionando sair.';
+$wb['btn_yes_txt'] = 'Sim, acessar como cliente';
+$wb['btn_back_txt'] = 'Não, voltar a lista';
+$wb['udp_port_help_txt'] = 'Separado por vírgula';
+$wb['active_txt'] = 'Ativo';
+$wb['firewall_error_unique'] = 'Já existe um registro de firewall igual para este servidor.';
+$wb['tcp_ports_error_regex'] = 'Caractere não permitido para atribuição numa porta TCP. Caracteres permitidos são: números, \":\" e \",\".';
+$wb['udp_ports_error_regex'] = 'Caractere não permitido para atribuição numa porta UDP. Caracteres permitidos são: números, \":\" e \",\".';
+$wb['login_as_or_logout_txt'] = 'Você deseja acessar novamente como {UTYPE} ou sair?';
 ?>
diff --git a/interface/web/mail/lib/lang/br.lng b/interface/web/mail/lib/lang/br.lng
index a02f879e98..b6e1bde384 100644
--- a/interface/web/mail/lib/lang/br.lng
+++ b/interface/web/mail/lib/lang/br.lng
@@ -1,48 +1,48 @@
 <?php
-$wb['Email Alias'] = 'Aliases de Correio';
-$wb['Email Blacklist'] = 'Lista Negra de Correio';
-$wb['Blacklist'] = 'Lista Negra';
-$wb['Mail Content Filter'] = 'Filtro de Conteúdo de Correio';
+$wb['Email Alias'] = 'Apelidos de e-mail';
+$wb['Email Blacklist'] = 'Lista negra';
+$wb['Blacklist'] = 'Lista negra';
+$wb['Mail Content Filter'] = 'Filtro de conteúdo';
 $wb['Filter'] = 'Filtro';
-$wb['Mail Domain'] = 'Domínio de Correio';
-$wb['Domain'] = 'Domínio';
-$wb['Email Catchall'] = 'Correio Catchall';
-$wb['Email Forward'] = 'Encaminhamento de Correio';
-$wb['Get Email'] = 'Pegar Email';
-$wb['Spamfilter'] = 'Filtro Spam';
-$wb['Email Routing'] = 'Rota de Correio';
-$wb['Email transport'] = 'Transporte de Correio';
-$wb['Mailbox'] = 'Caixa de Correio';
-$wb['Autoresponder'] = 'Resposta Automática';
-$wb['Mail Filter'] = 'Filtro de Correio';
-$wb['Custom Rules'] = 'Regras Personalizadas';
-$wb['Email filter'] = 'Filtro de Correio';
-$wb['Email Whitelist'] = 'Lista Branca de Correio';
-$wb['Whitelist'] = 'Lista Branca';
-$wb['Spamfilter blacklist'] = 'Filtro Spam (Lista Negra)';
-$wb['Spamfilter Config'] = 'Configuração do Filtro Spam';
-$wb['Server'] = 'Servidor';
-$wb['Spamfilter policy'] = 'Políticas de Filtro Spam';
+$wb['Mail Domain'] = 'Domínio';
+$wb['Domain'] = 'Domínios';
+$wb['Email Catchall'] = 'Contas cata tudo';
+$wb['Email Forward'] = 'Encaminhamento';
+$wb['Get Email'] = 'Busca de e-mail';
+$wb['Spamfilter'] = 'Filtro antispam';
+$wb['Email Routing'] = 'Transportes';
+$wb['Email transport'] = 'Transporte';
+$wb['Mailbox'] = 'Contas de e-mail';
+$wb['Autoresponder'] = 'Resposta automática';
+$wb['Mail Filter'] = 'Filtros';
+$wb['Custom Rules'] = 'Regras personalizadas';
+$wb['Email filter'] = 'Filtro';
+$wb['Email Whitelist'] = 'Lista branca';
+$wb['Whitelist'] = 'Lista branca';
+$wb['Spamfilter blacklist'] = 'Filtro antispam (lista negra)';
+$wb['Spamfilter Config'] = 'Configuração do filtro antispam';
+$wb['Spamfilter policy'] = 'Políticas de filtro antispam';
 $wb['Policy'] = 'Política';
 $wb['Quarantine'] = 'Quarentena';
-$wb['Tag-Level'] = 'Tag-Level';
+$wb['Tag-Level'] = 'Nível de marcação';
 $wb['Other'] = 'Outros';
-$wb['Spamfilter users'] = 'Usuários de Filtro Spam';
+$wb['Spamfilter users'] = 'Usuários de filtro antispam';
 $wb['Users'] = 'Usuários';
-$wb['Spamfilter Whitelist'] = 'Filtro Spam Lista Branca';
-$wb['Email'] = 'Correio';
-$wb['Email Mailbox'] = 'Caixa de Correio';
-$wb['Email Accounts'] = 'Contas de Correio';
-$wb['User / Domain'] = 'Usuário / Domínio';
-$wb['Server Settings'] = 'Configurações do Servidor';
-$wb['Fetchmail'] = 'Fetchmail';
-$wb['Mailbox traffic'] = 'Tráfego de Correio';
+$wb['Spamfilter Whitelist'] = 'Filtro antispam (lista branca)';
+$wb['Email'] = 'e-mail';
+$wb['Email Mailbox'] = 'Contas de e-mail';
+$wb['Email Accounts'] = 'Contas de e-mail';
+$wb['User / Domain'] = 'Usuário/domínio';
+$wb['Server Settings'] = 'Configurações do servidor';
+$wb['Fetchmail'] = 'Contas de busca';
+$wb['Mailbox traffic'] = 'Tráfego';
 $wb['Statistics'] = 'Estatísticas';
-$wb['Postfix Whitelist'] = 'Postfix (Lista Branca)';
-$wb['Postfix Blacklist'] = 'Postfix (Lista Negra)';
-$wb['Content Filter'] = 'Filtros de Conteúdo';
-$wb['Global Filters'] = 'Filtros Globais';
-$wb['Domain Alias'] = 'Alias de Domínio';
-$wb['Relay Recipients'] = 'Recipientes de Relay';
-$wb['Mailbox quota'] = 'Mailbox quota';
+$wb['Postfix Whitelist'] = 'Postfix (lista branca)';
+$wb['Postfix Blacklist'] = 'Postfix (lista negra)';
+$wb['Content Filter'] = 'Filtros de conteúdo';
+$wb['Global Filters'] = 'Filtros globais';
+$wb['Domain Alias'] = 'Apelidos de domínio';
+$wb['Relay Recipients'] = 'Destinatários de retransmissão';
+$wb['Mailbox quota'] = 'Cota para contas de e-mails';
+$wb['Server'] = 'Server';
 ?>
diff --git a/interface/web/mail/lib/lang/br_backup_stats_list.lng b/interface/web/mail/lib/lang/br_backup_stats_list.lng
index 79cd6c9a63..9d07817712 100644
--- a/interface/web/mail/lib/lang/br_backup_stats_list.lng
+++ b/interface/web/mail/lib/lang/br_backup_stats_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Backup Stats';
-$wb['active_txt'] = 'Active';
-$wb['domain_txt'] = 'Email';
-$wb['backup_count_txt'] = 'Backup count';
-$wb['backup_server_txt'] = 'Server';
-$wb['backup_interval_txt'] = 'Interval / cnt.';
-$wb['backup_size_txt'] = 'Backupsize';
+$wb['list_head_txt'] = 'Estatísticas de backup';
+$wb['active_txt'] = 'Ativo';
+$wb['domain_txt'] = 'e-mail';
+$wb['backup_count_txt'] = 'Contador de backup';
+$wb['backup_server_txt'] = 'Servidor';
+$wb['backup_interval_txt'] = 'Intervalo/contador';
+$wb['backup_size_txt'] = 'Tamanho';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_alias.lng b/interface/web/mail/lib/lang/br_mail_alias.lng
index 43e720d8ef..a8b0d81335 100644
--- a/interface/web/mail/lib/lang/br_mail_alias.lng
+++ b/interface/web/mail/lib/lang/br_mail_alias.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['email_txt'] = 'Correio';
+$wb['email_txt'] = 'e-mail';
 $wb['destination_txt'] = 'Destino';
 $wb['active_txt'] = 'Ativo';
-$wb['email_error_isemail'] = 'Endereço de correio inválido.';
-$wb['email_error_unique'] = 'Endereço de correio duplicado.';
+$wb['email_error_isemail'] = 'Endereço de e-mail inválido.';
+$wb['email_error_unique'] = 'Endereço de e-mail duplicado.';
 $wb['no_domain_perm'] = 'Você não tem permissão para este domínio.';
 $wb['destination_error_isemail'] = 'Endereço de destino inválido';
-$wb['limit_mailalias_txt'] = 'O número máximo de aliases para sua conta foi atingido.';
-$wb['duplicate_mailbox_txt'] = 'Já existe uma caixa de correio com este endereço.';
+$wb['limit_mailalias_txt'] = 'O limite de apelidos de domínio para esta conta foi alcançado.';
+$wb['duplicate_mailbox_txt'] = 'Já existe uma conta de e-mail com este endereço.';
 $wb['domain_txt'] = 'Domínio';
-$wb['duplicate_email_alias_txt'] = 'This email alias does already exist.';
-$wb['source_txt'] = 'Alias';
-$wb['greylisting_txt'] = 'Enable greylisting';
-$wb['send_as_txt'] = 'Send as';
-$wb['send_as_exp'] = 'Allow target to send mail using this alias as origin';
+$wb['duplicate_email_alias_txt'] = 'Este apelido de e-mail já existe.';
+$wb['source_txt'] = 'Apelido';
+$wb['greylisting_txt'] = 'Habilitar greylist';
+$wb['send_as_txt'] = 'Enviar como';
+$wb['send_as_exp'] = 'Permite o alvo enviar e-mails usando este endereço como origem';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_alias_list.lng b/interface/web/mail/lib/lang/br_mail_alias_list.lng
index c503b0bcc8..69fb77a779 100644
--- a/interface/web/mail/lib/lang/br_mail_alias_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_alias_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Aliases de Correio';
+$wb['list_head_txt'] = 'Apelidos de e-mail';
 $wb['active_txt'] = 'Ativo';
 $wb['source_txt'] = 'origem';
 $wb['destination_txt'] = 'Destino';
-$wb['email_txt'] = 'Correio';
-$wb['add_new_record_txt'] = 'Adcionar novo aliases';
+$wb['email_txt'] = 'e-mail';
+$wb['add_new_record_txt'] = 'Adicionar novo apelido';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_aliasdomain.lng b/interface/web/mail/lib/lang/br_mail_aliasdomain.lng
index 7d86028232..70c51d512c 100644
--- a/interface/web/mail/lib/lang/br_mail_aliasdomain.lng
+++ b/interface/web/mail/lib/lang/br_mail_aliasdomain.lng
@@ -3,9 +3,9 @@ $wb['source_txt'] = 'Origem';
 $wb['destination_txt'] = 'Destino';
 $wb['active_txt'] = 'Ativo';
 $wb['no_domain_perm'] = 'Você não tem permissão para este domínio.';
-$wb['limit_mailaliasdomain_txt'] = 'O número máximo de domínios aliases para sua conta foi atingido.';
-$wb['source_destination_identical_txt'] = 'Origem e Destino são os mesmos.';
-$wb['source_error_empty'] = 'Domínio de origem está em branco.';
-$wb['source_error_unique'] = 'Domínio de origem duplicado.';
-$wb['source_error_regex'] = 'Nome do domínio de origem inválido.';
+$wb['limit_mailaliasdomain_txt'] = 'O limite de apelidos de domínios para esta conta foi alcançado.';
+$wb['source_destination_identical_txt'] = 'Origem e destino são os mesmos.';
+$wb['source_error_empty'] = 'Origem em branco.';
+$wb['source_error_unique'] = 'Origem duplicada.';
+$wb['source_error_regex'] = 'Origem inválida.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng
index beb2c82058..4849c3cb6b 100644
--- a/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Domínio Aliase';
+$wb['list_head_txt'] = 'Apelido de domínio';
 $wb['active_txt'] = 'Ativo';
 $wb['source_txt'] = 'Origem';
 $wb['destination_txt'] = 'Destino';
-$wb['add_new_record_txt'] = 'Adcionar novo domínio aliase';
+$wb['add_new_record_txt'] = 'Adicionar novo apelido';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_backup_list.lng b/interface/web/mail/lib/lang/br_mail_backup_list.lng
index 73286a0737..8ef31a0769 100644
--- a/interface/web/mail/lib/lang/br_mail_backup_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_backup_list.lng
@@ -1,16 +1,16 @@
 <?php
-$wb['list_head_txt'] = 'Existing backups';
-$wb['date_txt'] = 'Date';
-$wb['backup_type_txt'] = 'Type';
-$wb['filename_txt'] = 'Backup file';
-$wb['restore_backup_txt'] = 'Restore';
-$wb['restore_info_txt'] = 'Restore of the backup has been started. This action takes several minutes to be completed.';
-$wb['restore_confirm_txt'] = 'Restoring may overwrite existing files in your mailbox. Do you really want to restore this backup?';
-$wb['download_pending_txt'] = 'There is already a pending backup download job.';
-$wb['restore_pending_txt'] = 'There is already a pending backup restore job.';
-$wb['delete_backup_txt'] = 'Delete Backup';
-$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.';
-$wb['delete_confirm_txt'] = 'Really delete this backup?';
-$wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
-$wb['filesize_txt'] = 'Filesize';
+$wb['list_head_txt'] = 'Backups existentes';
+$wb['date_txt'] = 'Data';
+$wb['backup_type_txt'] = 'Tipo';
+$wb['filename_txt'] = 'Arquivo de backup';
+$wb['restore_backup_txt'] = 'Restaurar backup';
+$wb['restore_info_txt'] = 'Restauração do backup iniciada. Esta ação poderá levar vários minutos para ser concluída. Aguarde.';
+$wb['restore_confirm_txt'] = 'A restauração do backup reescreverá os arquivos existentes das suas caixas postais. Tem certeza que deseja restaurar este backup?';
+$wb['download_pending_txt'] = 'Já existe um download deste backup em execução.';
+$wb['restore_pending_txt'] = 'Já existe uma restauração deste backup em execução.';
+$wb['delete_backup_txt'] = 'Remover backup';
+$wb['delete_info_txt'] = 'Remoção do backup iniciada. Esta ação poderá levar vários minutos para ser concluída. Aguarde.';
+$wb['delete_confirm_txt'] = 'Tem certeza que deseja remover este backup?';
+$wb['delete_pending_txt'] = 'Já existe uma remoção deste backup em execução.';
+$wb['filesize_txt'] = 'Tamanho';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_blacklist.lng b/interface/web/mail/lib/lang/br_mail_blacklist.lng
index 6d2cdb2a2f..a7701f0506 100644
--- a/interface/web/mail/lib/lang/br_mail_blacklist.lng
+++ b/interface/web/mail/lib/lang/br_mail_blacklist.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
-$wb['source_txt'] = 'Endereço Lista Negra';
-$wb['recipient_txt'] = 'Recipiente';
+$wb['source_txt'] = 'Lista negra';
+$wb['recipient_txt'] = 'Destinatário';
 $wb['active_txt'] = 'Ativo';
 $wb['source_error_notempty'] = 'Endereço em branco.';
 $wb['type_txt'] = 'Tipo';
-$wb['limit_mailfilter_txt'] = 'O número máximo de filtros de correio para sua conta foi atingido..';
+$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_blacklist_list.lng b/interface/web/mail/lib/lang/br_mail_blacklist_list.lng
index 9395a2ccb3..d561cea6b6 100644
--- a/interface/web/mail/lib/lang/br_mail_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_blacklist_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Correio Lista Negra';
+$wb['list_head_txt'] = 'Lista Negra';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['source_txt'] = 'Correio na lista negra';
+$wb['source_txt'] = 'e-mail';
 $wb['type_txt'] = 'Tipo';
-$wb['recipient_txt'] = 'Recipiente';
-$wb['add_new_record_txt'] = 'Adcionar novo registro a lista';
+$wb['recipient_txt'] = 'Destinatário';
+$wb['add_new_record_txt'] = 'Adicionar novo e-mail à lista';
 $wb['access_txt'] = 'acesso';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_content_filter.lng b/interface/web/mail/lib/lang/br_mail_content_filter.lng
index d5cda471fc..2433115386 100644
--- a/interface/web/mail/lib/lang/br_mail_content_filter.lng
+++ b/interface/web/mail/lib/lang/br_mail_content_filter.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['type_txt'] = 'Filtro';
-$wb['pattern_txt'] = 'Padrão de Expressão Regular.';
+$wb['pattern_txt'] = 'Padrão de expressão regular.';
 $wb['data_txt'] = 'Data';
 $wb['action_txt'] = 'Ação';
 $wb['active_txt'] = 'Ativo';
diff --git a/interface/web/mail/lib/lang/br_mail_content_filter_list.lng b/interface/web/mail/lib/lang/br_mail_content_filter_list.lng
index c3a616ef31..4d35bd6352 100644
--- a/interface/web/mail/lib/lang/br_mail_content_filter_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_content_filter_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Cabeçalhos Postfix e Body Checks';
+$wb['list_head_txt'] = 'Cabeçalhos postfix e body checks';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['pattern_txt'] = 'Padrão';
 $wb['action_txt'] = 'Ação';
-$wb['add_new_record_txt'] = 'Adcionar um novo filtro de conteúdo';
+$wb['add_new_record_txt'] = 'Adicionar novo filtro';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_domain.lng b/interface/web/mail/lib/lang/br_mail_domain.lng
index 6606e1d5fa..1b42b2148b 100644
--- a/interface/web/mail/lib/lang/br_mail_domain.lng
+++ b/interface/web/mail/lib/lang/br_mail_domain.lng
@@ -7,17 +7,17 @@ $wb['domain_error_empty'] = 'Domínio em branco.';
 $wb['domain_error_unique'] = 'Domínio duplicado';
 $wb['domain_error_regex'] = 'Nome de domínio inválido';
 $wb['client_txt'] = 'Cliente';
-$wb['limit_maildomain_txt'] = 'O número máximo de contas de correio eletrônico para este domínio foi atingido.';
-$wb['policy_txt'] = 'Filtro Anti-Spam';
-$wb['no_policy'] = '- desativado -';
-$wb['dkim_txt'] = 'enable DKIM';
-$wb['dkim_private_txt'] = 'DKIM Private-key';
-$wb['dkim_public_txt'] = 'DKIM Public-key\nfor information only';
-$wb['dkim_generate_txt'] = 'Generate DKIM Private-key';
-$wb['dkim_dns_txt'] = 'DNS-Record';
-$wb['dkim_private_key_error'] = 'Invalid DKIM-Private key';
-$wb['dkim_selector_txt'] = 'DKIM-Selector';
-$wb['dkim_selector_error'] = 'Invalid DKIM-Selector. Use only lower-case alphanumeric characters (a-z or 0-9) up to 63 chars';
+$wb['limit_maildomain_txt'] = 'O limite de contas de e-mail para este domínio foi alcançado.';
+$wb['policy_txt'] = 'Filtro antispam';
+$wb['no_policy'] = '- desabilitado -';
+$wb['dkim_txt'] = 'habilitar DKIM';
+$wb['dkim_private_txt'] = 'Chave privada DKIM';
+$wb['dkim_public_txt'] = 'Somente chave pública/nfor DKIM';
+$wb['dkim_generate_txt'] = 'Gerar chave privada DKIM';
+$wb['dkim_dns_txt'] = 'Registro dns';
+$wb['dkim_private_key_error'] = 'Chave privada DKIM inválida';
+$wb['dkim_selector_txt'] = 'Seletor DKIM';
+$wb['dkim_selector_error'] = 'Seletor DKIM inválido. Use apenas caracteres minúsculos e alfanuméricos  (\"a-z\" ou \"0-9\") até o máximo de 63 caracteres';
 $wb['dkim_settings_txt'] = 'DomainKeys Identified Mail (DKIM)';
-$wb['error_not_allowed_server_id'] = 'Chosen server is not allowed for this account.';
+$wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/br_mail_domain_admin_list.lng
index 9a7dced449..275c0a1b54 100644
--- a/interface/web/mail/lib/lang/br_mail_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_domain_admin_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Domínio de email';
+$wb['list_head_txt'] = 'Domínio de e-mail';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
 $wb['add_new_record_txt'] = 'Adicionar novo domínio';
diff --git a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng
index 3036d89892..df5fd39b9a 100644
--- a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng
+++ b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng
@@ -2,10 +2,10 @@
 $wb['domain_txt'] = 'Domínio';
 $wb['destination_txt'] = 'Destino';
 $wb['active_txt'] = 'Ativo';
-$wb['domain_error_unique'] = 'Já existe um registro de Catchall para este domínio.';
+$wb['domain_error_unique'] = 'Já existe uma conta cata tudo para este domínio.';
 $wb['no_domain_perm'] = 'Você não tem permissão para este domínio.';
-$wb['domain_error_regex'] = 'O nome do domínio contém caracteres inválidos';
-$wb['limit_mailcatchall_txt'] = 'O número máximo de catchall para este domínio foi atingido.';
-$wb['source_txt'] = 'Source';
-$wb['destination_error_isemail'] = 'Destination is no valid email address.';
+$wb['domain_error_regex'] = 'O domínio contém caracteres inválidos';
+$wb['limit_mailcatchall_txt'] = 'O limite de contas cata tudo para este domínio foi alcançado.';
+$wb['source_txt'] = 'Origem';
+$wb['destination_error_isemail'] = 'Destino não é um e-mail válido.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng
index c4d5481734..57c1f3a11a 100644
--- a/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Catchall de Correio';
+$wb['list_head_txt'] = 'Contas cata tudo';
 $wb['active_txt'] = 'Ativo';
-$wb['source_txt'] = 'origem';
+$wb['source_txt'] = 'Origem';
 $wb['destination_txt'] = 'Endereço de destino';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
-$wb['add_new_record_txt'] = 'Adcionar novo Catchall';
+$wb['add_new_record_txt'] = 'Adicionar nova conta';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_domain_list.lng b/interface/web/mail/lib/lang/br_mail_domain_list.lng
index 2afb7db7f6..a024a6a7e8 100644
--- a/interface/web/mail/lib/lang/br_mail_domain_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_domain_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Domínio de Correio';
+$wb['list_head_txt'] = 'Domínio de e-mail';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
-$wb['add_new_record_txt'] = 'Adcionar novo domínio';
+$wb['add_new_record_txt'] = 'Adicionar novo domínio';
 $wb['active_txt'] = 'Ativo';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_forward.lng b/interface/web/mail/lib/lang/br_mail_forward.lng
index 63445c8ccd..8f9864638d 100644
--- a/interface/web/mail/lib/lang/br_mail_forward.lng
+++ b/interface/web/mail/lib/lang/br_mail_forward.lng
@@ -1,13 +1,13 @@
 <?php
-$wb['email_txt'] = 'Correio';
-$wb['destination_txt'] = 'Correio de Destino';
+$wb['email_txt'] = 'e-mail';
+$wb['destination_txt'] = 'e-mail de destino';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_mailforward_txt'] = 'O número máximo de encaminhamentos para sua conta foi atingido.';
-$wb['duplicate_mailbox_txt'] = 'Já existe uma caixa de correio com este endereço.';
+$wb['limit_mailforward_txt'] = 'O limite de encaminhamentos para esta conta foi alcançado.';
+$wb['duplicate_mailbox_txt'] = 'Já existe um e-mail com este endereço.';
 $wb['domain_txt'] = 'Domínio';
-$wb['source_txt'] = 'Source Email';
-$wb['greylisting_txt'] = 'Enable greylisting';
-$wb['email_error_isemail'] = 'Please enter a valid email address.';
-$wb['send_as_txt'] = 'Send as';
-$wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
+$wb['source_txt'] = 'Origem';
+$wb['greylisting_txt'] = 'Habilitar greylist';
+$wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.';
+$wb['send_as_txt'] = 'Enviar como';
+$wb['send_as_exp'] = 'Permite o alvo enviar e-mails usando este endereço como origem (se o alvo for interno)';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_forward_list.lng b/interface/web/mail/lib/lang/br_mail_forward_list.lng
index f9f7ce406c..025ecc00b6 100644
--- a/interface/web/mail/lib/lang/br_mail_forward_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_forward_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Encaminhamento de Correio';
+$wb['list_head_txt'] = 'Encaminhamento de e-mail';
 $wb['active_txt'] = 'Ativo';
-$wb['source_txt'] = 'origem';
+$wb['source_txt'] = 'Origem';
 $wb['destination_txt'] = 'Destino';
-$wb['email_txt'] = 'Correio';
-$wb['add_new_record_txt'] = 'Adcionar novo encaminhamento';
+$wb['email_txt'] = 'e-mail';
+$wb['add_new_record_txt'] = 'Adicionar novo encaminhamento';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_get.lng b/interface/web/mail/lib/lang/br_mail_get.lng
index 801aebcda3..a246e406fe 100644
--- a/interface/web/mail/lib/lang/br_mail_get.lng
+++ b/interface/web/mail/lib/lang/br_mail_get.lng
@@ -1,19 +1,19 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['type_txt'] = 'Tipo';
-$wb['source_server_txt'] = 'Servidor Pop3/Imap';
+$wb['source_server_txt'] = 'Servidor pop3/imap';
 $wb['source_username_txt'] = 'Usuário';
 $wb['source_password_txt'] = 'Senha';
 $wb['source_delete_txt'] = 'Remover mensagens da origem após o recebimento';
 $wb['destination_txt'] = 'Destino';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_fetchmail_txt'] = 'O número máximo de Fetchmail para sua conta foi atingido.';
+$wb['limit_fetchmail_txt'] = 'O limite de contas de buscas para esta conta foi alcançado.';
 $wb['source_server_error_isempty'] = 'Servidor em branco.';
 $wb['source_username_error_isempty'] = 'Usuário em branco.';
 $wb['source_password_error_isempty'] = 'Senha em branco.';
 $wb['destination_error_isemail'] = 'Destino não selecionado.';
-$wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.';
-$wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)';
-$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes';
-$wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.';
+$wb['source_server_error_regex'] = 'Servidor pop3/imap não é um domínio válido.';
+$wb['source_read_all_txt'] = 'Receber todos os e-mails (inclusive e-mails lidos)';
+$wb['error_delete_read_all_combination'] = 'Combinação ilegal de opções. Você não pode usar \"Apagar e-mails após recebimento\" = não junto com \"Receber todos os e-mail\" = sim.';
+$wb['source_delete_note_txt'] = 'Por favor, verifique se o e-mail do para recepção está operacional, antes de ativar esta configuração.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_get_list.lng b/interface/web/mail/lib/lang/br_mail_get_list.lng
index 9eaf45b737..07d28d0bd8 100644
--- a/interface/web/mail/lib/lang/br_mail_get_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_get_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Fetch de mensagens de um servidor POP3 / IMAP';
+$wb['list_head_txt'] = 'Busca de mensagens de um servidor POP3/IMAP';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['source_server_txt'] = 'Servidor Externo';
+$wb['source_server_txt'] = 'Servidor externo';
 $wb['source_username_txt'] = 'Usuário';
 $wb['destination_txt'] = 'Destino';
-$wb['add_new_record_txt'] = 'Adcionar nova Conta';
+$wb['add_new_record_txt'] = 'Adicionar nova conta';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_mailinglist.lng b/interface/web/mail/lib/lang/br_mail_mailinglist.lng
index b4570ef863..e544080561 100644
--- a/interface/web/mail/lib/lang/br_mail_mailinglist.lng
+++ b/interface/web/mail/lib/lang/br_mail_mailinglist.lng
@@ -1,22 +1,22 @@
 <?php
-$wb['limit_mailmailinglist_txt'] = 'Limit reached';
-$wb['domain_error_empty'] = 'Domain is empty.';
-$wb['listname_error_empty'] = 'Listname is empty.';
-$wb['domain_error_regex'] = 'Invalid domain name.';
-$wb['email_in_use_txt'] = 'Email is in use';
-$wb['no_domain_perm'] = 'You have no permission for this domain.';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['listname_txt'] = 'Listname';
-$wb['client_txt'] = 'Client';
-$wb['email_txt'] = 'Email';
-$wb['password_txt'] = 'Password';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['listname_error_unique'] = 'There is already a mailinlist with name on the server. Please choose a different listname.';
-$wb['email_error_isemail'] = 'Email address is invalid.';
-$wb['mailinglist_txt'] = 'Mailing list';
+$wb['limit_mailmailinglist_txt'] = 'Limite alcançado';
+$wb['domain_error_empty'] = 'Domínio em branco.';
+$wb['listname_error_empty'] = 'Nome da lista em branco.';
+$wb['domain_error_regex'] = 'Domínio inválido.';
+$wb['email_in_use_txt'] = 'e-mail está em uso';
+$wb['no_domain_perm'] = 'Você não tem permissão para este domínio.';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['server_id_txt'] = 'Servidor';
+$wb['domain_txt'] = 'Domínio';
+$wb['listname_txt'] = 'Nome da lista';
+$wb['client_txt'] = 'Cliente';
+$wb['email_txt'] = 'e-mail';
+$wb['password_txt'] = 'Senha';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['listname_error_unique'] = 'Já existe uma lista com o mesmo nome neste servidor. Por favor, insira outro nome.';
+$wb['email_error_isemail'] = 'Endereço de e-mail inválido.';
+$wb['mailinglist_txt'] = 'Lista de e-mails';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng
index dac225ad99..08fd204fbb 100644
--- a/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Mailing List';
-$wb['domain_txt'] = 'Domain';
-$wb['listname_txt'] = 'Listname';
+$wb['list_head_txt'] = 'Lista de e-mails';
+$wb['domain_txt'] = 'Domínio';
+$wb['listname_txt'] = 'Nome';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_relay_recipient.lng b/interface/web/mail/lib/lang/br_mail_relay_recipient.lng
index cdbf7ca737..7905b53e38 100644
--- a/interface/web/mail/lib/lang/br_mail_relay_recipient.lng
+++ b/interface/web/mail/lib/lang/br_mail_relay_recipient.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
-$wb['source_txt'] = 'Recipiente de Relay';
-$wb['recipient_txt'] = 'Recipiente';
+$wb['source_txt'] = 'Destinatário de retransmissão';
+$wb['recipient_txt'] = 'Destinatário';
 $wb['active_txt'] = 'Ativo';
 $wb['source_error_notempty'] = 'Endereço em branco.';
-$wb['type_txt'] = 'Type';
-$wb['limit_mailfilter_txt'] = 'O número máximo de filtros para esta conta já foi atingido.';
+$wb['type_txt'] = 'Tipo';
+$wb['limit_mailfilter_txt'] = 'O limite de filtros para esta conta foi alcançado.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng
index e6d898c97b..b6ca775e5e 100644
--- a/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Recipientes Relay';
+$wb['list_head_txt'] = 'Destinatários de retransmissão';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['source_txt'] = 'Endereço Recipiente';
-$wb['recipient_txt'] = 'Recipiente';
-$wb['add_new_record_txt'] = 'Adcione um novo relay recipiente';
+$wb['source_txt'] = 'Remetente';
+$wb['recipient_txt'] = 'Destinatário';
+$wb['add_new_record_txt'] = 'Adicionar novo destinatário';
 $wb['access_txt'] = 'acesso';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_spamfilter.lng b/interface/web/mail/lib/lang/br_mail_spamfilter.lng
index 7f8a336420..a5d16274ee 100644
--- a/interface/web/mail/lib/lang/br_mail_spamfilter.lng
+++ b/interface/web/mail/lib/lang/br_mail_spamfilter.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['email_txt'] = 'Email';
-$wb['spam_rewrite_score_int_txt'] = 'Pontução de Rewrite';
-$wb['spam_redirect_score_int_txt'] = 'Pontuação de Redirecionamento';
-$wb['spam_delete_score_int_txt'] = 'Remover Pontuação';
-$wb['spam_rewrite_subject_txt'] = 'Re-escrever assunto';
-$wb['spam_redirect_maildir_txt'] = 'Redirecionar Caixa de Correio';
-$wb['active_txt'] = 'Active';
-$wb['spam_rewrite_txt'] = 'Re-escrever assunto da mensagem depois desta pontuação.';
-$wb['spam_redirect_txt'] = 'Redirecione esta mensagem depois desta pontuação para esta caixa postal';
+$wb['email_txt'] = 'E-mail';
+$wb['spam_rewrite_score_int_txt'] = 'Pontuação de reescrita';
+$wb['spam_redirect_score_int_txt'] = 'Pontuação de redirecionamento';
+$wb['spam_delete_score_int_txt'] = 'Remover pontuação';
+$wb['spam_rewrite_subject_txt'] = 'Reescrever assunto';
+$wb['spam_redirect_maildir_txt'] = 'Redirecionar conta de e-mail';
+$wb['active_txt'] = 'Ativo';
+$wb['spam_rewrite_txt'] = 'Reescrever assunto da mensagem depois desta pontuação.';
+$wb['spam_redirect_txt'] = 'Redirecione esta mensagem depois desta pontuação para esta conta de e-mail';
 $wb['spam_delete_txt'] = 'Remover esta mensagem depois desta pontuação.';
 $wb['disable_txt'] = 'Dica: Para desativar uma opção de filtro, configure a pontuação como 0.00.';
-$wb['email_error_isemail'] = 'Endereço de correio inválido.';
-$wb['email_error_unique'] = 'Já existem registros de spamfilter para esta caixa de correio.';
+$wb['email_error_isemail'] = 'Endereço de e-mail inválido.';
+$wb['email_error_unique'] = 'Já existem registros iguais de filtros antispam para este e-mail.';
 $wb['spam_redirect_maildir_purge_txt'] = 'Remover Maildir depois';
-$wb['days_txt'] = 'Dias.';
+$wb['days_txt'] = 'Dias';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng
index 9b549a9390..01041699e5 100644
--- a/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Filtro Anti-Spam';
+$wb['list_head_txt'] = 'Filtro antispam';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['server_name_txt'] = 'nome_servidor';
-$wb['email_txt'] = 'Correio';
-$wb['add_new_record_txt'] = 'Adcionar novo filtro anti-spam';
+$wb['server_name_txt'] = 'Nome';
+$wb['email_txt'] = 'e-mail';
+$wb['add_new_record_txt'] = 'Adicionar novo filtro antispam';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_transport.lng b/interface/web/mail/lib/lang/br_mail_transport.lng
index a16e835762..7b080493c2 100644
--- a/interface/web/mail/lib/lang/br_mail_transport.lng
+++ b/interface/web/mail/lib/lang/br_mail_transport.lng
@@ -6,6 +6,6 @@ $wb['type_txt'] = 'Tipo';
 $wb['mx_txt'] = 'Sem MX lookup';
 $wb['sort_order_txt'] = 'Ordenar por';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_mailrouting_txt'] = 'O número máximo de rotas para sua conta foi atingido.';
-$wb['transport_txt'] = 'Transport';
+$wb['limit_mailrouting_txt'] = 'O limite de transportes para esta conta foi alcançado.';
+$wb['transport_txt'] = 'Transporte';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_transport_list.lng b/interface/web/mail/lib/lang/br_mail_transport_list.lng
index 4c67280561..1e824b345a 100644
--- a/interface/web/mail/lib/lang/br_mail_transport_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_transport_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Rota Avançada de Correio';
+$wb['list_head_txt'] = 'Transporte de e-mails';
 $wb['active_txt'] = 'Ativa';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
 $wb['transport_txt'] = 'Transporte';
 $wb['sort_order_txt'] = 'Ordenar por';
-$wb['add_new_record_txt'] = 'Adcionar um novo transporte';
+$wb['add_new_record_txt'] = 'Adicionar novo transporte';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_user.lng b/interface/web/mail/lib/lang/br_mail_user.lng
index 648356bb2a..cacfe92250 100644
--- a/interface/web/mail/lib/lang/br_mail_user.lng
+++ b/interface/web/mail/lib/lang/br_mail_user.lng
@@ -1,65 +1,65 @@
 <?php
-$wb['custom_mailfilter_txt'] = 'Formula de filtro de correio';
-$wb['email_txt'] = 'Correio';
+$wb['custom_mailfilter_txt'] = 'Fórmula de filtro de e-mail';
+$wb['email_txt'] = 'e-mail';
 $wb['cryptpwd_txt'] = 'Senha';
-$wb['password_strength_txt'] = 'Tamanho da Senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
 $wb['active_txt'] = 'Ativo';
-$wb['email_error_isemail'] = 'Endereço de Correio Inválido.';
-$wb['email_error_unique'] = 'Endereço de Correio Duplicado.';
+$wb['email_error_isemail'] = 'Endereço de e-mail inválido.';
+$wb['email_error_unique'] = 'Endereço de e-mail duplicado.';
 $wb['autoresponder_text_txt'] = 'Texto';
-$wb['autoresponder_txt'] = 'Autoresponder';
+$wb['autoresponder_txt'] = 'Autoresposta';
 $wb['no_domain_perm'] = 'Sem permissão para este domínio.';
 $wb['error_no_pwd'] = 'Senha em branco.';
-$wb['quota_error_isint'] = 'O tamanho da caixa de correio deve ser um número.';
+$wb['quota_error_isint'] = 'O tamanho do e-mail deve ser um número.';
 $wb['quota_txt'] = 'Cota';
-$wb['server_id_txt'] = 'Server_id';
+$wb['server_id_txt'] = 'ID do servidor';
 $wb['password_txt'] = 'Senha';
-$wb['maildir_txt'] = 'Maildir';
-$wb['postfix_txt'] = 'Habilitar Recebimento';
-$wb['greylisting_txt'] = 'Enable greylisting';
-$wb['access_txt'] = 'Habilitar Acesso';
-$wb['policy_txt'] = 'Spamfilter';
-$wb['no_policy'] = '- desativado -';
-$wb['limit_mailbox_txt'] = 'O número máximo de caixas de correio para sua conta foi atingido.';
-$wb['limit_mailquota_txt'] = 'O espaço em disco disponível para criação de contas foi atingido.';
-$wb['disableimap_txt'] = 'Desativar IMAP';
-$wb['disablepop3_txt'] = 'Disativar POP3';
-$wb['duplicate_alias_or_forward_txt'] = 'Já existe um aliase o encaminhamento com este endereço de correio.';
-$wb['quota_error_value'] = 'Valor de cota inválido. Valores válidos são: 0 para ilimitado ou números > 1';
+$wb['maildir_txt'] = 'Caixa Postal';
+$wb['postfix_txt'] = 'Habilitar recebimento';
+$wb['greylisting_txt'] = 'Habilitar greylist';
+$wb['access_txt'] = 'Habilitar acesso';
+$wb['policy_txt'] = 'Filtro antispam';
+$wb['no_policy'] = '- desabilitado -';
+$wb['limit_mailbox_txt'] = 'O limite de contas de e-mail para esta conta foi alcançado.';
+$wb['limit_mailquota_txt'] = 'O espaço em disco disponível para criação de contas de e-mail foi alcançado.';
+$wb['disableimap_txt'] = 'Desativar imap';
+$wb['disablepop3_txt'] = 'Disativar pop3';
+$wb['duplicate_alias_or_forward_txt'] = 'Já existe um apelido ou encaminhamento com este endereço de e-mail.';
+$wb['quota_error_value'] = 'Valor da cota inválido. Valores válidos são: 0 para ilimitado ou número > 1';
 $wb['autoresponder_start_date_txt'] = 'Início:';
-$wb['autoresponder_start_date_ispast'] = 'A data de ínicio não pode estar no passado.';
-$wb['autoresponder_end_date_txt'] = 'Termino:';
-$wb['autoresponder_end_date_isgreater'] = 'A data de início deve ser menor que a data de termino.';
-$wb['move_junk_txt'] = 'Mover Spam para o diretório JUNK';
-$wb['name_txt'] = 'Nome Real';
+$wb['autoresponder_start_date_ispast'] = 'A data de início não pode ser menor que a data atual.';
+$wb['autoresponder_end_date_txt'] = 'Término:';
+$wb['autoresponder_end_date_isgreater'] = 'A data de término não pode ser menor que a data de início.';
+$wb['move_junk_txt'] = 'Mover spam para o diretório junk';
+$wb['name_txt'] = 'Nome real';
 $wb['name_optional_txt'] = '(Opcional)';
-$wb['autoresponder_active'] = 'Ativar o autoresponder';
+$wb['autoresponder_active'] = 'Ativar autoresposta';
 $wb['cc_txt'] = 'Enviar cópia para';
-$wb['cc_error_isemail'] = 'O campo enviar cópia para deve conter um endereço de e-mail válido';
+$wb['cc_error_isemail'] = 'O campo \"Enviar cópia para\" deve conter um endereço de e-mail válido';
 $wb['domain_txt'] = 'Domínio';
 $wb['now_txt'] = 'Agora';
-$wb['login_error_unique'] = 'Login is already taken.';
-$wb['login_error_regex'] = 'Valid characters are A-Z, a-z, 0-9, ., _ and -.';
-$wb['login_txt'] = 'Login (optional)';
-$wb['error_login_email_txt'] = 'This login is not allowed. Please enter a different login or use the mail address as login.';
-$wb['autoresponder_subject_txt'] = 'Email Subject';
-$wb['autoresponder_subject'] = 'Out of office reply';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.';
-$wb['cc_note_txt'] = '(Separate multiple email addresses with commas)';
-$wb['disablesmtp_txt'] = 'Disable SMTP (sending)';
-$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.';
-$wb['sender_cc_txt'] = 'Send outgoing copy to';
-$wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['no_backup_txt'] = 'No backup';
-$wb['daily_backup_txt'] = 'Daily';
-$wb['weekly_backup_txt'] = 'Weekly';
-$wb['monthly_backup_txt'] = 'Monthly';
-$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['login_error_unique'] = 'O acesso já está em uso.';
+$wb['login_error_regex'] = 'Caracteres válidos são: \"A-Z\", \"a-z\", \"0-9\", \"., _\" e \"-.\".';
+$wb['login_txt'] = 'Acesso (opcional)';
+$wb['error_login_email_txt'] = 'Este acesso não é permitido. Por favor, insira um usuário diferente ou use o endereço de e-mail.';
+$wb['autoresponder_subject_txt'] = 'Assunto do e-mail';
+$wb['autoresponder_subject'] = 'Resposta de ausência temporária';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['email_error_isascii'] = 'Por favor não use caracteres \"unicode\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).';
+$wb['cc_note_txt'] = '(Múltiplos e-mails separados por vírgulas)';
+$wb['disablesmtp_txt'] = 'Desabilitar smtp (envio)';
+$wb['autoresponder_start_date_is_required'] = 'Data de início deve ser configurada quando \"autoresposta\" é habilitada.';
+$wb['sender_cc_txt'] = 'Enviar cópia para';
+$wb['sender_cc_error_isemail'] = 'O campo \"Enviar cópia para\" não contém um endereço de e-mail válido';
+$wb['backup_interval_txt'] = 'Intervalo de backup';
+$wb['backup_copies_txt'] = 'Limite de cópias do backup';
+$wb['no_backup_txt'] = 'Sem backup';
+$wb['daily_backup_txt'] = 'Diário';
+$wb['weekly_backup_txt'] = 'Semanal';
+$wb['monthly_backup_txt'] = 'Mensal';
+$wb['sender_cc_note_txt'] = '(Múltiplos e-mails separados por vírgulas)';
+$wb['password_click_to_set_txt'] = 'Configurar';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_user_filter.lng b/interface/web/mail/lib/lang/br_mail_user_filter.lng
index aa33adffeb..36d766fb96 100644
--- a/interface/web/mail/lib/lang/br_mail_user_filter.lng
+++ b/interface/web/mail/lib/lang/br_mail_user_filter.lng
@@ -3,11 +3,11 @@ $wb['rulename_txt'] = 'Nome';
 $wb['action_txt'] = 'Ação';
 $wb['target_txt'] = 'Pasta';
 $wb['active_txt'] = 'Ativo';
-$wb['rulename_error_empty'] = 'Nome está em branco.';
+$wb['rulename_error_empty'] = 'Nome em branco.';
 $wb['searchterm_is_empty'] = 'Termo de busca em branco.';
 $wb['source_txt'] = 'Origem';
-$wb['target_error_regex'] = 'O alvo não pode conter os caracteres: a-z, 0-9, -, ., _, e {espaço}';
-$wb['limit_mailfilter_txt'] = 'Número máximo de filtros de correio foi atingido.';
+$wb['target_error_regex'] = 'O alvo não pode conter os caracteres: \"a-z\", \"0-9\", \"-\", \".\", _, e \"{espaço}\".';
+$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.';
 $wb['subject_txt'] = 'Assunto';
 $wb['from_txt'] = 'De';
 $wb['to_txt'] = 'Para';
@@ -15,15 +15,15 @@ $wb['contains_txt'] = 'Contém';
 $wb['is_txt'] = 'é';
 $wb['begins_with_txt'] = 'Começa com';
 $wb['ends_with_txt'] = 'Termina com';
-$wb['delete_txt'] = 'Deletar';
-$wb['move_stop_txt'] = 'Move to';
-$wb['header_txt'] = 'Header';
-$wb['size_over_txt'] = 'Email size over (KB)';
-$wb['size_under_txt'] = 'Email size under (KB)';
-$wb['localpart_txt'] = 'Localpart';
-$wb['domain_txt'] = 'Domain';
-$wb['keep_txt'] = 'Keep';
-$wb['reject_txt'] = 'Reject';
-$wb['stop_txt'] = 'Stop';
-$wb['move_to_txt'] = 'Move to';
+$wb['delete_txt'] = 'Remover';
+$wb['move_stop_txt'] = 'Mover para';
+$wb['header_txt'] = 'Cabeçalho';
+$wb['size_over_txt'] = 'Tamanho máximo do e-mail (KB)';
+$wb['size_under_txt'] = 'Tamanho mínimo do e-mail (KB)';
+$wb['localpart_txt'] = 'Local';
+$wb['domain_txt'] = 'Domínio';
+$wb['keep_txt'] = 'Manter';
+$wb['reject_txt'] = 'Rejeitar';
+$wb['stop_txt'] = 'Parar';
+$wb['move_to_txt'] = 'Mover para';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_user_filter_list.lng b/interface/web/mail/lib/lang/br_mail_user_filter_list.lng
index 847d72c3ab..feae1f4bb7 100644
--- a/interface/web/mail/lib/lang/br_mail_user_filter_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_user_filter_list.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['rulename_txt'] = 'Nome';
-$wb['add_new_record_txt'] = 'Adcionar novo filtro';
+$wb['add_new_record_txt'] = 'Adicionar novo filtro';
 $wb['page_txt'] = 'Página';
 $wb['page_of_txt'] = 'de';
-$wb['delete_confirmation'] = 'Está certo que quer remover este mailfilter?';
+$wb['delete_confirmation'] = 'Tem certeza que gostaria de remover este filtro?';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_user_list.lng b/interface/web/mail/lib/lang/br_mail_user_list.lng
index d4fde5812a..3cd9c51740 100644
--- a/interface/web/mail/lib/lang/br_mail_user_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_user_list.lng
@@ -1,12 +1,12 @@
 <?php
-$wb['list_head_txt'] = 'Caixa de Correio';
-$wb['email_txt'] = 'Correio';
-$wb['autoresponder_txt'] = 'Autoresponder';
-$wb['add_new_record_txt'] = 'Adcionar nova caixa de correio';
-$wb['name_txt'] = 'Realname';
-$wb['login_txt'] = 'Login';
-$wb['postfix_txt'] = 'Receiving';
-$wb['disablesmtp_txt'] = 'SMTP (sending)';
+$wb['list_head_txt'] = 'Contas de e-mail';
+$wb['email_txt'] = 'e-mail';
+$wb['autoresponder_txt'] = 'Autoresposta';
+$wb['add_new_record_txt'] = 'Adicionar novo e-mail';
+$wb['name_txt'] = 'Nome real';
+$wb['login_txt'] = 'acesso';
+$wb['postfix_txt'] = 'Recebendo';
+$wb['disablesmtp_txt'] = 'SMTP (envio)';
 $wb['disableimap_txt'] = 'IMAP';
 $wb['disablepop3_txt'] = 'POP3';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_user_stats_list.lng b/interface/web/mail/lib/lang/br_mail_user_stats_list.lng
index 0457c2da54..370ce3520f 100644
--- a/interface/web/mail/lib/lang/br_mail_user_stats_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_user_stats_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Tráfego de Correio';
-$wb['email_txt'] = 'Correio';
-$wb['this_month_txt'] = 'Este Mês';
-$wb['last_month_txt'] = 'Último Mês';
-$wb['this_year_txt'] = 'Este Ano';
-$wb['last_year_txt'] = 'Último Ano';
+$wb['list_head_txt'] = 'Tráfego de e-mail';
+$wb['email_txt'] = 'e-mail';
+$wb['this_month_txt'] = 'Este mês';
+$wb['last_month_txt'] = 'Último mês';
+$wb['this_year_txt'] = 'Este ano';
+$wb['last_year_txt'] = 'Último ano';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_whitelist.lng b/interface/web/mail/lib/lang/br_mail_whitelist.lng
index 15db38f28c..3443387003 100644
--- a/interface/web/mail/lib/lang/br_mail_whitelist.lng
+++ b/interface/web/mail/lib/lang/br_mail_whitelist.lng
@@ -1,9 +1,9 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
-$wb['source_txt'] = 'Endereço Lista Branca';
-$wb['recipient_txt'] = 'Recipiente';
-$wb['active_txt'] = 'Activo';
+$wb['source_txt'] = 'Lista Branca';
+$wb['recipient_txt'] = 'Destinatário';
+$wb['active_txt'] = 'Ativo';
 $wb['source_error_notempty'] = 'Endereço em Branco.';
 $wb['type_txt'] = 'Tipo';
-$wb['limit_mailfilter_txt'] = 'O número máximo de filtros para sua conta foi atingido.';
+$wb['limit_mailfilter_txt'] = 'O limite de filtros para esta conta foi alcançado.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_mail_whitelist_list.lng b/interface/web/mail/lib/lang/br_mail_whitelist_list.lng
index bd84205e40..40eced2d2c 100644
--- a/interface/web/mail/lib/lang/br_mail_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/br_mail_whitelist_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Correio Lista Branca';
+$wb['list_head_txt'] = 'Lista branca';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['source_txt'] = 'Endereços na Lista Branca';
+$wb['source_txt'] = 'e-mails na lista branca';
 $wb['type_txt'] = 'Tipo';
-$wb['recipient_txt'] = 'Recipiente';
-$wb['add_new_record_txt'] = 'Adcionar um novo registro a lista';
+$wb['recipient_txt'] = 'Destinatário';
+$wb['add_new_record_txt'] = 'Adicionar novo registro à lista';
 $wb['access_txt'] = 'acesso';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng
index 7124ffd6b4..df01dd30ba 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng
@@ -2,11 +2,11 @@
 $wb['server_id_txt'] = 'Servidor';
 $wb['wb_txt'] = 'wb';
 $wb['rid_txt'] = 'Usuário';
-$wb['email_txt'] = 'Email';
+$wb['email_txt'] = 'Endereço de e-mail';
 $wb['priority_txt'] = 'Prioridade';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_spamfilter_wblist_txt'] = 'O número máximo de registros de lista negra /  branca foi atingido para esta conta.';
-$wb['10 - highest'] = '10 - highest';
-$wb['5 - medium'] = '5 - medium';
-$wb['1 - lowest'] = '1 - lowest';
+$wb['limit_spamfilter_wblist_txt'] = 'O limite de registros na lista branca/negra para esta conta foi alcançado.';
+$wb['10 - highest'] = '10 - alta';
+$wb['5 - medium'] = '5 - média';
+$wb['1 - lowest'] = '1 - baixa';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng
index 81906532ae..c48da514b1 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_blacklist_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Spamfilter Lista Negra';
+$wb['list_head_txt'] = 'Filtro antispam (lista negra) ';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['priority_txt'] = 'Prioridade';
 $wb['rid_txt'] = 'Usuário';
-$wb['email_txt'] = 'Correio na Lista Negra';
-$wb['add_new_record_txt'] = 'Adcionar novo registro a lista';
+$wb['email_txt'] = 'Endereço de e-mail na lista negra';
+$wb['add_new_record_txt'] = 'Adicionar novo registro à lista';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_config.lng b/interface/web/mail/lib/lang/br_spamfilter_config.lng
index 30d01386c9..ac7a46fc54 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_config.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_config.lng
@@ -1,20 +1,20 @@
 <?php
-$wb['getmail_config_dir_txt'] = 'Caminho de Configuração Getmail ';
+$wb['getmail_config_dir_txt'] = 'Caminho de configuração getmail ';
 $wb['ip_address_txt'] = 'Endereço IP';
-$wb['netmask_txt'] = 'Mascara de Rede';
+$wb['netmask_txt'] = 'Máscara de rede';
 $wb['gateway_txt'] = 'Gateway';
-$wb['hostname_txt'] = 'Hostname';
-$wb['nameservers_txt'] = 'Servidor de Nomes';
-$wb['module_txt'] = 'Server Module';
+$wb['hostname_txt'] = 'Hospedeiro';
+$wb['nameservers_txt'] = 'Servidor de nomes';
+$wb['module_txt'] = 'Módulo do servidor';
 $wb['maildir_path_txt'] = 'Caminho do Maildir';
 $wb['homedir_path_txt'] = 'Caminho do Homedir';
-$wb['mailuser_uid_txt'] = 'Usuário de Correio UID';
-$wb['mailuser_gid_txt'] = 'Usuário de Correio GID';
-$wb['mailuser_name_txt'] = 'Nome do Usuário de Correio';
-$wb['mailuser_group_txt'] = 'Grupo do Usuário de Correio';
+$wb['mailuser_uid_txt'] = 'Usuário de e-mail (UID)';
+$wb['mailuser_gid_txt'] = 'Grupo de e-mail (GID)';
+$wb['mailuser_name_txt'] = 'Nome do usuário de e-mail';
+$wb['mailuser_group_txt'] = 'Grupo do usuário de e-mail';
 $wb['relayhost_txt'] = 'Host Relay';
-$wb['relayhost_user_txt'] = 'Usuário Host Relay';
-$wb['relayhost_password_txt'] = 'Senha Host Relay';
-$wb['mailbox_size_limit_txt'] = 'Tamanho Caixa de Correio';
-$wb['message_size_limit_txt'] = 'Tamanho da Mensagem';
+$wb['relayhost_user_txt'] = 'Usuário host relay';
+$wb['relayhost_password_txt'] = 'Senha host relay';
+$wb['mailbox_size_limit_txt'] = 'Tamanho da conta de e-mail';
+$wb['message_size_limit_txt'] = 'Tamanho da mensagem';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_config_list.lng b/interface/web/mail/lib/lang/br_spamfilter_config_list.lng
index 345903fe5c..300e210b15 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_config_list.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_config_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Configurações do Servidor';
+$wb['list_head_txt'] = 'Configurações do servidor';
 $wb['server_name_txt'] = 'Servidor';
-$wb['server_id_txt'] = 'id_servidor';
+$wb['server_id_txt'] = 'ID do servidor';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_policy.lng b/interface/web/mail/lib/lang/br_spamfilter_policy.lng
index 24eb2ed0a9..b21004323a 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_policy.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_policy.lng
@@ -1,38 +1,38 @@
 <?php
-$wb['policy_name_txt'] = 'Nome da Regra';
-$wb['virus_lover_txt'] = 'Permitir Vírus';
-$wb['spam_lover_txt'] = 'Permitir SPAM';
-$wb['banned_files_lover_txt'] = 'Permitir Arquivos Banidos';
-$wb['bad_header_lover_txt'] = 'Permitir Bad header';
-$wb['bypass_virus_checks_txt'] = 'Bypassar checagem de vírus';
-$wb['bypass_banned_checks_txt'] = 'Bypassar checagem de banimento';
-$wb['bypass_header_checks_txt'] = 'Bypassar checagem de header';
-$wb['virus_quarantine_to_txt'] = 'Encaminhar o vírus para o correio';
-$wb['spam_quarantine_to_txt'] = 'Encaminhar o spam para o correio';
-$wb['banned_quarantine_to_txt'] = 'Encaminhar banimento para o correio';
-$wb['bad_header_quarantine_to_txt'] = 'Encaminhar bad header para o correio';
-$wb['clean_quarantine_to_txt'] = 'Encaminhamento limpo para o correio';
-$wb['other_quarantine_to_txt'] = 'Encaminhar para outro correio';
-$wb['spam_tag_level_txt'] = 'Nível 1 de marcação de SPAM';
-$wb['spam_tag2_level_txt'] = 'Nível 1 de marcação de SPAM';
-$wb['spam_kill_level_txt'] = 'Nível kill de SPAM';
-$wb['spam_dsn_cutoff_level_txt'] = 'Nível de corte de dns SPAM';
-$wb['spam_quarantine_cutoff_level_txt'] = 'Nível de corte de quarentena SPAM';
-$wb['spam_modifies_subj_txt'] = 'Modificar assunto de mensagem com SPAM';
-$wb['spam_subject_tag_txt'] = 'Marcação de assunto SPAM 1';
-$wb['spam_subject_tag2_txt'] = 'Marcação de assunto SPAM 1';
-$wb['addr_extension_virus_txt'] = 'Addr. extensão de virus';
-$wb['addr_extension_spam_txt'] = 'Addr. extensão de SPAM';
-$wb['addr_extension_banned_txt'] = 'Addr. extensão de banimento';
-$wb['addr_extension_bad_header_txt'] = 'Addr extensão de bad header';
-$wb['warnvirusrecip_txt'] = 'Aviso de recipiente de vírus.';
-$wb['warnbannedrecip_txt'] = 'Aviso de recipiente de banimento.';
-$wb['warnbadhrecip_txt'] = 'Aviso de recipiente de bad header.';
-$wb['newvirus_admin_txt'] = 'Administrador Novo vírus';
-$wb['virus_admin_txt'] = 'Administrador Vírus';
-$wb['banned_admin_txt'] = 'Administrador de banimento';
-$wb['bad_header_admin_txt'] = 'Administrador de Bad header';
-$wb['spam_admin_txt'] = 'Administrador SPAM';
-$wb['message_size_limit_txt'] = 'Tamanho limite da mensagem';
-$wb['banned_rulenames_txt'] = 'Regras de Banimento';
+$wb['policy_name_txt'] = 'Nome da regra';
+$wb['virus_lover_txt'] = 'Permitir vírus';
+$wb['spam_lover_txt'] = 'Permitir spam';
+$wb['banned_files_lover_txt'] = 'Permitir arquivos banidos';
+$wb['bad_header_lover_txt'] = 'Permitir cabeçalho inválido';
+$wb['bypass_virus_checks_txt'] = 'Ignorar verificação de vírus';
+$wb['bypass_banned_checks_txt'] = 'Ignorar verificação de arquivos banidos';
+$wb['bypass_header_checks_txt'] = 'Ignorar verificação de cabeçalho inválido';
+$wb['virus_quarantine_to_txt'] = 'Encaminhar o vírus para o e-mail';
+$wb['spam_quarantine_to_txt'] = 'Encaminhar o spam para o e-mail';
+$wb['banned_quarantine_to_txt'] = 'Encaminhar arquivos banidos para o e-mail';
+$wb['bad_header_quarantine_to_txt'] = 'Encaminhar cabeçalho inválido para o e-mail';
+$wb['clean_quarantine_to_txt'] = 'Encaminhar mensagens/arquivos em quarentena para o e-mail';
+$wb['other_quarantine_to_txt'] = 'Encaminhar para outro e-mail';
+$wb['spam_tag_level_txt'] = 'Nível 1 de marcação antispam';
+$wb['spam_tag2_level_txt'] = 'Nível 2 de marcação antispam';
+$wb['spam_kill_level_txt'] = 'Nível máximo de marcação antispam';
+$wb['spam_dsn_cutoff_level_txt'] = 'Nível de corte de dns antispam';
+$wb['spam_quarantine_cutoff_level_txt'] = 'Nível de corte de quarentena antispam';
+$wb['spam_modifies_subj_txt'] = 'Modificar assunto de mensagem com spam';
+$wb['spam_subject_tag_txt'] = 'Marcação de assunto spam 1';
+$wb['spam_subject_tag2_txt'] = 'Marcação de assunto spam 2';
+$wb['addr_extension_virus_txt'] = 'Adicionar extensão de vírus';
+$wb['addr_extension_spam_txt'] = 'Adicionar extensão de spam';
+$wb['addr_extension_banned_txt'] = 'Adicionar extensão de arquivos banidos';
+$wb['addr_extension_bad_header_txt'] = 'Adicionar extensão de cabeçalho inválido';
+$wb['warnvirusrecip_txt'] = 'Aviso de destinatário de vírus.';
+$wb['warnbannedrecip_txt'] = 'Aviso de destinatário de arquivos banidos.';
+$wb['warnbadhrecip_txt'] = 'Aviso de destinatário de cabeçalho inválido.';
+$wb['newvirus_admin_txt'] = 'Administrador para novo vírus';
+$wb['virus_admin_txt'] = 'Administrador para vírus';
+$wb['banned_admin_txt'] = 'Administrador para arquivos banidos';
+$wb['bad_header_admin_txt'] = 'Administrador para cabeçalhos inválidos';
+$wb['spam_admin_txt'] = 'Administrador para spam';
+$wb['message_size_limit_txt'] = 'Tamanho máximo da mensagem';
+$wb['banned_rulenames_txt'] = 'Regras de banimento';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng
index 7247b2a175..ba829f50b1 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Políticas de Spam';
+$wb['list_head_txt'] = 'Políticas antispam';
 $wb['policy_name_txt'] = 'Nome';
-$wb['virus_lover_txt'] = 'Permitir Virus';
-$wb['spam_lover_txt'] = 'Permitir Spam';
-$wb['banned_files_lover_txt'] = 'Permitir Arquivos Banidos';
-$wb['bad_header_lover_txt'] = 'Permitir Bad Header';
-$wb['add_new_record_txt'] = 'Adcionar Registro';
+$wb['virus_lover_txt'] = 'Permitir vírus';
+$wb['spam_lover_txt'] = 'Permitir spam';
+$wb['banned_files_lover_txt'] = 'Permitir arquivos banidos';
+$wb['bad_header_lover_txt'] = 'Permitir cabeçalho inválido';
+$wb['add_new_record_txt'] = 'Adicionar registro';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_users.lng b/interface/web/mail/lib/lang/br_spamfilter_users.lng
index 0ee8d37d50..1532673a9f 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_users.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_users.lng
@@ -2,12 +2,12 @@
 $wb['server_id_txt'] = 'Servidor';
 $wb['priority_txt'] = 'Prioridade';
 $wb['policy_id_txt'] = 'Política';
-$wb['email_txt'] = 'Correio (Padrão)';
+$wb['email_txt'] = 'e-mail (padrão)';
 $wb['fullname_txt'] = 'Nome';
 $wb['local_txt'] = 'Local';
-$wb['email_error_notempty'] = 'The email address must not be empty.';
-$wb['fullname_error_notempty'] = 'The name must not be empty.';
-$wb['10 - highest'] = '10 - highest';
-$wb['5 - medium'] = '5 - medium';
-$wb['1 - lowest'] = '1 - lowest';
+$wb['email_error_notempty'] = 'Endereço de e-mail em branco.';
+$wb['fullname_error_notempty'] = 'Nome em branco.';
+$wb['10 - highest'] = '10 - alta';
+$wb['5 - medium'] = '5 - média';
+$wb['1 - lowest'] = '1 - baixa';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_users_list.lng b/interface/web/mail/lib/lang/br_spamfilter_users_list.lng
index 1fe408eb4e..6655b631a9 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_users_list.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_users_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Filtro Anti-Spam Usuários';
+$wb['list_head_txt'] = 'Usuários de filtro antispam';
 $wb['local_txt'] = 'Local';
 $wb['server_id_txt'] = 'Servidor';
 $wb['priority_txt'] = 'Prioridade';
 $wb['policy_id_txt'] = 'Políticas';
 $wb['fullname_txt'] = 'Nome';
-$wb['email_txt'] = 'Email';
-$wb['add_new_record_txt'] = 'Adcionar Usuário';
+$wb['email_txt'] = 'e-mail';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng
index f8dba4bcd9..0161d716ae 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng
@@ -2,11 +2,11 @@
 $wb['server_id_txt'] = 'Servidor';
 $wb['wb_txt'] = 'wb';
 $wb['rid_txt'] = 'Usuário';
-$wb['email_txt'] = 'Correio Eletrônico';
+$wb['email_txt'] = 'e-mail';
 $wb['priority_txt'] = 'Prioridade';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_spamfilter_wblist_txt'] = 'O número máximo de registros da lista branca / negra foi atingido para esta conta.';
-$wb['10 - highest'] = '10 - highest';
-$wb['5 - medium'] = '5 - medium';
-$wb['1 - lowest'] = '1 - lowest';
+$wb['limit_spamfilter_wblist_txt'] = 'O limite de registros na lista branca/negra para esta conta foi alcançado.';
+$wb['10 - highest'] = '10 - alta';
+$wb['5 - medium'] = '5 - média';
+$wb['1 - lowest'] = '1 - baixa';
 ?>
diff --git a/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng
index 4420bca63b..c1db3d2a94 100644
--- a/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/br_spamfilter_whitelist_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Spamfilter Lista Branca';
+$wb['list_head_txt'] = 'Lista branca (antispam)';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['priority_txt'] = 'Prioridade';
 $wb['rid_txt'] = 'Usuário';
-$wb['email_txt'] = 'Correio na lista branca';
-$wb['add_new_record_txt'] = 'Adcionar um novo correio';
+$wb['email_txt'] = 'e-mail na lista branca';
+$wb['add_new_record_txt'] = 'Adicionar novo e-mail';
 ?>
diff --git a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng
index 394e97c5c7..38db7b8796 100755
--- a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng
+++ b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Mailbox quota';
-$wb['quota_txt'] = 'Quota';
-$wb['name_txt'] = 'Name';
-$wb['email_txt'] = 'Email Address';
-$wb['used_txt'] = 'Used space';
-$wb['percentage_txt'] = 'Used %';
+$wb['list_head_txt'] = 'Cota para contas de e-mail';
+$wb['quota_txt'] = 'Cota';
+$wb['name_txt'] = 'Nome';
+$wb['email_txt'] = 'Endereço de e-mail';
+$wb['used_txt'] = 'Espaço utilizado';
+$wb['percentage_txt'] = 'Em uso %';
 ?>
diff --git a/interface/web/mail/lib/lang/br_xmpp_domain.lng b/interface/web/mail/lib/lang/br_xmpp_domain.lng
index 0541203b2e..bd79cb1dce 100644
--- a/interface/web/mail/lib/lang/br_xmpp_domain.lng
+++ b/interface/web/mail/lib/lang/br_xmpp_domain.lng
@@ -1,62 +1,62 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['client_group_id_txt'] = 'Client';
-$wb['domain_txt'] = 'Domain';
-$wb['type_txt'] = 'Type';
-$wb['active_txt'] = 'Active';
-$wb['client_txt'] = 'Client';
-$wb['management_method_txt'] = 'Management of user accounts';
-$wb['public_registration_txt'] = 'Enable public registration';
-$wb['registration_url_txt'] = 'Registration URL';
-$wb['registration_message_txt'] = 'Registration Message';
-$wb['domain_admins_txt'] = 'Domain Admins (JIDs)';
-$wb['use_pubsub_txt'] = 'Enable Pubsub';
-$wb['use_proxy_txt'] = 'Enable Bytestream Proxy';
-$wb['use_anon_host_txt'] = 'Enable Anonymous Host';
-$wb['use_vjud_txt'] = 'Enable VJUD User Directory';
-$wb['vjud_opt_mode_txt'] = 'VJUD Opt Mode';
-$wb['use_muc_host_txt'] = 'Enable Multi User Chatrooms';
-$wb['muc_name_txt'] = 'Name in MUC Service Discovery';
-$wb['muc_restrict_room_creation_txt'] = 'Permission to create chatrooms';
-$wb['muc_admins_txt'] = 'MUC Admins (JIDs)';
-$wb['use_pastebin_txt'] = 'Enable Pastebin';
-$wb['pastebin_expire_after_txt'] = 'Pastes expire after (hours)';
-$wb['pastebin_trigger_txt'] = 'Pastebin trigger';
-$wb['use_http_archive_txt'] = 'Enable HTTP chatroom archive';
-$wb['http_archive_show_join_txt'] = 'Show join messages in archive';
-$wb['http_archive_show_status_txt'] = 'Show status changes in archive';
-$wb['use_status_host_txt'] = 'Enable XML Status host';
-$wb['cant_change_domainname_txt'] = 'The Domain name of existing XMPP domain cannot be changed.';
-$wb['about_registration_url_txt'] = 'Link to your registration form.';
-$wb['about_registration_message_txt'] = 'Description about your account registration process.';
-$wb['no_corresponding_maildomain_txt'] = 'Corresponding mail domain for user management not found. Please create the mail domain first.';
-$wb['ssl_state_txt'] = 'State';
-$wb['ssl_locality_txt'] = 'Locality';
-$wb['ssl_organisation_txt'] = 'Organisation';
-$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
-$wb['ssl_email_txt'] = 'Email Address';
+$wb['server_id_txt'] = 'Servidor';
+$wb['client_group_id_txt'] = 'Cliente';
+$wb['domain_txt'] = 'Domínio';
+$wb['type_txt'] = 'Tipo';
+$wb['active_txt'] = 'Ativo';
+$wb['client_txt'] = 'Cliente';
+$wb['management_method_txt'] = 'Gerenciamento de contas de usuários';
+$wb['public_registration_txt'] = 'Habilitar registro público';
+$wb['registration_url_txt'] = 'URL de registro';
+$wb['registration_message_txt'] = 'Mensagem de registro';
+$wb['domain_admins_txt'] = 'Administradores de domínio (JIDs)';
+$wb['use_pubsub_txt'] = 'Habilitar Pubsub';
+$wb['use_proxy_txt'] = 'Habilitar proxy Bytestream';
+$wb['use_anon_host_txt'] = 'Habilitar host anônimo';
+$wb['use_vjud_txt'] = 'Habilitar diretório de usuário VJUD';
+$wb['vjud_opt_mode_txt'] = 'Modo de operação VJUD';
+$wb['use_muc_host_txt'] = 'Habilitar chats multiusuários';
+$wb['muc_name_txt'] = 'Nome na descoberta do MUC';
+$wb['muc_restrict_room_creation_txt'] = 'Permissão para criar salas de chat';
+$wb['muc_admins_txt'] = 'Administradores de MUC (JIDs)';
+$wb['use_pastebin_txt'] = 'Habilitar Pastebin';
+$wb['pastebin_expire_after_txt'] = 'Colagens expiram após (horas)';
+$wb['pastebin_trigger_txt'] = 'Gatilho Pastebin';
+$wb['use_http_archive_txt'] = 'Habilitar arquivo HTTP em salas de chat';
+$wb['http_archive_show_join_txt'] = 'Exibir mensagens de participação em arquivos';
+$wb['http_archive_show_status_txt'] = 'Exibir estado de mudança em arquivos';
+$wb['use_status_host_txt'] = 'Habilitar estado XML do host';
+$wb['cant_change_domainname_txt'] = 'O nome domínio XMPP existente não pode ser modificado.';
+$wb['about_registration_url_txt'] = 'Link para o página de registro.';
+$wb['about_registration_message_txt'] = 'Descrição sobre seu processo de registro de conta.';
+$wb['no_corresponding_maildomain_txt'] = 'O domínio de e-mail correspondente para gerenciamento de usuário não foi encontrado. Por favor crie o domínio de e-mail primeiro.';
+$wb['ssl_state_txt'] = 'Estado';
+$wb['ssl_locality_txt'] = 'Cidade';
+$wb['ssl_organisation_txt'] = 'Empresa';
+$wb['ssl_organisation_unit_txt'] = 'Departamento';
+$wb['ssl_country_txt'] = 'País';
+$wb['ssl_key_txt'] = 'Chave';
+$wb['ssl_request_txt'] = 'Requisição';
+$wb['ssl_cert_txt'] = 'Certificado';
+$wb['ssl_bundle_txt'] = 'Pacote';
+$wb['ssl_action_txt'] = 'Ação';
+$wb['ssl_email_txt'] = 'Endereço de e-mail';
 $wb['ssl_txt'] = 'SSL';
-$wb['error_ssl_state_empty'] = 'SSL State is empty.';
-$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
-$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
-$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
-$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
-$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
-$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_&äöüÄÖÜ';
-$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['none_txt'] = 'None';
-$wb['save_certificate_txt'] = 'Save certificate';
-$wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['ssl_error_isemail'] = 'Please enter a valid email adress for generation of the SSL certificate';
-$wb['limit_xmppdomain_txt'] = 'The max. number of XMPP domains for your account is reached.';
+$wb['error_ssl_state_empty'] = 'Campo \"Estado\" em branco.';
+$wb['error_ssl_locality_empty'] = 'Campo \"Cidade\" em branco.';
+$wb['error_ssl_organisation_empty'] = 'Campo \"Empresa\" em branco.';
+$wb['error_ssl_organisation_unit_empty'] = 'Campo \"Departamento\" em branco.';
+$wb['error_ssl_country_empty'] = 'Campo \"País\" em branco.';
+$wb['error_ssl_cert_empty'] = 'Campo \"Certificado\" em branco.';
+$wb['ssl_state_error_regex'] = 'Campo \"Estado\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_locality_error_regex'] = 'Campo \"Cidade\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organisation_error_regex'] = 'Campo \"Empresa\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organistaion_unit_error_regex'] = 'Campo \"Departamento\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_country_error_regex'] = 'Campo \"País\" inválido. São caracteres válidos: \"A-Z\".';
+$wb['none_txt'] = 'Nenhum';
+$wb['save_certificate_txt'] = 'Salvar certificado';
+$wb['create_certificate_txt'] = 'Adicionar certificado';
+$wb['delete_certificate_txt'] = 'Remover certificado';
+$wb['ssl_error_isemail'] = 'Por favor, insira um e-mail válido para gerar o certificado SSL.';
+$wb['limit_xmppdomain_txt'] = 'O limite de domínios xmpp para esta conta foi alcançado.';
 ?>
diff --git a/interface/web/mail/lib/lang/br_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/br_xmpp_domain_admin_list.lng
index af643eab5a..b8d2208970 100644
--- a/interface/web/mail/lib/lang/br_xmpp_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/br_xmpp_domain_admin_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'XMPP Domain';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['add_new_record_txt'] = 'Add new Domain';
-$wb['active_txt'] = 'Active';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['list_head_txt'] = 'Domínio XMPP';
+$wb['server_id_txt'] = 'Servidor';
+$wb['domain_txt'] = 'Domínio';
+$wb['add_new_record_txt'] = 'Adicionar novo domínio';
+$wb['active_txt'] = 'Ativo';
+$wb['sys_groupid_txt'] = 'Cliente';
 ?>
diff --git a/interface/web/mail/lib/lang/br_xmpp_domain_list.lng b/interface/web/mail/lib/lang/br_xmpp_domain_list.lng
index ebfebab7d5..ab8f3a9087 100644
--- a/interface/web/mail/lib/lang/br_xmpp_domain_list.lng
+++ b/interface/web/mail/lib/lang/br_xmpp_domain_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'XMPP Domain';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['add_new_record_txt'] = 'Add new Domain';
-$wb['active_txt'] = 'Active';
+$wb['list_head_txt'] = 'Domínio XMPP';
+$wb['server_id_txt'] = 'Servidor';
+$wb['domain_txt'] = 'Domínio';
+$wb['add_new_record_txt'] = 'Adicionar novo domínio';
+$wb['active_txt'] = 'Ativo';
 ?>
diff --git a/interface/web/mail/lib/lang/br_xmpp_user.lng b/interface/web/mail/lib/lang/br_xmpp_user.lng
index 6ab739d98b..b50ace6b34 100644
--- a/interface/web/mail/lib/lang/br_xmpp_user.lng
+++ b/interface/web/mail/lib/lang/br_xmpp_user.lng
@@ -1,15 +1,15 @@
 <?php
-$wb['list_head_txt'] = 'XMPP User Accounts';
-$wb['jid_txt'] = 'Jabber ID';
-$wb['active_txt'] = 'Active';
-$wb['cryptpwd_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['error_no_pwd'] = 'Password is empty.';
-$wb['password_txt'] = 'Password';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['no_domain_perm'] = 'You have no permission for this domain.';
-$wb['limit_xmpp_user_txt'] = 'The max. number of xmpp accounts for your account is reached.';
+$wb['list_head_txt'] = 'Usuários XMPP';
+$wb['jid_txt'] = 'ID do Jabber';
+$wb['active_txt'] = 'Ativo';
+$wb['cryptpwd_txt'] = 'Senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['error_no_pwd'] = 'Senha em branco.';
+$wb['password_txt'] = 'Senha';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['no_domain_perm'] = 'Você não tem permissão para este domínio.';
+$wb['limit_xmpp_user_txt'] = 'O limite de usuários xmpp para esta conta foi alcançando.';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br.lng b/interface/web/mailuser/lib/lang/br.lng
index 114dec9b91..9091e53ea9 100644
--- a/interface/web/mailuser/lib/lang/br.lng
+++ b/interface/web/mailuser/lib/lang/br.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['Email Account'] = 'Email Account';
-$wb['Overview'] = 'Overview';
+$wb['Email Account'] = 'Contas de e-mail';
+$wb['Overview'] = 'Visão geral';
+$wb['Autoresponder'] = 'Resposta automática';
+$wb['Send copy'] = 'Enviar cópia para';
+$wb['Spamfilter'] = 'Antispam';
+$wb['Email Filters'] = 'Filtros de e-mail';
 $wb['Password'] = 'Password';
-$wb['Autoresponder'] = 'Autoresponder';
-$wb['Send copy'] = 'Send copy';
-$wb['Spamfilter'] = 'Spamfilter';
-$wb['Email Filters'] = 'Email Filters';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_index.lng b/interface/web/mailuser/lib/lang/br_index.lng
index 29fe9ea4f3..eb7d7e1e7e 100644
--- a/interface/web/mailuser/lib/lang/br_index.lng
+++ b/interface/web/mailuser/lib/lang/br_index.lng
@@ -1,12 +1,12 @@
 <?php
-$wb['page_head_txt'] = 'Mailbox settings';
-$wb['page_desc_txt'] = 'Here you can edit the settings for the email account.';
-$wb['email_txt'] = 'Email address';
-$wb['login_txt'] = 'Login';
-$wb['server_address_txt'] = 'Mailserver address';
-$wb['cc_txt'] = 'Send copy to (CC)';
-$wb['quota_txt'] = 'Mailbox size';
-$wb['unlimited_txt'] = 'Unlimited';
+$wb['page_head_txt'] = 'Configurações de contas de e-mail';
+$wb['page_desc_txt'] = 'Aqui você edita as configurações para as contas de e-mail.';
+$wb['email_txt'] = 'Endereço de e-mail';
+$wb['login_txt'] = 'Acesso';
+$wb['server_address_txt'] = 'Endereço do servidor de e-mails';
+$wb['cc_txt'] = 'Enviar cópia para (CC)';
+$wb['quota_txt'] = 'Tamanho da caixa postal';
+$wb['unlimited_txt'] = 'ilimitada';
 $wb['mb_txt'] = 'MB';
-$wb['none_txt'] = 'None';
+$wb['none_txt'] = 'Nenhum';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng
index 79f386a7dc..6e00682a44 100644
--- a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng
+++ b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng
@@ -1,13 +1,13 @@
 <?php
-$wb['mailbox_autoresponder_txt'] = 'Autoresponder';
-$wb['autoresponder_subject'] = 'Out of office reply';
-$wb['autoresponder_text_txt'] = 'Text';
-$wb['autoresponder_txt'] = 'Active';
-$wb['autoresponder_start_date_txt'] = 'Start on';
-$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.';
-$wb['autoresponder_end_date_txt'] = 'End by';
-$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.';
-$wb['autoresponder_active'] = 'Enable the autoresponder';
-$wb['now_txt'] = 'Now';
-$wb['autoresponder_subject_txt'] = 'Betreff';
+$wb['mailbox_autoresponder_txt'] = 'Autoresposta';
+$wb['autoresponder_subject'] = 'Resposta de ausência temporária';
+$wb['autoresponder_text_txt'] = 'Texto';
+$wb['autoresponder_txt'] = 'Ativo';
+$wb['autoresponder_start_date_txt'] = 'Início';
+$wb['autoresponder_start_date_isfuture'] = 'A data de início não pode ser menor que a data atual.';
+$wb['autoresponder_end_date_txt'] = 'Término';
+$wb['autoresponder_end_date_isgreater'] = 'A data de término não pode ser menor que a data de início.';
+$wb['autoresponder_active'] = 'Habilitar autoresposta';
+$wb['now_txt'] = 'Agora';
+$wb['autoresponder_subject_txt'] = 'Assunto';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_mail_user_cc.lng b/interface/web/mailuser/lib/lang/br_mail_user_cc.lng
index 81877884cc..95d4434bd4 100644
--- a/interface/web/mailuser/lib/lang/br_mail_user_cc.lng
+++ b/interface/web/mailuser/lib/lang/br_mail_user_cc.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['mailbox_cc_txt'] = 'Send copy to email address';
-$wb['cc_txt'] = 'Send copy to';
-$wb['email_txt'] = 'Email';
-$wb['cc_error_isemail'] = 'Email address invalid in -Send copy to- field';
-$wb['email_is_cc_error'] = 'Email address and send copy to address can not be the same.';
-$wb['name_optional_txt'] = '(Optional)';
-$wb['cc_note_txt'] = '(Separate multiple email addresses with commas)';
+$wb['mailbox_cc_txt'] = 'Enviar cópia para o e-mail';
+$wb['cc_txt'] = 'Enviar cópia para';
+$wb['email_txt'] = 'e-mail';
+$wb['cc_error_isemail'] = 'Endereço de e-mail inválido em -enviar cópia para-';
+$wb['email_is_cc_error'] = 'Endereço de e-mail e -enviar cópia para- não podem ser iguais.';
+$wb['name_optional_txt'] = '(Opcional)';
+$wb['cc_note_txt'] = '(Separar múltiplos e-mails por vírgulas)';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng
index 4069a15351..2c2463d500 100644
--- a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng
+++ b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng
@@ -1,21 +1,21 @@
 <?php
-$wb['rulename_txt'] = 'Name';
-$wb['action_txt'] = 'Action';
-$wb['target_txt'] = 'Folder';
-$wb['active_txt'] = 'Active';
-$wb['rulename_error_empty'] = 'Name is empty.';
-$wb['searchterm_is_empty'] = 'Search term is empty.';
-$wb['source_txt'] = 'Source';
-$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}';
-$wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.';
-$wb['subject_txt'] = 'Subject';
-$wb['from_txt'] = 'From';
-$wb['to_txt'] = 'To';
-$wb['contains_txt'] = 'Contains';
-$wb['is_txt'] = 'Is';
-$wb['begins_with_txt'] = 'Begins with';
-$wb['ends_with_txt'] = 'Ends with';
-$wb['move_to_txt'] = 'Move to';
-$wb['delete_txt'] = 'Delete';
-$wb['mailbox_filter_txt'] = 'Mailbox filter';
+$wb['rulename_txt'] = 'Nome';
+$wb['action_txt'] = 'Ação';
+$wb['target_txt'] = 'Pasta';
+$wb['active_txt'] = 'Ativo';
+$wb['rulename_error_empty'] = 'Nome em branco.';
+$wb['searchterm_is_empty'] = 'Termo de pesquisa em branco.';
+$wb['source_txt'] = 'Fonte';
+$wb['target_error_regex'] = 'O alvo pode conter os seguintes caracteres: \"a-z\", \"0-9\", \"-\"-, \".\", \"_\", e \"{espaço}\".';
+$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mails para esta conta foi alcançado.';
+$wb['subject_txt'] = 'Assunto';
+$wb['from_txt'] = 'De';
+$wb['to_txt'] = 'Para';
+$wb['contains_txt'] = 'Contém';
+$wb['is_txt'] = 'É';
+$wb['begins_with_txt'] = 'Iniciando com';
+$wb['ends_with_txt'] = 'Terminando com';
+$wb['move_to_txt'] = 'Mover para';
+$wb['delete_txt'] = 'Remover';
+$wb['mailbox_filter_txt'] = 'Filtro de e-mail';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng
index fb6b9dfa5d..5d0f241974 100644
--- a/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng
+++ b/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Email filter rules';
-$wb['rulename_txt'] = 'Name';
-$wb['add_new_record_txt'] = 'Add new Filter';
-$wb['page_txt'] = 'Page';
-$wb['page_of_txt'] = 'of';
-$wb['delete_confirmation'] = 'Do you really want to delete the mailfilter?';
+$wb['list_head_txt'] = 'Regras de filtros de e-mail';
+$wb['rulename_txt'] = 'Nome';
+$wb['add_new_record_txt'] = 'Adicionar novo filtro';
+$wb['page_txt'] = 'Página';
+$wb['page_of_txt'] = 'de';
+$wb['delete_confirmation'] = 'Você tem certeza que gostaria de remover este filtro de e-mail?';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_mail_user_password.lng b/interface/web/mailuser/lib/lang/br_mail_user_password.lng
index 654c1d0407..154a44cd7b 100644
--- a/interface/web/mailuser/lib/lang/br_mail_user_password.lng
+++ b/interface/web/mailuser/lib/lang/br_mail_user_password.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['mailbox_password_txt'] = 'Mailbox password';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['email_txt'] = 'Email';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['password_click_to_set_txt'] = 'Click to set';
+$wb['mailbox_password_txt'] = 'Senha da Caixa Postal';
+$wb['password_txt'] = 'Senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['email_txt'] = 'e-mail';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'As senhas não coincidem.';
+$wb['password_match_txt'] = 'As senhas coincidem.';
+$wb['password_click_to_set_txt'] = 'Confirmar';
 ?>
diff --git a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng
index be4bad9050..3aa4ed0534 100644
--- a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng
+++ b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['mailbox_spamfilter_txt'] = 'Spamfilter';
-$wb['spamfilter_txt'] = 'Spamfilter';
-$wb['email_txt'] = 'Email';
-$wb['no_policy'] = '- not enabled -';
-$wb['policy_txt'] = 'Policy';
+$wb['mailbox_spamfilter_txt'] = 'Filtros antispam';
+$wb['spamfilter_txt'] = 'Filtro antispam';
+$wb['email_txt'] = 'e-mail';
+$wb['no_policy'] = '- desabilitado -';
+$wb['policy_txt'] = 'Política';
 ?>
diff --git a/interface/web/monitor/lib/lang/br.lng b/interface/web/monitor/lib/lang/br.lng
index 1e54f2ee4e..228778aa52 100644
--- a/interface/web/monitor/lib/lang/br.lng
+++ b/interface/web/monitor/lib/lang/br.lng
@@ -1,13 +1,13 @@
 <?php
 $wb['Server online since'] = 'Servidor online desde';
-$wb['Users online'] = 'Usuários Online';
-$wb['System load 1 minute'] = 'Sistema carregado 1 Min';
-$wb['System load 5 minutes'] = 'Sistema carregado 5 Min';
-$wb['System load 15 minutes'] = 'Sistema carregado 15 Min';
+$wb['Users online'] = 'Usuários on-line';
+$wb['System load 1 minute'] = 'Sistema carregado 1 min';
+$wb['System load 5 minutes'] = 'Sistema carregado 5 min';
+$wb['System load 15 minutes'] = 'Sistema carregado 15 min';
 $wb['Server Load'] = 'Servidor carregado';
 $wb['Disk usage'] = 'Uso do disco';
 $wb['Memory usage'] = 'Uso da memória';
-$wb['no_data_serverload_txt'] = 'Sem registro carga do servidor disponíveis no momento. Tente novamente mais tarde.';
+$wb['no_data_serverload_txt'] = 'Sem registros da carga do servidor disponíveis no momento. Tente novamente mais tarde.';
 $wb['no_data_memusage_txt'] = 'Sem registro uso de memória disponíveis no momento. Tente novamente mais tarde.';
 $wb['no_data_diskusage_txt'] = 'Sem registro de uso de disco disponíveis no momento. Tente novamente mais tarde.';
 $wb['no_data_cpuinfo_txt'] = 'Sem registro de CPU disponíveis no momento. Tente novamente mais tarde.';
@@ -15,149 +15,149 @@ $wb['no_data_services_txt'] = 'Sem registro sobre os serviços disponíveis no m
 $wb['no_data_updates_txt'] = 'Sem atualização de dados disponíveis no momento. Tente novamente mais tarde.';
 $wb['no_data_raid_txt'] = 'Sem registro de RAID disponível no momento. Tente novamente mais tarde.';
 $wb['no_data_rkhunter_txt'] = 'Sem registro de RKHUNTER disponível no momento. Tente novamente mais tarde.';
-$wb['no_data_mailq_txt'] = 'Sem registro de fila de correio disponível no momento. Tente novamente mais tarde.';
+$wb['no_data_mailq_txt'] = 'Sem registro de fila de e-mail disponível no momento. Tente novamente mais tarde.';
 $wb['no_logdata_txt'] = 'Sem registro de log disponível no momento. Tente novamente mais tarde.';
 $wb['Monitoring'] = 'Monitoramento';
 $wb['Server to Monitor'] = 'Servidor a monitorar';
 $wb['Logfiles'] = 'Arquivos de log';
-$wb['Status of services'] = 'Estatus dos serviços';
+$wb['Status of services'] = 'Estado dos serviços';
 $wb['No Refresh'] = 'Não atualize';
 $wb['minutes'] = 'minutos';
-$wb['Show Overview'] = 'Exibir Visão Geral';
-$wb['System State (All Servers)'] = 'Estado do Sistema (Todos os Servidores)';
-$wb['Hardware-Information'] = 'Informação de Hardware';
+$wb['Show Overview'] = 'Visão geral';
+$wb['System State (All Servers)'] = 'Estado do Sistema (todos os servidores)';
+$wb['Hardware-Information'] = 'Informação de hardware';
 $wb['Show CPU info'] = 'Exibir informações da CPU';
 $wb['Server State'] = 'Estado do Servidor';
-$wb['Show Update State'] = 'Exibir Estatus Atualizado';
-$wb['Show RAID state'] = 'Exibir Estatus do RAID';
-$wb['Show Server load'] = 'Exibir Carga do Servidor';
-$wb['Show Disk usage'] = 'Exibir Uso de Disco';
-$wb['Show Memory usage'] = 'Exibir Uso de Memória';
-$wb['Show Services'] = 'Exibir Serviços';
-$wb['Show Mail-Queue'] = 'Exibir Fila de Correio';
-$wb['Show Mail-Log'] = 'Exibir Log de Correio';
-$wb['Show Mail warn-Log'] = 'Exibir Log de Avisos de Correio';
-$wb['Show Mail err-Log'] = 'Exibir Log de Erros de Correio';
-$wb['Show System-Log'] = 'Exibir Log de Sistema';
-$wb['Show ISPC Cron-Log'] = 'Exibir ISPC Log do Cron';
-$wb['Show Freshclam-Log'] = 'Exibir Log do Freshclam';
-$wb['Show Clamav-Log'] = 'Exibir Log do Clamav';
-$wb['Show ISPConfig-Log'] = 'Exibir Log do ISPConfig';
-$wb['Show RKHunter-Log'] = 'Exibir Log do RKHunter';
-$wb['Show Jobqueue'] = 'Exibir Fila de Trabalho';
-$wb['monitor_general_serverstate_txt'] = 'Estado do Servidor';
-$wb['monitor_general_systemstate_txt'] = 'Estado do Sistema';
-$wb['monitor_diskusage_filesystem_txt'] = 'Sistema de Arquivos';
+$wb['Show Update State'] = 'Exibir estado atual';
+$wb['Show RAID state'] = 'Exibir estado do RAID';
+$wb['Show Server load'] = 'Exibir carga do servidor';
+$wb['Show Disk usage'] = 'Exibir uso do disco';
+$wb['Show Memory usage'] = 'Exibir uso da memória';
+$wb['Show Services'] = 'Exibir serviços';
+$wb['Show Mail-Queue'] = 'Exibir fila de e-mails';
+$wb['Show Mail-Log'] = 'Exibir log de e-mails';
+$wb['Show Mail warn-Log'] = 'Exibir log de alertas de e-mail';
+$wb['Show Mail err-Log'] = 'Exibir log de erros de e-mail';
+$wb['Show System-Log'] = 'Exibir log do Sistema';
+$wb['Show ISPC Cron-Log'] = 'Exibir log do cron';
+$wb['Show Freshclam-Log'] = 'Exibir log do freshclam';
+$wb['Show Clamav-Log'] = 'Exibir log do clamav';
+$wb['Show ISPConfig-Log'] = 'Exibir log do ispconfig';
+$wb['Show RKHunter-Log'] = 'Exibir log do rkhunter';
+$wb['Show Jobqueue'] = 'Exibir fila de trabalho';
+$wb['monitor_general_serverstate_txt'] = 'Estado do servidor';
+$wb['monitor_general_systemstate_txt'] = 'Estado do sistema';
+$wb['monitor_diskusage_filesystem_txt'] = 'Sistema de arquivos';
 $wb['monitor_diskusage_type_txt'] = 'Tipo';
 $wb['monitor_diskusage_size_txt'] = 'Tamanho';
-$wb['monitor_diskusage_used_txt'] = 'Usado';
+$wb['monitor_diskusage_used_txt'] = 'Utilizado';
 $wb['monitor_diskusage_available_txt'] = 'Disponível';
 $wb['monitor_diskusage_usage_txt'] = 'Uso %';
 $wb['monitor_diskusage_mounted_txt'] = 'Montado em';
-$wb['monitor_logs_mail_txt'] = 'Log de Correio';
-$wb['monitor_logs_mailwarn_txt'] = 'Log de Avisos';
-$wb['monitor_logs_mailerr_txt'] = 'Log de Erros';
-$wb['monitor_logs_messages_txt'] = 'Log de Sistema';
-$wb['monitor_logs_ispccron_txt'] = 'Log do ISPConfig Cron';
-$wb['monitor_logs_freshclam_txt'] = 'Logo do Freshclam';
-$wb['monitor_logs_clamav_txt'] = 'Log do Clamav ';
-$wb['monitor_logs_ispc_txt'] = 'Log do ISPConfig';
+$wb['monitor_logs_mail_txt'] = 'Log de e-mail';
+$wb['monitor_logs_mailwarn_txt'] = 'Log de alertas';
+$wb['monitor_logs_mailerr_txt'] = 'Log de erros';
+$wb['monitor_logs_messages_txt'] = 'Log do sistema';
+$wb['monitor_logs_ispccron_txt'] = 'Log do cron';
+$wb['monitor_logs_freshclam_txt'] = 'Logo do freshclam';
+$wb['monitor_logs_clamav_txt'] = 'Log do clamav ';
+$wb['monitor_logs_ispc_txt'] = 'Log do ispconfig';
 $wb['monitor_norkhunter_txt'] = 'RKHunter não está instalado, então não existem logs a exibir';
 $wb['monitor_serverstate_server_txt'] = 'Servidor';
 $wb['monitor_serverstate_state_txt'] = 'Estado';
-$wb['monitor_serverstate_unknown_txt'] = 'desconhecido';
-$wb['monitor_serverstate_info_txt'] = 'informações';
-$wb['monitor_serverstate_warning_txt'] = 'aviso';
-$wb['monitor_serverstate_critical_txt'] = 'crítico';
-$wb['monitor_serverstate_error_txt'] = 'erro';
+$wb['monitor_serverstate_unknown_txt'] = 'desconhecido(s)';
+$wb['monitor_serverstate_info_txt'] = 'informação(es)';
+$wb['monitor_serverstate_warning_txt'] = 'aviso(s)';
+$wb['monitor_serverstate_critical_txt'] = 'crítico(s)';
+$wb['monitor_serverstate_error_txt'] = 'erro(s)';
 $wb['monitor_serverstate_moreinfo_txt'] = 'Mais informações...';
 $wb['monitor_serverstate_more_txt'] = 'Mais...';
-$wb['monitor_serverstate_fclamok_txt'] = 'Definições de anti-virus ok ...';
-$wb['monitor_serverstate_fclamoutdated_txt'] = 'Definições de anti-virus DESATUALIZADAS!';
+$wb['monitor_serverstate_fclamok_txt'] = 'Definições de antivírus OK';
+$wb['monitor_serverstate_fclamoutdated_txt'] = 'Definições de antivírus DESATUALIZADAS!';
 $wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!';
-$wb['monitor_serverstate_hdok_txt'] = 'Espaço em disco está ok';
-$wb['monitor_serverstate_hdgoingfull_txt'] = 'O espaço em disco está cheio';
-$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Seu disco está ficando cheio';
-$wb['monitor_serverstate_hdveryfull_txt'] = 'Seu disco está muito cheio';
-$wb['monitor_serverstate_hdfull_txt'] = 'Seu disco não tem mais espaço';
-$wb['monitor_serverstate_hdunknown_txt'] = 'Disco Rígido: ???';
+$wb['monitor_serverstate_hdok_txt'] = 'Disco OK';
+$wb['monitor_serverstate_hdgoingfull_txt'] = 'Disco cheio';
+$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Disco com pouco espaço';
+$wb['monitor_serverstate_hdveryfull_txt'] = 'Disco com espaço insuficiente';
+$wb['monitor_serverstate_hdfull_txt'] = 'Disco sem espaço';
+$wb['monitor_serverstate_hdunknown_txt'] = 'Disco rígido: ???';
 $wb['monitor_serverstate_listok_txt'] = 'ok';
-$wb['monitor_serverstate_listinfo_txt'] = 'infomação';
+$wb['monitor_serverstate_listinfo_txt'] = 'informação';
 $wb['monitor_serverstate_listwarning_txt'] = 'aviso';
 $wb['monitor_serverstate_listcritical_txt'] = 'crítico';
 $wb['monitor_serverstate_listerror_txt'] = 'erro';
 $wb['monitor_serverstate_listunknown_txt'] = 'desconhecido';
-$wb['monitor_serverstate_loadok_txt'] = 'Servidor carregado ok';
-$wb['monitor_serverstate_loadheavy_txt'] = 'Seu servidor está com uma carga alta';
-$wb['monitor_serverstate_loadhigh_txt'] = 'Seu servidor está ficando com uma carga alta';
-$wb['monitor_serverstate_loaghigher_txt'] = 'Seu servidor está com uma carga muito alta';
-$wb['monitor_serverstate_loadhighest_txt'] = 'Seu servidor está com uma carga super alta';
-$wb['monitor_serverstate_loadunknown_txt'] = 'Carga do Servidor: ???';
-$wb['monitor_serverstate_mailqok_txt'] = 'Sua fila de correio está OK';
-$wb['monitor_serverstate_mailqheavy_txt'] = 'Sua fila de correio está ficando com uma carga alta';
-$wb['monitor_serverstate_mailqhigh_txt'] = 'Sua fila de correio está com uma carga alta';
-$wb['monitor_serverstate_mailqhigher_txt'] = 'Sua fila de correio está com uma carga muito alta';
-$wb['monitor_serverstate_mailqhighest_txt'] = 'Sua fila de correio está com uma carga super alta';
-$wb['monitor_serverstate_mailqunknown_txt'] = 'Fila de Correio: ???';
-$wb['monitor_serverstate_raidok_txt'] = 'Seu RAID está ok';
-$wb['monitor_serverstate_raidresync_txt'] = 'Seu RAID está em modo RESYNC';
-$wb['monitor_serverstate_raidfault_txt'] = 'Seu RAID possui um disco com falhas. Troque-o o mais rápido possível!';
-$wb['monitor_serverstate_raiderror_txt'] = 'Seu RAID não está mais funcionando.';
-$wb['monitor_serverstate_raidunknown_txt'] = 'Estado do RAID: ???';
+$wb['monitor_serverstate_loadok_txt'] = 'Carga do servidor OK';
+$wb['monitor_serverstate_loadheavy_txt'] = 'Carga do servidor: alta';
+$wb['monitor_serverstate_loadhigh_txt'] = 'Carga do servidor: média';
+$wb['monitor_serverstate_loaghigher_txt'] = 'Carga do servidor: excessiva';
+$wb['monitor_serverstate_loadhighest_txt'] = 'Carga do servidor: extrema';
+$wb['monitor_serverstate_loadunknown_txt'] = 'Carga do servidor: ???';
+$wb['monitor_serverstate_mailqok_txt'] = 'Fila de e-mails OK';
+$wb['monitor_serverstate_mailqheavy_txt'] = 'Fila de e-mails: alta';
+$wb['monitor_serverstate_mailqhigh_txt'] = 'Fila de e-mails: média';
+$wb['monitor_serverstate_mailqhigher_txt'] = 'Fila de e-mails: excessiva';
+$wb['monitor_serverstate_mailqhighest_txt'] = 'Fila de e-mails: extrema';
+$wb['monitor_serverstate_mailqunknown_txt'] = 'Fila de e-mails: ???';
+$wb['monitor_serverstate_raidok_txt'] = 'RAID OK';
+$wb['monitor_serverstate_raidresync_txt'] = 'RAID em modo RESYNC';
+$wb['monitor_serverstate_raidfault_txt'] = 'RAID possui um disco com falhas. Troque-o o mais rápido possível!';
+$wb['monitor_serverstate_raiderror_txt'] = 'RAID parado.';
+$wb['monitor_serverstate_raidunknown_txt'] = 'RAID: ???';
 $wb['monitor_serverstate_servicesonline_txt'] = 'Todos os serviços necessários estão on-line';
 $wb['monitor_serverstate_servicesoffline_txt'] = 'Um ou mais serviços necessários estão off-line';
-$wb['monitor_serverstate_servicesunknown_txt'] = 'Serviços:???';
-$wb['monitor_serverstate_syslogok_txt'] = 'O System-Log está O.K.';
-$wb['monitor_serverstate_syslogwarning_txt'] = 'Existem alguns avisos em seu System-Log';
-$wb['monitor_serverstate_syslogerror_txt'] = 'Existem erros no seu System-Log';
-$wb['monitor_serverstate_syslogunknown_txt'] = 'sys-log:???';
-$wb['monitor_serverstate_updatesok_txt'] = 'Seu sistema está atualizado.';
+$wb['monitor_serverstate_servicesunknown_txt'] = 'Serviços: ???';
+$wb['monitor_serverstate_syslogok_txt'] = 'O log do sistema está OK';
+$wb['monitor_serverstate_syslogwarning_txt'] = 'Existem alguns alertas no log do sistema';
+$wb['monitor_serverstate_syslogerror_txt'] = 'Existem erros no log do sistema';
+$wb['monitor_serverstate_syslogunknown_txt'] = 'syslog:???';
+$wb['monitor_serverstate_updatesok_txt'] = 'Sistema atualizado.';
 $wb['monitor_serverstate_updatesneeded_txt'] = 'Um ou mais componentes necessitam de atualização';
-$wb['monitor_serverstate_updatesunknown_txt'] = 'Atualização-Sistema:???';
-$wb['monitor_services_online_txt'] = 'Online';
-$wb['monitor_services_offline_txt'] = 'Offline';
-$wb['monitor_services_web_txt'] = 'Servidor Web:';
-$wb['monitor_services_ftp_txt'] = 'Servidor FTP:';
-$wb['monitor_services_smtp_txt'] = 'Servidor SMTP:';
-$wb['monitor_services_pop_txt'] = 'Servidor POP:';
-$wb['monitor_services_imap_txt'] = 'Servidor IMAP:';
-$wb['monitor_services_mydns_txt'] = 'Servidor DNS:';
-$wb['monitor_services_mysql_txt'] = 'Servidor MySql:';
+$wb['monitor_serverstate_updatesunknown_txt'] = 'Estado do sistema:???';
+$wb['monitor_services_online_txt'] = 'On-line';
+$wb['monitor_services_offline_txt'] = 'Off-line';
+$wb['monitor_services_web_txt'] = 'Servidor de páginas:';
+$wb['monitor_services_ftp_txt'] = 'Servidor ftp:';
+$wb['monitor_services_smtp_txt'] = 'Servidor smtp:';
+$wb['monitor_services_pop_txt'] = 'Servidor pop:';
+$wb['monitor_services_imap_txt'] = 'Servidor imap:';
+$wb['monitor_services_mydns_txt'] = 'Servidor dns:';
+$wb['monitor_services_mysql_txt'] = 'Servidor mysql:';
 $wb['monitor_settings_datafromdate_txt'] = 'Data de: ';
 $wb['monitor_settings_datetimeformat_txt'] = 'd/m/Y H:i';
 $wb['monitor_settings_refreshsq_txt'] = 'Atualizar sequência:';
 $wb['monitor_settings_server_txt'] = 'Servidor';
-$wb['monitor_title_cpuinfo_txt'] = 'Informação da CPU';
-$wb['monitor_title_updatestate_txt'] = 'Atualizar Estado';
-$wb['monitor_title_mailq_txt'] = 'Fila de Correio';
+$wb['monitor_title_cpuinfo_txt'] = 'Informação da cpu';
+$wb['monitor_title_updatestate_txt'] = 'Atualizar estado';
+$wb['monitor_title_mailq_txt'] = 'Fila de e-mails';
 $wb['monitor_title_raidstate_txt'] = 'Estado do RAID';
-$wb['monitor_title_rkhunterlog_txt'] = 'Log do RKHunter';
+$wb['monitor_title_rkhunterlog_txt'] = 'Log do rkhunter';
 $wb['monitor_updates_nosupport_txt'] = 'Sua distribuição não suporta este tipo de monitoramento';
-$wb['monitor_title_fail2ban_txt'] = 'Log do Fail2Ban';
-$wb['monitor_nosupportedraid1_txt'] = 'Até o presente momento, o suporte a mdadm ou mpt-status para monitoramento do RAID nao foi encontrado.<br><br>Provávelmente seu servidor não possúi recursos de RAID a serem monitorados.';
-$wb['monitor_serverstate_beancounterok_txt'] = 'O beancounter está ok';
-$wb['monitor_serverstate_beancounterinfo_txt'] = 'Existem poucas falhas na beancounter';
-$wb['monitor_serverstate_beancounterwarning_txt'] = 'Existem algumas falhas na beancounter';
-$wb['monitor_serverstate_beancountercritical_txt'] = 'Existem muitas falhas no beancounter';
+$wb['monitor_title_fail2ban_txt'] = 'Log do fail2ban';
+$wb['monitor_nosupportedraid1_txt'] = 'Até o presente momento, o suporte a mdadm ou mpt-status para monitoramento do RAID nao foi encontrado.<br><br>Provavelmente seu servidor não possui recursos de RAID a serem monitorados.';
+$wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter OK';
+$wb['monitor_serverstate_beancounterinfo_txt'] = 'Existem poucas falhas no beancounter';
+$wb['monitor_serverstate_beancounterwarning_txt'] = 'Existem algumas falhas no beancounter';
+$wb['monitor_serverstate_beancountercritical_txt'] = 'Existem falhas críticas no beancounter';
 $wb['monitor_serverstate_beancountererror_txt'] = 'Existem diversas falhas no beancounter';
-$wb['monitor_title_beancounter_txt'] = 'BeanCounter OpenVz VE';
-$wb['monitor_beancounter_nosupport_txt'] = 'Este servidor não é um um conteiner openVZ e não contém informações de beancounter';
-$wb['monitor_title_iptables_txt'] = 'IPTables Rules';
-$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
-$wb['Show IPTables'] = 'Show IPTables';
-$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
-$wb['Show Monit'] = 'Show Monit';
-$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
-$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
-$wb['Show Munin'] = 'Show Munin';
-$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
-$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
-$wb['no_data_database_size_txt'] = 'No data about the database usage available at the moment. Please check again later.';
-$wb['monitor_database_name_txt'] = 'Database';
-$wb['monitor_database_size_txt'] = 'Size';
-$wb['monitor_database_client_txt'] = 'Client';
-$wb['monitor_database_domain_txt'] = 'Domain';
-$wb['Show MongoDB-Log'] = 'Show MongoDB-Log';
-$wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:';
-$wb['monitor_title_mongodb_txt'] = 'MongoDB Log';
+$wb['monitor_title_beancounter_txt'] = 'Beancounter openvz ve';
+$wb['monitor_beancounter_nosupport_txt'] = 'Este servidor não é um um container openvz e não contém informações de beancounter';
+$wb['monitor_title_iptables_txt'] = 'Regras do firewall';
+$wb['Show fail2ban-Log'] = 'Exibir log do fail2ban';
+$wb['Show IPTables'] = 'Exibir regras do firewall';
+$wb['Show OpenVz VE BeanCounter'] = 'Exibir beancounter do openvz';
+$wb['Show Monit'] = 'Exibir Monit';
+$wb['no_monit_url_defined_txt'] = 'Nenhuma url do Monit configurada.';
+$wb['no_permissions_to_view_monit_txt'] = 'Você não tem permissão para acessar o Monit.';
+$wb['Show Munin'] = 'Exibir Munin';
+$wb['no_munin_url_defined_txt'] = 'Nenhuma url do Muni configurada.';
+$wb['no_permissions_to_view_munin_txt'] = 'Você não tem permissão para acessar o Munin.';
+$wb['no_data_database_size_txt'] = 'Nenhuma informação de uso do banco de dados disponível no momento. Por favor verifique novamente mais tarde.';
+$wb['monitor_database_name_txt'] = 'Banco de dados';
+$wb['monitor_database_size_txt'] = 'Tamanho';
+$wb['monitor_database_client_txt'] = 'Cliente';
+$wb['monitor_database_domain_txt'] = 'Domínio';
+$wb['Show MongoDB-Log'] = 'Exibir logs do MongoDB';
+$wb['monitor_services_mongodb_txt'] = 'Servidor MongoDB:';
+$wb['monitor_title_mongodb_txt'] = 'Logs do MongoDB';
 ?>
diff --git a/interface/web/monitor/lib/lang/br_datalog_list.lng b/interface/web/monitor/lib/lang/br_datalog_list.lng
index 04fdf24158..e6b2f554c3 100644
--- a/interface/web/monitor/lib/lang/br_datalog_list.lng
+++ b/interface/web/monitor/lib/lang/br_datalog_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Fila de Trabalho';
+$wb['list_head_txt'] = 'Fila de trabalho';
 $wb['tstamp_txt'] = 'Data';
 $wb['server_id_txt'] = 'Servidor';
-$wb['dbtable_txt'] = 'Tabela BD';
+$wb['dbtable_txt'] = 'Tabela do BD';
 $wb['action_txt'] = 'Ação';
 $wb['status_txt'] = 'Situação';
 ?>
diff --git a/interface/web/sites/lib/lang/br.lng b/interface/web/sites/lib/lang/br.lng
index 6b7f0ef80f..38cfab5e6b 100644
--- a/interface/web/sites/lib/lang/br.lng
+++ b/interface/web/sites/lib/lang/br.lng
@@ -1,35 +1,35 @@
 <?php
-$wb['Websites'] = 'Websites';
-$wb['Website'] = 'Website';
-$wb['Subdomain'] = 'Sub-domínio';
-$wb['Aliasdomain'] = 'Alias de Domínio';
-$wb['Database'] = 'Bancos de Dados';
-$wb['Web Access'] = 'Web Access';
-$wb['FTP-User'] = 'Usuário FTP';
-$wb['Webdav-User'] = 'Usuário Webdav';
-$wb['Folder'] = 'Protected Folders';
-$wb['Folder users'] = 'Protected Folder Users';
-$wb['Command Line'] = 'Command Line';
-$wb['Shell-User'] = 'Usuário de Shell';
-$wb['Cron Jobs'] = 'Tarefas no Cron';
+$wb['Websites'] = 'Sites';
+$wb['Website'] = 'Site';
+$wb['Subdomain'] = 'Subdomínio';
+$wb['Aliasdomain'] = 'Apelido de domínio';
+$wb['Database'] = 'Bancos de dados';
+$wb['Web Access'] = 'Acesso web';
+$wb['FTP-User'] = 'Usuários ftp';
+$wb['Webdav-User'] = 'Usuário webdav';
+$wb['Folder'] = 'Pastas protegidas';
+$wb['Folder users'] = 'Usuários de pastas';
+$wb['Command Line'] = 'Linha de comando';
+$wb['Shell-User'] = 'Usuários shell';
+$wb['Cron Jobs'] = 'Tarefas no cron';
 $wb['Statistics'] = 'Estatísticas';
-$wb['Web traffic'] = 'Tráfego Web';
-$wb['Website quota (Harddisk)'] = 'Website quota (Harddisk)';
+$wb['Web traffic'] = 'Tráfego web';
+$wb['Website quota (Harddisk)'] = 'Cota para sites (disco)';
 $wb['Cron'] = 'Cron';
 $wb['Stats'] = 'Estatísticas';
 $wb['Shell'] = 'Shell';
-$wb['Webdav'] = 'WebDAV';
+$wb['Webdav'] = 'Webdav';
 $wb['FTP'] = 'FTP';
 $wb['Options'] = 'Opções';
-$wb['Domain'] = 'Domain';
 $wb['Redirect'] = 'Redirecionamento';
 $wb['SSL'] = 'SSL';
 $wb['Sites'] = 'Sites';
-$wb['Database User'] = 'Database Users';
-$wb['APS Installer'] = 'APS Installer';
-$wb['Available packages'] = 'Available packages';
-$wb['Installed packages'] = 'Installed packages';
-$wb['Update Packagelist'] = 'Update Packagelist';
-$wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)';
-$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
+$wb['Database User'] = 'Usuários';
+$wb['APS Installer'] = 'Instalação de apps';
+$wb['Available packages'] = 'Pacotes disponíveis';
+$wb['Installed packages'] = 'Pacotes instalados';
+$wb['Update Packagelist'] = 'Atualizar lista de pacotes';
+$wb['Subdomain (Vhost)'] = 'Subdomínio (vhost)';
+$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \"proxy\" exige uma url como caminho do redirecionamento.';
+$wb['Domain'] = 'Domain';
 ?>
diff --git a/interface/web/sites/lib/lang/br_aps.lng b/interface/web/sites/lib/lang/br_aps.lng
index 29fb7b6a40..7cc105c47c 100644
--- a/interface/web/sites/lib/lang/br_aps.lng
+++ b/interface/web/sites/lib/lang/br_aps.lng
@@ -1,58 +1,58 @@
 <?php
-$wb['overview_txt'] = 'Overview';
-$wb['administration_txt'] = 'Administration';
-$wb['available_packages_txt'] = 'Available packages';
-$wb['installed_packages_txt'] = 'Installed packages';
-$wb['yes_txt'] = 'Yes';
-$wb['no_txt'] = 'No';
-$wb['invalid_id_txt'] = 'No valid ID has been provided.';
-$wb['details_txt'] = 'Details';
-$wb['version_txt'] = 'Version';
-$wb['category_txt'] = 'Category';
-$wb['homepage_txt'] = 'Homepage';
-$wb['supported_languages_txt'] = 'Supported languages';
-$wb['description_txt'] = 'Description';
-$wb['config_script_txt'] = 'Configuration script';
-$wb['installed_size_txt'] = 'Size after installation';
-$wb['license_txt'] = 'License';
-$wb['screenshots_txt'] = 'Screenshots';
-$wb['changelog_txt'] = 'Changelog';
-$wb['server_requirements_txt'] = 'Server requirements';
-$wb['php_extensions_txt'] = 'PHP extensions';
-$wb['php_settings_txt'] = 'PHP settings';
-$wb['supported_php_versions_txt'] = 'Supported PHP versions';
-$wb['database_txt'] = 'Database';
-$wb['settings_txt'] = 'Settings';
-$wb['install_package_txt'] = 'Install this package';
-$wb['installation_txt'] = 'Installation';
-$wb['install_location_txt'] = 'Install location';
-$wb['acceptance_txt'] = 'Acceptance';
-$wb['acceptance_text_txt'] = 'Yes, i\'ve read the license and agree.';
-$wb['install_language_txt'] = 'Interface language';
-$wb['new_database_password_txt'] = 'New database password';
-$wb['basic_settings_txt'] = 'Basic settings';
-$wb['package_settings_txt'] = 'Package settings';
-$wb['error_main_domain'] = 'The domain of the installation path is invalid.';
-$wb['error_no_main_location'] = 'You have provided no valid installation path.';
-$wb['error_inv_main_location'] = 'The given install location folder is invalid.';
-$wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.';
-$wb['error_no_database_pw'] = 'You have provided no valid database password.';
-$wb['error_short_database_pw'] = 'Please choose a longer database password.';
-$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.';
-$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.';
-$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.';
-$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".';
-$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".';
-$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".';
-$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".';
-$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".';
-$wb['error_used_location'] = 'The installation path already contains a package installation.';
-$wb['installation_task_txt'] = 'Install planned';
-$wb['installation_error_txt'] = 'Install error';
-$wb['installation_success_txt'] = 'Installed';
-$wb['installation_remove_txt'] = 'Removal planned';
-$wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.';
-$wb['btn_install_txt'] = 'Install';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.';
+$wb['overview_txt'] = 'Visão Geral';
+$wb['administration_txt'] = 'Administração';
+$wb['available_packages_txt'] = 'Pacotes disponíveis';
+$wb['installed_packages_txt'] = 'Pacotes instalados';
+$wb['yes_txt'] = 'Sim';
+$wb['no_txt'] = 'Não';
+$wb['invalid_id_txt'] = 'Nenhuma ID válida inserida.';
+$wb['details_txt'] = 'Detalhes';
+$wb['version_txt'] = 'Versão';
+$wb['category_txt'] = 'Categoria';
+$wb['homepage_txt'] = 'Página';
+$wb['supported_languages_txt'] = 'Idiomas suportados';
+$wb['description_txt'] = 'Descrição';
+$wb['config_script_txt'] = 'Script de configuração';
+$wb['installed_size_txt'] = 'Tamanho após instalação';
+$wb['license_txt'] = 'Licença';
+$wb['screenshots_txt'] = 'Telas';
+$wb['changelog_txt'] = 'Log de mudanças';
+$wb['server_requirements_txt'] = 'Requisitos do servidor';
+$wb['php_extensions_txt'] = 'Extensões PHP';
+$wb['php_settings_txt'] = 'Configurações do PHP';
+$wb['supported_php_versions_txt'] = 'Versões do PHP suportadas';
+$wb['database_txt'] = 'Banco de Dados';
+$wb['settings_txt'] = 'Configurações';
+$wb['install_package_txt'] = 'Instalar esse pacote';
+$wb['installation_txt'] = 'Instalação';
+$wb['install_location_txt'] = 'Local da instalação';
+$wb['acceptance_txt'] = 'Aceitação';
+$wb['acceptance_text_txt'] = 'Sim, eu li a licença e aceito os termos.';
+$wb['install_language_txt'] = 'Idioma da interface';
+$wb['new_database_password_txt'] = 'Nova senha do banco de dados';
+$wb['basic_settings_txt'] = 'Configurações básicas';
+$wb['package_settings_txt'] = 'Configurações do pacote';
+$wb['error_main_domain'] = 'O domínio no caminho da instalação é inválido.';
+$wb['error_no_main_location'] = 'Você inseriu um caminho inválido para a instalação.';
+$wb['error_inv_main_location'] = 'A pasta informada para a instalação é inválida.';
+$wb['error_license_agreement'] = 'Para continuar é preciso aceitar os termos da licenciamento.';
+$wb['error_no_database_pw'] = 'Você informou uma senha inválida para o banco de dados.';
+$wb['error_short_database_pw'] = 'Por favor, escolha uma senha com maior complexidade para o banco de dados.';
+$wb['error_no_value_for'] = 'O campo \"%s\" não pode ficar em branco.';
+$wb['error_short_value_for'] = 'O campo \"%s\" exige um valor maior.';
+$wb['error_long_value_for'] = 'O campo \"%s\" exige um valor mais curto.';
+$wb['error_inv_value_for'] = 'Você inseriu um valor inválido para o campo \"%s\".';
+$wb['error_inv_email_for'] = 'Você inseriu um e-mail inválido para o campo \"%s\".';
+$wb['error_inv_domain_for'] = 'Você inseriu um domínio inválido para o campo \"%s\".';
+$wb['error_inv_integer_for'] = 'Você inseriu um número inválido para o campo \"%s\".';
+$wb['error_inv_float_for'] = 'Você inseriu um número de ponto flutuante inválido para o campo \"%s\".';
+$wb['error_used_location'] = 'O caminho da instalação contém um pacote de instalação.';
+$wb['installation_task_txt'] = 'Agendamento de instalação';
+$wb['installation_error_txt'] = 'Erro de instalação';
+$wb['installation_success_txt'] = 'Instalado';
+$wb['installation_remove_txt'] = 'Remove agendamento';
+$wb['packagelist_update_finished_txt'] = 'Atualização da lista de pacotes finalizada.';
+$wb['btn_install_txt'] = 'Instalar';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['limit_aps_txt'] = 'O limite de instâncias de apps para esta conta foi alcançado.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_aps_instances_list.lng b/interface/web/sites/lib/lang/br_aps_instances_list.lng
index 5742b7a6e9..fb6a2addd8 100644
--- a/interface/web/sites/lib/lang/br_aps_instances_list.lng
+++ b/interface/web/sites/lib/lang/br_aps_instances_list.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['list_head_txt'] = 'Installed packages';
-$wb['name_txt'] = 'Name';
-$wb['version_txt'] = 'Version';
-$wb['customer_txt'] = 'Client';
-$wb['status_txt'] = 'Status';
-$wb['install_location_txt'] = 'Install location';
-$wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?';
-$wb['filter_txt'] = 'Search';
-$wb['delete_txt'] = 'Delete';
+$wb['list_head_txt'] = 'Pacotes instalados';
+$wb['name_txt'] = 'Nome';
+$wb['version_txt'] = 'Versão';
+$wb['customer_txt'] = 'Cliente';
+$wb['status_txt'] = 'Estado';
+$wb['install_location_txt'] = 'Local da instalação';
+$wb['pkg_delete_confirmation'] = 'Você realmente deseja remover esta instalação?';
+$wb['filter_txt'] = 'Pesquisar';
+$wb['delete_txt'] = 'Remover';
 ?>
diff --git a/interface/web/sites/lib/lang/br_aps_packages_list.lng b/interface/web/sites/lib/lang/br_aps_packages_list.lng
index 68c378085f..641d807f52 100644
--- a/interface/web/sites/lib/lang/br_aps_packages_list.lng
+++ b/interface/web/sites/lib/lang/br_aps_packages_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Available packages';
-$wb['name_txt'] = 'Name';
-$wb['version_txt'] = 'Version';
-$wb['category_txt'] = 'Category';
-$wb['status_txt'] = 'Unlocked';
-$wb['filter_txt'] = 'Search';
+$wb['list_head_txt'] = 'Pacotes Disponíveis';
+$wb['name_txt'] = 'Nome';
+$wb['version_txt'] = 'Versão';
+$wb['category_txt'] = 'Categoria';
+$wb['status_txt'] = 'Desbloqueado';
+$wb['filter_txt'] = 'Pesquisar';
 ?>
diff --git a/interface/web/sites/lib/lang/br_aps_update_packagelist.lng b/interface/web/sites/lib/lang/br_aps_update_packagelist.lng
index ce9fcf68fb..28405b58fa 100644
--- a/interface/web/sites/lib/lang/br_aps_update_packagelist.lng
+++ b/interface/web/sites/lib/lang/br_aps_update_packagelist.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['head_txt'] = 'Update Packagelist';
+$wb['head_txt'] = 'Atualizar lista de pacotes';
 $wb['list_desc_txt'] = '';
-$wb['btn_start_txt'] = 'Update Packagelist';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['legend_txt'] = 'Here you can update the list of available packages. Please note that this can take up to five minutes. You can leave this page if you like; the process will continue in the background.';
+$wb['btn_start_txt'] = 'Atualizar lista de pacotes';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['legend_txt'] = 'Aqui você pode atualizar a lista de pacotes disponíveis. Por favor, observe que este processo poderá levar alguns minutos. Você pode fechar esta página, o processo continuará em segundo plano.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_backup_stats_list.lng b/interface/web/sites/lib/lang/br_backup_stats_list.lng
index 65792aa591..5f7f2d9ec7 100644
--- a/interface/web/sites/lib/lang/br_backup_stats_list.lng
+++ b/interface/web/sites/lib/lang/br_backup_stats_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Backup Stats';
-$wb['database_name_txt'] = '';
-$wb['active_txt'] = 'Active';
-$wb['domain_txt'] = 'Domain';
-$wb['backup_count_txt'] = 'Backup count';
-$wb['backup_server_txt'] = 'Server';
-$wb['backup_interval_txt'] = 'Interval / cnt.';
-$wb['backup_size_txt'] = 'Backupsize';
+$wb['list_head_txt'] = 'Estatísticas do banco de Dados';
+$wb['database_name_txt'] = 'Nome do banco de dados';
+$wb['active_txt'] = 'Ativo';
+$wb['domain_txt'] = 'Domínio';
+$wb['backup_count_txt'] = 'Contador de backup';
+$wb['backup_server_txt'] = 'Servidor';
+$wb['backup_interval_txt'] = 'Intervalo/contador';
+$wb['backup_size_txt'] = 'Tamanho';
 ?>
diff --git a/interface/web/sites/lib/lang/br_cron.lng b/interface/web/sites/lib/lang/br_cron.lng
index a897090954..8209b62184 100644
--- a/interface/web/sites/lib/lang/br_cron.lng
+++ b/interface/web/sites/lib/lang/br_cron.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Site Web Parente';
+$wb['server_id_txt'] = 'Servidor';
+$wb['parent_domain_id_txt'] = 'Site pai';
 $wb['active_txt'] = 'Ativo';
 $wb['client_txt'] = 'Cliente';
 $wb['run_min_txt'] = 'Minutos';
@@ -9,18 +9,18 @@ $wb['run_mday_txt'] = 'Dias do mês';
 $wb['run_month_txt'] = 'Meses';
 $wb['run_wday_txt'] = 'Dias da semana';
 $wb['command_txt'] = 'Comando a executar (os comandos serão executados via sh ou urls via wget)';
-$wb['limit_cron_txt'] = 'O número máximo de tarefas no cron foi atingido.';
+$wb['limit_cron_txt'] = 'O limite de tarefas no cron foi alcançado.';
 $wb['limit_cron_frequency_txt'] = 'A frequência das tarefas no cron ultrapassou o limite permitido.';
 $wb['run_min_error_format'] = 'Formato dos minutos inválido.';
-$wb['run_hour_error_format'] = 'Formato dos horas inválido.';
+$wb['run_hour_error_format'] = 'Formato das horas inválido.';
 $wb['run_mday_error_format'] = 'Formato dos dias do mês inválido.';
 $wb['run_month_error_format'] = 'Formato dos meses inválido.';
 $wb['run_wday_error_format'] = 'Formato dos dias da semana inválido.';
 $wb['command_error_format'] = 'Formato de comando inválido. Somente endereços url http/https são permitidos.';
 $wb['unknown_fieldtype_error'] = 'Um tipo desconhecido de campo foi usado.';
-$wb['server_id_error_empty'] = 'The server ID is empty.';
-$wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with http:// as cron command.';
-$wb['command_error_empty'] = 'Command is empty.';
-$wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.';
-$wb['log_output_txt'] = 'Log output';
+$wb['server_id_error_empty'] = 'O ID do servidor em branco.';
+$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \"http://\" e um comando do cron.';
+$wb['command_error_empty'] = 'Comando em branco.';
+$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \"/var/www/clients/clientX/webY/meu_script.sh\" ou \"\http://www.dominio.com/path/script.php\" e também a palavra reservada \"[web_root]\" substituído por \"/var/www/clients/clientX/webY/web\".';
+$wb['log_output_txt'] = 'Saída do Log';
 ?>
diff --git a/interface/web/sites/lib/lang/br_cron_list.lng b/interface/web/sites/lib/lang/br_cron_list.lng
index 21529c2252..89fe7932f6 100644
--- a/interface/web/sites/lib/lang/br_cron_list.lng
+++ b/interface/web/sites/lib/lang/br_cron_list.lng
@@ -8,6 +8,6 @@ $wb['run_mday_txt'] = 'Dias do mês';
 $wb['run_month_txt'] = 'Mês';
 $wb['run_wday_txt'] = 'Dia da semana';
 $wb['command_txt'] = 'Comando';
-$wb['add_new_cron_txt'] = 'Adcionar uma nova tarefa no cron';
-$wb['parent_domain_id_txt'] = 'Website';
+$wb['add_new_cron_txt'] = 'Adicionar nova tarefa no cron';
+$wb['parent_domain_id_txt'] = 'Site';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database.lng b/interface/web/sites/lib/lang/br_database.lng
index 50d50ed96b..e13dc07ac5 100644
--- a/interface/web/sites/lib/lang/br_database.lng
+++ b/interface/web/sites/lib/lang/br_database.lng
@@ -1,49 +1,49 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
 $wb['type_txt'] = 'Tipo';
-$wb['database_name_txt'] = 'Nome do Banco de Dados';
-$wb['database_user_txt'] = 'Usuário do Banco de Dados';
-$wb['database_password_txt'] = 'Senha do Banco de Dados';
-$wb['password_strength_txt'] = 'Segurança da Senha';
-$wb['database_charset_txt'] = 'Charset do Banco de Dados';
+$wb['database_name_txt'] = 'Nome do banco de dados';
+$wb['database_user_txt'] = 'Usuário do banco de dados';
+$wb['database_password_txt'] = 'Senha do banco de dados';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['database_charset_txt'] = 'Charset do banco de dados';
 $wb['remote_access_txt'] = 'Acesso Remoto';
 $wb['client_txt'] = 'Cliente';
 $wb['active_txt'] = 'Ativo';
-$wb['database_name_error_empty'] = 'O nome do banco está em branco.';
-$wb['database_name_error_unique'] = 'Já existe um banco de dados com este nome no servidor. O nome escolhido deve ser único.';
-$wb['database_name_error_regex'] = 'Nome do banco inválido. O nome do banco só pode conter estes caracteres: a-z, A-Z, 0-9 e o underscore. Tamanho: 2 - 64 caracteres.';
-$wb['database_user_error_empty'] = 'O nome do usuário está em branco.';
-$wb['database_user_error_unique'] = 'Já existe um banco de dados com este nome no servidor. O nome escolhido deve ser único.';
-$wb['database_user_error_regex'] = 'Nome do banco inválido. O nome do banco só pode conter estes caracteres: a-z, A-Z, 0-9 e o underscore. Tamanho: 2 - 64 caracteres.';
-$wb['limit_database_txt'] = 'O limite máximo de bancos de dados foi atingido.';
-$wb['database_name_change_txt'] = 'O nome do banco não pode ser modificado';
-$wb['database_charset_change_txt'] = 'O charset do banco não pode ser mudado';
-$wb['remote_ips_txt'] = 'Endereços IP Remotos (separados por , deixe em branco para <i>quaisquer ips</i>)';
-$wb['database_remote_error_ips'] = 'Pelo menos um dos endereços ip informados não é válido.';
-$wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres é o número máximo permitido incluindo prefixo.';
-$wb['database_user_error_len'] = 'Nome de usuário de banco - {user}- é muito longo. 16 caracteres é o número máximo permitido incluindo prefixo.';
+$wb['database_name_error_empty'] = 'Nome do banco de dados em branco.';
+$wb['database_name_error_unique'] = 'Já existe um banco de dados com este nome no servidor. O nome escolhido deve ser exclusivo.';
+$wb['database_name_error_regex'] = 'Nome do banco de dados inválido. Só é permitido para o nome do banco os caracteres: \"a-z\", \"A-Z\", \"0-9\" e o \"underscore\". Tamanho: 2 - 64 caracteres.';
+$wb['database_user_error_empty'] = 'Nome do usuário do banco de dados em branco.';
+$wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. O nome escolhido deve ser exclusivo.';
+$wb['database_user_error_regex'] = 'Nome do usuário do banco de dados inválido. Só é permitido para nome do usuário banco de dados os caracteres: \"a-z\", \"A-Z\", \"0-9\" e o \"underscore\". Tamanho: 2 - 64 caracteres.';
+$wb['limit_database_txt'] = 'O limite de bancos de dados permitido para esta conta foi alcançado.';
+$wb['database_name_change_txt'] = 'O nome do banco de dados não pode ser modificado';
+$wb['database_charset_change_txt'] = 'O charset do banco de dados não pode ser modificado';
+$wb['remote_ips_txt'] = 'Endereços IP Remotos (separados por vírgula. Em branco para <i>quaisquer IPs</i>)';
+$wb['database_remote_error_ips'] = 'Pelo menos um dos endereços IP informados não é válido.';
+$wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres, incluindo o prefixo, é o limite permitido.';
+$wb['database_user_error_len'] = 'Nome do usuário do banco de dados - {user}- é muito longo. 16 caracteres, incluindo o prefixo, é o limite permitido.';
 $wb['parent_domain_id_txt'] = 'Site';
-$wb['database_site_error_empty'] = 'Select the site to which the database belongs.';
-$wb['select_site_txt'] = '- Select Site -';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['globalsearch_resultslimit_of_txt'] = 'of';
-$wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
-$wb['database_ro_user_txt'] = 'Read-only database user';
-$wb['optional_txt'] = 'optional';
-$wb['select_dbuser_txt'] = 'Select database user';
-$wb['no_dbuser_txt'] = 'None';
-$wb['database_client_differs_txt'] = 'The client of the parent web and the database do not match.';
-$wb['database_user_missing_txt'] = 'Please select a database user for this database.';
-$wb['limit_database_quota_txt'] = 'Database quota';
-$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.';
-$wb['limit_database_quota_free_txt'] = 'Max. available DB quota ';
+$wb['database_site_error_empty'] = 'Selecione o \"site\" ao qual o banco de dados pertence.';
+$wb['select_site_txt'] = '- Selecionar site -';
+$wb['btn_save_txt'] = 'Salvar';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['globalsearch_resultslimit_of_txt'] = 'de';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultados';
+$wb['globalsearch_noresults_text_txt'] = 'Sem resultados.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultados';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar';
+$wb['globalsearch_suggestions_text_txt'] = 'Sugestões';
+$wb['database_ro_user_txt'] = 'Usuário do banco de dados somente leitura';
+$wb['optional_txt'] = 'opcional';
+$wb['select_dbuser_txt'] = 'Selecionar o usuário do banco de dados';
+$wb['no_dbuser_txt'] = 'Nenhum';
+$wb['database_client_differs_txt'] = 'O cliente do site e banco de dados não coincidem.';
+$wb['database_user_missing_txt'] = 'Por favor, selecione um usuário do banco de dados para este banco de dados.';
+$wb['limit_database_quota_txt'] = 'Cota para banco de dados';
+$wb['limit_database_quota_error_notint'] = 'O valor da cota para banco de dados deve ser um número positivo.';
+$wb['limit_database_quota_free_txt'] = 'Cota para banco de dados';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_admin_list.lng b/interface/web/sites/lib/lang/br_database_admin_list.lng
index 333a5357c6..4f8f6ba611 100644
--- a/interface/web/sites/lib/lang/br_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/br_database_admin_list.lng
@@ -1,12 +1,12 @@
 <?php
-$wb['list_head_txt'] = 'Database';
-$wb['active_txt'] = 'Active';
-$wb['remote_access_txt'] = 'Remote Access';
-$wb['server_id_txt'] = 'Server';
-$wb['database_user_txt'] = 'Database user';
-$wb['database_name_txt'] = 'Database name';
-$wb['add_new_record_txt'] = 'Add new Database';
-$wb['sys_groupid_txt'] = 'Client';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['type_txt'] = 'Type';
+$wb['list_head_txt'] = 'Banco de dados';
+$wb['active_txt'] = 'Ativo';
+$wb['remote_access_txt'] = 'Acesso remoto';
+$wb['server_id_txt'] = 'Servidor';
+$wb['database_user_txt'] = 'Usuário do banco de dados';
+$wb['database_name_txt'] = 'Nome do banco de dados';
+$wb['add_new_record_txt'] = 'Adicionar novo banco de dados';
+$wb['sys_groupid_txt'] = 'Cliente';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['type_txt'] = 'Tipo';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_list.lng b/interface/web/sites/lib/lang/br_database_list.lng
index 2edb9d25f8..afb5d36a0d 100644
--- a/interface/web/sites/lib/lang/br_database_list.lng
+++ b/interface/web/sites/lib/lang/br_database_list.lng
@@ -3,9 +3,9 @@ $wb['list_head_txt'] = 'Bancos de Dados';
 $wb['active_txt'] = 'Ativo';
 $wb['remote_access_txt'] = 'Acesso Remoto';
 $wb['server_id_txt'] = 'Servidor';
-$wb['database_user_txt'] = 'Usuário do Banco';
-$wb['database_name_txt'] = 'Nome do banco';
-$wb['add_new_record_txt'] = 'Adcionar um novo banco';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['type_txt'] = 'Type';
+$wb['database_user_txt'] = 'Usuário do banco de dados';
+$wb['database_name_txt'] = 'Nome do banco de dados';
+$wb['add_new_record_txt'] = 'Adicionar um novo banco de dados';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['type_txt'] = 'Tipo';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng
index 50f2dcc496..90202f115f 100644
--- a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['database_txt'] = 'Database';
-$wb['server_name_txt'] = 'Server';
-$wb['client_txt'] = 'Client';
-$wb['used_txt'] = 'Used space';
-$wb['quota_txt'] = 'Quota';
-$wb['percentage_txt'] = 'Used in %';
-$wb['list_head_txt'] = 'Database Quota';
+$wb['database_txt'] = 'Banco de dados';
+$wb['server_name_txt'] = 'Servidor';
+$wb['client_txt'] = 'Cliente';
+$wb['used_txt'] = 'Espaço utilizado';
+$wb['quota_txt'] = 'Cota';
+$wb['percentage_txt'] = 'Espaço utilizado em %';
+$wb['list_head_txt'] = 'Cota para banco de dados';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_user.lng b/interface/web/sites/lib/lang/br_database_user.lng
index ab7b59f649..326c2a3eb5 100644
--- a/interface/web/sites/lib/lang/br_database_user.lng
+++ b/interface/web/sites/lib/lang/br_database_user.lng
@@ -1,25 +1,25 @@
 <?php
-$wb['database_user_txt'] = 'Database user';
-$wb['database_password_txt'] = 'Database password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['client_txt'] = 'Client';
-$wb['active_txt'] = 'Active';
-$wb['database_user_error_empty'] = 'Database user is empty.';
-$wb['database_user_error_unique'] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.';
-$wb['database_user_error_regex'] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.';
-$wb['database_user_error_len'] = 'Database username - {user} - too long. The max. database username length incl. prefix is 16 chars.';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['globalsearch_resultslimit_of_txt'] = 'of';
-$wb['globalsearch_resultslimit_results_txt'] = 'results';
-$wb['globalsearch_noresults_text_txt'] = 'No results.';
-$wb['globalsearch_noresults_limit_txt'] = '0 results';
-$wb['globalsearch_searchfield_watermark_txt'] = 'Search';
-$wb['globalsearch_suggestions_text_txt'] = 'Suggestions';
-$wb['limit_database_user_txt'] = 'The max. number of database users is reached.';
-$wb['database_password_error_empty'] = 'Database password is empty.';
+$wb['database_user_txt'] = 'Usuário';
+$wb['database_password_txt'] = 'Senha do banco de dados';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['client_txt'] = 'Cliente';
+$wb['active_txt'] = 'Ativo';
+$wb['database_user_error_empty'] = 'Usuário do banco de dados em branco.';
+$wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. Para configurar um nome exclusivo, use como prefixo o domínio para o nome do usuário.';
+$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \"a-z\", \"A-Z\", \"0-9\" e o \"underscore\". Tamanho: 2 - 64 caracteres.';
+$wb['database_user_error_len'] = 'O usuário do banco de dados - {user} - é muito longo. O limite do nome do usuário, incluindo o prefixo, são 16 caracteres.';
+$wb['btn_save_txt'] = 'Salvar';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['globalsearch_resultslimit_of_txt'] = 'de';
+$wb['globalsearch_resultslimit_results_txt'] = 'resultados';
+$wb['globalsearch_noresults_text_txt'] = 'Sem resultados.';
+$wb['globalsearch_noresults_limit_txt'] = '0 resultados';
+$wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar';
+$wb['globalsearch_suggestions_text_txt'] = 'Sugestões';
+$wb['limit_database_user_txt'] = 'O limite de usuários do banco de dados foi alcançado.';
+$wb['database_password_error_empty'] = 'Senha do banco de dados em branco.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_user_admin_list.lng b/interface/web/sites/lib/lang/br_database_user_admin_list.lng
index d7f88c4c36..1d610bd1b0 100644
--- a/interface/web/sites/lib/lang/br_database_user_admin_list.lng
+++ b/interface/web/sites/lib/lang/br_database_user_admin_list.lng
@@ -1,6 +1,6 @@
 <?php
-$wb['list_head_txt'] = 'Database User';
-$wb['database_user_txt'] = 'Database user';
-$wb['add_new_record_txt'] = 'Add new User';
-$wb['sys_groupid_txt'] = 'Client';
+$wb['list_head_txt'] = 'Usuários';
+$wb['database_user_txt'] = 'Usuário';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
+$wb['sys_groupid_txt'] = 'Cliente';
 ?>
diff --git a/interface/web/sites/lib/lang/br_database_user_list.lng b/interface/web/sites/lib/lang/br_database_user_list.lng
index 8c226496a6..855265e958 100644
--- a/interface/web/sites/lib/lang/br_database_user_list.lng
+++ b/interface/web/sites/lib/lang/br_database_user_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'Database user';
-$wb['database_user_txt'] = 'Database user';
-$wb['add_new_record_txt'] = 'Add new user';
+$wb['list_head_txt'] = 'Usuários';
+$wb['database_user_txt'] = 'Usuário';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
 ?>
diff --git a/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng
index e44025a715..93a02f6c25 100644
--- a/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'FTP traffic';
-$wb['domain_txt'] = 'Domain';
-$wb['this_month_txt'] = 'This month';
-$wb['last_month_txt'] = 'Last month';
-$wb['this_year_txt'] = 'This year';
-$wb['last_year_txt'] = 'Last year';
-$wb['sum_txt'] = 'Sum (Download + Upload)';
+$wb['list_head_txt'] = 'Tráfego ftp';
+$wb['domain_txt'] = 'Domínio';
+$wb['this_month_txt'] = 'Este mês';
+$wb['last_month_txt'] = 'Último mês';
+$wb['this_year_txt'] = 'Este ano';
+$wb['last_year_txt'] = 'Último ano';
+$wb['sum_txt'] = 'Soma (Download + Upload)';
 $wb['in_out_txt'] = 'DL/UL';
 ?>
diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng
index ac5393508b..641fa96e0f 100644
--- a/interface/web/sites/lib/lang/br_ftp_user.lng
+++ b/interface/web/sites/lib/lang/br_ftp_user.lng
@@ -2,34 +2,34 @@
 $wb['uid_txt'] = 'UID';
 $wb['gid_txt'] = 'GID';
 $wb['dir_txt'] = 'Diretório';
-$wb['quota_files_txt'] = 'Cota de Arquivo';
+$wb['quota_files_txt'] = 'Cota de arquivos';
 $wb['quota_files_unity_txt'] = 'Arquivos';
-$wb['ul_ratio_txt'] = 'Taxa de Upload';
-$wb['dl_ratio_txt'] = 'Taxa de Download';
-$wb['ul_bandwidth_txt'] = 'Banda de Upload';
-$wb['dl_bandwidth_txt'] = 'Banda de Download';
+$wb['ul_ratio_txt'] = 'Taxa para upload';
+$wb['dl_ratio_txt'] = 'Taxa para download';
+$wb['ul_bandwidth_txt'] = 'Banda para upload';
+$wb['dl_bandwidth_txt'] = 'Banda para download';
 $wb['server_id_txt'] = 'Servidor';
-$wb['parent_domain_id_txt'] = 'Website';
+$wb['parent_domain_id_txt'] = 'Site';
 $wb['username_txt'] = 'Usuário';
 $wb['password_txt'] = 'Senha';
-$wb['password_strength_txt'] = 'Tamanho da senha';
-$wb['quota_size_txt'] = 'Cota de Disco';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['quota_size_txt'] = 'Cota de disco';
 $wb['active_txt'] = 'Ativo';
-$wb['limit_ftp_user_txt'] = 'O número máximo de usuários de FTP para sua conta foi atingido.';
-$wb['username_error_empty'] = 'Nome de usuário em branco.';
-$wb['username_error_unique'] = 'O nome de usuário deve ser único.';
-$wb['username_error_regex'] = 'O nome de usuário contém caracteres não permitidos.';
-$wb['quota_size_error_empty'] = 'Quota em branco.';
+$wb['limit_ftp_user_txt'] = 'o limite de usuários ftp para esta conta foi alcançado.';
+$wb['username_error_empty'] = 'Nome do usuário em branco.';
+$wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.';
+$wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.';
+$wb['quota_size_error_empty'] = 'Cota em branco.';
 $wb['uid_error_empty'] = 'GID em branco.';
-$wb['directory_error_empty'] = 'Diretório vazio.';
-$wb['directory_error_notinweb'] = 'O diretório não esta dentro do diretório web principal.';
-$wb['parent_domain_id_error_empty'] = 'Nenhum website selecionado.';
-$wb['quota_size_error_regex'] = 'Quota: enter a -1 for unlimited or a number > 0';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['expires_txt'] = 'Expire at';
+$wb['directory_error_empty'] = 'Diretório em branco.';
+$wb['directory_error_notinweb'] = 'O diretório não está dentro do diretório web principal.';
+$wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.';
+$wb['quota_size_error_regex'] = 'Cota: insira -1 para ilimitado ou um número > 0';
+$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.';
+$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['expires_txt'] = 'Expirar em';
 ?>
diff --git a/interface/web/sites/lib/lang/br_ftp_user_list.lng b/interface/web/sites/lib/lang/br_ftp_user_list.lng
index a9540c9cda..918d7f99f3 100644
--- a/interface/web/sites/lib/lang/br_ftp_user_list.lng
+++ b/interface/web/sites/lib/lang/br_ftp_user_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Usuário-FTP';
+$wb['list_head_txt'] = 'Usuário ftp';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['parent_domain_id_txt'] = 'Site';
 $wb['username_txt'] = 'Usuário';
-$wb['add_new_record_txt'] = 'Adcionar um novo Usuário FTP';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
 ?>
diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng
index da57fb9206..4f61f667e2 100644
--- a/interface/web/sites/lib/lang/br_shell_user.lng
+++ b/interface/web/sites/lib/lang/br_shell_user.lng
@@ -6,31 +6,31 @@ $wb['parent_domain_id_txt'] = 'Site';
 $wb['username_txt'] = 'Nome do usuário';
 $wb['password_txt'] = 'Senha';
 $wb['password_strength_txt'] = 'Dificuldade da senha';
-$wb['chroot_txt'] = 'Shell em Chroot';
+$wb['chroot_txt'] = 'Shell enjaulado (chroot)';
 $wb['quota_size_txt'] = 'Cota';
 $wb['active_txt'] = 'Ativo';
 $wb['username_error_empty'] = 'Nome de usuário em branco.';
-$wb['username_error_unique'] = 'O nome de usuário deve ser único.';
+$wb['username_error_unique'] = 'O nome de usuário deve ser exclusivo.';
 $wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.';
-$wb['quota_size_error_empty'] = 'Quota em branco.';
+$wb['quota_size_error_empty'] = 'Cota em branco.';
 $wb['uid_error_empty'] = 'GID em branco.';
-$wb['directory_error_empty'] = 'Diretório vazio.';
-$wb['limit_shell_user_txt'] = 'O número máximo de usuários shell para sua conta foi atingido.';
-$wb['parent_domain_id_error_empty'] = 'Nenhum website selecionado.';
-$wb['puser_txt'] = 'Web Username';
-$wb['pgroup_txt'] = 'Web Group';
-$wb['ssh_rsa_txt'] = 'SSH-RSA Public Key (for key-based logins)';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
-$wb['username_not_allowed_txt'] = 'The username is not allowed.';
-$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group';
-$wb['directory_error_regex'] = 'Invalid directory';
-$wb['shell_error_regex'] = 'Invalid shell';
-$wb['invalid_username_txt'] = 'Invalid Username';
-$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.';
+$wb['directory_error_empty'] = 'Diretório em branco.';
+$wb['limit_shell_user_txt'] = 'O limite de usuários shell para esta conta foi alcançado.';
+$wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.';
+$wb['puser_txt'] = 'Usuário web';
+$wb['pgroup_txt'] = 'Grupo web';
+$wb['ssh_rsa_txt'] = 'Chave pública SSH-RSA (para acessos baseados em chave)';
+$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.';
+$wb['dir_slashdot_error'] = 'Não é permitido  \"./\" no caminho.';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['username_must_not_exceed_32_chars_txt'] = 'O nome do usuário não pode ultrapassar 32 caracteres.';
+$wb['username_not_allowed_txt'] = 'O nome do usuário nao é permitido.';
+$wb['invalid_system_user_or_group_txt'] = 'Usuário ou grupo inválido';
+$wb['directory_error_regex'] = 'Diretório inválido';
+$wb['shell_error_regex'] = 'Shell inválido';
+$wb['invalid_username_txt'] = 'Usuário inválido';
+$wb['directory_error_notinweb'] = 'O diretório deve estar dentro do diretório web principal.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_shell_user_list.lng b/interface/web/sites/lib/lang/br_shell_user_list.lng
index 512f9fe837..587c988ccd 100644
--- a/interface/web/sites/lib/lang/br_shell_user_list.lng
+++ b/interface/web/sites/lib/lang/br_shell_user_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Usuário de Shell';
+$wb['list_head_txt'] = 'Usuário shell';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['parent_domain_id_txt'] = 'Site';
 $wb['username_txt'] = 'Usuário';
-$wb['add_new_record_txt'] = 'Adcionar novo usuário de Shell';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
 ?>
diff --git a/interface/web/sites/lib/lang/br_user_quota_stats_list.lng b/interface/web/sites/lib/lang/br_user_quota_stats_list.lng
index c11311bcee..fe41b018dc 100644
--- a/interface/web/sites/lib/lang/br_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/br_user_quota_stats_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Cota de Disco';
+$wb['list_head_txt'] = 'Cota do Disco';
 $wb['domain_txt'] = 'Domínio';
 $wb['system_user_txt'] = 'Usuário Linux';
-$wb['used_txt'] = 'Espaço usado';
-$wb['hard_txt'] = 'Limite hard';
-$wb['soft_txt'] = 'Limite soft';
-$wb['files_txt'] = 'Single files';
+$wb['used_txt'] = 'Espaço utilizado';
+$wb['hard_txt'] = 'Limite';
+$wb['soft_txt'] = 'Limite para alerta';
+$wb['files_txt'] = 'Arquivos simples';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng
index 4149c71149..524d6ddf5f 100644
--- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng
+++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng
@@ -1,115 +1,115 @@
 <?php
-$wb['domain_txt'] = 'Aliasdomain';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['ssl_state_txt'] = 'State';
-$wb['ssl_locality_txt'] = 'Locality';
-$wb['ssl_organisation_txt'] = 'Organisation';
-$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
-$wb['ssl_domain_txt'] = 'SSL Domain';
-$wb['server_id_txt'] = 'Server';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['type_txt'] = 'Type';
-$wb['parent_domain_id_txt'] = 'Parent Website';
-$wb['redirect_type_txt'] = 'Redirect Type';
-$wb['redirect_path_txt'] = 'Redirect Path';
-$wb['active_txt'] = 'Active';
-$wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Linux User';
-$wb['system_group_txt'] = 'Linux Group';
-$wb['ip_address_txt'] = 'IPv4-Address';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['vhost_type_txt'] = 'VHost Type';
-$wb['hd_quota_txt'] = 'Harddisk Quota';
-$wb['traffic_quota_txt'] = 'Traffic Quota';
+$wb['domain_txt'] = 'Apelido de domínio';
+$wb['backup_interval_txt'] = 'Intervalo de backup';
+$wb['backup_copies_txt'] = 'Limite de cópias do backup';
+$wb['ssl_state_txt'] = 'Estado';
+$wb['ssl_locality_txt'] = 'Cidade';
+$wb['ssl_organisation_txt'] = 'Empresa';
+$wb['ssl_organisation_unit_txt'] = 'Departamento';
+$wb['ssl_country_txt'] = 'País';
+$wb['ssl_key_txt'] = 'Chave';
+$wb['ssl_request_txt'] = 'Requisição';
+$wb['ssl_cert_txt'] = 'Certificado';
+$wb['ssl_bundle_txt'] = 'Pacote';
+$wb['ssl_action_txt'] = 'Ação';
+$wb['ssl_domain_txt'] = 'Domínio';
+$wb['server_id_txt'] = 'Servidor';
+$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \"/\".';
+$wb['type_txt'] = 'Tipo';
+$wb['parent_domain_id_txt'] = 'Site pai';
+$wb['redirect_type_txt'] = 'Tipo de redirecionamento';
+$wb['redirect_path_txt'] = 'Caminho do redirecionamento';
+$wb['active_txt'] = 'Ativo';
+$wb['document_root_txt'] = 'Pasta personalizada documentroot';
+$wb['system_user_txt'] = 'Usuário Linux';
+$wb['system_group_txt'] = 'Grupo Linux';
+$wb['ip_address_txt'] = 'Endereço IPv4';
+$wb['ipv6_address_txt'] = 'Endreço IPv6';
+$wb['vhost_type_txt'] = 'Tipo VHost';
+$wb['hd_quota_txt'] = 'Cota de Disco';
+$wb['traffic_quota_txt'] = 'Cota de Tráfego';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Own Error-Documents';
-$wb['subdomain_txt'] = 'Auto-Subdomain';
+$wb['errordocs_txt'] = 'Pasta personalizada errordocuments';
+$wb['subdomain_txt'] = 'Subdomínio automático';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
-$wb['client_txt'] = 'Client';
-$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.';
-$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.';
-$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.';
-$wb['apache_directives_txt'] = 'Apache Directives';
-$wb['domain_error_empty'] = 'Domain is empty.';
-$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.';
-$wb['domain_error_regex'] = 'Domain name invalid.';
-$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
-$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
-$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
-$wb['error_ssl_state_empty'] = 'SSL State is empty.';
-$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
-$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
-$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['client_group_id_txt'] = 'Client';
-$wb['stats_password_txt'] = 'Set Webstatistics password';
-$wb['allow_override_txt'] = 'Apache AllowOverride';
-$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota';
-$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota';
-$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/';
-$wb['php_open_basedir_txt'] = 'PHP open_basedir';
-$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['client_txt'] = 'Cliente';
+$wb['limit_web_domain_txt'] = 'O limite de domínios de site para esta conta foi alcançado.';
+$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio para esta conta foi alcançado.';
+$wb['limit_web_subdomain_txt'] = 'Limite  subdomínios de site para esta conta foi alcançado.';
+$wb['apache_directives_txt'] = 'Diretivas do apache';
+$wb['domain_error_empty'] = 'O domínio em branco.';
+$wb['domain_error_unique'] = 'Já existe um website, subdomínio ou apelido de domínio com este nome.';
+$wb['domain_error_regex'] = 'Domínio inválido!';
+$wb['domain_error_autosub'] = 'Já existe um subdomínio com estas configurações.';
+$wb['hd_quota_error_empty'] = 'Cota de disco é 0 ou em branco.';
+$wb['traffic_quota_error_empty'] = 'Cota de tráfego em branco.';
+$wb['error_ssl_state_empty'] = 'Campo \"Estado\" em branco.';
+$wb['error_ssl_locality_empty'] = 'Campo \"Cidade\" em branco.';
+$wb['error_ssl_organisation_empty'] = 'Campo \"Empresa\" em branco.';
+$wb['error_ssl_organisation_unit_empty'] = 'Campo \"Departamento\" em branco.';
+$wb['error_ssl_country_empty'] = 'Campo \"País\" em branco.';
+$wb['error_ssl_cert_empty'] = 'Campo \"Certificado\" em branco.';
+$wb['client_group_id_txt'] = 'Cliente';
+$wb['stats_password_txt'] = 'Configurar senha para estatísticas web';
+$wb['allow_override_txt'] = 'Diretiva apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Cota máxima de disco disponível';
+$wb['ssl_state_error_regex'] = 'Campo \"Estado\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_locality_error_regex'] = 'Campo \"Cidade\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organisation_error_regex'] = 'Campo \"Empresa\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organistaion_unit_error_regex'] = 'Campo \"Departamento\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_country_error_regex'] = 'Campo \"País\" inválido. São caracteres válidos: \"A-Z\".';
+$wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível';
+$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplos de caminhos válidos: /teste/ ou http://www.dominio.com/teste/';
+$wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP';
+$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatistics username';
-$wb['stats_type_txt'] = 'Webstatistics program';
-$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['none_txt'] = 'None';
-$wb['disabled_txt'] = 'Disabled';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['save_certificate_txt'] = 'Save certificate';
-$wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
-$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
-$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['stats_user_txt'] = 'Usuário de estatísticas web';
+$wb['stats_type_txt'] = 'Programa de estatísticas web';
+$wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini';
+$wb['none_txt'] = 'Nenhum';
+$wb['disabled_txt'] = 'Desabilitado';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
+$wb['save_certificate_txt'] = 'Salvar certificado';
+$wb['create_certificate_txt'] = 'Adicionar certificado';
+$wb['delete_certificate_txt'] = 'Remover certificado';
+$wb['nginx_directives_txt'] = 'Diretivas do nginx';
+$wb['seo_redirect_txt'] = 'Redirecionamento SEO';
+$wb['non_www_to_www_txt'] = 'Diretivas Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'Diretivas www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Usar soquete para o PHP-FPM';
+$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.';
 $wb['python_txt'] = 'Python';
 $wb['perl_txt'] = 'Perl';
-$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
-$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
-$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
-$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
-$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
-$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['Domain'] = 'Aliasdomain';
+$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Os valores permitidos para configurações do PHP-FPM pm são: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.';
+$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.';
+$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.';
+$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.';
+$wb['hd_quota_error_regex'] = 'Valor inválido para cota de disco.';
+$wb['traffic_quota_error_regex'] = 'Valor inválido para cota de tráfego.';
+$wb['fastcgi_php_version_txt'] = 'Versão do PHP';
+$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM';
+$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.';
+$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['available_php_directive_snippets_txt'] = 'Diretivas de fragmentação do php disponíveis:';
+$wb['available_apache_directive_snippets_txt'] = 'Diretivas de fragmentação do apache disponíveis:';
+$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de fragmentação do nginx disponíveis:';
+$wb['proxy_directives_txt'] = 'Diretivas do proxy';
+$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de fragmentação do proxy disponíveis:';
+$wb['Domain'] = 'Apelido de domínio';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng
index d75bddde38..2281a53c59 100644
--- a/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng
@@ -1,14 +1,14 @@
 <?php
-$wb['list_head_txt'] = 'Domínio Alias';
+$wb['list_head_txt'] = 'Apelidos de domínios';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['domain_txt'] = 'Domínio Alias';
-$wb['add_new_record_txt'] = 'Adcionar novo domínio alias';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['domain_txt'] = 'Apelido de domínio';
+$wb['add_new_record_txt'] = 'Adicionar novo apelido';
 $wb['domain_error_empty'] = 'Domínio em branco.';
-$wb['domain_error_unique'] = 'O domínio deve ser único.';
-$wb['domain_error_regex'] = 'Nome de domínio inválido.';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['none_txt'] = 'Em Branco';
+$wb['domain_error_unique'] = 'O domínio deve ser exclusivo.';
+$wb['domain_error_regex'] = 'Domínio inválido!';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
+$wb['none_txt'] = 'Nenhum';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_backup_list.lng b/interface/web/sites/lib/lang/br_web_backup_list.lng
index d1133334f0..137f8bc7e0 100644
--- a/interface/web/sites/lib/lang/br_web_backup_list.lng
+++ b/interface/web/sites/lib/lang/br_web_backup_list.lng
@@ -1,21 +1,21 @@
 <?php
-$wb['list_head_txt'] = 'Existing backups';
-$wb['date_txt'] = 'Date';
-$wb['backup_type_txt'] = 'Type';
-$wb['filename_txt'] = 'Backup file';
-$wb['restore_backup_txt'] = 'Restore backup';
-$wb['download_backup_txt'] = 'Download backup';
-$wb['download_info_txt'] = 'The backup file will be available for download in the backup folder of the website in a few minutes.';
-$wb['restore_info_txt'] = 'Restore of the backup has been started. This action takes several minutes to be completed.';
-$wb['restore_confirm_txt'] = 'Restoring will overwrite existing files in your website. Do you really want to restore this backup?';
-$wb['download_pending_txt'] = 'There is already a pending backup download job.';
-$wb['restore_pending_txt'] = 'There is already a pending backup restore job.';
-$wb['delete_backup_txt'] = 'Delete Backup';
-$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.';
-$wb['delete_confirm_txt'] = 'Really delete this backup?';
-$wb['delete_pending_txt'] = 'There is already a pending backup delete job.';
-$wb['backup_type_mysql'] = 'MySQL Database';
-$wb['backup_type_web'] = 'Website files';
-$wb['filesize_txt'] = 'Filesize';
-$wb['backup_type_mongodb'] = 'MongoDB Database';
+$wb['list_head_txt'] = 'Backups existentes';
+$wb['date_txt'] = 'Data';
+$wb['backup_type_txt'] = 'Tipo';
+$wb['filename_txt'] = 'Arquivo de backup';
+$wb['restore_backup_txt'] = 'Restaurar backup';
+$wb['download_backup_txt'] = 'Baixar backup';
+$wb['download_info_txt'] = 'O arquivo de backup estará disponível para download na pasta de backup do site em alguns minutos.';
+$wb['restore_info_txt'] = 'Restauração do backup iniciada. Esta ação poderá levar vários minutos para ser concluída. Aguarde.';
+$wb['restore_confirm_txt'] = 'A restauração do backup reescreverá os arquivos existes do seu site. Tem certeza que deseja restaurar este backup?';
+$wb['download_pending_txt'] = 'Já existe um download deste backup em execução.';
+$wb['restore_pending_txt'] = 'Já existe uma restauração deste backup em execução.';
+$wb['delete_backup_txt'] = 'Remover backup';
+$wb['delete_info_txt'] = 'Remoção do backup iniciada. Esta ação poderá levar vários minutos para ser concluída. Aguarde.';
+$wb['delete_confirm_txt'] = 'Tem certeza que deseja remover este backup?';
+$wb['delete_pending_txt'] = 'Já existe uma remoção deste backup em execução.';
+$wb['backup_type_mysql'] = 'Banco de dados MySQL';
+$wb['backup_type_web'] = 'Arquivos do site';
+$wb['filesize_txt'] = 'Tamanho';
+$wb['backup_type_mongodb'] = 'Banco de dados MongoDB';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng
index eac125971b..192d9f9e60 100644
--- a/interface/web/sites/lib/lang/br_web_childdomain.lng
+++ b/interface/web/sites/lib/lang/br_web_childdomain.lng
@@ -1,118 +1,118 @@
 <?php
 $wb['ssl_state_txt'] = 'Estado';
-$wb['ssl_locality_txt'] = 'Localidade';
+$wb['ssl_locality_txt'] = 'Cidade';
 $wb['ssl_organisation_txt'] = 'Empresa';
 $wb['ssl_organisation_unit_txt'] = 'Departamento';
 $wb['ssl_country_txt'] = 'País';
-$wb['ssl_request_txt'] = 'Requisição SSL';
-$wb['ssl_cert_txt'] = 'Certificado SSL';
-$wb['ssl_bundle_txt'] = 'Pacote SSL';
-$wb['ssl_action_txt'] = 'Ação SSL';
+$wb['ssl_request_txt'] = 'Requisição';
+$wb['ssl_cert_txt'] = 'Certificado';
+$wb['ssl_bundle_txt'] = 'Pacote';
+$wb['ssl_action_txt'] = 'Ação';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
 $wb['type_txt'] = 'Tipo';
-$wb['parent_domain_id_txt'] = 'Site Parente';
-$wb['redirect_type_txt'] = 'Tipo do Redirecionamento';
-$wb['redirect_path_txt'] = 'Caminho do Redirecionamento';
+$wb['parent_domain_id_txt'] = 'Site pai';
+$wb['redirect_type_txt'] = 'Tipo de redirecionamento';
+$wb['redirect_path_txt'] = 'Caminho para redirecionamento';
 $wb['active_txt'] = 'Ativo';
 $wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Usuário no Linux';
-$wb['system_group_txt'] = 'Grupo no Linux';
-$wb['ip_address_txt'] = 'Endereço-IP';
-$wb['vhost_type_txt'] = 'Tipo de VHost';
-$wb['hd_quota_txt'] = 'Cota de Disco';
-$wb['traffic_quota_txt'] = 'Cota de Tráfico';
+$wb['system_user_txt'] = 'Usuário Linux';
+$wb['system_group_txt'] = 'Grupo Linux';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['vhost_type_txt'] = 'Tipo de vhost';
+$wb['hd_quota_txt'] = 'Cota de disco';
+$wb['traffic_quota_txt'] = 'Cota de tráfego';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Cliente';
-$wb['limit_web_domain_txt'] = 'O número máximo de domínios web para esta conta foi atingido.';
-$wb['limit_web_aliasdomain_txt'] = 'O número máximo de aliases para esta conta foi atingido.';
-$wb['limit_web_subdomain_txt'] = 'O número máximo de sub-domínios para esta conta foi atingido.';
-$wb['apache_directives_txt'] = 'Diretivas apache';
+$wb['limit_web_domain_txt'] = 'o limite de domínios de site para esta conta foi alcançado.';
+$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio de site para esta conta foi alcançado.';
+$wb['limit_web_subdomain_txt'] = 'O limite de subdomínios de site para esta conta foi alcançado.';
+$wb['apache_directives_txt'] = 'Diretivas do apache';
 $wb['domain_error_empty'] = 'Domínio em branco.';
-$wb['domain_error_unique'] = 'Já existe alias ou sub-domínio com este nome.';
+$wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.';
 $wb['domain_error_regex'] = 'Nome de domínio inválido.';
-$wb['host_txt'] = 'Host';
-$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplo de caminho válido: /test/ ou http://www.dominio.ext/test/';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_domain_txt'] = 'SSL Domain';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['errordocs_txt'] = 'Own Error-Documents';
-$wb['subdomain_txt'] = 'Auto-Subdomain';
-$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
-$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
-$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
-$wb['error_ssl_state_empty'] = 'SSL State is empty.';
-$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
-$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
-$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['client_group_id_txt'] = 'Client';
-$wb['stats_password_txt'] = 'Set Webstatistics password';
-$wb['allow_override_txt'] = 'Apache AllowOverride';
-$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota';
-$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota';
-$wb['php_open_basedir_txt'] = 'PHP open_basedir';
-$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['host_txt'] = 'HostNome do host';
+$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplo de caminho válido: /teste/ ou http://www.dominio.com/teste/';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
+$wb['domain_error_wildcard'] = 'Curingas para subdomínios não são permitidos.';
+$wb['proxy_directives_txt'] = 'Diretivas do proxy';
+$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de fragmentação do proxy disponíveis:';
+$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \"proxy\" exige uma url no caminho de redirecionamento.';
+$wb['backup_interval_txt'] = 'Intervalo de backup';
+$wb['backup_copies_txt'] = 'Limite de cópias do backup';
+$wb['ssl_key_txt'] = 'Chave';
+$wb['ssl_domain_txt'] = 'Domínio do SSL';
+$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra \"/\".';
+$wb['ipv6_address_txt'] = 'Endereço IPv6';
+$wb['errordocs_txt'] = 'Pasta personalizada Error-Documents';
+$wb['subdomain_txt'] = 'Subdomínio automático';
+$wb['domain_error_autosub'] = 'Já existe um subdomínio com estas configurações.';
+$wb['hd_quota_error_empty'] = 'Cota de disco é 0 ou em branco.';
+$wb['traffic_quota_error_empty'] = 'Cota de tráfego em branco.';
+$wb['error_ssl_state_empty'] = 'Campo \"Estado\" em branco.';
+$wb['error_ssl_locality_empty'] = 'Campo \"Cidade\" em branco.';
+$wb['error_ssl_organisation_empty'] = 'Campo \"Organização\" em branco.';
+$wb['error_ssl_organisation_unit_empty'] = 'Campo \"Departamento\" em branco.';
+$wb['error_ssl_country_empty'] = 'Campo \"País\" em branco.';
+$wb['error_ssl_cert_empty'] = 'Campo \"Certificado\" em branco';
+$wb['client_group_id_txt'] = 'Cliente';
+$wb['stats_password_txt'] = 'Configurar senha para estatísticas web';
+$wb['allow_override_txt'] = 'Diretiva apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Cota de disco';
+$wb['ssl_state_error_regex'] = 'Campo \"Estado\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_locality_error_regex'] = 'Campo \"Cidade\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organisation_error_regex'] = 'Campo \"Empresa\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organistaion_unit_error_regex'] = 'Campo \"Departamento\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_country_error_regex'] = 'Campo \"País\" inválido. São caracteres válidos: \"A-Z\".';
+$wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego';
+$wb['php_open_basedir_txt'] = 'Diretório open_basedir do php';
+$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego alcançada';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatistics username';
-$wb['stats_type_txt'] = 'Webstatistics program';
-$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['none_txt'] = 'None';
-$wb['disabled_txt'] = 'Disabled';
-$wb['save_certificate_txt'] = 'Save certificate';
-$wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
-$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
-$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['stats_user_txt'] = 'Usuário para estatísticas web';
+$wb['stats_type_txt'] = 'Programa para estatísticas web';
+$wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini';
+$wb['none_txt'] = 'Nenhum';
+$wb['disabled_txt'] = 'Inativo';
+$wb['save_certificate_txt'] = 'Salvar certificado';
+$wb['create_certificate_txt'] = 'Adicionar certificado';
+$wb['delete_certificate_txt'] = 'Remover certificado';
+$wb['nginx_directives_txt'] = 'Diretivas do nginx';
+$wb['seo_redirect_txt'] = 'Redirecionamento SEO';
+$wb['non_www_to_www_txt'] = 'Diretivas Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'Diretivas www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Usar soquete para PHP-FPM';
+$wb['error_no_sni_txt'] = 'SNI para SSL não está ativo neste servidor. Você só pode ativar um certificado SSL para cada endereço IP.';
 $wb['python_txt'] = 'Python';
 $wb['perl_txt'] = 'Perl';
-$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
-$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
-$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
-$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
-$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
-$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
+$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Valores para as configurações do PHP-FPM pm devem obedecer as seguintes condições: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.';
+$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.';
+$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.';
+$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.';
+$wb['hd_quota_error_regex'] = 'Valor da cota de disco é inválido.';
+$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego é inválido.';
+$wb['fastcgi_php_version_txt'] = 'Versão do PHP';
+$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM';
+$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.';
+$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['available_php_directive_snippets_txt'] = 'Diretivas de fragmentação do php disponíveis:';
+$wb['available_apache_directive_snippets_txt'] = 'Diretivas de fragmentação do apache disponíveis:';
+$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de fragmentação do nginx disponíveis:';
 $wb['Domain'] = 'Aliasdomain';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_childdomain_list.lng b/interface/web/sites/lib/lang/br_web_childdomain_list.lng
index a9de22f34e..cd3caf7488 100644
--- a/interface/web/sites/lib/lang/br_web_childdomain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_childdomain_list.lng
@@ -1,17 +1,17 @@
 <?php
-$wb['list_head_txt'] = 'Sub-domínios';
+$wb['list_head_txt'] = 'Subdomínios';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['domain_txt'] = 'Sub-domínio';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['domain_txt'] = 'Subdomínio';
 $wb['domain_error_empty'] = 'Domínio em branco.';
-$wb['domain_error_unique'] = 'O domínio deve ser único.';
-$wb['domain_error_regex'] = 'Nome de domínio inválido.';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['none_txt'] = 'Em Branco';
-$wb['add_new_subdomain_txt'] = 'Add new Subdomain';
-$wb['add_new_aliasdomain_txt'] = 'Add new Aliasdomain';
-$wb['aliasdomain_list_head_txt'] = 'Aliasdomains';
-$wb['subdomain_list_head_txt'] = 'Subdomains';
+$wb['domain_error_unique'] = 'O nome do domínio deve ser exclusivo.';
+$wb['domain_error_regex'] = 'Nome do domínio inválido.';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
+$wb['none_txt'] = 'Nenhum';
+$wb['add_new_subdomain_txt'] = 'Adicionar novo subdomínio';
+$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido';
+$wb['aliasdomain_list_head_txt'] = 'Apelidos de domínios';
+$wb['subdomain_list_head_txt'] = 'Subdomínios';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_directive_snippets.lng b/interface/web/sites/lib/lang/br_web_directive_snippets.lng
index d2590e53cf..aecdb3d5c9 100644
--- a/interface/web/sites/lib/lang/br_web_directive_snippets.lng
+++ b/interface/web/sites/lib/lang/br_web_directive_snippets.lng
@@ -1,3 +1,3 @@
 <?php
-$wb['directive_snippets_id_txt'] = 'Desired configuration';
+$wb['directive_snippets_id_txt'] = 'Configurações desejadas';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng
index 7d46126541..f15cd2411d 100644
--- a/interface/web/sites/lib/lang/br_web_domain.lng
+++ b/interface/web/sites/lib/lang/br_web_domain.lng
@@ -1,136 +1,136 @@
 <?php
 $wb['ssl_state_txt'] = 'Estado';
-$wb['ssl_locality_txt'] = 'Localização';
+$wb['ssl_locality_txt'] = 'Cidade';
 $wb['ssl_organisation_txt'] = 'Empresa';
 $wb['ssl_organisation_unit_txt'] = 'Departamento';
 $wb['ssl_country_txt'] = 'País';
-$wb['ssl_request_txt'] = 'Requisição SSL';
-$wb['ssl_cert_txt'] = 'Certificado SSL';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
+$wb['ssl_request_txt'] = 'Requisição';
+$wb['ssl_cert_txt'] = 'Certificado';
+$wb['ssl_bundle_txt'] = 'Pacote';
+$wb['ssl_action_txt'] = 'Ação';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
 $wb['type_txt'] = 'Tipo';
-$wb['parent_domain_id_txt'] = 'Site Parente';
-$wb['redirect_type_txt'] = 'Tipo Redirecionamento';
-$wb['redirect_path_txt'] = 'Caminho de redirecionamento';
+$wb['parent_domain_id_txt'] = 'Site pai';
+$wb['redirect_type_txt'] = 'Tipo de redirecionamento';
+$wb['redirect_path_txt'] = 'Caminho do redirecionamento';
 $wb['active_txt'] = 'Ativo';
-$wb['document_root_txt'] = 'Documentroot';
+$wb['document_root_txt'] = 'Diretório Documentroot';
 $wb['system_user_txt'] = 'Usuário Linux';
-$wb['system_group_txt'] = 'Groupo Linux';
-$wb['ip_address_txt'] = 'Endereço-IP';
+$wb['system_group_txt'] = 'Grupo Linux';
+$wb['ip_address_txt'] = 'Endereço IP';
 $wb['vhost_type_txt'] = 'Tipo de VHost';
-$wb['hd_quota_txt'] = 'Cota de Disco';
-$wb['traffic_quota_txt'] = 'Cota de Tráfego';
+$wb['hd_quota_txt'] = 'Cota de disco';
+$wb['traffic_quota_txt'] = 'Cota de tráfego';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Suas Páginas de  Erro';
-$wb['subdomain_txt'] = 'Auto-Subdomínio';
+$wb['errordocs_txt'] = 'Páginas de erro personalizadas (error-documents)';
+$wb['subdomain_txt'] = 'Subdomínio automático';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Cliente';
-$wb['limit_web_domain_txt'] = 'O número máximo de domínios web para sua conta foi atingido.';
-$wb['limit_web_aliasdomain_txt'] = 'O número máximo de aliases domínio para sua conta foi atingido.';
-$wb['limit_web_subdomain_txt'] = 'O número máximo de sub-domínios para sua conta foi atingido.';
-$wb['apache_directives_txt'] = 'Diretivas do Apache';
+$wb['limit_web_domain_txt'] = 'O limite de domínios de site para esta conta foi alcançado.';
+$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio domínio para esta conta foi alcançado.';
+$wb['limit_web_subdomain_txt'] = 'O limite de subdomínios para esta conta foi alcançado.';
+$wb['apache_directives_txt'] = 'Diretivas do apache';
 $wb['domain_error_empty'] = 'Domínio em branco.';
-$wb['domain_error_unique'] = 'Já existe site, alias ou sub-domínio com este nome';
+$wb['domain_error_unique'] = 'Já existe site, apelido ou subdomínio com este nome';
 $wb['domain_error_regex'] = 'Nome de domínio inválido.';
-$wb['hd_quota_error_empty'] = 'Quota de disco está em branco.';
-$wb['traffic_quota_error_empty'] = 'Quota de tráfego está em branco.';
-$wb['error_ssl_state_empty'] = 'Estado do SSL está em branco.';
-$wb['error_ssl_locality_empty'] = 'Localização do SSL está em branco.';
-$wb['error_ssl_organisation_empty'] = 'Empresa do SSL está em branco.';
-$wb['error_ssl_organisation_unit_empty'] = 'Departamento do SSL está em branco.';
-$wb['error_ssl_country_empty'] = 'País do SSL em branco.';
+$wb['hd_quota_error_empty'] = 'Cota de disco em branco.';
+$wb['traffic_quota_error_empty'] = 'Cota de tráfego em branco.';
+$wb['error_ssl_state_empty'] = 'Campo \"Estado\" em branco.';
+$wb['error_ssl_locality_empty'] = 'Campo \"Cidade\" em branco.';
+$wb['error_ssl_organisation_empty'] = 'Campo \"Empresa\" em branco.';
+$wb['error_ssl_organisation_unit_empty'] = 'Campo \"Departamento\" em branco.';
+$wb['error_ssl_country_empty'] = 'Campo \"País\" em branco.';
 $wb['client_group_id_txt'] = 'Cliente';
 $wb['stats_password_txt'] = 'Senha do diretório de estatísticas';
-$wb['ssl_domain_txt'] = 'Domínio SSL';
+$wb['ssl_domain_txt'] = 'Domínio';
 $wb['allow_override_txt'] = 'Permitir Sobrescrever';
-$wb['limit_web_quota_free_txt'] = 'Cota Max. de disco disponível';
-$wb['ssl_state_error_regex'] = 'Estado inválido para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_locality_error_regex'] = 'Localidade inválida para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_organisation_error_regex'] = 'Empresa inválida para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Departamento inválido para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_country_error_regex'] = 'País inválido para SSL. São caracteres válidos: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Cota máxima de Tráfego disponível';
-$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplos de caminhos válidos: /test/ ou http://www.dominio.ext/test/';
-$wb['php_open_basedir_txt'] = 'open_basedir do PHP';
+$wb['limit_web_quota_free_txt'] = 'Cota máxima de disco disponível';
+$wb['ssl_state_error_regex'] = 'Campo \"Estado\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_locality_error_regex'] = 'Campo \"Cidade\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organisation_error_regex'] = 'Campo \"Empresa\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organistaion_unit_error_regex'] = 'Campo \"Departamento\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_country_error_regex'] = 'Campo \"País\" inválido. São caracteres válidos: \"A-Z\".';
+$wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível';
+$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplos de caminhos válidos: /teste/ ou http://www.dominio.com/teste/';
+$wb['php_open_basedir_txt'] = 'Diretório open_basedir do php';
 $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida';
-$wb['backup_interval_txt'] = 'Intervalo de Backup';
-$wb['backup_copies_txt'] = 'Número de cópias';
+$wb['backup_interval_txt'] = 'Intervalo de backup';
+$wb['backup_copies_txt'] = 'Limite de cópias';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Estátisticas Web usuário';
-$wb['stats_type_txt'] = 'Tipo de Estatística Web';
+$wb['stats_user_txt'] = 'Usuário para estatísticas web';
+$wb['stats_type_txt'] = 'Tipo de estatísticas web';
 $wb['custom_php_ini_txt'] = 'php.ini personalizado';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
+$wb['error_ssl_cert_empty'] = 'Campo \"Certificado\" vazio';
 $wb['none_txt'] = 'Não';
-$wb['disabled_txt'] = 'Desativado';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
+$wb['disabled_txt'] = 'Desabilitado';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
 $wb['save_certificate_txt'] = 'Salvar certificado';
-$wb['create_certificate_txt'] = 'Criar certificado';
-$wb['delete_certificate_txt'] = 'Deletar certificado';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
-$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
-$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['create_certificate_txt'] = 'Adicionar certificado';
+$wb['delete_certificate_txt'] = 'Remover certificado';
+$wb['ipv6_address_txt'] = 'Endereço IPv6';
+$wb['nginx_directives_txt'] = 'Diretivas nginx';
+$wb['seo_redirect_txt'] = 'Redirecionamento SEO';
+$wb['non_www_to_www_txt'] = 'Diretiva Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'Diretiva www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Usar soquete para PHP-FPM';
+$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.';
 $wb['python_txt'] = 'Python';
-$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
-$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
-$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
-$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['ssl_key_txt'] = 'SSL Key';
+$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Valores para as configurações do PHP-FPM pm devem obedecer as seguintes condições:: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.';
+$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um inteiro positvo.';
+$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.';
+$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.';
+$wb['hd_quota_error_regex'] = 'Valor da cota de disco é inválido.';
+$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego é inválido.';
+$wb['ssl_key_txt'] = 'Chave';
 $wb['perl_txt'] = 'Perl';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
-$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
-$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['no_server_error'] = 'No server selected.';
-$wb['no_backup_txt'] = 'No backup';
-$wb['daily_backup_txt'] = 'Daily';
-$wb['weekly_backup_txt'] = 'Weekly';
-$wb['monthly_backup_txt'] = 'Monthly';
-$wb['rewrite_rules_txt'] = 'Rewrite Rules';
-$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
-$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
-$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
-$wb['variables_txt'] = 'Variables';
-$wb['added_by_txt'] = 'Added by';
-$wb['added_date_txt'] = 'Added date';
-$wb['backup_excludes_txt'] = 'Excluded Directories';
-$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
-$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
-$wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings';
-$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group';
-$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:';
-$wb['http_port_txt'] = 'HTTP Port';
-$wb['https_port_txt'] = 'HTTPS Port';
-$wb['http_port_error_regex'] = 'HTTP Port invalid.';
-$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['fastcgi_php_version_txt'] = 'Versão do PHP';
+$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM';
+$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.';
+$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['web_folder_error_regex'] = 'Pasta informada é inválida! Por favor não insira barra \"/\".';
+$wb['domain_error_autosub'] = 'Já existe um subdomínio com estas configurações.';
+$wb['available_php_directive_snippets_txt'] = 'Diretivas de fragmentação do php:';
+$wb['available_apache_directive_snippets_txt'] = 'Diretivas de fragmentação do apache:';
+$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de fragmentação do nginx:';
+$wb['proxy_directives_txt'] = 'Diretivas do proxy';
+$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de fragmentação do proxy:';
+$wb['no_server_error'] = 'Nenhum servidor selecionado.';
+$wb['no_backup_txt'] = 'Sem backup';
+$wb['daily_backup_txt'] = 'Diário';
+$wb['weekly_backup_txt'] = 'Semanal';
+$wb['monthly_backup_txt'] = 'Mensal';
+$wb['rewrite_rules_txt'] = 'Reescrever Regras';
+$wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:';
+$wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO';
+$wb['variables_txt'] = 'Variáveis';
+$wb['added_by_txt'] = 'Cadastrado por';
+$wb['added_date_txt'] = 'Data do cadastro';
+$wb['backup_excludes_txt'] = 'Diretórios excluídos';
+$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgula. Exemplo: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos!';
+$wb['invalid_custom_php_ini_settings_txt'] = 'Configurações do php.ini inválidas';
+$wb['invalid_system_user_or_group_txt'] = 'Configurações inválidas para usuário ou grupo do sistema';
+$wb['apache_directive_blocked_error'] = 'Diretiva do apache bloqueada por configurações de segurança:';
+$wb['http_port_txt'] = 'Porta HTTP';
+$wb['https_port_txt'] = 'Porta HTTPS';
+$wb['http_port_error_regex'] = 'Porta HTTP inválida.';
+$wb['https_port_error_regex'] = 'Porta HTTPS inválida.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_domain_admin_list.lng b/interface/web/sites/lib/lang/br_web_domain_admin_list.lng
index b460e27100..07129a4b07 100644
--- a/interface/web/sites/lib/lang/br_web_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/br_web_domain_admin_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['sys_groupid_txt'] = 'Client';
-$wb['list_head_txt'] = 'Websites';
+$wb['sys_groupid_txt'] = 'Cliente';
+$wb['list_head_txt'] = 'Sites';
 $wb['domain_id_txt'] = 'ID';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['add_new_record_txt'] = 'Add new website';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'Servidor';
+$wb['domain_txt'] = 'Domínio';
+$wb['add_new_record_txt'] = 'Adicionar novo site';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_domain_list.lng b/interface/web/sites/lib/lang/br_web_domain_list.lng
index dc52003875..34709bada3 100644
--- a/interface/web/sites/lib/lang/br_web_domain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_domain_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Websites';
+$wb['list_head_txt'] = 'Sites';
 $wb['domain_id_txt'] = 'ID';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
-$wb['add_new_record_txt'] = 'Adcionar um novo site';
+$wb['add_new_record_txt'] = 'Adicionar novo site';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_folder.lng b/interface/web/sites/lib/lang/br_web_folder.lng
index 2f06a70726..544329845b 100644
--- a/interface/web/sites/lib/lang/br_web_folder.lng
+++ b/interface/web/sites/lib/lang/br_web_folder.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['path_txt'] = 'Path';
-$wb['active_txt'] = 'Active';
-$wb['path_error_regex'] = 'Invalid folder path.';
-$wb['error_folder_already_protected_txt'] = 'There is already a record for this folder.';
+$wb['server_id_txt'] = 'Servidor';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['path_txt'] = 'Caminho';
+$wb['active_txt'] = 'Ativo';
+$wb['path_error_regex'] = 'Caminho da pasta inválido.';
+$wb['error_folder_already_protected_txt'] = 'Já existe um registro para esta pasta.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_folder_list.lng b/interface/web/sites/lib/lang/br_web_folder_list.lng
index 89f8b65ac3..3fd9731af9 100644
--- a/interface/web/sites/lib/lang/br_web_folder_list.lng
+++ b/interface/web/sites/lib/lang/br_web_folder_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Folder';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['path_txt'] = 'Path';
-$wb['add_new_record_txt'] = 'Add new Folder';
+$wb['list_head_txt'] = 'Pasta';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'Servidor';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['path_txt'] = 'Caminho';
+$wb['add_new_record_txt'] = 'Adicionar nova pasta';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_folder_user.lng b/interface/web/sites/lib/lang/br_web_folder_user.lng
index 1dbc90534e..dd63d02eec 100644
--- a/interface/web/sites/lib/lang/br_web_folder_user.lng
+++ b/interface/web/sites/lib/lang/br_web_folder_user.lng
@@ -1,14 +1,14 @@
 <?php
-$wb['web_folder_id_txt'] = 'Folder';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['active_txt'] = 'Active';
-$wb['folder_error_empty'] = 'No web folder selecetd.';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['no_folder_perm'] = 'You have no permission for this folder.';
-$wb['error_user_exists_already_txt'] = 'There is already a record for this user.';
+$wb['web_folder_id_txt'] = 'Pastas protegidas';
+$wb['username_txt'] = 'Usuário';
+$wb['password_txt'] = 'Senha';
+$wb['active_txt'] = 'Ativo';
+$wb['folder_error_empty'] = 'Nenhuma pasta selecionada.';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['no_folder_perm'] = 'Você não tem permissão para esta pasta.';
+$wb['error_user_exists_already_txt'] = 'Já existe um registro igual para este usuário.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_folder_user_list.lng b/interface/web/sites/lib/lang/br_web_folder_user_list.lng
index 67612f5111..e108c219b9 100644
--- a/interface/web/sites/lib/lang/br_web_folder_user_list.lng
+++ b/interface/web/sites/lib/lang/br_web_folder_user_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Folder User';
-$wb['active_txt'] = 'Active';
-$wb['web_folder_id_txt'] = 'Folder';
-$wb['username_txt'] = 'Username';
-$wb['add_new_record_txt'] = 'Add new Folder User';
+$wb['list_head_txt'] = 'Usuários de pastas';
+$wb['active_txt'] = 'Ativo';
+$wb['web_folder_id_txt'] = 'ID da pasta';
+$wb['username_txt'] = 'Usuário';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_sites_stats_list.lng b/interface/web/sites/lib/lang/br_web_sites_stats_list.lng
index acc22859be..f29c016f48 100644
--- a/interface/web/sites/lib/lang/br_web_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/br_web_sites_stats_list.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['list_head_txt'] = 'Tráfego Web';
+$wb['list_head_txt'] = 'Tráfego web';
 $wb['domain_txt'] = 'Domínio';
 $wb['this_month_txt'] = 'Este mês';
 $wb['last_month_txt'] = 'Último mês';
 $wb['this_year_txt'] = 'Este ano';
 $wb['last_year_txt'] = 'Último ano';
-$wb['sum_txt'] = 'Sum';
+$wb['sum_txt'] = 'Soma';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_subdomain.lng b/interface/web/sites/lib/lang/br_web_subdomain.lng
index 81f21b1097..e556f7922e 100644
--- a/interface/web/sites/lib/lang/br_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/br_web_subdomain.lng
@@ -1,50 +1,50 @@
 <?php
 $wb['ssl_state_txt'] = 'Estado';
-$wb['ssl_locality_txt'] = 'Localidade';
+$wb['ssl_locality_txt'] = 'Cidade';
 $wb['ssl_organisation_txt'] = 'Empresa';
 $wb['ssl_organisation_unit_txt'] = 'Departamento';
 $wb['ssl_country_txt'] = 'País';
-$wb['ssl_request_txt'] = 'Requisição SSL';
-$wb['ssl_cert_txt'] = 'Certificado SSL';
-$wb['ssl_bundle_txt'] = 'Pacote SSL';
-$wb['ssl_action_txt'] = 'Ação SSL';
+$wb['ssl_request_txt'] = 'Requisição';
+$wb['ssl_cert_txt'] = 'Certificado';
+$wb['ssl_bundle_txt'] = 'Pacote';
+$wb['ssl_action_txt'] = 'Ação';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
 $wb['type_txt'] = 'Tipo';
-$wb['parent_domain_id_txt'] = 'Site Parente';
+$wb['parent_domain_id_txt'] = 'Site Pai';
 $wb['redirect_type_txt'] = 'Tipo do Redirecionamento';
 $wb['redirect_path_txt'] = 'Caminho do Redirecionamento';
 $wb['active_txt'] = 'Ativo';
 $wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Usuário no Linux';
-$wb['system_group_txt'] = 'Grupo no Linux';
-$wb['ip_address_txt'] = 'Endereço-IP';
-$wb['vhost_type_txt'] = 'Tipo de VHost';
+$wb['system_user_txt'] = 'Usuário Linux';
+$wb['system_group_txt'] = 'Grupo Linux';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['vhost_type_txt'] = 'Tipo VHost';
 $wb['hd_quota_txt'] = 'Cota de Disco';
-$wb['traffic_quota_txt'] = 'Cota de Tráfico';
+$wb['traffic_quota_txt'] = 'Cota de Tráfego';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Cliente';
-$wb['limit_web_domain_txt'] = 'O número máximo de domínios web para esta conta foi atingido.';
-$wb['limit_web_aliasdomain_txt'] = 'O número máximo de aliases para esta conta foi atingido.';
-$wb['limit_web_subdomain_txt'] = 'O número máximo de sub-domínios para esta conta foi atingido.';
-$wb['apache_directives_txt'] = 'Diretivas apache';
+$wb['limit_web_domain_txt'] = 'O limite de domínios de site para esta conta foi alcançado.';
+$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio para esta conta foi alcançado.';
+$wb['limit_web_subdomain_txt'] = 'O limite de subdomínios para esta conta foi alcançado.';
+$wb['apache_directives_txt'] = 'Diretivas do apache';
 $wb['domain_error_empty'] = 'Domínio em branco.';
-$wb['domain_error_unique'] = 'Já existe alias ou sub-domínio com este nome.';
-$wb['domain_error_regex'] = 'Nome de domínio inválido.';
+$wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.';
+$wb['domain_error_regex'] = 'Nome do domínio inválido.';
 $wb['host_txt'] = 'Host';
-$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplo de caminho válido: /test/ ou http://www.dominio.ext/test/';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.';
-$wb['http_port_txt'] = 'HTTP Port';
-$wb['https_port_txt'] = 'HTTPS Port';
-$wb['http_port_error_regex'] = 'HTTP Port invalid.';
-$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com/teste/\".';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
+$wb['domain_error_wildcard'] = 'Curingas de subdomínios não são permitidos.';
+$wb['proxy_directives_txt'] = 'Diretivas do proxy';
+$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de fragmentação do proxy disponíveis:';
+$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \"proxy\" exige uma URL como caminho de redirecionamento.';
+$wb['http_port_txt'] = 'Porta HTTP';
+$wb['https_port_txt'] = 'Porta HTTPS';
+$wb['http_port_error_regex'] = 'Porta HTTP inválida.';
+$wb['https_port_error_regex'] = 'Porta HTTPS inválida.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_subdomain_list.lng b/interface/web/sites/lib/lang/br_web_subdomain_list.lng
index 83511672af..b39160cc0a 100644
--- a/interface/web/sites/lib/lang/br_web_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_subdomain_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Sub-domínios';
+$wb['list_head_txt'] = 'Subdomínios';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['domain_txt'] = 'Sub-domínio';
-$wb['add_new_record_txt'] = 'Adcionar um novo sub-domínio';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['domain_txt'] = 'Subdomínio';
+$wb['add_new_record_txt'] = 'Adicionar novo subdomínio';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng
index 562fd888cf..ce11fc5377 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng
@@ -1,151 +1,151 @@
 <?php
 $wb['ssl_state_txt'] = 'Estado';
-$wb['ssl_locality_txt'] = 'Localização';
+$wb['ssl_locality_txt'] = 'Cidade';
 $wb['ssl_organisation_txt'] = 'Empresa';
 $wb['ssl_organisation_unit_txt'] = 'Departamento';
 $wb['ssl_country_txt'] = 'País';
-$wb['ssl_request_txt'] = 'Requisição SSL';
-$wb['ssl_cert_txt'] = 'Certificado SSL';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
+$wb['ssl_request_txt'] = 'Requisição';
+$wb['ssl_cert_txt'] = 'Certificado';
+$wb['ssl_bundle_txt'] = 'Pacote';
+$wb['ssl_action_txt'] = 'Ação';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
 $wb['type_txt'] = 'Tipo';
 $wb['parent_domain_id_txt'] = 'Site Parente';
 $wb['redirect_type_txt'] = 'Tipo Redirecionamento';
-$wb['redirect_path_txt'] = 'Caminho de redirecionamento';
+$wb['redirect_path_txt'] = 'Caminho do redirecionamento';
 $wb['active_txt'] = 'Ativo';
-$wb['document_root_txt'] = 'Document Root';
+$wb['document_root_txt'] = 'Pasta personalizada documentroot';
 $wb['system_user_txt'] = 'Usuário Linux';
-$wb['system_group_txt'] = 'Groupo Linux';
-$wb['ip_address_txt'] = 'Endereço-IP';
-$wb['vhost_type_txt'] = 'Tipo de VHost';
+$wb['system_group_txt'] = 'Grupo Linux';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['vhost_type_txt'] = 'Tipo VHost';
 $wb['hd_quota_txt'] = 'Cota de Disco';
 $wb['traffic_quota_txt'] = 'Cota de Tráfego';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Suas Páginas de  Erro';
-$wb['subdomain_txt'] = 'Auto-Subdomínio';
+$wb['errordocs_txt'] = 'Pasta personalizada errordocuments';
+$wb['subdomain_txt'] = 'Subdomínio automático';
 $wb['ssl_txt'] = 'SSL';
 $wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
 $wb['client_txt'] = 'Cliente';
-$wb['limit_web_domain_txt'] = 'O número máximo de domínios web para sua conta foi atingido.';
-$wb['limit_web_aliasdomain_txt'] = 'O número máximo de aliases domínio para sua conta foi atingido.';
-$wb['limit_web_subdomain_txt'] = 'O número máximo de sub-domínios para sua conta foi atingido.';
-$wb['apache_directives_txt'] = 'Diretivas do Apache';
+$wb['limit_web_domain_txt'] = 'O limite de domínios de site para esta conta foi alcançado.';
+$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio de site para esta conta foi alcançado.';
+$wb['limit_web_subdomain_txt'] = 'O limite de subdomínios de site para esta conta foi alcançado.';
+$wb['apache_directives_txt'] = 'Diretivas do apache';
 $wb['domain_error_empty'] = 'Domínio em branco.';
-$wb['domain_error_unique'] = 'Já existe site, alias ou sub-domínio com este nome';
-$wb['domain_error_regex'] = 'Nome de domínio inválido.';
-$wb['hd_quota_error_empty'] = 'Quota de disco está em branco.';
-$wb['traffic_quota_error_empty'] = 'Quota de tráfego está em branco.';
-$wb['error_ssl_state_empty'] = 'Estado do SSL está em branco.';
-$wb['error_ssl_locality_empty'] = 'Localização do SSL está em branco.';
-$wb['error_ssl_organisation_empty'] = 'Empresa do SSL está em branco.';
-$wb['error_ssl_organisation_unit_empty'] = 'Departamento do SSL está em branco.';
-$wb['error_ssl_country_empty'] = 'País do SSL em branco.';
+$wb['domain_error_unique'] = 'Já existe site, apelido de domínio ou subdomínio com este nome';
+$wb['domain_error_regex'] = 'Nome do domínio inválido.';
+$wb['hd_quota_error_empty'] = 'Cota de disco em branco.';
+$wb['traffic_quota_error_empty'] = 'Cota de tráfego em branco.';
+$wb['error_ssl_state_empty'] = 'Campo \"Estado\" em branco.';
+$wb['error_ssl_locality_empty'] = 'Campo \"Cidade\" em branco.';
+$wb['error_ssl_organisation_empty'] = 'Campo \"Empresa\" em branco.';
+$wb['error_ssl_organisation_unit_empty'] = 'Campo \"Departamento\" em branco.';
+$wb['error_ssl_country_empty'] = 'Campo \"País\" em branco.';
 $wb['client_group_id_txt'] = 'Cliente';
 $wb['stats_password_txt'] = 'Senha do diretório de estatísticas';
 $wb['ssl_domain_txt'] = 'Domínio SSL';
-$wb['allow_override_txt'] = 'Permitir Sobrescrever';
-$wb['limit_web_quota_free_txt'] = 'Cota Max. de disco disponível';
-$wb['ssl_state_error_regex'] = 'Estado inválido para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_locality_error_regex'] = 'Localidade inválida para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_organisation_error_regex'] = 'Empresa inválida para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Departamento inválido para SSL. São caracteres válidos: a-z, 0-9 e .,-_';
-$wb['ssl_country_error_regex'] = 'País inválido para SSL. São caracteres válidos: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Cota máxima de Tráfego disponível';
-$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplos de caminhos válidos: /test/ ou http://www.dominio.ext/test/';
-$wb['php_open_basedir_txt'] = 'open_basedir do PHP';
+$wb['allow_override_txt'] = 'Permitir sobrescrever';
+$wb['limit_web_quota_free_txt'] = 'Cota de disco máxima';
+$wb['ssl_state_error_regex'] = 'Campo \"Estado\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_locality_error_regex'] = 'Campo \"Cidade\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organisation_error_regex'] = 'Campo \"Empresa\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organistaion_unit_error_regex'] = 'Campo \"Departamento\" inválido. São caracteres válidos: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_country_error_regex'] = 'Campo \"País\" inválido. São caracteres válidos: \"A-Z\".';
+$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego';
+$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplos de caminhos válidos: /teste/ ou http://www.dominio.com/teste/';
+$wb['php_open_basedir_txt'] = 'Diretório open_basedir do php';
 $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida';
-$wb['backup_interval_txt'] = 'Intervalo de Backup';
-$wb['backup_copies_txt'] = 'Número de cópias';
+$wb['backup_interval_txt'] = 'Intervalo de backup';
+$wb['backup_copies_txt'] = 'Limite de cópias';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Estátisticas Web usuário';
-$wb['stats_type_txt'] = 'Tipo de Estatística Web';
+$wb['stats_user_txt'] = 'Usuário de estatísticas web';
+$wb['stats_type_txt'] = 'Tipo de estatística web';
 $wb['custom_php_ini_txt'] = 'php.ini personalizado';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
+$wb['error_ssl_cert_empty'] = 'Campo \"Certificado\" em branco';
 $wb['none_txt'] = 'Não';
-$wb['disabled_txt'] = 'Desativado';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
+$wb['disabled_txt'] = 'Desabilitado';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
 $wb['save_certificate_txt'] = 'Salvar certificado';
-$wb['create_certificate_txt'] = 'Criar certificado';
-$wb['delete_certificate_txt'] = 'Deletar certificado';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
-$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
-$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['create_certificate_txt'] = 'Adicionar certificado';
+$wb['delete_certificate_txt'] = 'Remover certificado';
+$wb['ipv6_address_txt'] = 'Endereço IPv6';
+$wb['nginx_directives_txt'] = 'Diretivas do nginx';
+$wb['seo_redirect_txt'] = 'Redirecionamento SEO';
+$wb['non_www_to_www_txt'] = 'Diretivas Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'Diretivas www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Usar soquete para o PHP-FPM';
+$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.';
 $wb['python_txt'] = 'Python';
-$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
-$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
-$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
-$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['ssl_key_txt'] = 'SSL Key';
+$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Valores permitidos para configurações do PHP-FPM pm devem obedecer os critérios: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.';
+$wb['pm_start_servers_error_regex'] = 'O valor do  PHP-FPM pm.start_servers deve ser um número positivo.';
+$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.';
+$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.';
+$wb['hd_quota_error_regex'] = 'Valor da cota de disco inválido.';
+$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego inválido.';
+$wb['ssl_key_txt'] = 'Chave';
 $wb['perl_txt'] = 'Perl';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
-$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
-$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['no_server_error'] = 'No server selected.';
-$wb['no_backup_txt'] = 'No backup';
-$wb['daily_backup_txt'] = 'Daily';
-$wb['weekly_backup_txt'] = 'Weekly';
-$wb['monthly_backup_txt'] = 'Monthly';
-$wb['rewrite_rules_txt'] = 'Rewrite Rules';
-$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
-$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
-$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
-$wb['web_folder_txt'] = 'Web folder';
-$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.';
-$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
-$wb['host_txt'] = 'Hostname';
-$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-$wb['variables_txt'] = 'Variables';
-$wb['added_by_txt'] = 'Added by';
-$wb['added_date_txt'] = 'Added date';
-$wb['backup_excludes_txt'] = 'Excluded Directories';
-$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
-$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
-$wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.';
-$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
-$wb['btn_save_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['enable_spdy_txt'] = 'Enable SPDY';
-$wb['load_client_data_txt'] = 'Load client details';
-$wb['load_my_data_txt'] = 'Load my contact details';
-$wb['reset_client_data_txt'] = 'Reset data';
-$wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['directive_snippets_id_txt'] = 'Web server config';
-$wb['http_port_txt'] = 'HTTP Port';
-$wb['https_port_txt'] = 'HTTPS Port';
-$wb['http_port_error_regex'] = 'HTTP Port invalid.';
-$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
-$wb['enable_pagespeed_txt'] = 'Enable PageSpeed';
+$wb['fastcgi_php_version_txt'] = 'Versão do PHP';
+$wb['pm_txt'] = 'Gerenciador de processos do PHP-FPM';
+$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.';
+$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra \"/\".';
+$wb['domain_error_autosub'] = 'Já existe um subdomínio com essas configurações.';
+$wb['available_php_directive_snippets_txt'] = 'Diretivas de fragmentação do php disponíveis:';
+$wb['available_apache_directive_snippets_txt'] = 'Diretivas de fragmentação do apache disponíveis:';
+$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de fragmentação do nginx disponíveis:';
+$wb['proxy_directives_txt'] = 'Diretivas do proxy';
+$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de fragmentação do proxy disponíveis:';
+$wb['no_server_error'] = 'Nenhum servidor selecionado.';
+$wb['no_backup_txt'] = 'Sem backup';
+$wb['daily_backup_txt'] = 'Diário';
+$wb['weekly_backup_txt'] = 'Semanal';
+$wb['monthly_backup_txt'] = 'Mensal';
+$wb['rewrite_rules_txt'] = 'Regras de reescrita';
+$wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas permitidas:';
+$wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO';
+$wb['web_folder_txt'] = 'Pasta web';
+$wb['web_folder_invalid_txt'] = 'A pasta web informada é inválida, por favor escolha um nome diferente.';
+$wb['web_folder_unique_txt'] = 'A pasta web informada já existe, por favor escolha um nome diferente.';
+$wb['host_txt'] = 'Hospedeiro';
+$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomínios.';
+$wb['variables_txt'] = 'Variáveis';
+$wb['added_by_txt'] = 'Cadastrado por';
+$wb['added_date_txt'] = 'Data do cadastro';
+$wb['backup_excludes_txt'] = 'Diretórios excluídos';
+$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: web/cache/*,web/backup)';
+$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos.';
+$wb['server_chosen_not_ok'] = 'O servidor selecionado não é permitido para esta conta.';
+$wb['subdomain_error_empty'] = 'O campo subdomínio está em branco ou contém caracteres inválidos.';
+$wb['btn_save_txt'] = 'Salvar';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['enable_spdy_txt'] = 'Habilitar SPDY';
+$wb['load_client_data_txt'] = 'Carregas detalhes do cliente';
+$wb['load_my_data_txt'] = 'Carregar detalhes do contato';
+$wb['reset_client_data_txt'] = 'Limpar dados';
+$wb['rewrite_to_https_txt'] = 'Reescrever HTTP para HTTPS';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['directive_snippets_id_txt'] = 'Configurações do servidor de páginas';
+$wb['http_port_txt'] = 'Porta HTTP';
+$wb['https_port_txt'] = 'Porta HTTPS';
+$wb['http_port_error_regex'] = 'Porta HTTP inválida.';
+$wb['https_port_error_regex'] = 'Porta HTTPS inválida.';
+$wb['enable_pagespeed_txt'] = 'Habilitar PageSpeed';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng
index 4f07fd8588..8c2c352c93 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng
@@ -1,14 +1,14 @@
 <?php
-$wb['sys_groupid_txt'] = 'Client';
-$wb['list_head_txt'] = 'Websites';
+$wb['sys_groupid_txt'] = 'Cliente';
+$wb['list_head_txt'] = 'Sites';
 $wb['domain_id_txt'] = 'ID';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
-$wb['add_new_record_txt'] = 'Add new website';
-$wb['add_new_subdomain_txt'] = 'Add new subdomain';
-$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
-$wb['domain_list_head_txt'] = 'Websites';
-$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
-$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'Servidor';
+$wb['domain_txt'] = 'Domínio';
+$wb['add_new_record_txt'] = 'Adicionar novo site';
+$wb['add_new_subdomain_txt'] = 'Adicionar novo subdomínio';
+$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido';
+$wb['domain_list_head_txt'] = 'Sites';
+$wb['aliasdomain_list_head_txt'] = 'Apelidos de domínios (vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomínios (vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng
index f6456c6f62..e8fb6bfb09 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng
@@ -1,14 +1,14 @@
 <?php
-$wb['list_head_txt'] = 'Websites';
+$wb['list_head_txt'] = 'Sites';
 $wb['domain_id_txt'] = 'ID';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
 $wb['domain_txt'] = 'Domínio';
-$wb['add_new_record_txt'] = 'Adcionar um novo site';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['add_new_subdomain_txt'] = 'Add new subdomain';
-$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain';
-$wb['domain_list_head_txt'] = 'Websites';
-$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)';
-$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)';
+$wb['add_new_record_txt'] = 'Adicionar novo site';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['add_new_subdomain_txt'] = 'Adicionar novo subdomínio';
+$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido';
+$wb['domain_list_head_txt'] = 'Sites';
+$wb['aliasdomain_list_head_txt'] = 'Apelidos de domínios (vhost)';
+$wb['subdomain_list_head_txt'] = 'Subdomínios (vhost)';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng
index 35c9298e71..e1934fc54d 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng
@@ -1,131 +1,131 @@
 <?php
-$wb['parent_domain_id_txt'] = 'Parent Website';
-$wb['web_folder_txt'] = 'Web folder';
-$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.';
-$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.';
-$wb['backup_interval_txt'] = 'Backup interval';
-$wb['backup_copies_txt'] = 'Number of backup copies';
-$wb['ssl_state_txt'] = 'State';
-$wb['ssl_locality_txt'] = 'Locality';
-$wb['ssl_organisation_txt'] = 'Organisation';
-$wb['ssl_organisation_unit_txt'] = 'Organisation Unit';
-$wb['ssl_country_txt'] = 'Country';
-$wb['ssl_key_txt'] = 'SSL Key';
-$wb['ssl_request_txt'] = 'SSL Request';
-$wb['ssl_cert_txt'] = 'SSL Certificate';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'SSL Action';
-$wb['ssl_domain_txt'] = 'SSL Domain';
-$wb['server_id_txt'] = 'Server';
-$wb['domain_txt'] = 'Domain';
+$wb['parent_domain_id_txt'] = 'Site Pai';
+$wb['web_folder_txt'] = 'Pasta web';
+$wb['web_folder_invalid_txt'] = 'A pasta web informada é inválida, por favor escolha um nome diferente.';
+$wb['web_folder_unique_txt'] = 'A pasta web informada já existe, por favor escolha um nome diferente.';
+$wb['backup_interval_txt'] = 'Intervalo de backup';
+$wb['backup_copies_txt'] = 'Limite de cópias do backup';
+$wb['ssl_state_txt'] = 'Estado';
+$wb['ssl_locality_txt'] = 'Cidade';
+$wb['ssl_organisation_txt'] = 'Empresa';
+$wb['ssl_organisation_unit_txt'] = 'Departamento';
+$wb['ssl_country_txt'] = 'País';
+$wb['ssl_key_txt'] = 'Chave';
+$wb['ssl_request_txt'] = 'Requisição';
+$wb['ssl_cert_txt'] = 'Certificado';
+$wb['ssl_bundle_txt'] = 'Pacote';
+$wb['ssl_action_txt'] = 'Ação';
+$wb['ssl_domain_txt'] = 'Domínio';
+$wb['server_id_txt'] = 'Servidor';
+$wb['domain_txt'] = 'Domínio';
 $wb['host_txt'] = 'Hostname';
-$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
-$wb['type_txt'] = 'Type';
-$wb['redirect_type_txt'] = 'Redirect Type';
-$wb['redirect_path_txt'] = 'Redirect Path';
-$wb['active_txt'] = 'Active';
+$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra \"/\".';
+$wb['type_txt'] = 'Tipo';
+$wb['redirect_type_txt'] = 'Tipo de redirecionamento';
+$wb['redirect_path_txt'] = 'Caminho para redirecionamento';
+$wb['active_txt'] = 'Ativo';
 $wb['document_root_txt'] = 'Documentroot';
-$wb['system_user_txt'] = 'Linux User';
-$wb['system_group_txt'] = 'Linux Group';
-$wb['ip_address_txt'] = 'IPv4-Address';
-$wb['ipv6_address_txt'] = 'IPv6-Address';
-$wb['vhost_type_txt'] = 'VHost Type';
-$wb['hd_quota_txt'] = 'Harddisk Quota';
-$wb['traffic_quota_txt'] = 'Traffic Quota';
+$wb['system_user_txt'] = 'Usuário Linux';
+$wb['system_group_txt'] = 'Grupo Linux';
+$wb['ip_address_txt'] = 'Endereço IPv4';
+$wb['ipv6_address_txt'] = 'Endereço IPv6';
+$wb['vhost_type_txt'] = 'Tipo vhost';
+$wb['hd_quota_txt'] = 'Cota de Disco';
+$wb['traffic_quota_txt'] = 'Cota de Tráfego';
 $wb['cgi_txt'] = 'CGI';
 $wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Own Error-Documents';
-$wb['subdomain_txt'] = 'Auto-Subdomain';
+$wb['errordocs_txt'] = 'Páginas de erro personalizadas (error-documents)';
+$wb['subdomain_txt'] = 'Subdomínio automático';
 $wb['ssl_txt'] = 'SSL';
 $wb['suexec_txt'] = 'SuEXEC';
 $wb['php_txt'] = 'PHP';
-$wb['client_txt'] = 'Client';
-$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.';
-$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.';
-$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.';
-$wb['apache_directives_txt'] = 'Apache Directives';
-$wb['domain_error_empty'] = 'Domain is empty.';
-$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.';
-$wb['domain_error_regex'] = 'Domain name invalid.';
-$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
-$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.';
-$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.';
-$wb['error_ssl_state_empty'] = 'SSL State is empty.';
-$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.';
-$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.';
-$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.';
-$wb['error_ssl_country_empty'] = 'SSL Country is empty.';
-$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty';
-$wb['client_group_id_txt'] = 'Client';
-$wb['stats_password_txt'] = 'Webstatistics password';
-$wb['allow_override_txt'] = 'Apache AllowOverride';
-$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota';
-$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_';
-$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota';
-$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/';
-$wb['php_open_basedir_txt'] = 'PHP open_basedir';
-$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded';
+$wb['client_txt'] = 'Cliente';
+$wb['limit_web_domain_txt'] = 'O limite de domínios de site para esta conta foi alcançado.';
+$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio para esta conta foi alcançado.';
+$wb['limit_web_subdomain_txt'] = 'O limite de subdomínios site para esta conta foi alcançado.';
+$wb['apache_directives_txt'] = 'Diretivas do apache';
+$wb['domain_error_empty'] = 'Domínio em branco.';
+$wb['domain_error_unique'] = 'Já existe um site, apelido de domínio ou subdomínio para este domínio.';
+$wb['domain_error_regex'] = 'Nome do domínio inválido.';
+$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomínios';
+$wb['hd_quota_error_empty'] = 'Valor da cota de disco é 0 ou em branco.';
+$wb['traffic_quota_error_empty'] = 'Valor da cota de tráfego em branco.';
+$wb['error_ssl_state_empty'] = 'Campo \"Estado\" em branco.';
+$wb['error_ssl_locality_empty'] = 'Campo \"Cidade\" em branco.';
+$wb['error_ssl_organisation_empty'] = 'Campo \"Empresa\" em branco.';
+$wb['error_ssl_organisation_unit_empty'] = 'Campo \"Departamento\" em branco.';
+$wb['error_ssl_country_empty'] = 'Campo \"País\" em branco.';
+$wb['error_ssl_cert_empty'] = 'Campo \"Certificado\" em branco.';
+$wb['client_group_id_txt'] = 'Cliente';
+$wb['stats_password_txt'] = 'Senha para estatísticas web';
+$wb['allow_override_txt'] = 'Diretiva Apache AllowOverride';
+$wb['limit_web_quota_free_txt'] = 'Cota de disco';
+$wb['ssl_state_error_regex'] = 'Campo \"Estado\" inválido. Caracteres válidos são: \"0-9\" e \".,-_\".';
+$wb['ssl_locality_error_regex'] = 'Campo \"Cidade\" inválido. Caracteres válidos são: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organisation_error_regex'] = 'Campo \"Empresa\" inválido. Caracteres válidos são: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_organistaion_unit_error_regex'] = 'Campo \"Departamento\" inválido. Caracteres válidos são: \"a-z\", \"0-9\" e \".,-_\".';
+$wb['ssl_country_error_regex'] = 'Campo \"País\" inválido. Caracteres válidos são: \"A-Z\".';
+$wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego';
+$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com/teste/\".';
+$wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP';
+$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida';
 $wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Webstatistics username';
-$wb['stats_type_txt'] = 'Webstatistics program';
-$wb['custom_php_ini_txt'] = 'Custom php.ini settings';
-$wb['none_txt'] = 'None';
-$wb['disabled_txt'] = 'Disabled';
-$wb['no_redirect_txt'] = 'No redirect';
-$wb['no_flag_txt'] = 'No flag';
-$wb['save_certificate_txt'] = 'Save certificate';
-$wb['create_certificate_txt'] = 'Create certificate';
-$wb['delete_certificate_txt'] = 'Delete certificate';
-$wb['nginx_directives_txt'] = 'nginx Directives';
-$wb['seo_redirect_txt'] = 'SEO Redirect';
-$wb['non_www_to_www_txt'] = 'Non-www -&gt; www';
-$wb['www_to_non_www_txt'] = 'www -&gt; non-www';
-$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM';
-$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
+$wb['stats_user_txt'] = 'Usuário para estatísticas web';
+$wb['stats_type_txt'] = 'Programa para estatísticas web';
+$wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini';
+$wb['none_txt'] = 'Nenhum';
+$wb['disabled_txt'] = 'Desabilitado';
+$wb['no_redirect_txt'] = 'Sem redirecionamento';
+$wb['no_flag_txt'] = 'Sem marcas';
+$wb['save_certificate_txt'] = 'Salvar certificado';
+$wb['create_certificate_txt'] = 'Adicionar certificado';
+$wb['delete_certificate_txt'] = 'Remover certificado';
+$wb['nginx_directives_txt'] = 'Diretivas do nginx';
+$wb['seo_redirect_txt'] = 'Redirecionamento SEO';
+$wb['non_www_to_www_txt'] = 'Diretivas Non-www -&gt; www';
+$wb['www_to_non_www_txt'] = 'Diretivas www -&gt; non-www';
+$wb['php_fpm_use_socket_txt'] = 'Usar soquete para o PHP-FPM';
+$wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.';
 $wb['python_txt'] = 'Python';
 $wb['perl_txt'] = 'Perl';
-$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
-$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
-$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
-$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers';
-$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
-$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.';
-$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.';
-$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.';
-$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.';
-$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.';
-$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.';
-$wb['fastcgi_php_version_txt'] = 'PHP Version';
-$wb['pm_txt'] = 'PHP-FPM Process Manager';
-$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout';
-$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests';
-$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.';
-$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.';
-$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
-$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:';
-$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:';
-$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
-$wb['proxy_directives_txt'] = 'Proxy Directives';
-$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
-$wb['rewrite_rules_txt'] = 'Rewrite Rules';
-$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
-$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
-$wb['configuration_error_txt'] = 'CONFIGURATION ERROR';
-$wb['variables_txt'] = 'Variables';
-$wb['backup_excludes_txt'] = 'Excluded Directories';
-$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)';
-$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.';
-$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
-$wb['http_port_txt'] = 'HTTP Port';
-$wb['https_port_txt'] = 'HTTPS Port';
-$wb['http_port_error_regex'] = 'HTTP Port invalid.';
-$wb['https_port_error_regex'] = 'HTTPS Port invalid.';
+$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children';
+$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers';
+$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers';
+$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers';
+$wb['error_php_fpm_pm_settings_txt'] = 'Valores permitidos para configurações do PHP-FPM pm devem obedecer os critérios: pm.max_children &gt;= pm.max_spare_servers &gt;= pm.start_servers &gt;= pm.min_spare_servers &gt; 0';
+$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.';
+$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.';
+$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.';
+$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.';
+$wb['hd_quota_error_regex'] = 'Valor da cota de disco inválido.';
+$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego inválido.';
+$wb['fastcgi_php_version_txt'] = 'Versão do PHP';
+$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM';
+$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout';
+$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests';
+$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.';
+$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.';
+$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
+$wb['available_php_directive_snippets_txt'] = 'Diretivas de fragmentação do php disponíveis:';
+$wb['available_apache_directive_snippets_txt'] = 'Diretivas de fragmentação do apache disponíveis:';
+$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de fragmentação do nginx disponíveis:';
+$wb['proxy_directives_txt'] = 'Diretivas do Proxy';
+$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de fragmentação do proxy disponíveis:';
+$wb['rewrite_rules_txt'] = 'Regras de Reescrita';
+$wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas';
+$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:';
+$wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO';
+$wb['variables_txt'] = 'Variáveis';
+$wb['backup_excludes_txt'] = 'Diretórios Excluídos';
+$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \"web/cache/*,web/backup\".)';
+$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos.';
+$wb['subdomain_error_empty'] = 'O campo \"Subdomínio\" está em branco ou contém caracteres inválidos.';
+$wb['http_port_txt'] = 'Porta HTTP';
+$wb['https_port_txt'] = 'Porta HTTPS';
+$wb['http_port_error_regex'] = 'Porta HTTP inválida.';
+$wb['https_port_error_regex'] = 'Porta HTTPS inválida.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/br_web_vhost_subdomain_list.lng
index 1c16bcda28..b39160cc0a 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Subdomains';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['domain_txt'] = 'Subdomain';
-$wb['add_new_record_txt'] = 'Add new subdomain';
+$wb['list_head_txt'] = 'Subdomínios';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'Servidor';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['domain_txt'] = 'Subdomínio';
+$wb['add_new_record_txt'] = 'Adicionar novo subdomínio';
 ?>
diff --git a/interface/web/sites/lib/lang/br_webdav_user.lng b/interface/web/sites/lib/lang/br_webdav_user.lng
index 329eb60b7e..f4a5f600d9 100644
--- a/interface/web/sites/lib/lang/br_webdav_user.lng
+++ b/interface/web/sites/lib/lang/br_webdav_user.lng
@@ -1,21 +1,21 @@
 <?php
-$wb['dir_txt'] = 'Directory';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['password_txt'] = 'Password';
-$wb['password_strength_txt'] = 'Password strength';
-$wb['active_txt'] = 'Active';
-$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.';
-$wb['username_error_empty'] = 'Username is empty.';
-$wb['username_error_unique'] = 'The username must be unique.';
-$wb['username_error_regex'] = 'The username contains characters that are not allowed.';
-$wb['directory_error_empty'] = 'Directory empty.';
-$wb['parent_domain_id_error_empty'] = 'No website selected.';
-$wb['dir_dot_error'] = 'No .. in path allowed.';
-$wb['dir_slashdot_error'] = 'No ./ in path allowed.';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['dir_txt'] = 'Diretório';
+$wb['server_id_txt'] = 'Servidor';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['username_txt'] = 'Usuário';
+$wb['password_txt'] = 'Senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
+$wb['active_txt'] = 'Ativo';
+$wb['limit_webdav_user_txt'] = 'O limite de usuários webdav para esta conta foi alcançado.';
+$wb['username_error_empty'] = 'Usuário em branco.';
+$wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.';
+$wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.';
+$wb['directory_error_empty'] = 'Diretório em branco.';
+$wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.';
+$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.';
+$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
 ?>
diff --git a/interface/web/sites/lib/lang/br_webdav_user_list.lng b/interface/web/sites/lib/lang/br_webdav_user_list.lng
index bac283b0a7..4708f7283c 100644
--- a/interface/web/sites/lib/lang/br_webdav_user_list.lng
+++ b/interface/web/sites/lib/lang/br_webdav_user_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'Webdav-User';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Server';
-$wb['parent_domain_id_txt'] = 'Website';
-$wb['username_txt'] = 'Username';
-$wb['add_new_record_txt'] = 'Add new Webdav-User';
+$wb['list_head_txt'] = 'Usuário webdav';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'Servidor';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['username_txt'] = 'Usuário';
+$wb['add_new_record_txt'] = 'Adicionar novo usuário';
 ?>
diff --git a/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng
index ba99f97684..172646f212 100644
--- a/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng
+++ b/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['password_strength_0_txt'] = 'Muito Curto';
-$wb['password_strength_1_txt'] = 'Fraco';
-$wb['password_strength_2_txt'] = 'Rasoável';
+$wb['password_strength_0_txt'] = 'Muito curta';
+$wb['password_strength_1_txt'] = 'Fraca';
+$wb['password_strength_2_txt'] = 'Razoável';
 $wb['password_strength_3_txt'] = 'Bom';
 $wb['password_strength_4_txt'] = 'Forte';
 $wb['password_strength_5_txt'] = 'Muito Forte';
diff --git a/interface/web/tools/lib/lang/br.lng b/interface/web/tools/lib/lang/br.lng
index f617254c4f..3000e972fc 100644
--- a/interface/web/tools/lib/lang/br.lng
+++ b/interface/web/tools/lib/lang/br.lng
@@ -1,13 +1,13 @@
 <?php
-$wb['User Settings'] = 'Configurações do Usuário';
+$wb['User Settings'] = 'Configurações do usuário';
 $wb['Settings'] = 'Configurações';
 $wb['ISPConfig Tools'] = 'Ferramentas';
 $wb['Password and Language'] = 'Senha e Idioma';
-$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Resync'] = 'Resync';
-$wb['Sync Tools'] = 'Sync Tools';
-$wb['Import'] = 'Import';
-$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
-$wb['PDNS Tupa'] = 'PowerDNS Tupa';
+$wb['ispconfig_tools_note'] = 'Este módulo permite você alterar a senha e o idioma e sincronizar os registros dns.';
+$wb['Resync'] = 'Sincronizar';
+$wb['Sync Tools'] = 'Sincronismo';
+$wb['Import'] = 'Importar';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3';
+$wb['PDNS Tupa'] = 'Tupa PowerDNS';
 $wb['Interface'] = 'Interface';
 ?>
diff --git a/interface/web/tools/lib/lang/br_import_ispconfig.lng b/interface/web/tools/lib/lang/br_import_ispconfig.lng
index ce47c4da4d..64e48ecfc5 100644
--- a/interface/web/tools/lib/lang/br_import_ispconfig.lng
+++ b/interface/web/tools/lib/lang/br_import_ispconfig.lng
@@ -1,23 +1,23 @@
 <?php
-$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
-$wb['legend_txt'] = 'Remote server connection details';
-$wb['legend2_txt'] = 'Import email domain';
-$wb['resync_sites_txt'] = 'Resync Websites';
-$wb['resync_ftp_txt'] = 'Resync FTP users';
-$wb['resync_shell_txt'] = 'Resync shell users';
-$wb['resync_cron_txt'] = 'Resync cronjobs';
-$wb['resync_db_txt'] = 'Resync clientdb config';
-$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
-$wb['resync_dns_txt'] = 'Resync DNS records';
-$wb['btn_start_txt'] = 'Start Import';
-$wb['btn_connect_txt'] = 'Connect to remote server';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['client_group_id_txt'] = 'Local client';
-$wb['mail_domain_txt'] = 'Remote email domain';
-$wb['import_mailbox_txt'] = 'Import mailbox';
-$wb['import_aliasdomain_txt'] = 'Import alias domain';
-$wb['import_alias_txt'] = 'Import email alias';
-$wb['import_forward_txt'] = 'Import forward';
-$wb['import_user_filter_txt'] = 'Import user filter';
-$wb['import_spamfilter_txt'] = 'Import spamfilter';
+$wb['head_txt'] = 'Importar configuração de e-mail do ISPConfig 3';
+$wb['legend_txt'] = 'Detalhes da conexão do servidor remoto';
+$wb['legend2_txt'] = 'Importar domínio de e-mails';
+$wb['resync_sites_txt'] = 'Sincronizar sites';
+$wb['resync_ftp_txt'] = 'Sincronizar usuários ftp';
+$wb['resync_shell_txt'] = 'Sincronizar usuários shell';
+$wb['resync_cron_txt'] = 'Sincronizar tarefas na cron';
+$wb['resync_db_txt'] = 'Sincronizar configurações de usuários do banco de dados';
+$wb['resync_mailbox_txt'] = 'Sincronizar e-mails';
+$wb['resync_dns_txt'] = 'Sincronizar registros dns';
+$wb['btn_start_txt'] = 'Iniciar importação';
+$wb['btn_connect_txt'] = 'Conectar no servidor remoto';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['client_group_id_txt'] = 'Cliente local';
+$wb['mail_domain_txt'] = 'Domínio de e-mails remoto';
+$wb['import_mailbox_txt'] = 'Importar e-mails';
+$wb['import_aliasdomain_txt'] = 'Importar apelidos de domínio';
+$wb['import_alias_txt'] = 'Importar apelidos de e-mails';
+$wb['import_forward_txt'] = 'Importar encaminhamentos de e-mails';
+$wb['import_user_filter_txt'] = 'Importar filtros de e-mail de usuários';
+$wb['import_spamfilter_txt'] = 'Importar filtros antispam';
 ?>
diff --git a/interface/web/tools/lib/lang/br_import_vpopmail.lng b/interface/web/tools/lib/lang/br_import_vpopmail.lng
index 66fe56da1c..55bc0bf238 100644
--- a/interface/web/tools/lib/lang/br_import_vpopmail.lng
+++ b/interface/web/tools/lib/lang/br_import_vpopmail.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['head_txt'] = 'Import email configuration from Vpopmail';
-$wb['legend_txt'] = 'Remote database server connection details';
-$wb['btn_start_txt'] = 'Start Import';
-$wb['btn_connect_txt'] = 'Connect to remote server';
-$wb['btn_cancel_txt'] = 'Cancel';
+$wb['head_txt'] = 'Importar configuração de e-mail do vpopmail';
+$wb['legend_txt'] = 'Detalhes da conexão do servidor de banco de dados remoto';
+$wb['btn_start_txt'] = 'Iniciar importação';
+$wb['btn_connect_txt'] = 'Conectar servidor remoto';
+$wb['btn_cancel_txt'] = 'Cancelar';
 ?>
diff --git a/interface/web/tools/lib/lang/br_index.lng b/interface/web/tools/lib/lang/br_index.lng
index a3ef38f219..437e1f01c3 100644
--- a/interface/web/tools/lib/lang/br_index.lng
+++ b/interface/web/tools/lib/lang/br_index.lng
@@ -1,4 +1,4 @@
 <?php
-$wb['page_head_txt'] = 'ISPConfig Tools';
-$wb['page_desc_txt'] = 'Change user settings';
+$wb['page_head_txt'] = 'Ferramentas';
+$wb['page_desc_txt'] = 'Alterar configurações de usuário';
 ?>
diff --git a/interface/web/tools/lib/lang/br_interface.lng b/interface/web/tools/lib/lang/br_interface.lng
index aab4fc89ff..45341060c5 100644
--- a/interface/web/tools/lib/lang/br_interface.lng
+++ b/interface/web/tools/lib/lang/br_interface.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['interface_head_txt'] = 'Interface Settings';
-$wb['interface_desc_txt'] = 'Modify your interface';
-$wb['language_txt'] = 'Language';
-$wb['startmodule_txt'] = 'Startmodule';
-$wb['app_theme_txt'] = 'Design';
+$wb['interface_head_txt'] = 'Configurações da interface';
+$wb['interface_desc_txt'] = 'Alterar interface';
+$wb['language_txt'] = 'Idioma';
+$wb['startmodule_txt'] = 'Módulo inicial';
+$wb['app_theme_txt'] = 'Tema';
 ?>
diff --git a/interface/web/tools/lib/lang/br_resync.lng b/interface/web/tools/lib/lang/br_resync.lng
index cfb7dc1a39..e05bcd97ff 100644
--- a/interface/web/tools/lib/lang/br_resync.lng
+++ b/interface/web/tools/lib/lang/br_resync.lng
@@ -1,49 +1,49 @@
 <?php
-$wb['head_txt'] = 'Resync Tool';
-$wb['legend_txt'] = 'Resync';
-$wb['resync_all_txt'] = 'All services';
-$wb['resync_sites_txt'] = 'Websites';
-$wb['resync_ftp_txt'] = 'FTP-Accounts';
-$wb['resync_webdav_txt'] = 'WebDAV-Users';
-$wb['resync_shell_txt'] = 'Shell users';
-$wb['resync_cron_txt'] = 'Cronjobs';
-$wb['resync_db_txt'] = 'Client Database config';
-$wb['resync_mailbox_txt'] = 'Mailboxes';
-$wb['resync_mail_txt'] = 'Maildomains';
-$wb['resync_mailfilter_txt'] = 'Mailfilter';
-$wb['resync_mailinglist_txt'] = 'Mailinglist';
-$wb['resync_dns_txt'] = 'DNS records';
-$wb['resync_vserver_txt'] = 'vServer';
-$wb['resync_client_txt'] = 'Client and reseller';
-$wb['all_active_txt'] = 'All active server';
-$wb['all_active_mail_txt'] = 'All active Mail-Server';
-$wb['all_active_web_txt'] = 'All active Web-Server';
-$wb['all_active_dns_txt'] = 'All active DNS-Server';
-$wb['all_active_file_txt'] = 'All active File-Server';
-$wb['all_active_db_txt'] = 'All active Database-Server';
-$wb['all_active_vserver_txt'] = 'All active vServer';
-$wb['do_sites_txt'] = 'Resynced Website';
-$wb['do_ftp_txt'] = 'Resynced FTP user';
-$wb['do_webdav_txt'] = 'Resynced WebDav user';
-$wb['do_shell_txt'] = 'Resynced Shell user';
-$wb['do_cron_txt'] = 'Resynced Cronjob';
-$wb['do_db_user_txt'] = 'Resynced Database User';
-$wb['do_db_txt'] = 'Resynced Database';
-$wb['do_mail_txt'] = 'Resynced Maildomain';
-$wb['do_mailbox_txt'] = 'Resynced Mailbox';
-$wb['do_mail_alias_txt'] = 'Resynced Alias';
-$wb['do_mail_access_txt'] = 'Resynced Mail access';
-$wb['do_mail_contentfilter_txt'] = 'Resynced Content Filter';
-$wb['do_mail_userfilter_txt'] = 'Resynced Mail User Filter';
-$wb['do_mailinglist_txt'] = 'Resynced Mailinglist';
-$wb['do_dns_txt'] = 'Resynced DNS zone';
-$wb['do_vserver_txt'] = 'Resynced vServer';
-$wb['do_clients_txt'] = 'Resynced clients and reseller';
-$wb['no_results_txt'] = 'Nothing found';
-$wb['btn_start_txt'] = 'Start';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['do_mail_spamfilter_policy_txt'] = 'Resynced Spamfilter Policies';
-$wb['do_mail_spamfilter_txt'] = 'Resynced Spamfilter';
-$wb['do_mailget_txt'] = 'Resynced Fetchmail';
-$wb['resync_mailget_txt'] = 'Fetchmail';
+$wb['head_txt'] = 'Sincronismo';
+$wb['legend_txt'] = 'Sincronizar';
+$wb['resync_all_txt'] = 'Todos os serviços';
+$wb['resync_sites_txt'] = 'Sites';
+$wb['resync_ftp_txt'] = 'Contas ftp';
+$wb['resync_webdav_txt'] = 'Usuários webdav';
+$wb['resync_shell_txt'] = 'Usuários shell';
+$wb['resync_cron_txt'] = 'Tarefas no cron';
+$wb['resync_db_txt'] = 'Configurações de banco de dados de clientes';
+$wb['resync_mailbox_txt'] = 'e-mails';
+$wb['resync_mail_txt'] = 'Domínio de e-mails';
+$wb['resync_mailfilter_txt'] = 'Filtros de e-mail';
+$wb['resync_mailinglist_txt'] = 'Listas de e-mail';
+$wb['resync_dns_txt'] = 'Registros dns';
+$wb['resync_vserver_txt'] = 'Servidores virtuais';
+$wb['resync_client_txt'] = 'Clientes e revendas';
+$wb['all_active_txt'] = 'Todos os servidores ativos';
+$wb['all_active_mail_txt'] = 'Todos os servidores de e-mail ativos';
+$wb['all_active_web_txt'] = 'Todos os servidores web ativos';
+$wb['all_active_dns_txt'] = 'Todos os servidor dns ativos';
+$wb['all_active_file_txt'] = 'Todos servidores ftp ativos';
+$wb['all_active_db_txt'] = 'Todos os servidores de banco de dados ativos';
+$wb['all_active_vserver_txt'] = 'Todos servidores virtuais ativos';
+$wb['do_sites_txt'] = 'Sites sincronizados';
+$wb['do_ftp_txt'] = 'Usuário ftp sincronizados';
+$wb['do_webdav_txt'] = 'Usuários webdax sincronizados';
+$wb['do_shell_txt'] = 'Usuários shell sincronizados';
+$wb['do_cron_txt'] = 'Tarefas no cron sincronizadas';
+$wb['do_db_user_txt'] = 'Usuários de banco de dados sincronizados';
+$wb['do_db_txt'] = 'Banco de dados sincronizados';
+$wb['do_mail_txt'] = 'Domínio de e-mails sincronizados';
+$wb['do_mailbox_txt'] = 'Caixas postais sincronizadas';
+$wb['do_mail_alias_txt'] = 'Apelidos de e-mail sincronizados';
+$wb['do_mail_access_txt'] = 'Acessos de e-mail sincronizados';
+$wb['do_mail_contentfilter_txt'] = 'Filtros de e-mail sincronizados';
+$wb['do_mail_userfilter_txt'] = 'Filtros de e-mail de usuários sincronizados';
+$wb['do_mailinglist_txt'] = 'Listas de e-mail sincronizadas';
+$wb['do_dns_txt'] = 'Zonas dns sincronizadas';
+$wb['do_vserver_txt'] = 'Servidores virtuais sincronizados';
+$wb['do_clients_txt'] = 'Clientes e revendas sincronizados';
+$wb['no_results_txt'] = 'Não encontrado';
+$wb['btn_start_txt'] = 'Iniciar';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['do_mail_spamfilter_policy_txt'] = 'Políticas antispam sincronizadas';
+$wb['do_mail_spamfilter_txt'] = 'Filtros antispam sincronizados';
+$wb['do_mailget_txt'] = 'Contas de busca sincronizadas';
+$wb['resync_mailget_txt'] = 'Contas de busca';
 ?>
diff --git a/interface/web/tools/lib/lang/br_tpl_default.lng b/interface/web/tools/lib/lang/br_tpl_default.lng
index c06246304d..1e09eea22c 100644
--- a/interface/web/tools/lib/lang/br_tpl_default.lng
+++ b/interface/web/tools/lib/lang/br_tpl_default.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'Default Theme settings';
-$wb['list_desc_txt'] = 'Modify default-theme specific options';
-$wb['no_settings_txt'] = 'There are no settings for the default theme.';
-$wb['btn_start_txt'] = 'Save';
-$wb['btn_cancel_txt'] = 'Back';
+$wb['list_head_txt'] = 'Configurações do tema padrão';
+$wb['list_desc_txt'] = 'Alterar opções específicas do tema padrão';
+$wb['no_settings_txt'] = 'Não existem configurações para o tema padrão.';
+$wb['btn_start_txt'] = 'Salvar';
+$wb['btn_cancel_txt'] = 'Voltar';
 ?>
diff --git a/interface/web/tools/lib/lang/br_usersettings.lng b/interface/web/tools/lib/lang/br_usersettings.lng
index 41de1002fe..8fccd26852 100644
--- a/interface/web/tools/lib/lang/br_usersettings.lng
+++ b/interface/web/tools/lib/lang/br_usersettings.lng
@@ -1,12 +1,12 @@
 <?php
 $wb['password_txt'] = 'Senha';
-$wb['password_strength_txt'] = 'Segurança de Senha';
+$wb['password_strength_txt'] = 'Dificuldade da senha';
 $wb['language_txt'] = 'Idioma';
-$wb['password_mismatch'] = 'As senhas não conhecidem';
-$wb['Form to edit the user password and language.'] = 'Formulário para alterar idioma e senha';
+$wb['password_mismatch'] = 'As senhas não coincidem';
+$wb['Form to edit the user password and language.'] = 'Alterar idioma e senha';
 $wb['Settings'] = 'Configurações';
-$wb['generate_password_txt'] = 'Generate Password';
-$wb['repeat_password_txt'] = 'Repeat Password';
-$wb['password_mismatch_txt'] = 'The passwords do not match.';
-$wb['password_match_txt'] = 'The passwords do match.';
+$wb['generate_password_txt'] = 'Gerar senha';
+$wb['repeat_password_txt'] = 'Repetir senha';
+$wb['password_mismatch_txt'] = 'A senhas não coincidem.';
+$wb['password_match_txt'] = 'A senhas coincidem.';
 ?>
diff --git a/interface/web/vm/lib/lang/br.lng b/interface/web/vm/lib/lang/br.lng
index 4167e14a8a..acbfde6ea4 100644
--- a/interface/web/vm/lib/lang/br.lng
+++ b/interface/web/vm/lib/lang/br.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['Virtual Servers'] = 'Virtual Servers';
-$wb['OS Templates'] = 'OS Templates';
-$wb['VM Templates'] = 'VM Templates';
-$wb['IP addresses'] = 'IP addresses';
+$wb['Virtual Servers'] = 'Servidores virtuais';
+$wb['OS Templates'] = 'Gabaritos do SO';
+$wb['VM Templates'] = 'Gabaritos de VM';
+$wb['IP addresses'] = 'Endereço IP';
 $wb['OpenVZ'] = 'OpenVZ';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_action.lng b/interface/web/vm/lib/lang/br_openvz_action.lng
index 52f7328582..10ae6b0570 100644
--- a/interface/web/vm/lib/lang/br_openvz_action.lng
+++ b/interface/web/vm/lib/lang/br_openvz_action.lng
@@ -1,16 +1,16 @@
 <?php
-$wb['head_txt'] = 'Virtual server actions for VM:';
-$wb['start_txt'] = 'Start virtual server';
-$wb['stop_txt'] = 'Stop virtual server';
-$wb['restart_txt'] = 'Restart virtual server';
-$wb['ostemplate_txt'] = 'Create OSTemplate';
-$wb['ostemplate_desc_txt'] = '(example: debian-6.0-i386-custom)';
-$wb['btn_save_txt'] = 'Execute selected action';
-$wb['btn_cancel_txt'] = 'Cancel';
-$wb['start_exec_txt'] = 'Start command has been sent to the VM host server. It may take a minute until the VM is started.';
-$wb['stop_exec_txt'] = 'Stop command has been sent to the VM host server. It may take a minute until the VM is stopped.';
-$wb['restart_exec_txt'] = 'Restart command has been sent to the VM host server. It may take a minute until the VM is restarted.';
-$wb['ostemplate_name_error'] = 'The OSTemplate name conatains unallowed characters.';
-$wb['ostemplate_name_unique_error'] = 'There is already a OSTemplate with that name.';
-$wb['ostemplate_exec_txt'] = 'The command to create a OSTemplate has been sent to the host server. It will take several minutes until the OSTemplate has been created.';
+$wb['head_txt'] = 'Ações do servidor virtual para máquinas virtuais:';
+$wb['start_txt'] = 'Iniciar máquina virtual';
+$wb['stop_txt'] = 'Parar máquina virtual';
+$wb['restart_txt'] = 'Reiniciar máquina virtual';
+$wb['ostemplate_txt'] = 'Adicionar gabarito de SO';
+$wb['ostemplate_desc_txt'] = '(exemplo: debian-6.0-i386-custom)';
+$wb['btn_save_txt'] = 'Executar ação selecionada';
+$wb['btn_cancel_txt'] = 'Cancelar';
+$wb['start_exec_txt'] = 'O comando -iniciar- foi enviado ao servidor hospedeiro de máquinas virtuais. Espere alguns minutos até que a máquina virtual seja iniciada.';
+$wb['stop_exec_txt'] = 'O comando -parar- foi enviado ao servidor hospedeiro de máquinas virtuais. Espere alguns minutos até que a máquina virtual pare.';
+$wb['restart_exec_txt'] = 'O comando -reiniciar- foi enviado ao servidor hospedeiro de máquinas virtuais. Espere alguns minutos até que a máquina virtual seja reiniciada.';
+$wb['ostemplate_name_error'] = 'O gabarito de SO contém caracteres não permitidos.';
+$wb['ostemplate_name_unique_error'] = 'Já existe um gabarito de SO com este nome.';
+$wb['ostemplate_exec_txt'] = 'O comando -criar máquina virtual - foi enviado ao servidor hospedeiro de máquinas virtuais. Espere alguns minutos até que a máquina virtual seja criada.';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_ip.lng b/interface/web/vm/lib/lang/br_openvz_ip.lng
index 6016681df8..4a8aadd740 100644
--- a/interface/web/vm/lib/lang/br_openvz_ip.lng
+++ b/interface/web/vm/lib/lang/br_openvz_ip.lng
@@ -1,9 +1,9 @@
 <?php
-$wb['server_id_txt'] = 'Hostserver';
-$wb['ip_address_txt'] = 'IP address';
-$wb['vm_id_txt'] = 'Virtual server';
-$wb['reserved_txt'] = 'Reserved';
-$wb['ip_error_wrong'] = 'Please fill in a valid IPv4 address.';
-$wb['ip_error_unique'] = 'This IP address does already exist.';
-$wb['IP address'] = 'IP address';
+$wb['server_id_txt'] = 'Servidor hospedeiro';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['vm_id_txt'] = 'Servidor virtual';
+$wb['reserved_txt'] = 'Reservedo';
+$wb['ip_error_wrong'] = 'Por favor, insira um endereço IPv4 válido.';
+$wb['ip_error_unique'] = 'O endereço IP já existe.';
+$wb['IP address'] = 'Endereço IP';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_ip_list.lng b/interface/web/vm/lib/lang/br_openvz_ip_list.lng
index e6a3a68c2c..e7956816ae 100644
--- a/interface/web/vm/lib/lang/br_openvz_ip_list.lng
+++ b/interface/web/vm/lib/lang/br_openvz_ip_list.lng
@@ -1,7 +1,7 @@
 <?php
-$wb['list_head_txt'] = 'OpenVZ IP addresses';
-$wb['server_id_txt'] = 'Server';
-$wb['ip_address_txt'] = 'IP address';
-$wb['reserved_txt'] = 'Reserved';
+$wb['list_head_txt'] = 'Endereço IP do OpenVZ';
+$wb['server_id_txt'] = 'Servidor';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['reserved_txt'] = 'Reservado';
 $wb['vm_id_txt'] = 'VM';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_ostemplate.lng b/interface/web/vm/lib/lang/br_openvz_ostemplate.lng
index 256750f19a..7aed2a5c3e 100644
--- a/interface/web/vm/lib/lang/br_openvz_ostemplate.lng
+++ b/interface/web/vm/lib/lang/br_openvz_ostemplate.lng
@@ -1,11 +1,11 @@
 <?php
-$wb['template_name_txt'] = 'Template name';
-$wb['template_file_txt'] = 'Template filename';
-$wb['server_id_txt'] = 'Server';
-$wb['allservers_txt'] = 'Exists on all servers';
-$wb['active_txt'] = 'Active';
-$wb['description_txt'] = 'Description';
-$wb['template_name_error_empty'] = 'Template name is empty.';
-$wb['template_file_error_empty'] = 'Template filename is empty.';
-$wb['Template'] = 'Template';
+$wb['template_name_txt'] = 'Nome do gabarito';
+$wb['template_file_txt'] = 'Arquivo do gabarito';
+$wb['server_id_txt'] = 'Servidor';
+$wb['allservers_txt'] = 'Disponível em todos os servidores';
+$wb['active_txt'] = 'Ativo';
+$wb['description_txt'] = 'Descrição';
+$wb['template_name_error_empty'] = 'Nome do gabarito em branco.';
+$wb['template_file_error_empty'] = 'Nome o arquivo do gabarito em branco.';
+$wb['Template'] = 'Gabarito';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng
index 6471ec0e27..04e94a889d 100644
--- a/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng
+++ b/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['list_head_txt'] = 'OpenVZ OSTemplate';
-$wb['active_txt'] = 'Active';
-$wb['template_name_txt'] = 'Template name';
-$wb['server_id_txt'] = 'Server';
-$wb['allservers_txt'] = 'Exists on all servers';
+$wb['list_head_txt'] = 'Gabarito do SO openVZ';
+$wb['active_txt'] = 'Ativo';
+$wb['template_name_txt'] = 'Nome';
+$wb['server_id_txt'] = 'Servidor';
+$wb['allservers_txt'] = 'Disponível em todos os servidores';
 $wb['ostemplate_id_txt'] = 'ID';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_template.lng b/interface/web/vm/lib/lang/br_openvz_template.lng
index 4c098565a3..cd9e97dd49 100644
--- a/interface/web/vm/lib/lang/br_openvz_template.lng
+++ b/interface/web/vm/lib/lang/br_openvz_template.lng
@@ -1,8 +1,8 @@
 <?php
-$wb['numproc_txt'] = 'Numproc';
-$wb['numtcpsock_txt'] = 'Numtcpsock';
-$wb['numothersock_txt'] = 'Numothersock';
-$wb['vmguarpages_txt'] = 'Vmguarpages';
+$wb['numproc_txt'] = 'Nº de Processadores';
+$wb['numtcpsock_txt'] = 'Nº de soquetes TCP';
+$wb['numothersock_txt'] = 'Nº de outros soquetes';
+$wb['vmguarpages_txt'] = 'Páginas de guarda';
 $wb['kmemsize_txt'] = 'Kmemsize';
 $wb['tcpsndbuf_txt'] = 'Tcpsndbuf';
 $wb['tcprcvbuf_txt'] = 'Tcprcvbuf';
@@ -21,77 +21,77 @@ $wb['numsiginfo_txt'] = 'Numsiginfo';
 $wb['dcachesize_txt'] = 'Dcachesize';
 $wb['numiptent_txt'] = 'Numiptent';
 $wb['swappages_txt'] = 'Swappages';
-$wb['hostname_txt'] = 'Hostname';
-$wb['nameserver_txt'] = 'Nameserver(s)';
-$wb['nameserver_desc_txt'] = '(separated by whitespace)';
-$wb['capability_txt'] = 'Capability';
-$wb['template_name_txt'] = 'Template name';
-$wb['diskspace_txt'] = 'Diskspace';
-$wb['ram_txt'] = 'RAM (guaranteed)';
-$wb['ram_burst_txt'] = 'RAM (burst)';
-$wb['cpu_units_txt'] = 'CPU units';
-$wb['cpu_num_txt'] = 'CPU cores';
-$wb['cpu_limit_txt'] = 'CPU limit %';
-$wb['io_priority_txt'] = 'I/O priority';
-$wb['active_txt'] = 'Active';
-$wb['description_txt'] = 'Description';
-$wb['numproc_desc_txt'] = 'Number of processes and threads.';
-$wb['numtcpsock_desc_txt'] = 'Number of TCP sockets.';
-$wb['numothersock_desc_txt'] = 'Number of sockets other than TCP.';
-$wb['vmguarpages_desc_txt'] = 'Memory allocation guarantee, in pages.';
-$wb['kmemsize_desc_txt'] = 'Size of unswappable kernel memory, allocated for processes in this container.';
-$wb['tcpsndbuf_desc_txt'] = 'Total size of TCP send buffers.';
-$wb['tcprcvbuf_desc_txt'] = 'Total size of TCP receive buffers.';
+$wb['hostname_txt'] = 'Hospedeiro';
+$wb['nameserver_txt'] = 'Servidor(es) de nome';
+$wb['nameserver_desc_txt'] = '(separado por espaços em branco)';
+$wb['capability_txt'] = 'Capacidade';
+$wb['template_name_txt'] = 'Nome do gabarito';
+$wb['diskspace_txt'] = 'Espaço em disco';
+$wb['ram_txt'] = 'RAM (garantida)';
+$wb['ram_burst_txt'] = 'RAM (rajada)';
+$wb['cpu_units_txt'] = 'Unidades de CPU';
+$wb['cpu_num_txt'] = 'Cores de CPU';
+$wb['cpu_limit_txt'] = 'Limite de CPU %';
+$wb['io_priority_txt'] = 'Prioridade de E/S';
+$wb['active_txt'] = 'Ativo';
+$wb['description_txt'] = 'Descrição';
+$wb['numproc_desc_txt'] = 'Número de processos e tarefas.';
+$wb['numtcpsock_desc_txt'] = 'Número de soquetes TCP.';
+$wb['numothersock_desc_txt'] = 'Número de soquetes não TCP.';
+$wb['vmguarpages_desc_txt'] = 'Alocação de memória garantida, em páginas.';
+$wb['kmemsize_desc_txt'] = 'Tamanho da memória sem swap no kernel, alocada para processos neste contêiner.';
+$wb['tcpsndbuf_desc_txt'] = 'Tamanho total de buffers TCP enviados.';
+$wb['tcprcvbuf_desc_txt'] = 'Tamanho total de buffers TCP recebidos.';
 $wb['othersockbuf_desc_txt'] = 'Total size of UNIX-domain socket buffers, UDP and other datagram protocol send buffers.';
-$wb['dgramrcvbuf_desc_txt'] = 'Receive buffers of UDP and other datagram protocols.';
-$wb['oomguarpages_desc_txt'] = 'The guaranteed amount of memory for the case the memory is over-booked (out-of-memory kill guarantee), in pages.';
-$wb['privvmpages_desc_txt'] = 'Memory allocation limit, in pages.';
-$wb['lockedpages_desc_txt'] = 'Process pages not allowed to be swapped out (pages locked by mlock(2)).';
-$wb['shmpages_desc_txt'] = 'Total size of shared memory (IPC, shared anonymous mappings and tmpfs objects), in pages.';
-$wb['physpages_desc_txt'] = 'Total number of RAM pages used by processes.';
-$wb['numfile_desc_txt'] = 'Number of open files.';
-$wb['numflock_desc_txt'] = 'Number of file locks.';
-$wb['numpty_desc_txt'] = 'Number of pseudo-terminals.';
-$wb['numsiginfo_desc_txt'] = 'Number of siginfo structures.';
-$wb['dcachesize_desc_txt'] = 'Total size of dentry and inode structures locked in memory.';
-$wb['numiptent_desc_txt'] = 'Number of NETFILTER (IP packet filtering) entries.';
-$wb['swappages_desc_txt'] = 'Amount of swap space to show in container.';
-$wb['create_dns_txt'] = 'Create DNS for hostname';
-$wb['template_name_error_empty'] = 'Template name is empty.';
-$wb['diskspace_error_empty'] = 'Diskspace is empty.';
-$wb['ram_error_empty'] = 'RAM (guaranteed) is empty.';
-$wb['ram_burst_error_empty'] = 'RAM (burst) is empty.';
-$wb['cpu_units_error_empty'] = 'CPU units is empty.';
-$wb['cpu_num_error_empty'] = 'CPU cores is empty.';
-$wb['cpu_limit_error_empty'] = 'CPU limit % is empty.';
-$wb['io_priority_error_empty'] = 'I/O priority is empty.';
-$wb['template_nameserver_error_empty'] = 'Nameserver(s) is empty.';
-$wb['numproc_error_empty'] = 'Numproc is empty.';
-$wb['numtcpsock_error_empty'] = 'Numtcpsock is empty.';
-$wb['numothersock_error_empty'] = 'Numothersock is empty.';
-$wb['vmguarpages_error_empty'] = 'Vmguarpages is empty.';
-$wb['kmemsize_error_empty'] = 'Kmemsize is empty.';
-$wb['tcpsndbuf_error_empty'] = 'Tcpsndbuf is empty.';
-$wb['tcprcvbuf_error_empty'] = 'Tcprcvbuf is empty.';
-$wb['othersockbuf_error_empty'] = 'Othersockbuf is empty.';
-$wb['dgramrcvbuf_error_empty'] = 'Dgramrcvbuf is empty.';
-$wb['oomguarpages_error_empty'] = 'Oomguarpages is empty.';
-$wb['privvmpages_error_empty'] = 'Privvmpages is empty.';
-$wb['lockedpages_error_empty'] = 'Lockedpages is empty.';
-$wb['shmpages_error_empty'] = 'Shmpages is empty.';
-$wb['physpages_error_empty'] = 'Physpages is empty.';
-$wb['numfile_error_empty'] = 'Numfile is empty.';
-$wb['avnumproc_error_empty'] = 'Avnumproc is empty.';
-$wb['numflock_error_empty'] = 'Numflock is empty.';
-$wb['numpty_error_empty'] = 'Numpty is empty.';
-$wb['numsiginfo_error_empty'] = 'Numsiginfo is empty.';
-$wb['dcachesize_error_empty'] = 'Dcachesize is empty.';
-$wb['numiptent_error_empty'] = 'Numiptent is empty.';
-$wb['swappages_error_empty'] = 'Swappages is empty.';
-$wb['Template'] = 'Template';
-$wb['Advanced'] = 'Advanced';
-$wb['features_txt'] = 'Features';
-$wb['iptables_txt'] = 'IP Tables';
-$wb['custom_txt'] = 'Custom settings';
-$wb['custom_error'] = 'Not allowed in Custom settings: ';
+$wb['dgramrcvbuf_desc_txt'] = 'Receber buffers de UDP e outros protocolos de datagrama.';
+$wb['oomguarpages_desc_txt'] = 'A garantia de memória para o caso de rajadas é superior à reserva (out-of-memory), em páginas.';
+$wb['privvmpages_desc_txt'] = 'Limite de alocação de memória, em páginas.';
+$wb['lockedpages_desc_txt'] = 'Páginas de processo não tem permissão para troca (páginas bloqueadas por mlock(2)).';
+$wb['shmpages_desc_txt'] = 'Tamanho total da memória compartilhada (IPC, mapeamentos anônimos compartilhados e objetos tmpfs), em páginas.';
+$wb['physpages_desc_txt'] = 'Número total de páginas de RAM, usada pelos processos.';
+$wb['numfile_desc_txt'] = 'Número de arquivos abertos.';
+$wb['numflock_desc_txt'] = 'Número de arquivos bloqueados.';
+$wb['numpty_desc_txt'] = 'Número de pseudo terminais.';
+$wb['numsiginfo_desc_txt'] = 'Número de estruturas de siginfo.';
+$wb['dcachesize_desc_txt'] = 'Tamanho total de dentry e estruturas inode bloqueados na memória.';
+$wb['numiptent_desc_txt'] = 'Número de entradas no firewall (Filtros de pacotes IP).';
+$wb['swappages_desc_txt'] = 'Quantidade de área de troca a ser exibida no container.';
+$wb['create_dns_txt'] = 'Adicionar dns para hospedeiro';
+$wb['template_name_error_empty'] = 'Nome do gabarito em branco.';
+$wb['diskspace_error_empty'] = 'Espaço do disco em branco.';
+$wb['ram_error_empty'] = 'RAM (garantida) em branco.';
+$wb['ram_burst_error_empty'] = 'RAM (rajada) em branco.';
+$wb['cpu_units_error_empty'] = 'Unidades de CPU em branco.';
+$wb['cpu_num_error_empty'] = 'Cores de CPU em branco.';
+$wb['cpu_limit_error_empty'] = 'CPU limit % em branco.';
+$wb['io_priority_error_empty'] = 'Prioridade de E/S em branco.';
+$wb['template_nameserver_error_empty'] = 'Servidor(es) de nome em branco.';
+$wb['numproc_error_empty'] = 'N° de processadores em branco.';
+$wb['numtcpsock_error_empty'] = 'N° de soquetes TCP em branco.';
+$wb['numothersock_error_empty'] = 'N° de outros soquetes em branco.';
+$wb['vmguarpages_error_empty'] = 'Páginas de guarda em branco.';
+$wb['kmemsize_error_empty'] = 'Kmemsize em branco.';
+$wb['tcpsndbuf_error_empty'] = 'Tcpsndbuf em branco.';
+$wb['tcprcvbuf_error_empty'] = 'Tcprcvbuf em branco.';
+$wb['othersockbuf_error_empty'] = 'Othersockbuf em branco.';
+$wb['dgramrcvbuf_error_empty'] = 'Dgramrcvbuf em branco.';
+$wb['oomguarpages_error_empty'] = 'Oomguarpages em branco.';
+$wb['privvmpages_error_empty'] = 'Privvmpages em branco.';
+$wb['lockedpages_error_empty'] = 'Lockedpages em branco.';
+$wb['shmpages_error_empty'] = 'Shmpages em branco.';
+$wb['physpages_error_empty'] = 'Physpages em branco.';
+$wb['numfile_error_empty'] = 'Numfile em branco.';
+$wb['avnumproc_error_empty'] = 'Avnumproc em branco.';
+$wb['numflock_error_empty'] = 'Numflock em branco.';
+$wb['numpty_error_empty'] = 'Numpty em branco.';
+$wb['numsiginfo_error_empty'] = 'Numsiginfo em branco.';
+$wb['dcachesize_error_empty'] = 'Dcachesize em branco.';
+$wb['numiptent_error_empty'] = 'Numiptent em branco.';
+$wb['swappages_error_empty'] = 'Swappages em branco.';
+$wb['Template'] = 'Gabarito';
+$wb['Advanced'] = 'Avançado';
+$wb['features_txt'] = 'Recursos';
+$wb['iptables_txt'] = 'Firewall';
+$wb['custom_txt'] = 'Configurações personalizadas';
+$wb['custom_error'] = 'Não permitido em configurações personalizadas: ';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_template_list.lng b/interface/web/vm/lib/lang/br_openvz_template_list.lng
index de4045c36a..390869859a 100644
--- a/interface/web/vm/lib/lang/br_openvz_template_list.lng
+++ b/interface/web/vm/lib/lang/br_openvz_template_list.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['list_head_txt'] = 'OpenVZ Virtual Machine Template';
-$wb['active_txt'] = 'Active';
-$wb['template_name_txt'] = 'Template name';
+$wb['list_head_txt'] = 'Gabarito de máquina virtual OpenVZ';
+$wb['active_txt'] = 'Ativo';
+$wb['template_name_txt'] = 'Nome do Gabarito';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_vm.lng b/interface/web/vm/lib/lang/br_openvz_vm.lng
index 3094f0aa8d..2047f756f2 100644
--- a/interface/web/vm/lib/lang/br_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/br_openvz_vm.lng
@@ -1,45 +1,45 @@
 <?php
-$wb['diskspace_txt'] = 'Diskspace';
-$wb['ram_txt'] = 'RAM (guaranteed)';
-$wb['ram_burst_txt'] = 'RAM (burst)';
-$wb['cpu_units_txt'] = 'CPU units';
-$wb['cpu_num_txt'] = 'CPU number';
-$wb['cpu_limit_txt'] = 'CPU limit';
-$wb['io_priority_txt'] = 'I/O priority';
-$wb['nameserver_txt'] = 'Nameserver(s)';
-$wb['nameserver_desc_txt'] = '(separated by whitespace)';
-$wb['capability_txt'] = 'Capability';
-$wb['server_id_txt'] = 'Hostserver';
-$wb['ostemplate_id_txt'] = 'OSTemplate';
-$wb['template_id_txt'] = 'Template';
-$wb['ip_address_txt'] = 'IP address';
-$wb['hostname_txt'] = 'Hostname';
-$wb['vm_password_txt'] = 'VM Password';
-$wb['start_boot_txt'] = 'Start at boot';
-$wb['active_txt'] = 'Active';
-$wb['description_txt'] = 'Description';
-$wb['client_group_id_txt'] = 'Client';
+$wb['diskspace_txt'] = 'Espaço em disco';
+$wb['ram_txt'] = 'RAM (garantida)';
+$wb['ram_burst_txt'] = 'RAM (rajada)';
+$wb['cpu_units_txt'] = 'Unidades de CPU(s)';
+$wb['cpu_num_txt'] = 'Quantidade de CPU(s)';
+$wb['cpu_limit_txt'] = 'Limite de CPU(s)';
+$wb['io_priority_txt'] = 'Prioridade de E/S';
+$wb['nameserver_txt'] = 'Servidor(es) de nome';
+$wb['nameserver_desc_txt'] = '(separado por espaços em branco)';
+$wb['capability_txt'] = 'Capacidade';
+$wb['server_id_txt'] = 'Servidor hospedeiro';
+$wb['ostemplate_id_txt'] = 'Gabarito do SO';
+$wb['template_id_txt'] = 'Gabarito';
+$wb['ip_address_txt'] = 'Endereço IP';
+$wb['hostname_txt'] = 'Hospedeiro';
+$wb['vm_password_txt'] = 'Senha da VM';
+$wb['start_boot_txt'] = 'Iniciar no boot';
+$wb['active_txt'] = 'Ativo';
+$wb['description_txt'] = 'Descrição';
+$wb['client_group_id_txt'] = 'Cliente';
 $wb['veid_txt'] = 'VEID';
-$wb['create_dns_txt'] = 'Create DNS for hostname';
-$wb['active_until_date_txt'] = 'Active until date';
-$wb['ip_address_error_empty'] = 'IP address is empty.';
-$wb['hostname_error_empty'] = 'Hostname is empty.';
-$wb['vm_password_error_empty'] = 'VM Password is empty.';
-$wb['veid_error_empty'] = 'VEID is empty.';
-$wb['veid_error_unique'] = 'VEID does already exist.';
-$wb['diskspace_error_empty'] = 'Diskspace is empty.';
-$wb['ram_error_empty'] = 'RAM (guaranteed) is empty.';
-$wb['ram_burst_error_empty'] = 'RAM (burst) is empty.';
-$wb['cpu_units_error_empty'] = 'CPU units is empty.';
-$wb['cpu_num_error_empty'] = 'CPU number is empty.';
-$wb['cpu_limit_error_empty'] = 'CPU limit is empty.';
-$wb['io_priority_error_empty'] = 'I/O priority is empty.';
-$wb['template_nameserver_error_empty'] = 'Nameserver(s) is empty.';
-$wb['Virtual server'] = 'Virtual server';
-$wb['Advanced'] = 'Advanced';
-$wb['features_txt'] = 'Features';
-$wb['iptables_txt'] = 'IP Tables';
-$wb['custom_txt'] = 'Custom settings';
-$wb['bootorder_txt'] = 'Boot order priority';
-$wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boot order priority';
+$wb['create_dns_txt'] = 'Adicionar DNS para hospedeiro';
+$wb['active_until_date_txt'] = 'Ativo até a data';
+$wb['ip_address_error_empty'] = 'Endereço IP em branco.';
+$wb['hostname_error_empty'] = 'Hospedeiro em branco.';
+$wb['vm_password_error_empty'] = 'Senha da VM em branco.';
+$wb['veid_error_empty'] = 'VEID em branco.';
+$wb['veid_error_unique'] = 'VEID não existe.';
+$wb['diskspace_error_empty'] = 'Espaço em disco em branco.';
+$wb['ram_error_empty'] = 'RAM (garantida) em branco.';
+$wb['ram_burst_error_empty'] = 'RAM (rajada) em branco.';
+$wb['cpu_units_error_empty'] = 'Unidade de CPU(s) em branco.';
+$wb['cpu_num_error_empty'] = 'Quantidade de CPU(s) em branco.';
+$wb['cpu_limit_error_empty'] = 'Limite de CPU(s) em branco.';
+$wb['io_priority_error_empty'] = 'Prioridade de E/S em branco.';
+$wb['template_nameserver_error_empty'] = 'Servidor(es) de nome em branco.';
+$wb['Virtual server'] = 'Servidor virtual';
+$wb['Advanced'] = 'Avançado';
+$wb['features_txt'] = 'Recursos';
+$wb['iptables_txt'] = 'Firewall';
+$wb['custom_txt'] = 'Configurações personalizadas';
+$wb['bootorder_txt'] = 'Prioridade do boot';
+$wb['bootorder_error_notpositive'] = 'Somente números positivos podem ser configurados na prioridade do boot.';
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_vm_list.lng b/interface/web/vm/lib/lang/br_openvz_vm_list.lng
index 2238e2b8f4..6741e065c0 100644
--- a/interface/web/vm/lib/lang/br_openvz_vm_list.lng
+++ b/interface/web/vm/lib/lang/br_openvz_vm_list.lng
@@ -1,10 +1,10 @@
 <?php
-$wb['list_head_txt'] = 'Virtual server';
-$wb['active_txt'] = 'Active';
-$wb['server_id_txt'] = 'Hostserver';
-$wb['ostemplate_id_txt'] = 'OSTemplate';
-$wb['template_id_txt'] = 'Template';
-$wb['hostname_txt'] = 'Hostname';
-$wb['ip_address_txt'] = 'IP address';
+$wb['list_head_txt'] = 'Servidor virtual';
+$wb['active_txt'] = 'Ativo';
+$wb['server_id_txt'] = 'ID do hospedeiro';
+$wb['ostemplate_id_txt'] = 'Gabarito do SO';
+$wb['template_id_txt'] = 'Gabarito';
+$wb['hostname_txt'] = 'Hospedeiro';
+$wb['ip_address_txt'] = 'Endereço IP';
 $wb['veid_txt'] = 'VEID';
 ?>
-- 
GitLab


From 7d6dfc5f910eb52dab18f50749cd9117cf335875 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 5 Oct 2016 17:24:23 +0200
Subject: [PATCH 282/313] Fixed #4227 ispconfig_update.sh script finish with
 errors

---
 server/scripts/ispconfig_update.php                     | 2 +-
 server/scripts/{update_from_tgz.sh => update_stable.sh} | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)
 rename server/scripts/{update_from_tgz.sh => update_stable.sh} (99%)

diff --git a/server/scripts/ispconfig_update.php b/server/scripts/ispconfig_update.php
index 42196cdb50..0c2d3789e8 100644
--- a/server/scripts/ispconfig_update.php
+++ b/server/scripts/ispconfig_update.php
@@ -94,7 +94,7 @@ if($method == 'stable') {
 	$new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.');
 	$new_version = trim($new_version);
 	if(version_compare($new_version, ISPC_APP_VERSION, '>')) {
-		passthru('/usr/local/ispconfig/server/scripts/update_from_tgz.sh');
+		passthru('/usr/local/ispconfig/server/scripts/update_stable.sh');
 		exit;
 	} else {
 		echo "There are no updates available for ISPConfig ".ISPC_APP_VERSION."\n";
diff --git a/server/scripts/update_from_tgz.sh b/server/scripts/update_stable.sh
similarity index 99%
rename from server/scripts/update_from_tgz.sh
rename to server/scripts/update_stable.sh
index 9dcf52df5a..a0566480e5 100644
--- a/server/scripts/update_from_tgz.sh
+++ b/server/scripts/update_stable.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-
+{
 {
     umask 0077 \
     && tmpdir=`mktemp -dt "$(basename $0).XXXXXXXXXX"` \
@@ -28,3 +28,4 @@ else
 fi
 
 exit 0
+}
-- 
GitLab


From 269b2cef5935ebf907f1390821e35d7e324e4ef8 Mon Sep 17 00:00:00 2001
From: Jesse Norell <jesse@kci.net>
Date: Wed, 5 Oct 2016 11:21:48 -0600
Subject: [PATCH 283/313] handle bash script overwrites during update.  fixes
 #4227

---
 server/scripts/ispconfig_update.sh | 28 +++++++++---
 server/scripts/update_stable.sh    | 71 ++++++++++++++++++++----------
 2 files changed, 70 insertions(+), 29 deletions(-)

diff --git a/server/scripts/ispconfig_update.sh b/server/scripts/ispconfig_update.sh
index 03c13c9aea..df8a24a900 100644
--- a/server/scripts/ispconfig_update.sh
+++ b/server/scripts/ispconfig_update.sh
@@ -1,7 +1,25 @@
 #!/bin/bash
 
-php -q \
-    -d disable_classes= \
-    -d disable_functions= \
-    -d open_basedir= \
-    /usr/local/ispconfig/server/scripts/ispconfig_update.php
+_UPD=1
+
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+
+# padding handles script being overwritten during updates
+# see https://git.ispconfig.org/ispconfig/ispconfig3/issues/4227
+
+{
+if [ -n "${_UPD}" ]
+then
+    exec php -q \
+        -d disable_classes= \
+        -d disable_functions= \
+        -d open_basedir= \
+        /usr/local/ispconfig/server/scripts/ispconfig_update.php
+fi
+}
+
diff --git a/server/scripts/update_stable.sh b/server/scripts/update_stable.sh
index a0566480e5..1ff4cdcfe7 100644
--- a/server/scripts/update_stable.sh
+++ b/server/scripts/update_stable.sh
@@ -1,30 +1,53 @@
 #!/bin/bash
-{
-{
-    umask 0077 \
-    && tmpdir=`mktemp -dt "$(basename $0).XXXXXXXXXX"` \
-    && test -d "${tmpdir}" \
-    && cd "${tmpdir}"
-} || {
-    echo 'mktemp failed'
-    exit 1
-}
 
-wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
-if [ -f ISPConfig-3-stable.tar.gz ]
+_UPD=1
+
+# padding handles script being overwritten during updates
+# see https://git.ispconfig.org/ispconfig/ispconfig3/issues/4227
+
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+##################################################
+
+{
+if [ -n "${_UPD}" ]
 then
-	tar xvfz ISPConfig-3-stable.tar.gz
-	cd ispconfig3_install/install/
-	php -q \
-        -d disable_classes= \
-        -d disable_functions= \
-        -d open_basedir= \
-        update.php
-    cd /tmp
-    rm -rf "${tmpdir}"
-else
-	echo "Unable to download the update."
-    exit 1
+    {
+        umask 0077 \
+        && tmpdir=`mktemp -dt "$(basename $0).XXXXXXXXXX"` \
+        && test -d "${tmpdir}" \
+        && cd "${tmpdir}"
+    } || {
+        echo 'mktemp failed'
+        exit 1
+    }
+
+    wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
+    if [ -f ISPConfig-3-stable.tar.gz ]
+    then
+        tar xvfz ISPConfig-3-stable.tar.gz
+        cd ispconfig3_install/install/
+        php -q \
+            -d disable_classes= \
+            -d disable_functions= \
+            -d open_basedir= \
+            update.php
+        cd /tmp
+        rm -rf "${tmpdir}"
+    else
+        echo "Unable to download the update."
+        exit 1
+    fi
+
 fi
 
 exit 0
-- 
GitLab


From 86712bae69aeb596cdfac18d38f5752a9624fc23 Mon Sep 17 00:00:00 2001
From: Jesse Norell <jesse@kci.net>
Date: Wed, 5 Oct 2016 13:05:27 -0600
Subject: [PATCH 284/313] copy ispconfig_update.sh to a temp file to run

---
 server/scripts/ispconfig_update.sh | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/server/scripts/ispconfig_update.sh b/server/scripts/ispconfig_update.sh
index df8a24a900..fc34506634 100644
--- a/server/scripts/ispconfig_update.sh
+++ b/server/scripts/ispconfig_update.sh
@@ -15,11 +15,25 @@ _UPD=1
 {
 if [ -n "${_UPD}" ]
 then
-    exec php -q \
-        -d disable_classes= \
-        -d disable_functions= \
-        -d open_basedir= \
-        /usr/local/ispconfig/server/scripts/ispconfig_update.php
+    n=$(readlink -f ${0})
+    if [ "$(basename ${0})" == "ispconfig_update.sh" ]
+    then
+        cp -p ${n} ${n}.exec
+        chmod +x ${n}.exec
+        exec ${n}.exec
+    else
+        # clean up tmp .exec file
+        if [ "$(basename ${0})" == "ispconfig_update.sh.exec" ]; then
+            rm -f ${0}
+        fi
+
+        exec php -q \
+            -d disable_classes= \
+            -d disable_functions= \
+            -d open_basedir= \
+            /usr/local/ispconfig/server/scripts/ispconfig_update.php
+
+    fi
 fi
 }
 
-- 
GitLab


From 6910f4e7d46f903f220f0a5a99b975089ce6aaef Mon Sep 17 00:00:00 2001
From: Daniel Jagszent <daniel@jagszent.de>
Date: Thu, 6 Oct 2016 02:58:06 +0200
Subject: [PATCH 285/313] copy install/tpl/apache_ispconfig.conf.master to
 server/conf/apache_ispconfig.conf.master
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

If you add/remove server IPs the file `/etc/apache2/sites-available/ispconfig.conf` gets recreated and it is missing the alias for Let's Encrypt ACME challenges. Copying over the current install template fixes that.

Maybe one could remove this template duplication completely by using `server/conf/apache_ispconfig.conf.master` in the install process?

The `Header set Content-Type "text/plain"` was only in `server/conf/apache_ispconfig.conf.master` and not in `install/tpl/apache_ispconfig.conf.master` – is it necessary?
---
 server/conf/apache_ispconfig.conf.master | 122 ++++++++++++-----------
 1 file changed, 64 insertions(+), 58 deletions(-)

diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master
index 79acb9c893..f67fe96f58 100644
--- a/server/conf/apache_ispconfig.conf.master
+++ b/server/conf/apache_ispconfig.conf.master
@@ -3,129 +3,135 @@
 # ISPConfig Logfile configuration for vlogger
 ################################################
 
-LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig
-CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig
+SetEnvIf Request_URI "^/datalogstatus.php$" dontlog
 
-<IfModule mod_headers.c>
-	<LocationMatch "/.well-known/acme-challenge/*">
-		Header set Content-Type "text/plain"
-	</LocationMatch>
-</IfModule>
+LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig
+CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig env=!dontlog
 
 <Directory /var/www/clients>
     AllowOverride None
-	<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-	Require all denied
-	<tmpl_else>
-	Order Deny,Allow
-	Deny from all
-	</tmpl_if>
+  <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+  Require all denied
+  <tmpl_else>
+  Order Deny,Allow
+  Deny from all
+  </tmpl_if>
 </Directory>
 
 # Do not allow access to the root file system of the server for security reasons
 <Directory />
+  Options -Indexes
     AllowOverride None
-	<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-	Require all denied
-	<tmpl_else>
-	Order Deny,Allow
-	Deny from all
-	</tmpl_if>
+  <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+  Require all denied
+  <tmpl_else>
+  Order Deny,Allow
+  Deny from all
+  </tmpl_if>
 </Directory>
 
 <Directory /var/www/conf>
     AllowOverride None
-	<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-	Require all denied
-	<tmpl_else>
-	Order Deny,Allow
-	Deny from all
-	</tmpl_if>
+  <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+  Require all denied
+  <tmpl_else>
+  Order Deny,Allow
+  Deny from all
+  </tmpl_if>
 </Directory>
 
 # Except of the following directories that contain website scripts
 <Directory /usr/share/phpmyadmin>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 <Directory /usr/share/phpMyAdmin>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 <Directory /srv/www/htdocs>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 <Directory /usr/share/squirrelmail>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 # Allow access to mailman on OpenSuSE
 <Directory /usr/lib/mailman/cgi-bin>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 <Directory /usr/lib/mailman/icons>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 <Directory /var/lib/mailman/archives/>
         Options +FollowSymLinks
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 # allow path to awstats and alias for awstats icons
 <Directory /usr/share/awstats>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
         Order allow,deny
         Allow from all
-		</tmpl_if>
+    </tmpl_if>
 </Directory>
 
 <tmpl_if name='apache_version' op='<' value='2.4' format='version'>
 Alias /awstats-icon "/usr/share/awstats/icon"
 </tmpl_if>
 
+Alias /.well-known/acme-challenge /usr/local/ispconfig/interface/acme/.well-known/acme-challenge
+<Directory /usr/local/ispconfig/interface/acme/.well-known/acme-challenge>
+    <tmpl_if name='apache_version' op='>' value='2.2' format='version'>
+    Require all granted
+    <tmpl_else>
+        Order allow,deny
+        Allow from all
+    </tmpl_if>
+</Directory>
+
 NameVirtualHost *:80
 NameVirtualHost *:443
 <tmpl_loop name="ip_adresses">
 NameVirtualHost {tmpl_var name="ip_address"}:{tmpl_var name="port"}
 </tmpl_loop>
-
-- 
GitLab


From 145175fdb67414c1c95d89c173f780a058cbb87d Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Thu, 6 Oct 2016 07:23:53 +0200
Subject: [PATCH 286/313] fixed umount backup-dir

---
 server/lib/classes/system.inc.php | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index cdd6f06e1a..2724c9a839 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1840,17 +1840,17 @@ class system{
 			if ($this->is_mounted($backup_dir)){
 				exec($mount_cmd);
 				sleep(1);
-			}
-		}
 
-        $unmounted = $this->is_mounted($backup_dir) == 0 ? true : false;
-		if(!$unmounted) {
-			//* send email to admin that backup directory could not be unmounted
-			$global_config = $app->getconf->get_global_config('mail');
-			if($global_config['admin_mail'] != ''){
-				$subject = 'Backup directory '.$backup_dir.' could not be unmounted';
-				$message = "Backup directory ".$backup_dir." could not be unmounted.\n\nThe command\n\n".$mount_cmd."\n\nfailed.";
-				mail($global_config['admin_mail'], $subject, $message);
+		        $unmounted = $this->is_mounted($backup_dir) == 0 ? true : false;
+				if(!$unmounted) {
+					//* send email to admin that backup directory could not be unmounted
+					$global_config = $app->getconf->get_global_config('mail');
+					if($global_config['admin_mail'] != ''){
+						$subject = 'Backup directory '.$backup_dir.' could not be unmounted';
+						$message = "Backup directory ".$backup_dir." could not be unmounted.\n\nThe command\n\n".$mount_cmd."\n\nfailed.";
+						mail($global_config['admin_mail'], $subject, $message);
+					}
+				}
 			}
 		}
 
-- 
GitLab


From c1bc454abdc06685205adb6e0ab48f8a52b8f969 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 6 Oct 2016 09:10:08 +0200
Subject: [PATCH 287/313] Fixed #4255 3.1 Remote API -
 sites_database_user_delete should DROP user from mysql user table

---
 interface/lib/classes/remote.d/sites.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php
index 95be8634c2..b5da5aa637 100644
--- a/interface/lib/classes/remote.d/sites.inc.php
+++ b/interface/lib/classes/remote.d/sites.inc.php
@@ -261,7 +261,7 @@ class remoting_sites extends remoting {
 			return false;
 		}
 
-		$app->db->datalogDelete('web_database_user', 'database_user_id', $primary_id);
+		//$app->db->datalogDelete('web_database_user', 'database_user_id', $primary_id);
 		$affected_rows = $this->deleteQuery('../sites/form/database_user.tform.php', $primary_id);
 
 		$records = $app->db->queryAllRecords("SELECT database_id FROM web_database WHERE database_user_id = ?", $primary_id);
-- 
GitLab


From 96541d1fbda84e686f3b13e9efbfe764e98a61e3 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 6 Oct 2016 16:58:07 +0200
Subject: [PATCH 288/313] - Invalid XFS quota argument, fixes #4257 - Added
 missing shell escaping

---
 .../plugins-available/apache2_plugin.inc.php  | 34 +++++++++---------
 server/plugins-available/nginx_plugin.inc.php | 36 +++++++++----------
 2 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 157f994488..463bd44e86 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -879,30 +879,30 @@ class apache2_plugin {
 				$blocks_soft = $data['new']['hd_quota'] * 1024;
 				$blocks_hard = $blocks_soft + 1024;
 				$mb_soft = $data['new']['hd_quota'];
-                $mb_hard = $mb_soft + 1;
+				$mb_hard = $mb_soft + 1;
 			} else {
 				$mb_soft = $mb_hard = $blocks_soft = $blocks_hard = 0;
 			}
-            
-          // get the primitive folder for document_root and the filesystem, will need it later.
-          $df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'"));
-          $file_system = $df_output[0];
-          $primitive_root = $df_output[1];
 
-		  if($file_system == 'xfs') {
-			exec("xfs_quota -x -c 'limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
+			// get the primitive folder for document_root and the filesystem, will need it later.
+			$df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'"));
+			$file_system = $df_output[0];
+			$primitive_root = $df_output[1];
 
-            // xfs only supports timers globally, not per user.
-            exec("xfs_quota -x -c 'timer -bir -i 604800' $primitive_root");
+			if($file_system == 'xfs') {
+				exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $data['new']['system_group']) . " " . escapeshellarg($primitive_root));
 
-            unset($project_uid, $username_position, $xfs_projects);
-            unset($primitive_root, $df_output, $mb_hard, $mb_soft);
-		  } else {
-            if($app->system->is_installed('setquota')) {
-				exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
-				exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
+				// xfs only supports timers globally, not per user.
+				exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root));
+
+				unset($project_uid, $username_position, $xfs_projects);
+				unset($primitive_root, $df_output, $mb_hard, $mb_soft);
+			} else {
+				if($app->system->is_installed('setquota')) {
+					exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
+					exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
+				}
 			}
-          }
 		}
 
 		if($this->action == 'insert' || $data["new"]["system_user"] != $data["old"]["system_user"]) {
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 27d710d395..d597000f99 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -733,34 +733,34 @@ class nginx_plugin {
 		}  // end copy error docs
 
 		// Set the quota for the user, but only for vhosts, not vhostsubdomains or vhostalias
-	    if($username != '' && $app->system->is_user($username) && $data['new']['type'] == 'vhost') {
+		if($username != '' && $app->system->is_user($username) && $data['new']['type'] == 'vhost') {
 			if($data['new']['hd_quota'] > 0) {
 				$blocks_soft = $data['new']['hd_quota'] * 1024;
 				$blocks_hard = $blocks_soft + 1024;
-                $mb_hard = $mb_soft + 1;
+				$mb_hard = $mb_soft + 1;
 			} else {
 				$mb_soft = $mb_hard = $blocks_soft = $blocks_hard = 0;
 			}
-            
-          // get the primitive folder for document_root and the filesystem, will need it later.
-          $df_output=explode(" ", exec("df -T $document_root|awk 'END{print \$2,\$NF}'"));
-          $file_system = $df_output[0];
-          $primitive_root = $df_output[1];
 
-          if($file_system == 'xfs') {
-			exec("xfs_quota -x -c 'limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root");
+			// get the primitive folder for document_root and the filesystem, will need it later.
+			$df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'"));
+			$file_system = $df_output[0];
+			$primitive_root = $df_output[1];
 
-            // xfs only supports timers globally, not per user.
-            exec("xfs_quota -x -c 'timer -bir -i 604800' $primitive_root");
+			if($file_system == 'xfs') {
+				exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $data['new']['system_group']) . " " . escapeshellarg($primitive_root));
 
-            unset($project_uid, $username_position, $xfs_projects);
-            unset($primitive_root, $df_output, $mb_hard, $mb_soft);
-		  } else {
-            if($app->system->is_installed('setquota')) {
-				exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
-				exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
+				// xfs only supports timers globally, not per user.
+				exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root));
+
+				unset($project_uid, $username_position, $xfs_projects);
+				unset($primitive_root, $df_output, $mb_hard, $mb_soft);
+			} else {
+				if($app->system->is_installed('setquota')) {
+					exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null');
+					exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null');
+				}
 			}
-          }
 		}
 
 		if($this->action == 'insert' || $data["new"]["system_user"] != $data["old"]["system_user"]) {
-- 
GitLab


From c8ccf5593c93f9ef9fe45245bc0448d5bc91a325 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 6 Oct 2016 17:16:12 +0200
Subject: [PATCH 289/313] - reverted last commit partly

---
 server/plugins-available/apache2_plugin.inc.php | 2 +-
 server/plugins-available/nginx_plugin.inc.php   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 463bd44e86..7af5805eae 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -890,7 +890,7 @@ class apache2_plugin {
 			$primitive_root = $df_output[1];
 
 			if($file_system == 'xfs') {
-				exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $data['new']['system_group']) . " " . escapeshellarg($primitive_root));
+				exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username) . " " . escapeshellarg($primitive_root));
 
 				// xfs only supports timers globally, not per user.
 				exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root));
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index d597000f99..e866888521 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -748,7 +748,7 @@ class nginx_plugin {
 			$primitive_root = $df_output[1];
 
 			if($file_system == 'xfs') {
-				exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $data['new']['system_group']) . " " . escapeshellarg($primitive_root));
+				exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username) . " " . escapeshellarg($primitive_root));
 
 				// xfs only supports timers globally, not per user.
 				exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root));
-- 
GitLab


From dcf56af53285710a8e2418e619c986af548ce7d8 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Fri, 7 Oct 2016 10:15:07 +0200
Subject: [PATCH 290/313] remove missing update_from_tgz.sh for installer

---
 install/lib/installer_base.lib.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index a2e2136238..da090fdb0b 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2563,8 +2563,8 @@ Email Address []:
 		if(is_file('/usr/local/bin/ispconfig_update_from_dev.sh')) unlink('/usr/local/bin/ispconfig_update_from_dev.sh');
 		chown($install_dir.'/server/scripts/update_from_dev.sh', 'root');
 		chmod($install_dir.'/server/scripts/update_from_dev.sh', 0700);
-		chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root');
-		chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700);
+//		chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root');
+//		chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700);
 		chown($install_dir.'/server/scripts/ispconfig_update.sh', 'root');
 		chmod($install_dir.'/server/scripts/ispconfig_update.sh', 0700);
 		if(!is_link('/usr/local/bin/ispconfig_update_from_dev.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update_from_dev.sh');
-- 
GitLab


From a6e34322652267fbf275931634673b2a3e1297cc Mon Sep 17 00:00:00 2001
From: enavn <dev@enavn.com>
Date: Fri, 7 Oct 2016 12:01:52 +0200
Subject: [PATCH 291/313] Fixed: Call to a member function fault() on null

---
 interface/lib/classes/remoting.inc.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index 55223523f8..5934646bac 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -488,7 +488,7 @@ class remoting {
 	public function server_get($session_id, $server_id = null, $section ='') {
 		global $app;
 		if(!$this->checkPerm($session_id, 'server_get')) {
-			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
 		}
 		if (!empty($session_id)) {
@@ -522,7 +522,7 @@ class remoting {
     {
         global $app;
 		if(!$this->checkPerm($session_id, 'server_get')) {
-        	$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+        	throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
             return false;
 		}
 		if (!empty($session_id)) {
-- 
GitLab


From 42f23c2bde83a4da01bc77bbed2442569cac94ba Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Sat, 8 Oct 2016 11:31:53 +0200
Subject: [PATCH 292/313] Wrong list defined in FTP stats (fixes #4267)

---
 interface/web/sites/list/ftp_sites_stats.list.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/list/ftp_sites_stats.list.php b/interface/web/sites/list/ftp_sites_stats.list.php
index ec00ec55c3..16d3eb1262 100644
--- a/interface/web/sites/list/ftp_sites_stats.list.php
+++ b/interface/web/sites/list/ftp_sites_stats.list.php
@@ -26,7 +26,7 @@ $liste["search_prefix"]  = "search_";
 $liste["records_per_page"]  = "15";
 
 // Script File of the list
-$liste["file"]    = "web_sites_stats.php";
+$liste["file"]    = "ftp_sites_stats.php";
 
 // Script file of the edit form
 $liste["edit_file"]   = "web_domain_edit.php";
-- 
GitLab


From a5f20b11e1353c20f44ca40317d5fc48bcb7544c Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Sat, 8 Oct 2016 13:19:09 +0200
Subject: [PATCH 293/313] Fixes: #4264

---
 interface/web/sites/database_quota_stats.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php
index 0ddea5d27e..148aa127ae 100644
--- a/interface/web/sites/database_quota_stats.php
+++ b/interface/web/sites/database_quota_stats.php
@@ -31,8 +31,8 @@ if(is_array($tmp_rec)) {
 
 			//$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.groupid = web_database.sys_groupid AND sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
 			$temp = $app->db->queryOneRecord("SELECT sys_groupid, database_quota FROM web_database WHERE web_database.database_name = ?", $db_name);
-			if($tmp['sys_groupid'] > 0) {
-				$client = $app->db->queryOneRecord("SELECT client.username FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.groupid = ?", $tmp['sys_groupid']);
+			if($temp['sys_groupid'] > 0) {
+				$client = $app->db->queryOneRecord("SELECT client.username FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.groupid = ?", $temp['sys_groupid']);
 				$temp['username'] = $client['username'];
 			} else {
 				$temp['username'] = 'admin';
-- 
GitLab


From 651376bcff90118e1aca03b6ee3f8b50a7a0a113 Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Sat, 8 Oct 2016 22:11:17 +0200
Subject: [PATCH 294/313] Adding client information to database user list
 (additional question on #4264 fixes #4264)

---
 interface/web/sites/list/database_user.list.php            | 5 +++--
 interface/web/sites/templates/database_user_admin_list.htm | 3 +++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/interface/web/sites/list/database_user.list.php b/interface/web/sites/list/database_user.list.php
index 202916e921..dd25d03349 100644
--- a/interface/web/sites/list/database_user.list.php
+++ b/interface/web/sites/list/database_user.list.php
@@ -60,7 +60,8 @@ if($_SESSION['s']['user']['typ'] == 'admin') {
 		'prefix' => "",
 		'suffix' => "",
 		'datasource' => array (  'type' => 'SQL',
-			'querystring' => 'SELECT groupid, name FROM sys_group WHERE groupid != 1 ORDER BY name',
+			//'querystring' => 'SELECT groupid, name FROM sys_group WHERE groupid != 1 ORDER BY name',
+			'querystring' => "SELECT sys_group.groupid,CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), IF(client.contact_firstname != '', CONCAT(client.contact_firstname, ' '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as name FROM sys_group, client WHERE sys_group.groupid != 1 AND sys_group.client_id = client.client_id ORDER BY client.company_name, client.contact_name",
 			'keyfield'=> 'groupid',
 			'valuefield'=> 'name'
 		),
@@ -78,4 +79,4 @@ $liste["item"][] = array( 'field'  => "database_user",
 	'value'  => "");
 
 
-?>
+?>
\ No newline at end of file
diff --git a/interface/web/sites/templates/database_user_admin_list.htm b/interface/web/sites/templates/database_user_admin_list.htm
index f134238566..2d7ece0b87 100644
--- a/interface/web/sites/templates/database_user_admin_list.htm
+++ b/interface/web/sites/templates/database_user_admin_list.htm
@@ -17,10 +17,12 @@
                 <thead class="dark form-group-sm">
                     <tr>
                         <th data-column="database_user"><tmpl_var name="database_user_txt"></th>
+                        <th data-column="sys_groupid"><tmpl_var name="sys_groupid_txt"></th>
                         <th class="small-col text-right">{tmpl_var name='search_limit'}</th>
                     </tr>
                     <tr>
                         <td><input class="form-control" type="text" name="search_database_user" value="{tmpl_var name='search_database_user'}"/></td>
+                        <td><select class="form-control" name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td>                        
                         <td class="text-right"><button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="sites/database_user_list.php"><span class="icon icon-filter"></span></button></td>
                     </tr>
                 </thead>
@@ -28,6 +30,7 @@
                     <tmpl_loop name="records">
                         <tr>
                             <td><a href="#" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="database_user"}</a></td>
+                            <td><a href="#" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td>                            
                             <td class="text-right">
                                 <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a>
                                 <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
-- 
GitLab


From 38a07fee228f14fdbc8314dd00099557d05268d7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20F=C3=BCrmann?= <michael@spicyweb.de>
Date: Sun, 9 Oct 2016 21:02:37 +0200
Subject: [PATCH 295/313] Applied changes from !470 to correct branch

---
 .../mod_auth_external/db_auth.php             | 30 ++++------
 .../mod_auth_external/db_isuser.php           | 12 +++-
 install/lib/installer_base.lib.php            | 59 +++++--------------
 interface/lib/lang/de.lng                     |  6 ++
 interface/lib/lang/en.lng                     |  6 ++
 interface/web/mail/xmpp_domain_edit.php       |  9 ++-
 6 files changed, 52 insertions(+), 70 deletions(-)

diff --git a/install/apps/metronome_libs/mod_auth_external/db_auth.php b/install/apps/metronome_libs/mod_auth_external/db_auth.php
index 3df135bc12..2d3faa3379 100644
--- a/install/apps/metronome_libs/mod_auth_external/db_auth.php
+++ b/install/apps/metronome_libs/mod_auth_external/db_auth.php
@@ -17,15 +17,15 @@ try{
 
     // check for existing user
     $dbmail = $db->real_escape_string($arg_email);
-    $result = $db->query("SELECT jid, password FROM xmpp_user WHERE jid LIKE ? AND active='y' AND server_id=?", $dbmail, $isp_server_id);
-    result_false($result->num_rows != 1);
-
-    $user = $result->fetch_object();
-
-    // check for domain autologin api key
-    $domain_key = 'f47kmm5Yh5hJzSws2KTS';
-
-    checkAuth($argv[1], $argv[2], $arg_password, $user->password, $domain_key);
+    $query = $db->prepare("SELECT jid, password FROM xmpp_user WHERE jid LIKE ? AND active='y' AND server_id=?");
+    $query->bind_param('si', $arg_email, $isp_server_id);
+    $query->execute();
+    $query->bind_result($jid, $password);
+    $query->fetch();
+    $query->close();
+
+    result_false(is_null($jid));
+    checkAuth($arg_password, $password);
 }catch(Exception $ex){
     echo 0;
     exit();
@@ -40,19 +40,9 @@ function result_true(){
     echo 1;
     exit();
 }
-function checkAuth($user, $domain, $pw_arg, $pw_db, $domain_key){
+function checkAuth($pw_arg, $pw_db){
     if(crypt($pw_arg, $pw_db) == $pw_db)
         result_true();
-
-    if($domain_key){
-        $datetime = new DateTime();
-        $datetime->setTimezone(new DateTimeZone("UTC"));
-        for($t = $datetime->getTimestamp(); $t >= $datetime->getTimestamp()-30; $t--){
-            $pw_api = md5($domain.'@'.$domain_key.'@'.$user.'@'.$t);
-            if($pw_api == $pw_arg)
-                result_true();
-        }
-    }
     result_false();
 }
 ?>
\ No newline at end of file
diff --git a/install/apps/metronome_libs/mod_auth_external/db_isuser.php b/install/apps/metronome_libs/mod_auth_external/db_isuser.php
index e6820635bc..520785a8a2 100644
--- a/install/apps/metronome_libs/mod_auth_external/db_isuser.php
+++ b/install/apps/metronome_libs/mod_auth_external/db_isuser.php
@@ -15,8 +15,14 @@ try{
 
     // check for existing user
     $dbmail = $db->real_escape_string($arg_email);
-    $result = $db->query("SELECT jid, password FROM xmpp_user WHERE jid LIKE ? AND active='y' AND server_id=?", $dbmail, $isp_server_id);
-    result_false($result->num_rows != 1);
+    $query = $db->prepare("SELECT count(*) AS usercount FROM xmpp_user WHERE jid LIKE ? AND active='y' AND server_id=?");
+    $query->bind_param('si', $arg_email, $isp_server_id);
+    $query->execute();
+    $query->bind_result($usercount);
+    $query->fetch();
+    $query->close();
+
+    result_false($usercount != 1);
     result_true();
 
 }catch(Exception $ex){
@@ -34,4 +40,4 @@ function result_true(){
     exit();
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index da090fdb0b..5adfbafd0e 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1597,6 +1597,7 @@ class installer_base {
         // Copy isp libs
         if(!@is_dir('/usr/lib/metronome/isp-modules')) mkdir('/usr/lib/metronome/isp-modules', 0755, true);
         caselog('cp -rf apps/metronome_libs/* /usr/lib/metronome/isp-modules/', __FILE__, __LINE__);
+        caselog('chmod 755 /usr/lib/metronome/isp-modules/mod_auth_external/authenticate_isp.sh', __FILE__, __LINE__);
         // Process db config
         $full_file_name = '/usr/lib/metronome/isp-modules/mod_auth_external/db_conf.inc.php';
         $content = rf($full_file_name);
@@ -1609,13 +1610,14 @@ class installer_base {
 
         if(!stristr($options, 'dont-create-certs')){
             // Create SSL Certificate for localhost
-            echo "writing new private key to 'localhost.key'\n-----\n";
-            $ssl_country = $this->free_query('Country Name (2 letter code)', 'AU');
-            $ssl_locality = $this->free_query('Locality Name (eg, city)', '');
+            // Ensure no line is left blank
+			echo "writing new private key to 'localhost.key'\n-----\n";
+			$ssl_country = $this->free_query('Country Name (2 letter code)', 'AU');
+            $ssl_locality = $this->free_query('Locality Name (eg, city)', 'City Name');
             $ssl_organisation = $this->free_query('Organization Name (eg, company)', 'Internet Widgits Pty Ltd');
-            $ssl_organisation_unit = $this->free_query('Organizational Unit Name (eg, section)', '');
+            $ssl_organisation_unit = $this->free_query('Organizational Unit Name (eg, section)', 'Infrastructure');
             $ssl_domain = $this->free_query('Common Name (e.g. server FQDN or YOUR name)', $conf['hostname']);
-            $ssl_email = $this->free_query('Email Address', '');
+            $ssl_email = $this->free_query('Email Address', 'hostmaster@'.$conf['hostname']);
 
             $tpl = new tpl('metronome_conf_ssl.master');
             $tpl->setVar('ssl_country',$ssl_country);
@@ -1632,6 +1634,14 @@ class installer_base {
             exec("(cd /etc/metronome/certs && make localhost.cert)");
             exec('chmod 0400 /etc/metronome/certs/localhost.key');
             exec('chown metronome /etc/metronome/certs/localhost.key');
+
+			echo "IMPORTANT:\n";
+			echo "Localhost Key, Csr and a self-signed Cert have been saved to /etc/metronome/certs\n";
+			echo "In order to work with all clients, the server must have a trusted certificate, so use the Csr\n";
+			echo "to get a trusted certificate from your CA or replace Key and Cert with already signed files for\n";
+			echo "your domain. Clients like Pidgin dont allow to use untrusted self-signed certificates.\n";
+			echo "\n";
+
         }else{
             echo "-----\n";
             echo "Metronome XMPP SSL server certificate is not renewed. Run the following command manual as root to recreate it:\n";
@@ -1645,45 +1655,6 @@ class installer_base {
         caselog('update-rc.d metronome defaults', __FILE__, __LINE__);
 
         exec($this->getinitcommand($conf['xmpp']['init_script'], 'restart'));
-
-/*
-writing new private key to 'smtpd.key'
------
-You are about to be asked to enter information that will be incorporated
-into your certificate request.
-What you are about to enter is what is called a Distinguished Name or a DN.
-There are quite a few fields but you can leave some blank
-For some fields there will be a default value,
-If you enter '.', the field will be left blank.
------
-Country Name (2 letter code) [AU]:
-State or Province Name (full name) [Some-State]:
-Locality Name (eg, city) []:
-Organization Name (eg, company) [Internet Widgits Pty Ltd]:
-Organizational Unit Name (eg, section) []:
-Common Name (e.g. server FQDN or YOUR name) []:
-Email Address []:
- * */
-
-        /*// Dont just copy over the virtualhost template but add some custom settings
-        $tpl = new tpl('apache_apps.vhost.master');
-
-        $tpl->setVar('apps_vhost_port',$conf['web']['apps_vhost_port']);
-        $tpl->setVar('apps_vhost_dir',$conf['web']['website_basedir'].'/apps');
-        $tpl->setVar('apps_vhost_basedir',$conf['web']['website_basedir']);
-        $tpl->setVar('apps_vhost_servername',$apps_vhost_servername);
-        $tpl->setVar('apache_version',getapacheversion());
-
-
-        // comment out the listen directive if port is 80 or 443
-        if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) {
-            $tpl->setVar('vhost_port_listen','#');
-        } else {
-            $tpl->setVar('vhost_port_listen','');
-        }
-
-        wf($vhost_conf_dir.'/apps.vhost', $tpl->grab());
-        unset($tpl);*/
     }
 
 
diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng
index 8ad879cf34..61551ceeab 100644
--- a/interface/lib/lang/de.lng
+++ b/interface/lib/lang/de.lng
@@ -131,6 +131,12 @@ $wb['datalog_status_d_web_folder'] = 'Verzeichnisschutz löschen';
 $wb['datalog_status_i_web_folder_user'] = 'Verzeichnisschutz Benutzer anlegen';
 $wb['datalog_status_u_web_folder_user'] = 'Verzeichnisschutz Benutzer ändern';
 $wb['datalog_status_d_web_folder_user'] = 'Verzeichnisschutz Benutzer löschen';
+$wb['datalog_status_i_xmpp_domain'] = 'XMPP Domain erstellen';
+$wb['datalog_status_u_xmpp_domain'] = 'XMPP Domain ändern';
+$wb['datalog_status_d_xmpp_domain'] = 'XMPP Domain löschen';
+$wb['datalog_status_i_xmpp_user'] = 'XMPP Benutzer erstellen';
+$wb['datalog_status_u_xmpp_user'] = 'XMPP Benutzer ändern';
+$wb['datalog_status_d_xmpp_user'] = 'XMPP Benutzer löschen';
 $wb['login_as_txt'] = 'Anmelden als';
 $wb['no_domain_perm'] = 'Sie haben keine Berechtigung für diese Domain.';
 $wb['no_destination_perm'] = 'Sie haben keine Berechtigung für dieses Ziel.';
diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng
index 680561fce1..66f4ee3811 100644
--- a/interface/lib/lang/en.lng
+++ b/interface/lib/lang/en.lng
@@ -131,6 +131,12 @@ $wb['datalog_status_d_web_folder'] = 'Delete folder protection';
 $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user';
 $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user';
 $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user';
+$wb['datalog_status_i_xmpp_domain'] = 'Create XMPP domain';
+$wb['datalog_status_u_xmpp_domain'] = 'Update XMPP domain';
+$wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain';
+$wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
+$wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
+$wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['err_csrf_attempt_blocked'] = 'CSRF attempt blocked.';
 $wb['login_as_txt'] = 'Log in as';
 $wb["no_domain_perm"] = 'You have no permission for this domain.';
diff --git a/interface/web/mail/xmpp_domain_edit.php b/interface/web/mail/xmpp_domain_edit.php
index 16046dbc8f..3f62dbdb03 100644
--- a/interface/web/mail/xmpp_domain_edit.php
+++ b/interface/web/mail/xmpp_domain_edit.php
@@ -411,6 +411,9 @@ class page_action extends tform_actions {
     private function update_dns($dataRecord, $new_rr) {
         global $app, $conf;
 
+        $sql = "SELECT server_name from server WHERE server_id = " . intval($dataRecord['server_id']);
+        $xmpp_server = $app->db->queryOneRecord($sql);
+
         $rec = $app->db->queryOneRecord("SELECT use_pubsub, use_proxy, use_anon_host, use_vjud, use_muc_host from xmpp_domain WHERE domain_id = ?", $this->id);
         $required_hosts = array('xmpp');
         if($rec['use_pubsub']=='y')
@@ -437,7 +440,7 @@ class page_action extends tform_actions {
             $rr = $new_rr;
             $rr['name'] = $h;
             $rr['type'] = 'CNAME';
-            $rr['data'] = 'jalapeno.spicyweb.de.';
+            $rr['data'] = $xmpp_server['server_name'] . '.';
             $rr['aux'] = 0;
             $rr['active'] = 'Y';
             $rr['stamp'] = date('Y-m-d H:i:s');
@@ -449,7 +452,7 @@ class page_action extends tform_actions {
         $rr = $new_rr;
         $rr['name'] = '_xmpp-client._tcp.'.$dataRecord['domain'].'.';
         $rr['type'] = 'SRV';
-        $rr['data'] = '5 5222 jalapeno.spicyweb.de.';
+        $rr['data'] = '5 5222 ' . $xmpp_server['server_name'] . '.';
         $rr['aux'] = 0;
         $rr['active'] = 'Y';
         $rr['stamp'] = date('Y-m-d H:i:s');
@@ -458,7 +461,7 @@ class page_action extends tform_actions {
         $rr = $new_rr;
         $rr['name'] = '_xmpp-server._tcp.'.$dataRecord['domain'].'.';
         $rr['type'] = 'SRV';
-        $rr['data'] = '5 5269 jalapeno.spicyweb.de.';
+        $rr['data'] = '5 5269 ' . $xmpp_server['server_name'] . '.';
         $rr['aux'] = 0;
         $rr['active'] = 'Y';
         $rr['stamp'] = date('Y-m-d H:i:s');
-- 
GitLab


From 09f022af595a7ebb6ec6f75b33b0b8f5c073b631 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Mon, 10 Oct 2016 12:06:31 +0200
Subject: [PATCH 296/313] Fixes: 3878 + ipv6-prefix for mirror

---
 interface/lib/classes/tform_base.inc.php             | 12 +++++++++++-
 .../web/admin/templates/server_config_web_edit.htm   |  2 +-
 server/plugins-available/apache2_plugin.inc.php      |  2 +-
 server/plugins-available/nginx_plugin.inc.php        |  2 +-
 4 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 15b3fc59a2..984e82f7f8 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -1053,7 +1053,17 @@ class tform_base {
 							$this->errorMessage .= $errmsg."<br />\r\n";
 						}
 					}
-				} else $this->errorMessage .= "function filter_var missing <br />\r\n";
+				} else {
+					$tmpval = $app->functions->intval($field_value);
+					if($tmpval === 0 and !empty($field_value)) {
+						$errmsg = $validator['errmsg'];
+						if(isset($this->wordbook[$errmsg])) {
+							$this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
+						} else {
+							$this->errorMessage .= $errmsg."<br />\r\n";
+						}
+					}
+				}
 				break;
 			case 'ISPOSITIVE':
 				if(function_exists('filter_var')) {
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 8191cf0dbe..16060cf961 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -48,7 +48,7 @@
                 <label for="website_autoalias" class="col-sm-3 control-label">{tmpl_var name='website_autoalias_txt'}</label>
                 <div class="col-sm-6"><input type="text" name="website_autoalias" id="website_autoalias" value="{tmpl_var name='website_autoalias'}" class="form-control" /> &nbsp;{tmpl_var name='website_autoalias_note_txt'} <a href="javascript:void(0);" class="addPlaceholder">[client_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[client_username]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_id]</a>, <a href="javascript:void(0);" class="addPlaceholder">[website_domain]</a></div>
             </div>
-		<div class="form-group apache">
+		<div class="form-group">
 			<label for="vhost_rewrite_v6" class="col-sm-3 control-label">{tmpl_var name='vhost_rewrite_v6_txt'}</label>
 			<div class="col-sm-9">
 				{tmpl_var name='vhost_rewrite_v6'}
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 7af5805eae..c8dded6db3 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1765,7 +1765,7 @@ class apache2_plugin {
 					$explode_v6prefix=explode(':', $web_config['serverconfig']['server']['v6_prefix']);
 					$explode_v6=explode(':', $data['new']['ipv6_address']);
 
-					for ( $i = 0; $i <= count($explode_v6prefix)-3; $i++ ) {
+					for ( $i = 0; $i <= count($explode_v6prefix)-1; $i++ ) {
 						$explode_v6[$i] = $explode_v6prefix[$i];
 					}
 					$data['new']['ipv6_address'] = implode(':', $explode_v6);
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index e866888521..5e00822c60 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -960,7 +960,7 @@ class nginx_plugin {
 					$explode_v6prefix=explode(':', $conf['serverconfig']['server']['v6_prefix']);
 					$explode_v6=explode(':', $data['new']['ipv6_address']);
 
-					for ( $i = 0; $i <= count($explode_v6prefix)-3; $i++ ) {
+					for ( $i = 0; $i <= count($explode_v6prefix)-1; $i++ ) {
 						$explode_v6[$i] = $explode_v6prefix[$i];
 					}
 					$data['new']['ipv6_address'] = implode(':', $explode_v6);
-- 
GitLab


From 4613498ced1a7fe0f7f577b13096a6f894cce7c1 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 18 Oct 2016 16:47:16 +0200
Subject: [PATCH 297/313] Added Ubuntu 16.10 in OS detection code.

---
 install/lib/install.lib.php              | 4 ++++
 server/lib/classes/monitor_tools.inc.php | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index c19736ad90..75977c597d 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -92,6 +92,10 @@ function get_distname() {
 				$mainver = $ver;
 			}
 			switch ($mainver){
+			case "16.10":
+				$relname = "(Yakkety Yak)";
+				$distconfid = 'ubuntu1604';
+				break;
 			case "16.04":
 				$relname = "(Xenial Xerus)";
 				$distconfid = 'ubuntu1604';
diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index 9c39fc2988..a9c805ced5 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -87,6 +87,10 @@ class monitor_tools {
 				$mainver = $ver;
 			}
 			switch ($mainver){
+			case "16.10":
+				$relname = "(Yakkety Yak)";
+				$distconfid = 'ubuntu1604';
+				break;
 			case "16.04":
 				$relname = "(Xenial Xerus)";
 				$distconfid = 'ubuntu1604';
-- 
GitLab


From 2fba437a0846cfc410e845569c90abf3852ec03b Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 18 Oct 2016 18:08:19 +0200
Subject: [PATCH 298/313] Implemented #4271 Creating vHost Website Alias copies
 default index.html thus breaking the original site if it's based on index.php
 (or something not index.html)

---
 .../plugins-available/apache2_plugin.inc.php  | 45 +++++++++---------
 server/plugins-available/nginx_plugin.inc.php | 47 ++++++++++---------
 2 files changed, 48 insertions(+), 44 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index c8dded6db3..c5f7f24132 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -824,31 +824,32 @@ class apache2_plugin {
 				exec('chmod -R a+r '.$error_page_path);
 			}
 
-			if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) {
-				if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
+			//* Copy the web skeleton files only when there is no index.ph or index.html file yet
+			if(!file_exists($data['new']['document_root'].'/'.$web_folder.'/index.html') && !file_exists($data['new']['document_root'].'/'.$web_folder.'/index.php')) {
+				if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) {
+					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
 
-				if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
-				}
-				if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
-				}
-				if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
-				}
-			} else {
-				if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
-				} else {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
-					if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){
-						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
 					}
-					if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){
-						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
 					}
-					if(is_file($conf['rootpath'] . '/conf/index/.htaccess')){
-						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					//if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) {
+					//	exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					//}
+				} else {
+					if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
+					} else {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
+						if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){
+							if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+						}
+						if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){
+							if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+						}
+						//if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
 					}
 				}
 			}
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 5e00822c60..866950d4a5 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -684,31 +684,34 @@ class nginx_plugin {
 				}
 				exec('chmod -R a+r '.$error_page_path);
 			}
+			
+			//* Copy the web skeleton files only when there is no index.ph or index.html file yet
+			if(!file_exists($data['new']['document_root'].'/'.$web_folder.'/index.html') && !file_exists($data['new']['document_root'].'/'.$web_folder.'/index.php')) {
+				if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) {
+					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
 
-			if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) {
-				if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
-
-				if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
-				}
-				if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
-				}
-				//if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) {
-				//	exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
-				//}
-			} else {
-				if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
-				} else {
-					if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
-					if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){
-						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
 					}
-					if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){
-						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					}
+					//if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) {
+					//	exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+					//}
+				} else {
+					if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
+					} else {
+						if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html');
+						if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){
+							if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+						}
+						if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){
+							if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
+						}
+						//if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
 					}
-					//if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
 				}
 			}
 			exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/');
-- 
GitLab


From 2ee2e412052b2642286cfda5a4cfe10ed8573742 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 18 Oct 2016 18:30:30 +0200
Subject: [PATCH 299/313] Impleemented #4234 Add postmaster address in dovecot
 in lda section.

---
 install/tpl/debian6_dovecot2.conf.master | 1 +
 install/tpl/debian_dovecot2.conf.master  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master
index 669e19fda2..db6e0bfbe2 100644
--- a/install/tpl/debian6_dovecot2.conf.master
+++ b/install/tpl/debian6_dovecot2.conf.master
@@ -59,6 +59,7 @@ protocol pop3 {
   mail_plugins = quota
 }
 protocol lda {
+  postmaster_address = webmaster@localhost
   mail_plugins = sieve quota
 }
 protocol lmtp {
diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master
index 80ca21dd71..8fdaf44eeb 100644
--- a/install/tpl/debian_dovecot2.conf.master
+++ b/install/tpl/debian_dovecot2.conf.master
@@ -57,6 +57,7 @@ protocol pop3 {
   mail_plugins = quota
 }
 protocol lda {
+  postmaster_address = webmaster@localhost
   mail_plugins = sieve quota
 }
 protocol lmtp {
-- 
GitLab


From 31d46a24d36490048abb18cccb4ad232095b23cf Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 19 Oct 2016 18:00:49 +0200
Subject: [PATCH 300/313] Splitted PHP-FPM user in website and listen user and
 group. Related to #4281

---
 server/conf/php_fpm_pool.conf.master            | 4 ++--
 server/plugins-available/apache2_plugin.inc.php | 4 +++-
 server/plugins-available/nginx_plugin.inc.php   | 4 +++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/server/conf/php_fpm_pool.conf.master b/server/conf/php_fpm_pool.conf.master
index c0884acfe4..fd7e996a76 100644
--- a/server/conf/php_fpm_pool.conf.master
+++ b/server/conf/php_fpm_pool.conf.master
@@ -6,8 +6,8 @@ listen.allowed_clients = 127.0.0.1
 </tmpl_if>
 <tmpl_if name='use_socket'>
 listen = <tmpl_var name='fpm_socket'>
-listen.owner = <tmpl_var name='fpm_user'>
-listen.group = <tmpl_var name='fpm_group'>
+listen.owner = <tmpl_var name='fpm_listen_user'>
+listen.group = <tmpl_var name='fpm_listen_group'>
 listen.mode = <tmpl_var name='fpm_listen_mode'>
 </tmpl_if>
 
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index c5f7f24132..f389b907ad 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -3170,7 +3170,9 @@ class apache2_plugin {
 		$tpl->setVar('fpm_pool', $pool_name);
 		$tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1);
 		$tpl->setVar('fpm_user', $data['new']['system_user']);
-		$tpl->setVar('fpm_group', $web_config['group']);
+		$tpl->setVar('fpm_group', $data['new']['system_group']);
+		$tpl->setVar('fpm_listen_user', $data['new']['system_user']);
+		$tpl->setVar('fpm_listen_group', $web_config['group']);
 		$tpl->setVar('fpm_domain', $data['new']['domain']);
 		$tpl->setVar('pm', $data['new']['pm']);
 		$tpl->setVar('pm_max_children', $data['new']['pm_max_children']);
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 866950d4a5..7c3e49e755 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -2785,7 +2785,9 @@ class nginx_plugin {
 		$tpl->setVar('fpm_pool', $pool_name);
 		$tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1);
 		$tpl->setVar('fpm_user', $data['new']['system_user']);
-		$tpl->setVar('fpm_group', $web_config['group']);
+		$tpl->setVar('fpm_group', $data['new']['system_group']);
+		$tpl->setVar('fpm_listen_user', $data['new']['system_user']);
+		$tpl->setVar('fpm_listen_group', $web_config['group']);
 		$tpl->setVar('pm', $data['new']['pm']);
 		$tpl->setVar('pm_max_children', $data['new']['pm_max_children']);
 		$tpl->setVar('pm_start_servers', $data['new']['pm_start_servers']);
-- 
GitLab


From 8c8e9bec7dc3147fcbe070e25c09b53dc989d24a Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 19 Oct 2016 18:15:41 +0200
Subject: [PATCH 301/313] Fixed #4250 Enabling firewall does not link plugin.

---
 server/plugins-available/firewall_plugin.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php
index d3538cc010..67ed2379fb 100644
--- a/server/plugins-available/firewall_plugin.inc.php
+++ b/server/plugins-available/firewall_plugin.inc.php
@@ -38,7 +38,7 @@ class firewall_plugin {
 	public function onInstall() {
 		global $conf;
 
-		if($conf['bastille']['installed'] == true && $conf['services']['firewall'] == true) {
+		if(($conf['bastille']['installed'] == true || $conf['ufw']['installed'] == true || $conf['firewall']['installed'] == true) && $conf['services']['firewall'] == true) {
 			return true;
 		} else {
 			return false;
-- 
GitLab


From 58f4deb21b48d50c0356436b558753fac348b5f1 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 20 Oct 2016 16:28:45 +0200
Subject: [PATCH 302/313] Fixed #4249 System php.ini is not included in custom
 php.ini

---
 server/plugins-available/apache2_plugin.inc.php | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index f389b907ad..a4b3854f2a 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -121,7 +121,7 @@ class apache2_plugin {
 				}
 				unset($tmp);
 			}
-			
+
 			if(!$master_php_ini_path) {
 				if($web_data['php'] == 'fast-cgi' && file_exists($fastcgi_config["fastcgi_phpini_path"])) {
 					$master_php_ini_path = $fastcgi_config["fastcgi_phpini_path"];
@@ -132,6 +132,13 @@ class apache2_plugin {
 				}
 			}
 		}
+		
+		// Resolve inconsistant path settings
+		if($master_php_ini_path != '' && is_dir($master_php_ini_path) && is_file($master_php_ini_path.'/php.ini')) {
+			$master_php_ini_path .= '/php.ini';
+		}
+
+		// Load the custom php.ini content
 		if($master_php_ini_path != '' && substr($master_php_ini_path, -7) == 'php.ini' && is_file($master_php_ini_path)) {
 			$php_ini_content .= $app->system->file_get_contents($master_php_ini_path)."\n";
 		}
-- 
GitLab


From 475352ecee9f9edc394acb5fa8f05818e76066e4 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 20 Oct 2016 17:38:13 +0200
Subject: [PATCH 303/313] Fixed #4252 added log levels to cron messages.

---
 server/cron.php | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/server/cron.php b/server/cron.php
index 58d48ec9de..261abd983b 100644
--- a/server/cron.php
+++ b/server/cron.php
@@ -37,11 +37,11 @@ if (is_file($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock')) {
 	$pid = trim(file_get_contents($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock'));
 	if(preg_match('/^[0-9]+$/', $pid)) {
 		if(file_exists('/proc/' . $pid)) {
-			print @date('d.m.Y-H:i').' - WARNING - There is already an instance of server.php running with pid ' . $pid . '.' . "\n";
+			if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of server.php running with pid ' . $pid . '.' . "\n";
 			exit;
 		}
 	}
-	print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n";
+	if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n";
 }
 
 // Set Lockfile
@@ -90,15 +90,15 @@ foreach($files as $f) {
 	if(class_exists($class_name, false)) {
 		$cronjob = new $class_name();
 		if(get_parent_class($cronjob) !== 'cronjob') {
-			print 'Invalid class ' . $class_name . ' not extending class cronjob (' . get_parent_class($cronjob) . ')!' . "\n";
+			if($conf['log_priority'] <= LOGLEVEL_WARN) print 'Invalid class ' . $class_name . ' not extending class cronjob (' . get_parent_class($cronjob) . ')!' . "\n";
 			unset($cronjob);
 			continue;
 		}
-		print 'Included ' . $class_name . ' from ' . $path . '/' . $f . ' -> will now run job.' . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print 'Included ' . $class_name . ' from ' . $path . '/' . $f . ' -> will now run job.' . "\n";
 
 		$cronjob->run();
 
-		print 'run job (' . $class_name . ') done.' . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print 'run job (' . $class_name . ') done.' . "\n";
 
 		unset($cronjob);
 	}
@@ -109,6 +109,6 @@ unset($files);
 @unlink($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock');
 $app->log('Remove Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock', LOGLEVEL_DEBUG);
 
-die("finished.\n");
+if($conf['log_priority'] <= LOGLEVEL_DEBUG) die("finished.\n");
 
 ?>
-- 
GitLab


From aeb0a2bb69b3672b87525aa1e437c3ae7a4e5f72 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 20 Oct 2016 17:43:07 +0200
Subject: [PATCH 304/313] Some more changes for #4252.

---
 server/lib/classes/cronjob.inc.php | 33 +++++++++++++++---------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/server/lib/classes/cronjob.inc.php b/server/lib/classes/cronjob.inc.php
index 02f4f46cc6..3984b680bf 100644
--- a/server/lib/classes/cronjob.inc.php
+++ b/server/lib/classes/cronjob.inc.php
@@ -77,9 +77,10 @@ class cronjob {
 
 	/** run through cronjob sequence **/
 	public function run() {
-
-		print "Called run() for class " . get_class($this) . "\n";
-		print "Job has schedule: " . $this->getSchedule() . "\n";
+		global $conf;
+		
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called run() for class " . get_class($this) . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Job has schedule: " . $this->getSchedule() . "\n";
 		$this->onPrepare();
 		$run_it = $this->onBeforeRun();
 		if($run_it == true) {
@@ -93,9 +94,9 @@ class cronjob {
 
 	/* this function prepares some data for the job and sets next run time if first executed */
 	protected function onPrepare() {
-		global $app;
+		global $app, $conf;
 
-		print "Called onPrepare() for class " . get_class($this) . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onPrepare() for class " . get_class($this) . "\n";
 		// check the run time and values for this job
 
 		// get previous run data
@@ -120,15 +121,15 @@ class cronjob {
 
 	/* this function checks if a cron job's next runtime is reached and returns true or false */
 	protected function onBeforeRun() {
-		global $app;
+		global $app, $conf;
 
-		print "Called onBeforeRun() for class " . get_class($this) . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onBeforeRun() for class " . get_class($this) . "\n";
 
 		if($this->_running == true) return false; // job is still marked as running!
 
-		print "Jobs next run is " . $this->_next_run . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Jobs next run is " . $this->_next_run . "\n";
 		$reached = ISPConfigDateTime::compare($this->_next_run, ISPConfigDateTime::dbtime());
-		print "Date compare of " . ISPConfigDateTime::to_timestamp($this->_next_run) . " and " . ISPConfigDateTime::dbtime() . " is " . $reached . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Date compare of " . ISPConfigDateTime::to_timestamp($this->_next_run) . " and " . ISPConfigDateTime::dbtime() . " is " . $reached . "\n";
 		if($reached === false) return false; // error!
 
 		if($reached === -1) {
@@ -152,7 +153,7 @@ class cronjob {
 			$next_run = $app->cron->getNextRun(ISPConfigDateTime::dbtime());
 		}
 
-		print "Jobs next run is now " . $next_run . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Jobs next run is now " . $next_run . "\n";
 
 		$app->db->query("REPLACE INTO `sys_cron` (`name`, `last_run`, `next_run`, `running`) VALUES (?, NOW(), ?, 1)", get_class($this), ($next_run === false ? "#NULL#" : $next_run));
 		return true;
@@ -160,23 +161,23 @@ class cronjob {
 
 	// child classes should override this!
 	protected function onRunJob() {
-		global $app;
+		global $app, $conf;
 
-		print "Called onRun() for class " . get_class($this) . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onRun() for class " . get_class($this) . "\n";
 	}
 
 	// child classes may override this!
 	protected function onAfterRun() {
-		global $app;
+		global $app, $conf;
 
-		print "Called onAfterRun() for class " . get_class($this) . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onAfterRun() for class " . get_class($this) . "\n";
 	}
 
 	// child classes may NOT override this!
 	private function onCompleted() {
-		global $app;
+		global $app, $conf;
 
-		print "Called onCompleted() for class " . get_class($this) . "\n";
+		if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onCompleted() for class " . get_class($this) . "\n";
 		$app->db->query("UPDATE `sys_cron` SET `running` = 0 WHERE `name` = ?", get_class($this));
 	}
 
-- 
GitLab


From 887e8471901091a52f5a526e24b4d5736232aed3 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 20 Oct 2016 18:11:20 +0200
Subject: [PATCH 305/313] Implemented #4242 Add secondary DNS api functions

---
 interface/lib/classes/remote.d/dns.inc.php | 33 +++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/interface/lib/classes/remote.d/dns.inc.php b/interface/lib/classes/remote.d/dns.inc.php
index 57f7040e28..0cc7bc77ad 100644
--- a/interface/lib/classes/remote.d/dns.inc.php
+++ b/interface/lib/classes/remote.d/dns.inc.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2007 - 2013, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007 - 2016, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -196,6 +196,37 @@ class remoting_dns extends remoting {
 		$app->remoting_lib->loadFormDef('../dns/form/dns_soa.tform.php');
 		return $app->remoting_lib->getDataRecord($primary_id);
 	}
+	
+	//* Add a slave zone
+    public function dns_slave_add($session_id, $client_id, $params)
+    {
+		if(!$this->checkPerm($session_id, 'dns_zone_add')) {
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+		return $this->insertQuery('../dns/form/dns_slave.tform.php', $client_id, $params);
+    }
+	
+	//* Update a slave zone
+	public function dns_slave_update($session_id, $client_id, $primary_id, $params)
+	{
+		if(!$this->checkPerm($session_id, 'dns_zone_update')) {
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+		$affected_rows = $this->updateQuery('../dns/form/dns_slave.tform.php', $client_id, $primary_id, $params);
+		return $affected_rows;
+	}
+
+    //* Delete a slave zone
+    public function dns_slave_delete($session_id, $primary_id)
+    {
+		if(!$this->checkPerm($session_id, 'dns_zone_delete')) {
+			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+		return $this->deleteQuery('../dns/form/dns_slave.tform.php', $primary_id);
+    }
 
 	//* Get record id by origin
 	public function dns_zone_get_id($session_id, $origin)
-- 
GitLab


From 174d56b756e41ed98c167fd98408fbd471736e99 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Thu, 20 Oct 2016 18:43:10 +0200
Subject: [PATCH 306/313] Fixed #4135 Mailman /var/lib/mailman/data/*-mailman
 empty after upgrade to 3.1-RC1

---
 install/lib/installer_base.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 5adfbafd0e..06e4b9c3dd 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -803,7 +803,7 @@ class installer_base {
 		}
 
 		//* Create aliasaes
-		exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
+		if($status == 'install') exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
 
 		if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
 		exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
-- 
GitLab


From fdc9446e4bed63b5e8915d57690f94cf6a33b916 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 21 Oct 2016 12:54:17 +0200
Subject: [PATCH 307/313] Fixed #4233 3.1 stable IPs of a client can not be
 selected

---
 interface/web/sites/ajax_get_ip.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/interface/web/sites/ajax_get_ip.php b/interface/web/sites/ajax_get_ip.php
index 8c83191920..36127caf2d 100644
--- a/interface/web/sites/ajax_get_ip.php
+++ b/interface/web/sites/ajax_get_ip.php
@@ -47,7 +47,7 @@ $ip_type = $_GET['ip_type'];
 	$tmp = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = ?", $client_group_id);
 	$sql = "SELECT ip_address FROM server_ip WHERE ip_type = ? AND server_id = ? AND (client_id = 0 OR client_id=?)";
 
-	$ips = $app->db->queryAllRecords($sql, $ip_type, $server_id, $tmp['groupid']);
+	$ips = $app->db->queryAllRecords($sql, $ip_type, $server_id, $tmp['client_id']);
 	// $ip_select = "<option value=''></option>";
 	if($ip_type == 'IPv4'){
 		$ip_select = ($web_config['enable_ip_wildcard'] == 'y')?"*#":"";
-- 
GitLab


From 21ee812ca73de83d3a9338c9730ea7ce1a044f68 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 21 Oct 2016 15:17:51 +0200
Subject: [PATCH 308/313] Fixed #4029 client_delete_everything API only
 database entries removed

---
 interface/lib/classes/db_mysql.inc.php        | 2 +-
 interface/lib/classes/remote.d/client.inc.php | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php
index b7aaed4e44..6af867edae 100644
--- a/interface/lib/classes/db_mysql.inc.php
+++ b/interface/lib/classes/db_mysql.inc.php
@@ -261,7 +261,6 @@ class db extends mysqli
 		$aArgs = func_get_args();
 		$sQuery = call_user_func_array(array(&$this, '_build_query_string'), $aArgs);
 		$this->securityScan($sQuery);
-
 		$this->_iQueryId = @mysqli_query($this->_iConnId, $sQuery);
 		if (!$this->_iQueryId) {
 			$this->_sqlerror('Falsche Anfrage / Wrong Query', 'SQL-Query = ' . $sQuery);
@@ -634,6 +633,7 @@ class db extends mysqli
 			$diffstr = serialize($diffrec_full);
 			$username = $_SESSION['s']['user']['username'];
 			$dbidx = $primary_field.':'.$primary_id;
+			if(trim($username) == '') $username = 'none';
 
 			if($action == 'INSERT') $action = 'i';
 			if($action == 'UPDATE') $action = 'u';
diff --git a/interface/lib/classes/remote.d/client.inc.php b/interface/lib/classes/remote.d/client.inc.php
index 2099089f09..55850a5666 100644
--- a/interface/lib/classes/remote.d/client.inc.php
+++ b/interface/lib/classes/remote.d/client.inc.php
@@ -404,10 +404,9 @@ class remoting_client extends remoting {
 			$app->db->query("DELETE FROM sys_user WHERE client_id = ?", $client_id);
 
 			//* Delete all records (sub-clients, mail, web, etc....)  of this client.
-			$tables = 'cron,client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic,domain';
+			$tables = 'cron,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_database_user,web_domain,web_traffic,domain,mail_mailinglist,client';
 			$tables_array = explode(',', $tables);
 			$client_group_id = $app->functions->intval($client_group['groupid']);
-
 			if($client_group_id > 1) {
 				foreach($tables_array as $table) {
 					if($table != '') {
@@ -418,7 +417,6 @@ class remoting_client extends remoting {
 						foreach($table_info as $tmp) {
 							if($tmp['option'] == 'primary') $index_field = $tmp['name'];
 						}
-
 						//* Delete the records
 						if($index_field != '') {
 							if(is_array($records)) {
@@ -441,7 +439,6 @@ class remoting_client extends remoting {
 			}
 
 		}
-
 		if (!$this->checkPerm($session_id, 'client_delete')) {
 			throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
 			return false;
-- 
GitLab


From 1d3bd675edccb592230dbb4cdd71a17d4975eaf1 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 21 Oct 2016 18:10:58 +0200
Subject: [PATCH 309/313] Fixed #4289 ISPConfig shows a warning when an
 additional template is added to a client

---
 interface/web/client/templates/client_edit_limits.htm       | 6 +++---
 .../web/themes/default/assets/javascripts/ispconfig.js      | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index 7a29df907d..35e802047a 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -22,7 +22,7 @@
                     </select></div>
                 </div>
 				<div class="clear"><div class="right">
-					<button class="btn btn-default formbutton-success" type="button" onclick="ISPConfig.addAdditionalTemplate();">{tmpl_var name="add_additional_template_txt"}</button>
+					<button id="tpl_add_btn" class="btn btn-default formbutton-success" type="button" onclick="ISPConfig.addAdditionalTemplate();">{tmpl_var name="add_additional_template_txt"}</button>
 				</div></div>
                 <div class="form-group">
                     <label class="col-sm-3 control-label">{tmpl_var name='active_template_additional_txt'}</label>
@@ -471,9 +471,9 @@ $('div.panel_client')
         .find('div.pnl_formsarea')
         .find('fieldset')
         .find('input,select,button')
-        .not('#template_master,#template_additional,#default_mailserver,#default_webserver,#default_dbserver,#default_dnsserver,#default_slave_dnsserver,#customer_no_template,#customer_no_start,#customer_no_counter,#parent_client_id,#reseller')
+        .not('#template_master,#template_additional,#default_mailserver,#tpl_add_btn,#default_webserver,#default_dbserver,#default_dnsserver,#default_slave_dnsserver,#customer_no_template,#customer_no_start,#customer_no_counter,#parent_client_id,#reseller')
         .click(function(e) {
-            if(custom_template_selected()) return true;
+			if(custom_template_selected()) return true;
             e.preventDefault();
             alert('{tmpl_var name="err_msg_master_tpl_set"}');
         })
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index cccaf07aca..fcd5167a88 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -544,7 +544,7 @@ var ISPConfig = {
 			newVal[newVal.length] = 'n' + ISPConfig.new_tpl_add_id + ':' + addTplId;
 			$('<li>' + addTplText + '</li>').attr('rel', 'n' + ISPConfig.new_tpl_add_id).append(delbtn).appendTo('#template_additional_list ul');
 			$('#template_additional').val(newVal.join('/'));
-			alert('additional template ' + addTplText + ' added to customer');
+			//alert('additional template ' + addTplText + ' added to customer');
 		} else {
 			alert('no additional template selcted');
 		}
@@ -566,7 +566,7 @@ var ISPConfig = {
 				newVal[newVal.length] = oldVal[i];
 			}
 			$('#template_additional').val(newVal.join('/'));
-			alert('additional template ' + addTplText + ' deleted from customer');
+			//alert('additional template ' + addTplText + ' deleted from customer');
 		} else if(tpl_add != '') {
 			// old style
 			var addTemplate = document.getElementById('tpl_add_select').value.split('|',2);
@@ -587,7 +587,7 @@ var ISPConfig = {
 			newVal = newVal.replace(repl, '');
 			newVal = newVal.replace('//', '/');
 			$('#template_additional').val(newVal);
-			alert('additional template ' + addTplText + ' deleted from customer');
+			//alert('additional template ' + addTplText + ' deleted from customer');
 	  } else {
 		alert('no additional template selcted');
 	  }
-- 
GitLab


From 23527d0ea41b062d22938671e3b86bda2b60d9d9 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 21 Oct 2016 18:26:42 +0200
Subject: [PATCH 310/313] Import DNS zones into domain table when domain limits
 module is turned on.

---
 interface/web/admin/system_config_edit.php | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php
index 46abebaac3..1a40791bc2 100644
--- a/interface/web/admin/system_config_edit.php
+++ b/interface/web/admin/system_config_edit.php
@@ -193,6 +193,10 @@ class page_action extends tform_actions {
 				"SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " .
 				"FROM web_domain WHERE type NOT IN ('subdomain','vhostsubdomain')";
 			$app->db->query($sql);
+			$sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " .
+				"SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, SUBSTRING(origin, 1, CHAR_LENGTH(origin) - 1) " .
+				"FROM dns_soa";
+			$app->db->query($sql);
 		}
 		
 		//die(print_r($_FILES));
-- 
GitLab


From 60e884ac8f644b2f453a551bf6e7208e239c3429 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 21 Oct 2016 18:50:28 +0200
Subject: [PATCH 311/313] Fixed #4291 dashboard

---
 interface/web/dashboard/dashboard.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php
index 6e2ec53f2e..4db446eb84 100644
--- a/interface/web/dashboard/dashboard.php
+++ b/interface/web/dashboard/dashboard.php
@@ -188,13 +188,13 @@ if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSIO
 $dashlets_config[$role.'_dashlets_left'] = trim($dashlets_config[$role.'_dashlets_left']);
 $dashlets_config[$role.'_dashlets_right'] = trim($dashlets_config[$role.'_dashlets_right']);
 
-if($dashlets_config[$role.'_dashlets_left'] != ''){
+if($dashlets_config[$role.'_dashlets_left'] != '' || $dashlets_config[$role.'_dashlets_right'] != ''){
 	preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_left'], $matches);
 	$leftcol_dashlets = $matches[1];
 } else {
 	$leftcol_dashlets = $default_leftcol_dashlets;
 }
-if($dashlets_config[$role.'_dashlets_right'] != ''){
+if($dashlets_config[$role.'_dashlets_right'] != '' || $dashlets_config[$role.'_dashlets_left'] != ''){
 	preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_right'], $matches);
 	$rightcol_dashlets = $matches[1];
 } else {
-- 
GitLab


From 91ada5fdc8568f3ff60c6ba2e317299de8cdff48 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 23 Oct 2016 13:24:20 +0200
Subject: [PATCH 312/313] - separate files for LE to avoid conflicts

---
 .../plugins-available/apache2_plugin.inc.php  | 107 ++++++------------
 1 file changed, 34 insertions(+), 73 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index c5f7f24132..990da4f9de 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -260,9 +260,9 @@ class apache2_plugin {
 		if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl');
 
 		$ssl_dir = $data['new']['document_root'].'/ssl';
-		$domain = $data['new']['ssl_domain'];
-		$key_file = $ssl_dir.'/'.$domain.'.key.org';
-		$key_file2 = $ssl_dir.'/'.$domain.'.key';
+		$domain = ($data['new']['ssl_domain'] != '') ? $data['new']['ssl_domain'] : $data['new']['domain'];
+		$key_file = $ssl_dir.'/'.$domain.'.key';
+		$key_file2 = $ssl_dir.'/'.$domain.'.key.org';
 		$csr_file = $ssl_dir.'/'.$domain.'.csr';
 		$crt_file = $ssl_dir.'/'.$domain.'.crt';
 
@@ -322,12 +322,12 @@ class apache2_plugin {
 			$app->system->file_put_contents($ssl_cnf_file, $ssl_cnf);
 
 			$rand_file = escapeshellcmd($rand_file);
-			$key_file = escapeshellcmd($key_file);
-			$openssl_cmd_key_file = $key_file;
-			if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate
 			$key_file2 = escapeshellcmd($key_file2);
 			$openssl_cmd_key_file2 = $key_file2;
 			if(substr($domain, 0, 2) == '*.' && strpos($key_file2, '/ssl/\*.') !== false) $key_file2 = str_replace('/ssl/\*.', '/ssl/*.', $key_file2); // wildcard certificate
+			$key_file = escapeshellcmd($key_file);
+			$openssl_cmd_key_file = $key_file;
+			if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate
 			$ssl_days = 3650;
 			$csr_file = escapeshellcmd($csr_file);
 			$openssl_cmd_csr_file = $csr_file;
@@ -339,9 +339,9 @@ class apache2_plugin {
 
 			if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) {
 
-				exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file 2048");
-				exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file");
-				exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file -out $openssl_cmd_key_file2");
+				exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file2 2048");
+				exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -out $openssl_cmd_csr_file -days $ssl_days -config $config_file");
+				exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file2 -out $openssl_cmd_key_file");
 
 				if(file_exists($web_config['CA_path'].'/openssl.cnf'))
 				{
@@ -350,24 +350,24 @@ class apache2_plugin {
 					if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed.  openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file", LOGLEVEL_ERROR);
 				};
 				if (@filesize($crt_file)==0 || !file_exists($crt_file)){
-					exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file ");
+					exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file ");
 					$app->log("Creating self-signed SSL Cert for: $domain", LOGLEVEL_DEBUG);
 				};
 
 			}
 
-			$app->system->chmod($key_file, 0400);
 			$app->system->chmod($key_file2, 0400);
+			$app->system->chmod($key_file, 0400);
 			@$app->system->unlink($config_file);
 			@$app->system->unlink($rand_file);
 			$ssl_request = $app->system->file_get_contents($csr_file);
 			$ssl_cert = $app->system->file_get_contents($crt_file);
-			$ssl_key2 = $app->system->file_get_contents($key_file2);
+			$ssl_key = $app->system->file_get_contents($key_file);
 			/* Update the DB of the (local) Server */
-			$app->db->query("UPDATE web_domain SET ssl_request = ?, ssl_cert = ?, ssl_key = ? WHERE domain = ?", $ssl_request, $ssl_cert, $ssl_key2, $data['new']['domain']);
+			$app->db->query("UPDATE web_domain SET ssl_request = ?, ssl_cert = ?, ssl_key = ? WHERE domain = ?", $ssl_request, $ssl_cert, $ssl_key, $data['new']['domain']);
 			$app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']);
 			/* Update also the master-DB of the Server-Farm */
-			$app->dbmaster->query("UPDATE web_domain SET ssl_request = ?, ssl_cert = ?, ssl_key = ? WHERE domain = ?", $ssl_request, $ssl_cert, $ssl_key2, $data['new']['domain']);
+			$app->dbmaster->query("UPDATE web_domain SET ssl_request = ?, ssl_cert = ?, ssl_key = ? WHERE domain = ?", $ssl_request, $ssl_cert, $ssl_key, $data['new']['domain']);
 			$app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']);
 		}
 		
@@ -390,13 +390,6 @@ class apache2_plugin {
 		//* Save a SSL certificate to disk
 		if($data["new"]["ssl_action"] == 'save') {
 			$this->ssl_certificate_changed = true;
-			$ssl_dir = $data["new"]["document_root"]."/ssl";
-			$domain = ($data["new"]["ssl_domain"] != '')?$data["new"]["ssl_domain"]:$data["new"]["domain"];
-			$key_file = $ssl_dir.'/'.$domain.'.key.org';
-			$key_file2 = $ssl_dir.'/'.$domain.'.key';
-			$csr_file = $ssl_dir.'/'.$domain.".csr";
-			$crt_file = $ssl_dir.'/'.$domain.".crt";
-			$bundle_file = $ssl_dir.'/'.$domain.".bundle";
 
 			//* Backup files
 			if(file_exists($key_file)){
@@ -425,14 +418,14 @@ class apache2_plugin {
 
 			//* Write the key file, if field is empty then import the key into the db
 			if(trim($data["new"]["ssl_key"]) != '') {
-				$app->system->file_put_contents($key_file2, $data["new"]["ssl_key"]);
-				$app->system->chmod($key_file2, 0400);
+				$app->system->file_put_contents($key_file, $data["new"]["ssl_key"]);
+				$app->system->chmod($key_file, 0400);
 			} else {
-				$ssl_key2 = $app->system->file_get_contents($key_file2);
+				$ssl_key = $app->system->file_get_contents($key_file);
 				/* Update the DB of the (local) Server */
-				$app->db->query("UPDATE web_domain SET ssl_key = ? WHERE domain = ?", $ssl_key2, $data['new']['domain']);
+				$app->db->query("UPDATE web_domain SET ssl_key = ? WHERE domain = ?", $ssl_key, $data['new']['domain']);
 				/* Update also the master-DB of the Server-Farm */
-				$app->dbmaster->query("UPDATE web_domain SET ssl_key = ? WHERE domain = ?", $ssl_key2, $data['new']['domain']);
+				$app->dbmaster->query("UPDATE web_domain SET ssl_key = ? WHERE domain = ?", $ssl_key, $data['new']['domain']);
 			}
 
 			/* Update the DB of the (local) Server */
@@ -445,11 +438,6 @@ class apache2_plugin {
 
 		//* Delete a SSL certificate
 		if($data['new']['ssl_action'] == 'del') {
-			$ssl_dir = $data['new']['document_root'].'/ssl';
-			$domain = ($data["new"]["ssl_domain"] != '')?$data["new"]["ssl_domain"]:$data["new"]["domain"];
-			$csr_file = $ssl_dir.'/'.$domain.'.csr';
-			$crt_file = $ssl_dir.'/'.$domain.'.crt';
-			$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
 			if(file_exists($web_config['CA_path'].'/openssl.cnf') && !is_link($web_config['CA_path'].'/openssl.cnf'))
 			{
 				exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke ".escapeshellcmd($crt_file));
@@ -1153,19 +1141,11 @@ class apache2_plugin {
 		$domain = $data['new']['ssl_domain'];
 		if(!$domain) $domain = $data['new']['domain'];
 		$key_file = $ssl_dir.'/'.$domain.'.key';
+		$key_file2 = $ssl_dir.'/'.$domain.'.key.org';
+		$csr_file = $ssl_dir.'/'.$domain.'.csr';
 		$crt_file = $ssl_dir.'/'.$domain.'.crt';
 		$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
 
-		/*
-		if($domain!='' && $data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file) && (@filesize($crt_file)>0)  && (@filesize($key_file)>0)) {
-			$vhost_data['ssl_enabled'] = 1;
-			$app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG);
-		} else {
-			$vhost_data['ssl_enabled'] = 0;
-			$app->log('SSL Disabled. '.$domain,LOGLEVEL_DEBUG);
-		}
-		*/
-
 		if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') {
 			if(substr($domain, 0, 2) === '*.') {
 				// wildcard domain not yet supported by letsencrypt!
@@ -1175,6 +1155,11 @@ class apache2_plugin {
 			
 			$data['new']['ssl_domain'] = $domain;
 			$vhost_data['ssl_domain'] = $domain;
+
+			$key_file = $ssl_dir.'/'.$domain.'-le.key';
+			$key_file2 = $ssl_dir.'/'.$domain.'-le.key.org';
+			$crt_file = $ssl_dir.'/'.$domain.'-le.crt';
+			$bundle_file = $ssl_dir.'/'.$domain.'-le.bundle';
 		}
 
 		//* Generate Let's Encrypt SSL certificat
@@ -1258,7 +1243,7 @@ class apache2_plugin {
 			//}
 
 			//* check is been correctly created
-			if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) {
+			if(file_exists($crt_tmp_file)) {
 				$date = date("YmdHis");
 				if(is_file($key_file)) {
 					$app->system->copy($key_file, $key_file.'.old'.$date);
@@ -1737,11 +1722,6 @@ class apache2_plugin {
 		unset($tmp_vhost_arr);
 
 		//* Add vhost for ipv4 IP with SSL
-		$ssl_dir = $data['new']['document_root'].'/ssl';
-		$domain = $data['new']['ssl_domain'];
-		$key_file = $ssl_dir.'/'.$domain.'.key';
-		$crt_file = $ssl_dir.'/'.$domain.'.crt';
-
 		if($data['new']['ssl_domain'] != '' && $data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file) && (@filesize($crt_file)>0)  && (@filesize($key_file)>0)) {
 			$tmp_vhost_arr = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 1, 'port' => '443');
 			if(count($rewrite_rules) > 0)  $tmp_vhost_arr = $tmp_vhost_arr + array('redirects' => $rewrite_rules);
@@ -1961,15 +1941,6 @@ class apache2_plugin {
 					$app->system->file_put_contents($vhost_file, "# Apache did not start after modifying this vhost file.\n# Please check file $vhost_file.err for syntax errors.");
 				}
 				if($this->ssl_certificate_changed === true) {
-
-					$ssl_dir = $data['new']['document_root'].'/ssl';
-					$domain = $data['new']['ssl_domain'];
-					$key_file = $ssl_dir.'/'.$domain.'.key.org';
-					$key_file2 = $ssl_dir.'/'.$domain.'.key';
-					$csr_file = $ssl_dir.'/'.$domain.'.csr';
-					$crt_file = $ssl_dir.'/'.$domain.'.crt';
-					$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
-
 					//* Backup the files that might have caused the error
 					if(is_file($key_file)){
 						$app->system->copy($key_file, $key_file.'.err');
@@ -2009,16 +1980,8 @@ class apache2_plugin {
 		// can reset the ssl changed var to false and cleanup some files
 		$this->ssl_certificate_changed = false;
 
-		$ssl_dir = $data['new']['document_root'].'/ssl';
-		$domain = $data['new']['ssl_domain'];
-		$key_file = $ssl_dir.'/'.$domain.'.key.org';
-		$key_file2 = $ssl_dir.'/'.$domain.'.key';
-		$csr_file = $ssl_dir.'/'.$domain.'.csr';
-		$crt_file = $ssl_dir.'/'.$domain.'.crt';
-		$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
-
 		if(@is_file($key_file.'~')) $app->system->unlink($key_file.'~');
-		if(@is_file($key2_file.'~')) $app->system->unlink($key2_file.'~');
+		if(@is_file($key_file2.'~')) $app->system->unlink($key_file2.'~');
 		if(@is_file($crt_file.'~')) $app->system->unlink($crt_file.'~');
 		if(@is_file($csr_file.'~')) $app->system->unlink($csr_file.'~');
 		if(@is_file($bundle_file.'~')) $app->system->unlink($bundle_file.'~');
@@ -2112,16 +2075,14 @@ class apache2_plugin {
 			
 			// remove letsencrypt if it exists (renew will always fail otherwise)
 			
-			$domain = $data['old']['ssl_domain'];
-			if(!$domain) $domain = $data['old']['domain'];
-			if(substr($domain, 0, 2) === '*.') {
+			$old_domain = $data['old']['ssl_domain'];
+			if(!$old_domain) $old_domain = $data['old']['domain'];
+			if(substr($old_domain, 0, 2) === '*.') {
 				// wildcard domain not yet supported by letsencrypt!
-				$domain = substr($domain, 2);
+				$old_domain = substr($old_domain, 2);
 			}
-			//$crt_tmp_file = "/etc/letsencrypt/live/".$domain."/cert.pem";
-			//$key_tmp_file = "/etc/letsencrypt/live/".$domain."/privkey.pem";
-			$le_conf_file = '/etc/letsencrypt/renewal/' . $domain . '.conf';
-			@rename('/etc/letsencrypt/renewal/' . $domain . '.conf', '/etc/letsencrypt/renewal/' . $domain . '.conf~backup');
+			$le_conf_file = '/etc/letsencrypt/renewal/' . $old_domain . '.conf';
+			@rename('/etc/letsencrypt/renewal/' . $old_domain . '.conf', '/etc/letsencrypt/renewal/' . $old_domain . '.conf~backup');
 		}
 
 		//* remove mountpoint from fstab
-- 
GitLab


From f90e18f6826392c02031fe458df70d22528926c4 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 23 Oct 2016 13:31:01 +0200
Subject: [PATCH 313/313] - changed vhost config to reflect ssl changes

---
 server/conf/vhost.conf.master                   | 6 +++---
 server/plugins-available/apache2_plugin.inc.php | 4 ++++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 103be06b3f..9faa2b1c7b 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -60,11 +60,11 @@
 		# <IfModule mod_headers.c>
 		# Header always add Strict-Transport-Security "max-age=15768000"
 		# </IfModule>
-		SSLCertificateFile <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.crt
-		SSLCertificateKeyFile <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.key
+		SSLCertificateFile <tmpl_var name='ssl_crt_file'>
+		SSLCertificateKeyFile <tmpl_var name='ssl_key_file'>
 <tmpl_if name='has_bundle_cert'>
 		<tmpl_if name='apache_version' op='<' value='2.4.8' format='version'>
-		SSLCertificateChainFile <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.bundle
+		SSLCertificateChainFile <tmpl_var name='ssl_bundle_file'>
 		</tmpl_if>
 		<tmpl_if name='apache_version' op='>=' value='2.4' format='version'>
 		SSLUseStapling on
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 26a7f2bd45..536297d215 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1153,6 +1153,10 @@ class apache2_plugin {
 		$crt_file = $ssl_dir.'/'.$domain.'.crt';
 		$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
 
+		$vhost_data['ssl_crt_file'] = $crt_file;
+		$vhost_data['ssl_key_file'] = $key_file;
+		$vhost_data['ssl_bundle_file'] = $bundle_file;
+
 		if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') {
 			if(substr($domain, 0, 2) === '*.') {
 				// wildcard domain not yet supported by letsencrypt!
-- 
GitLab