From 181529089411d6f55333b22d169e87d3f5137eb5 Mon Sep 17 00:00:00 2001
From: latham <latham@ispconfig3>
Date: Thu, 30 Jun 2011 12:03:31 -0400
Subject: [PATCH] Remove Microsoft Line endings. Some files have mixed line endings that make Subverison unhappy

---
 interface/web/mail/lib/lang/fr_mail_user_stats_list.lng      |   18 
 interface/web/admin/lib/lang/fr_users_list.lng               |   20 
 interface/web/designer/lib/lang/fr_form_edit.lng             |   50 
 interface/web/tools/lib/lang/fr.lng                          |   14 
 interface/web/dns/lib/lang/fr_dns_rp.lng                     |   32 
 interface/web/monitor/lib/lang/fr_datalog_list.lng           |   18 
 server/conf/ufw.before.rules.master                          |  156 
 interface/web/admin/lib/lang/fr_groups.lng                   |   12 
 interface/web/sites/lib/lang/fr_shell_user.lng               |   46 
 interface/web/strengthmeter/lib/lang/fr_strengthmeter.lng    |   18 
 interface/web/admin/lib/lang/fr_server_ip.lng                |   16 
 interface/web/designer/lib/lang/fr_module_show.lng           |   34 
 interface/web/dns/lib/lang/fr_dns_mx.lng                     |   34 
 interface/web/help/lib/lang/fr.lng                           |   20 
 interface/web/sites/lib/lang/fr_web_subdomain_list.lng       |   18 
 interface/web/domain/lib/lang/fr.lng                         |   20 
 server/mods-available/remoteaction_core_module.inc.php       |  412 +-
 interface/web/admin/lib/lang/fr_firewall_list.lng            |   18 
 interface/web/sites/lib/lang/fr_cron_list.lng                |   26 
 server/conf/ufw.conf.master                                  |   16 
 interface/web/mail/lib/lang/fr_spamfilter_policy.lng         |   78 
 interface/web/mail/lib/lang/fr_spamfilter_blacklist_list.lng |   20 
 interface/web/sites/lib/lang/fr_web_domain_list.lng          |   18 
 interface/web/designer/lib/lang/fr_form_list.lng             |   16 
 interface/web/designer/lib/lang/fr_module_edit.lng           |   26 
 interface/web/domain/lib/lang/fr_domain_list.lng             |   12 
 interface/web/admin/lib/lang/fr_firewall.lng                 |   24 
 interface/web/dns/lib/lang/fr_dns_alias.lng                  |   32 
 interface/web/dns/lib/lang/fr_dns_hinfo.lng                  |   32 
 interface/web/dns/lib/lang/fr_dns_a.lng                      |   34 
 install/sql/incremental/upd_0009.sql                         |  132 
 interface/web/mail/lib/lang/fr_mail_content_filter_list.lng  |   18 
 interface/web/mail/lib/lang/fr_spamfilter_policy_list.lng    |   20 
 server/plugins-available/ufw_firewall_plugin.inc.php         | 1008 +++---
 interface/web/designer/lib/lang/fr.lng                       |    6 
 interface/web/admin/lib/lang/fr.lng                          |   88 
 interface/web/client/lib/lang/fr_clients_list.lng            |   20 
 interface/web/client/lib/lang/fr_client.lng                  |  204 
 interface/web/dns/lib/lang/fr_dns_a_list.lng                 |   30 
 interface/web/mail/lib/lang/fr_mail_domain_admin_list.lng    |   18 
 interface/web/admin/lib/lang/fr_language_import.lng          |   18 
 interface/web/mail/lib/lang/fr_mail_aliasdomain.lng          |   24 
 interface/web/admin/lib/lang/fr_system_config.lng            |   48 
 interface/web/mail/lib/lang/fr_mail_user_list.lng            |   16 
 interface/web/sites/lib/lang/fr_webdav_user.lng              |   32 
 server/conf/nginx_vhost.conf.master                          |  138 
 interface/web/mail/lib/lang/fr_mail_transport.lng            |   22 
 interface/web/sites/lib/lang/fr.lng                          |   52 
 interface/web/admin/lib/lang/fr_server_config_list.lng       |   10 
 interface/web/dns/lib/lang/fr.lng                            |   42 
 interface/web/remote/monitor.php                             |  250 
 interface/web/admin/lib/lang/fr_server.lng                   |   28 
 interface/web/dns/lib/lang/fr_dns_slave_list.lng             |   18 
 interface/web/mail/lib/lang/fr_spamfilter_users_list.lng     |   22 
 interface/web/mail/lib/lang/fr_mail_spamfilter.lng           |   36 
 interface/web/sites/lib/lang/fr_web_sites_stats_list.lng     |   18 
 interface/web/mail/lib/lang/fr_mail_aliasdomain_list.lng     |   16 
 server/conf/squidRewriteRules.py.master                      |  392 +-
 interface/web/mail/lib/lang/fr_mail_user.lng                 |   86 
 install/tpl/squid.conf.master                                |  448 +-
 interface/web/admin/lib/lang/fr_users.lng                    |   58 
 interface/web/sites/lib/lang/fr_cron.lng                     |   44 
 interface/web/admin/lib/lang/fr_remote_action.lng            |   22 
 interface/web/admin/lib/lang/fr_language_add.lng             |   18 
 interface/web/mail/lib/lang/fr_mail_spamfilter_list.lng      |   18 
 interface/web/mail/lib/lang/fr_mail_user_filter_list.lng     |   16 
 interface/web/admin/lib/lang/fr_server_list.lng              |   24 
 interface/web/domain/lib/lang/fr_domain.lng                  |   14 
 interface/web/monitor/lib/lang/fr_syslog_list.lng            |   16 
 interface/web/dns/lib/lang/fr_dns_wizard.lng                 |   60 
 interface/web/mail/lib/lang/fr_spamfilter_whitelist.lng      |   20 
 interface/web/sites/lib/lang/fr_shell_user_list.lng          |   18 
 interface/web/mail/lib/lang/fr_mail_domain_list.lng          |   16 
 interface/web/mail/lib/lang/fr_mail_blacklist_list.lng       |   22 
 interface/web/mail/lib/lang/fr_mail_domain_catchall_list.lng |   20 
 interface/web/mail/lib/lang/fr_mail_blacklist.lng            |   20 
 interface/web/client/lib/lang/fr_client_del.lng              |   14 
 interface/web/dashboard/lib/lang/fr_dashlet_modules.lng      |    8 
 interface/web/mail/lib/lang/fr_mail_get_list.lng             |   20 
 interface/web/designer/lib/lang/fr_module_nav_item_edit.lng  |   18 
 interface/web/admin/lib/lang/fr_software_package_install.lng |   14 
 interface/lib/lang/fr.lng                                    |   84 
 interface/web/help/lib/lang/fr_support_message.lng           |   16 
 interface/web/sites/lib/lang/fr_web_subdomain.lng            |   82 
 interface/web/dns/lib/lang/fr_dns_slave.lng                  |   30 
 interface/web/admin/lib/lang/fr_server_ip_list.lng           |   14 
 interface/web/mail/lib/lang/fr_mail_whitelist_list.lng       |   22 
 interface/web/mail/lib/lang/fr_mail_user_filter.lng          |   24 
 interface/web/dns/lib/lang/fr_dns_aaaa.lng                   |   32 
 interface/web/mail/lib/lang/fr_mail_forward.lng              |   16 
 interface/web/sites/lib/lang/fr_user_quota_stats_list.lng    |   18 
 interface/web/dns/lib/lang/fr_dns_soa.lng                    |   54 
 interface/web/mail/lib/lang/fr_mail_domain.lng               |   28 
 interface/web/admin/lib/lang/fr_language_edit.lng            |   18 
 interface/web/admin/lib/lang/fr_package_install.lng          |   16 
 interface/web/mail/lib/lang/fr_mail_alias.lng                |   24 
 interface/web/sites/lib/lang/fr_database_list.lng            |   20 
 install/tpl/nginx_proxy.conf.master                          |   68 
 interface/web/sites/lib/lang/fr_ftp_user_list.lng            |   18 
 interface/web/dns/lib/lang/fr_dns_txt.lng                    |   32 
 interface/web/dns/lib/lang/fr_dns_template_list.lng          |   14 
 interface/web/admin/lib/lang/fr_software_repo.lng            |   16 
 interface/web/dashboard/lib/lang/fr.lng                      |   10 
 interface/web/admin/lib/lang/fr_language_list.lng            |   16 
 interface/web/sites/lib/lang/fr_webdav_user_list.lng         |   18 
 interface/web/admin/lib/lang/fr_remote_user_list.lng         |   16 
 interface/web/admin/lib/lang/fr_software_update_list.lng     |   18 
 interface/web/dns/lib/lang/fr_dns_srv.lng                    |   36 
 interface/web/mail/lib/lang/fr_mail_relay_recipient_list.lng |   20 
 interface/web/admin/lib/lang/fr_groups_list.lng              |   16 
 interface/web/admin/lib/lang/fr_remote_user.lng              |   86 
 interface/web/admin/lib/lang/fr_software_package_list.lng    |   22 
 install/tpl/nginx_cache.conf.master                          |   12 
 interface/web/mail/lib/lang/fr_spamfilter_config.lng         |   42 
 interface/web/admin/lib/lang/fr_software_repo_list.lng       |   14 
 interface/web/client/lib/lang/fr_resellers_list.lng          |   20 
 interface/web/client/lib/lang/fr_client_template_list.lng    |   12 
 interface/web/sites/lib/lang/fr_web_aliasdomain_list.lng     |   24 
 install/tpl/ufw.conf.master                                  |   16 
 interface/web/sites/lib/lang/fr_web_domain.lng               |  142 
 interface/web/dns/lib/lang/fr_dns_cname.lng                  |   34 
 interface/web/mail/lib/lang/fr_mail_content_filter.lng       |   20 
 interface/web/mail/lib/lang/fr.lng                           |   96 
 interface/web/sites/lib/lang/fr_database_admin_list.lng      |   22 
 install/setrights.php                                        |  270 
 interface/web/dns/lib/lang/fr_dns_soa_list.lng               |   22 
 server/plugins-available/squid_plugin.inc.php                |  342 +-
 interface/web/sites/lib/lang/fr_web_domain_admin_list.lng    |   20 
 interface/web/mail/lib/lang/fr_mail_domain_catchall.lng      |   20 
 interface/web/admin/lib/lang/fr_language_complete.lng        |   16 
 interface/web/designer/lib/lang/fr_module_nav_edit.lng       |   14 
 interface/web/designer/lib/lang/fr_module_list.lng           |   12 
 interface/web/admin/lib/lang/fr_language_export.lng          |   14 
 interface/web/mail/lib/lang/fr_mail_forward_list.lng         |   18 
 interface/web/mail/lib/lang/fr_mail_transport_list.lng       |   20 
 interface/web/sites/lib/lang/fr_ftp_user.lng                 |   58 
 interface/web/mail/lib/lang/fr_mail_relay_recipient.lng      |   20 
 interface/web/dns/lib/lang/fr_dns_ns.lng                     |   32 
 interface/web/client/lib/lang/fr_client_template.lng         |  128 
 interface/web/designer/lib/lang/fr_form_show.lng             |   38 
 server/plugins-available/nginx_plugin.inc.php                |  736 ++--
 interface/web/mail/lib/lang/fr_spamfilter_config_list.lng    |   12 
 interface/web/admin/lib/lang/fr_server_config.lng            |  156 
 interface/web/mail/lib/lang/fr_spamfilter_blacklist.lng      |   20 
 interface/web/mail/lib/lang/fr_spamfilter_users.lng          |   18 
 server/conf/ufw.default.master                               |   78 
 interface/web/dns/lib/lang/fr_dns_ptr.lng                    |   32 
 server/conf/nginx_rewrites.conf.master                       |   18 
 interface/web/mail/lib/lang/fr_mail_whitelist.lng            |   20 
 interface/web/mail/lib/lang/fr_spamfilter_whitelist_list.lng |   20 
 interface/web/tools/lib/lang/fr_usersettings.lng             |   18 
 interface/web/mail/lib/lang/fr_mail_get.lng                  |   34 
 interface/web/help/lib/lang/fr_support_message_list.lng      |   14 
 interface/web/dns/lib/lang/fr_dns_template.lng               |   14 
 interface/web/sites/lib/lang/fr_database.lng                 |   52 
 interface/web/monitor/lib/lang/fr.lng                        |  292 
 interface/web/mail/lib/lang/fr_mail_alias_list.lng           |   18 
 interface/web/dashboard/lib/lang/fr_dashlet_limits.lng       |   60 
 interface/web/client/lib/lang/fr_reseller.lng                |  206 
 interface/web/client/lib/lang/fr.lng                         |   28 
 160 files changed, 4,639 insertions(+), 4,639 deletions(-)

diff --git a/install/setrights.php b/install/setrights.php
index 89e2077..1124136 100644
--- a/install/setrights.php
+++ b/install/setrights.php
@@ -1,135 +1,135 @@
-<?php
-/*
-Copyright (c) 2007-2011, Till Brehm, projektfarm Gmbh and Oliver Vogel , Meins und Vogel
-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.
-*/
-
-/*
-	ISPConfig 3 Set Rights. Tries to correct the rights of the clients if they are wrong
-*/
-
-error_reporting(E_ALL|E_STRICT);
-
-//** The banner on the command line
-echo "\n\n".str_repeat('-',80)."\n";
-echo " _____ ___________   _____              __ _         ____
-|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
-  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
-  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
- _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
- \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
-                                              __/ |
-                                             |___/ ";
-	echo "\n".str_repeat('-',80)."\n";
-	echo "\n\n>>This script tries to repair the client rights  \n\n";
-
-//** Include the library with the basic installer functions
-require_once('lib/install.lib.php');
-
-//** Include the library with the basic updater functions
-require_once('lib/update.lib.php');
-
-//** Include the base class of the installer class
-require_once('lib/installer_base.lib.php');
-
-//** Ensure that current working directory is install directory
-$cur_dir = getcwd();
-if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n");
-
-//** Get distribution identifier
-$dist = get_distname();
-
-include_once("/usr/local/ispconfig/server/lib/config.inc.php");
-$conf_old = $conf;
-unset($conf);
-
-if($dist['id'] == '') die('Linux distribution or version not recognized.');
-
-//** Include the distribution-specific installer class library and configuration
-if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php');
-include_once('dist/lib/'.$dist['id'].'.lib.php');
-include_once('dist/conf/'.$dist['id'].'.conf.php');
-
-//** Get hostname
-exec('hostname -f', $tmp_out);
-$conf['hostname'] = $tmp_out[0];
-unset($tmp_out);
-
-//* Check if this is a master / slave setup
-$conf['mysql']['master_slave_setup'] = 'n';
-if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) {
-	$conf['mysql']['master_slave_setup'] = 'y';
-}
-
-/*
- * Try to read the DB-admin settings
- */
-$clientdb_host			= '';
-$clientdb_user			= '';
-$clientdb_password		= '';
-include_once("/usr/local/ispconfig/server/lib/mysql_clientdb.conf");
-$conf["mysql"]["admin_user"] = $clientdb_user;
-$conf["mysql"]["admin_password"] = $clientdb_password;
-$clientdb_host			= '';
-$clientdb_user			= '';
-$clientdb_password		= '';
-
-//** There is a error if user for mysql admin_password if empty
-if( empty($conf["mysql"]["admin_password"]) ) {
-	die("internal error - MYSQL-Root passord not known");
-}
-
-$inst = new installer();
-
-//** Initialize the MySQL server connection
-include_once('lib/mysql.lib.php');
-
-//* initialize the database
-$inst->db = new db();
-
-/*
- * The next line is a bit tricky!
- * At the automated update we have no connection to the master-db (we don't need it, because
- * there are only TWO points, where this is needed)
- * 1) update the rights --> the autoupdater sets the rights of all clients when the server is
- *    autoupdated)
- * 2) update the server-settings (is web installed, is mail installed) --> the autoupdates
- *    doesn't change any of this settings, so there ist no need to update this.
- * This means, the autoupdater did not need any connection to the master-db (only to the local bd
- * of the master-server). To avoid any problems, we set the master-db to the local one.
- */
-$inst->dbmaster = $inst->db;
-
-/*
- * If it is NOT a master-slave - Setup then we are at the Master-DB. So set all rights
-*/
-if($conf['mysql']['master_slave_setup'] != 'y') {
-	$inst->grant_master_database_rights(true);
-}
-
-echo "finished.\n";
-
-?>
+<?php
+/*
+Copyright (c) 2007-2011, Till Brehm, projektfarm Gmbh and Oliver Vogel , Meins und Vogel
+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.
+*/
+
+/*
+	ISPConfig 3 Set Rights. Tries to correct the rights of the clients if they are wrong
+*/
+
+error_reporting(E_ALL|E_STRICT);
+
+//** The banner on the command line
+echo "\n\n".str_repeat('-',80)."\n";
+echo " _____ ___________   _____              __ _         ____
+|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
+  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
+  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
+ _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
+ \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
+                                              __/ |
+                                             |___/ ";
+	echo "\n".str_repeat('-',80)."\n";
+	echo "\n\n>>This script tries to repair the client rights  \n\n";
+
+//** Include the library with the basic installer functions
+require_once('lib/install.lib.php');
+
+//** Include the library with the basic updater functions
+require_once('lib/update.lib.php');
+
+//** Include the base class of the installer class
+require_once('lib/installer_base.lib.php');
+
+//** Ensure that current working directory is install directory
+$cur_dir = getcwd();
+if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n");
+
+//** Get distribution identifier
+$dist = get_distname();
+
+include_once("/usr/local/ispconfig/server/lib/config.inc.php");
+$conf_old = $conf;
+unset($conf);
+
+if($dist['id'] == '') die('Linux distribution or version not recognized.');
+
+//** Include the distribution-specific installer class library and configuration
+if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php');
+include_once('dist/lib/'.$dist['id'].'.lib.php');
+include_once('dist/conf/'.$dist['id'].'.conf.php');
+
+//** Get hostname
+exec('hostname -f', $tmp_out);
+$conf['hostname'] = $tmp_out[0];
+unset($tmp_out);
+
+//* Check if this is a master / slave setup
+$conf['mysql']['master_slave_setup'] = 'n';
+if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) {
+	$conf['mysql']['master_slave_setup'] = 'y';
+}
+
+/*
+ * Try to read the DB-admin settings
+ */
+$clientdb_host			= '';
+$clientdb_user			= '';
+$clientdb_password		= '';
+include_once("/usr/local/ispconfig/server/lib/mysql_clientdb.conf");
+$conf["mysql"]["admin_user"] = $clientdb_user;
+$conf["mysql"]["admin_password"] = $clientdb_password;
+$clientdb_host			= '';
+$clientdb_user			= '';
+$clientdb_password		= '';
+
+//** There is a error if user for mysql admin_password if empty
+if( empty($conf["mysql"]["admin_password"]) ) {
+	die("internal error - MYSQL-Root passord not known");
+}
+
+$inst = new installer();
+
+//** Initialize the MySQL server connection
+include_once('lib/mysql.lib.php');
+
+//* initialize the database
+$inst->db = new db();
+
+/*
+ * The next line is a bit tricky!
+ * At the automated update we have no connection to the master-db (we don't need it, because
+ * there are only TWO points, where this is needed)
+ * 1) update the rights --> the autoupdater sets the rights of all clients when the server is
+ *    autoupdated)
+ * 2) update the server-settings (is web installed, is mail installed) --> the autoupdates
+ *    doesn't change any of this settings, so there ist no need to update this.
+ * This means, the autoupdater did not need any connection to the master-db (only to the local bd
+ * of the master-server). To avoid any problems, we set the master-db to the local one.
+ */
+$inst->dbmaster = $inst->db;
+
+/*
+ * If it is NOT a master-slave - Setup then we are at the Master-DB. So set all rights
+*/
+if($conf['mysql']['master_slave_setup'] != 'y') {
+	$inst->grant_master_database_rights(true);
+}
+
+echo "finished.\n";
+
+?>
diff --git a/install/sql/incremental/upd_0009.sql b/install/sql/incremental/upd_0009.sql
index 9da60c1..ba20b6b 100644
--- a/install/sql/incremental/upd_0009.sql
+++ b/install/sql/incremental/upd_0009.sql
@@ -1,66 +1,66 @@
-CREATE TABLE IF NOT EXISTS `proxy_reverse` (
-  `rewrite_id` int(11) NOT NULL auto_increment,
-  `sys_userid` int(11) unsigned NOT NULL default '0',
-  `sys_groupid` int(11) unsigned NOT NULL default '0',
-  `sys_perm_user` varchar(5) default NULL,
-  `sys_perm_group` varchar(5) default NULL,
-  `sys_perm_other` varchar(5) default NULL,
-  `server_id` int(11) unsigned NOT NULL default '0',
-  `rewrite_url_src` varchar(100) NOT NULL,
-  `rewrite_url_dst` varchar(100) NOT NULL,
-  `active` enum('n','y') NOT NULL default 'y',
-  PRIMARY KEY  (`rewrite_id`)
-) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-
-
-CREATE TABLE IF NOT EXISTS `firewall_filter` (
-  `firewall_id` int(11) unsigned NOT NULL auto_increment,
-  `sys_userid` int(11) unsigned NOT NULL default '0',
-  `domain_id` int(11) NOT NULL,
-  `sys_groupid` int(11) unsigned NOT NULL default '0',
-  `sys_perm_user` varchar(5) default NULL,
-  `sys_perm_group` varchar(5) default NULL,
-  `sys_perm_other` varchar(5) default NULL,
-  `server_id` int(11) unsigned NOT NULL default '0',
-  `rule_name` varchar(100) default NULL,
-  `rule_id` int(11) default 1,
-  `src_ip` varchar(20) NOT NULL,
-  `src_netmask` varchar(20) NOT NULL,
-  `dst_ip` varchar(20) NOT NULL,
-  `dst_netmask` varchar(20) NOT NULL,
-  `src_from_port` varchar(10) NOT NULL,
-  `src_to_port` varchar(10) NOT NULL,
-  `dst_to_port` varchar(10) NOT NULL,
-  `dst_from_port` varchar(10) NOT NULL,
-  `protocol` varchar(10) default 'tcp',
-  `inbound_policy` enum('allow','deny','reject','limit') default 'allow',
-  `outbound_policy` enum('allow','deny','reject','limit') default 'allow',
-  `active` enum('n','y') NOT NULL default 'y',
-  `client_id` int(11) NOT NULL,
-  PRIMARY KEY  (`firewall_id`)
-) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `firewall_forward` (
-  `firewall_id` int(11) unsigned NOT NULL auto_increment,
-  `sys_userid` int(11) unsigned NOT NULL default '0',
-  `domain_id` int(11) NOT NULL,
-  `sys_groupid` int(11) unsigned NOT NULL default '0',
-  `sys_perm_user` varchar(5) default NULL,
-  `sys_perm_group` varchar(5) default NULL,
-  `sys_perm_other` varchar(5) default NULL,
-  `server_id` int(11) unsigned NOT NULL default '0',
-  `application_name` varchar(100) default NULL,
-  `dst_ip` varchar(20) NOT NULL,
-  `src_from_port` varchar(10) NOT NULL,
-  `src_to_port` varchar(10) NOT NULL,
-  `dst_to_port` varchar(10) NOT NULL,
-  `dst_from_port` varchar(10) NOT NULL,
-  `protocol` int(3) default 0,
-  `active` enum('n','y') NOT NULL default 'y',
-  `client_id` int(11) NOT NULL,
-  PRIMARY KEY  (`firewall_id`)
-) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
-
-alter table `server` add column `proxy_server` tinyint(1) not null after `vserver_server`;
-alter table `server` add column `firewall_server` tinyint(1) not null after `proxy_server`;
-alter table `web_domain` add column `nginx_directives` mediumtext not null after `apache_directives`;
+CREATE TABLE IF NOT EXISTS `proxy_reverse` (
+  `rewrite_id` int(11) NOT NULL auto_increment,
+  `sys_userid` int(11) unsigned NOT NULL default '0',
+  `sys_groupid` int(11) unsigned NOT NULL default '0',
+  `sys_perm_user` varchar(5) default NULL,
+  `sys_perm_group` varchar(5) default NULL,
+  `sys_perm_other` varchar(5) default NULL,
+  `server_id` int(11) unsigned NOT NULL default '0',
+  `rewrite_url_src` varchar(100) NOT NULL,
+  `rewrite_url_dst` varchar(100) NOT NULL,
+  `active` enum('n','y') NOT NULL default 'y',
+  PRIMARY KEY  (`rewrite_id`)
+) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
+
+
+CREATE TABLE IF NOT EXISTS `firewall_filter` (
+  `firewall_id` int(11) unsigned NOT NULL auto_increment,
+  `sys_userid` int(11) unsigned NOT NULL default '0',
+  `domain_id` int(11) NOT NULL,
+  `sys_groupid` int(11) unsigned NOT NULL default '0',
+  `sys_perm_user` varchar(5) default NULL,
+  `sys_perm_group` varchar(5) default NULL,
+  `sys_perm_other` varchar(5) default NULL,
+  `server_id` int(11) unsigned NOT NULL default '0',
+  `rule_name` varchar(100) default NULL,
+  `rule_id` int(11) default 1,
+  `src_ip` varchar(20) NOT NULL,
+  `src_netmask` varchar(20) NOT NULL,
+  `dst_ip` varchar(20) NOT NULL,
+  `dst_netmask` varchar(20) NOT NULL,
+  `src_from_port` varchar(10) NOT NULL,
+  `src_to_port` varchar(10) NOT NULL,
+  `dst_to_port` varchar(10) NOT NULL,
+  `dst_from_port` varchar(10) NOT NULL,
+  `protocol` varchar(10) default 'tcp',
+  `inbound_policy` enum('allow','deny','reject','limit') default 'allow',
+  `outbound_policy` enum('allow','deny','reject','limit') default 'allow',
+  `active` enum('n','y') NOT NULL default 'y',
+  `client_id` int(11) NOT NULL,
+  PRIMARY KEY  (`firewall_id`)
+) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `firewall_forward` (
+  `firewall_id` int(11) unsigned NOT NULL auto_increment,
+  `sys_userid` int(11) unsigned NOT NULL default '0',
+  `domain_id` int(11) NOT NULL,
+  `sys_groupid` int(11) unsigned NOT NULL default '0',
+  `sys_perm_user` varchar(5) default NULL,
+  `sys_perm_group` varchar(5) default NULL,
+  `sys_perm_other` varchar(5) default NULL,
+  `server_id` int(11) unsigned NOT NULL default '0',
+  `application_name` varchar(100) default NULL,
+  `dst_ip` varchar(20) NOT NULL,
+  `src_from_port` varchar(10) NOT NULL,
+  `src_to_port` varchar(10) NOT NULL,
+  `dst_to_port` varchar(10) NOT NULL,
+  `dst_from_port` varchar(10) NOT NULL,
+  `protocol` int(3) default 0,
+  `active` enum('n','y') NOT NULL default 'y',
+  `client_id` int(11) NOT NULL,
+  PRIMARY KEY  (`firewall_id`)
+) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
+
+alter table `server` add column `proxy_server` tinyint(1) not null after `vserver_server`;
+alter table `server` add column `firewall_server` tinyint(1) not null after `proxy_server`;
+alter table `web_domain` add column `nginx_directives` mediumtext not null after `apache_directives`;
diff --git a/install/tpl/nginx_cache.conf.master b/install/tpl/nginx_cache.conf.master
index 1cd2863..bd51da6 100644
--- a/install/tpl/nginx_cache.conf.master
+++ b/install/tpl/nginx_cache.conf.master
@@ -1,6 +1,6 @@
-proxy_temp_path /var/cache/nginx/temp;
-proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=global:60m inactive=15m max_size=1G;
-proxy_cache_valid    200 302 10m;
-proxy_cache_valid    301 1h;
-proxy_cache_valid    404 3m;
-proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
+proxy_temp_path /var/cache/nginx/temp;
+proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=global:60m inactive=15m max_size=1G;
+proxy_cache_valid    200 302 10m;
+proxy_cache_valid    301 1h;
+proxy_cache_valid    404 3m;
+proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
diff --git a/install/tpl/nginx_proxy.conf.master b/install/tpl/nginx_proxy.conf.master
index d8711d0..bb19647 100644
--- a/install/tpl/nginx_proxy.conf.master
+++ b/install/tpl/nginx_proxy.conf.master
@@ -1,34 +1,34 @@
-proxy_cache global;
-proxy_redirect          off;
-proxy_set_header        Host            $host;
-proxy_set_header        X-Real-IP       $remote_addr;
-proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-proxy_pass_header       Set-Cookie;
-client_max_body_size    10m;
-client_body_buffer_size 128k;
-proxy_connect_timeout   90;
-proxy_send_timeout      90;
-proxy_read_timeout      90;
-proxy_buffers           32 4k;
-
-set $cache_key $scheme$host$uri$is_args$args$cookie_user;
-proxy_cache_key $cache_key;
-proxy_cache_valid 200 10h;
-expires 3d;
-
-### force timeouts if one of backend is died ##
-proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
-
-location = /status {
-        stub_status on;
-        allow 127.0.0.1;
-        allow 192.168.1.0;
-        deny all;
-}
-
-location ~ /purge(/.*) {
-        allow 127.0.0.1;
-        allow 192.168.1.0;
-        deny all;
-        proxy_cache_purge global $cache_key;
-}
+proxy_cache global;
+proxy_redirect          off;
+proxy_set_header        Host            $host;
+proxy_set_header        X-Real-IP       $remote_addr;
+proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+proxy_pass_header       Set-Cookie;
+client_max_body_size    10m;
+client_body_buffer_size 128k;
+proxy_connect_timeout   90;
+proxy_send_timeout      90;
+proxy_read_timeout      90;
+proxy_buffers           32 4k;
+
+set $cache_key $scheme$host$uri$is_args$args$cookie_user;
+proxy_cache_key $cache_key;
+proxy_cache_valid 200 10h;
+expires 3d;
+
+### force timeouts if one of backend is died ##
+proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
+
+location = /status {
+        stub_status on;
+        allow 127.0.0.1;
+        allow 192.168.1.0;
+        deny all;
+}
+
+location ~ /purge(/.*) {
+        allow 127.0.0.1;
+        allow 192.168.1.0;
+        deny all;
+        proxy_cache_purge global $cache_key;
+}
diff --git a/install/tpl/squid.conf.master b/install/tpl/squid.conf.master
index 2ae00d2..c168fd0 100644
--- a/install/tpl/squid.conf.master
+++ b/install/tpl/squid.conf.master
@@ -1,224 +1,224 @@
-
-# This configuration file requires squid 2.5+.  It is untested with squid 3.x.
-
-# BASIC CONFIGURATION
-# ------------------------------------------------------------------------------
-
-visible_hostname {server_name}
-
-
-
-# port on which to listen
-
-http_port {ip_address}:80 vhost defaultsite={server_name}
-
-
-# set cache directory and size (1000 MB) - be sure to set the cache size to
-# about 10% less than the physical space available to leave room for squid's
-# swap files and other temp files
-cache_dir ufs /var/spool/squid 100 16 256
-cache_mgr webmaster@{server_name}
-
-
-
-
-# LOGS
-# ------------------------------------------------------------------------------
-log_icp_queries off
-cache_access_log /var/log/squid/access.log
-cache_log /var/log/squid/cache.log
-cache_store_log /var/log/squid/store.log
-cache_effective_user nobody
-cache_effective_group nogroup
-# emulate_httpd_log off
-
-
-# RESOURCES
-# ------------------------------------------------------------------------------
-# amount of memory used for caching recently accessed objects - defaults to 8 MB
-cache_mem 64 MB  
-maximum_object_size 10 MB 		# max cached object size
-maximum_object_size_in_memory 300 KB	# max cached-in-memory object size
-
-
-# ACCESS CONTROL
-# ------------------------------------------------------------------------------
-
-# Basic ACLs
-acl all src 0.0.0.0/0.0.0.0
-acl localhost src 127.0.0.1/32
-acl ssl_ports port 443 563
-acl safe_ports port 80 443
-
-acl openvz_instances src 192.168.1.0/24
-acl squid_server src localhost
-acl manager proto cache_object
-acl connect method connect
-
-
-# deny requests to unknown ports
-http_access deny !safe_ports
-
-acl accelerated_protocols proto http https
-acl accelerated_domains dstdomain url_regex -i "{config_dir}/domains.txt"
-acl accelerated_ports myport 80 443 
-
-http_access allow accelerated_domains
-http_access allow accelerated_ports
-http_access allow accelerated_protocols
-
-
-acl purge method PURGE
-http_access allow squid_server purge
-http_access allow openvz_instances purge
-http_access deny purge
-
-# Reply access
-http_reply_access allow all
-
-# Cache manager setup - cache manager can only connect from localhost
-# only allow cache manager access from localhost
-http_access allow manager localhost
-http_access deny manager
-# deny connect to other than ssl ports
-http_access deny connect !ssl_ports
-
-# ICP access - anybody can access icp methods
-icp_access allow localhost
-
-# And finally deny all other access to this proxy
-http_access deny all
-
-
-# CACHE PEERS
-# ------------------------------------------------------------------------------
-
-# CONFIGURE THE CACHE PEERS. FIRST PORT IS THE HTTP PORT, SECOND PORT
-# IS THE ICP PORT. REMEMBER TO ENABLE 'icp-server' ON YOUR 'zope.conf'
-# LISTENING ON THE ICP PORT YOU USE HERE.
-# acl in_backendpool dstdomain backendpool
-# cache_peer 127.0.0.1 parent 8080 9090 no-digest no-netdb-exchange
-# cache_peer 192.168.0.3 parent 8081 9091 no-digest no-netdb-exchange
-
-# cache_peer_access 127.0.0.1 allow in_backendpool
-# cache_peer_access 127.0.0.1 deny all
-
-# cache_peer_access 192.168.0.3 allow in_backendpool
-# cache_peer_access 192.168.0.3 deny all
-
-# IF YOU NEED TO FORWARD REQUESTS TO HOSTS NOT IN THE POOL THIS IS
-# WHERE YOU ALLOW THE TARGET DOMAINS
-# acl local_servers dstdomain some.mysite.com other.mysite.com
-always_direct allow all
-
-# THE FOLLOWING DIRECTIVE IS NEEDED TO MAKE 'backendpool' RESOLVE TO
-# THE POOL OF CACHE PEERS.
-# never_direct allow all
-# icp_access allow all
-
-# PROXY ON, NEEDED TO MAKE CACHE PEERS INTERCOMMUNICATE
-# httpd_accel_with_proxy on
-
-
-# REDIRECTOR PROGRAM
-# ------------------------------------------------------------------------------
-
-
-url_rewrite_program {config_dir}/iRedirector.py
-url_rewrite_children 1
-url_rewrite_concurrency 20
-url_rewrite_host_header off
-
-
-# SPECIFY WHAT REQUESTS SQUID SHOULD CACHE
-# ------------------------------------------------------------------------------
-
-# Control what squid caches.  We want to have squid handle content that is not
-# personalized and that does not require any kind of authorization.
-#
-# 1) Always cache static content in squid
-
-acl static_content urlpath_regex -i \.(jpg|jpeg|gif|png|tiff|tif|svg|swf|ico|css|js|vsd|doc|ppt|pps|xls|pdf|mp3|mp4|m4a|ogg|mov|avi|wmv|sxw|zip|gz|bz2|tgz|tar|rar|odc|odb|odf|odg|odi|odp|ods|odt|sxc|sxd|sxi|sxw|dmg|torrent|deb|msi|iso|rpm)$
-no_cache allow static_content
-
-# 2) (OPTIONAL) Prevent squid from caching an item that is the result of a POST
-
-acl post_requests method POST
-no_cache deny post_requests
-
-# 3) (OPTIONAL) Prevent squid from caching items with items in the query string
-# If this is uncommented, squid will treat a url with 2 different query strings
-# as 2 different urls when caching.
-
-# XXX: where did this example go?
-
-# 4) Prevent squid from caching requests from authenticated users or conditional
-# GETs with an If-None-Match header (since squid doesn't know about ETags)
-# We use an external python method to check these conditions and pass in the
-# value of the __ac cookie (two different ways to allow for different cookie
-# delimiters), the HTTP Authorization header, and the If-None-Match header.
-#
-# Squid caches the results of the external python method, so for debugging, set
-# the options ttl=0 negative_ttl=0 so you can see what is going on
-
-# external_acl_type is_cacheable_type children=20 ttl=0 negative_ttl=0 %{Cookie:__ac} %{Cookie:;__ac} %{Authorization} %{If-None-Match} /etc/squid/squidAcl.py
-
-#external_acl_type is_cacheable_type protocol=2.5 children=20 %{Cookie:__ac} %{Cookie:;__ac} %{Authorization} %{If-None-Match} /etc/squid/squidAcl.py
-#acl is_cacheable external is_cacheable_type
-#no_cache allow is_cacheable
-
-
-collapsed_forwarding on
-#refresh_stale_hit on
-
-
-# Explicitly disallow squid from handling anything else
-no_cache deny all
-
-
-# SPECIFY EFFECTS OF A BROWSER REFRESH
-# ------------------------------------------------------------------------------
-
-# RELOAD_INTO_IMS CAUSES WEIRD SQUID BEHAVIOR - IT APPEARS TO CAUSE FILES WITH
-# INAPPROPRIATE HEADERS TO END UP IN THE CACHE, AND AS A RESULT BROWSERS END
-# UP MAKING LOTS OF EXTRA (CONDITIONAL) REQUESTS WHEN THEY WOULD OTHERWISE MAKE
-# NO REQUESTS.  DO NOT USE!
-
-# Tell squid how to handle expiration times for content with no explicit expiration
-# Assume static content is fresh for at least an hour and at most a day
-#refresh_pattern -i  \.(jpg|jpeg|gif|png|tiff|tif|svg|swf|ico|css|js|vsd|doc|ppt|pps|xls|pdf|mp3|mp4|m4a|ogg|mov|avi|wmv|sxw|zip|gz|bz2|tar|rar|odc|odb|odf|odg|odi|odp|ods|odt|sxc|sxd|sxi|sxw|dmg|torrent|deb|msi|iso|rpm)$ 60 50% 1440 reload-into-ims
-#refresh_pattern . 0 20%	1440
-
-# Change force-refresh requests into conditional gets using if-modified-since
-#reload_into_ims on
-
-# DEBUGGING
-# ------------------------------------------------------------------------------
-# debug_options ALL,1 33,2 # use this for debugging acls
- debug_options ALL,8
-
-
-# MISCELLANEOUS
-# ------------------------------------------------------------------------------
-# have squid handle all requests with ranges
-# range_offset_limit -1
-
-# amount of time squid waits for existing requests to be serviced before shutting down
-shutdown_lifetime 1 seconds
-
-# allow squid to process multiple requests simultaneously if client is pipelining
-pipeline_prefetch on
-
-# allow white spaces to be included in URLs
-uri_whitespace allow
-
-
-# OTHER PARAMETERS THAT MAY BE OF INTEREST
-# ------------------------------------------------------------------------------
-
-# logfile_rotate 0
-# reload_into_ims off
-#error_directory /usr/local/squid/share/errors/English
-
- 
-
+
+# This configuration file requires squid 2.5+.  It is untested with squid 3.x.
+
+# BASIC CONFIGURATION
+# ------------------------------------------------------------------------------
+
+visible_hostname {server_name}
+
+
+
+# port on which to listen
+
+http_port {ip_address}:80 vhost defaultsite={server_name}
+
+
+# set cache directory and size (1000 MB) - be sure to set the cache size to
+# about 10% less than the physical space available to leave room for squid's
+# swap files and other temp files
+cache_dir ufs /var/spool/squid 100 16 256
+cache_mgr webmaster@{server_name}
+
+
+
+
+# LOGS
+# ------------------------------------------------------------------------------
+log_icp_queries off
+cache_access_log /var/log/squid/access.log
+cache_log /var/log/squid/cache.log
+cache_store_log /var/log/squid/store.log
+cache_effective_user nobody
+cache_effective_group nogroup
+# emulate_httpd_log off
+
+
+# RESOURCES
+# ------------------------------------------------------------------------------
+# amount of memory used for caching recently accessed objects - defaults to 8 MB
+cache_mem 64 MB  
+maximum_object_size 10 MB 		# max cached object size
+maximum_object_size_in_memory 300 KB	# max cached-in-memory object size
+
+
+# ACCESS CONTROL
+# ------------------------------------------------------------------------------
+
+# Basic ACLs
+acl all src 0.0.0.0/0.0.0.0
+acl localhost src 127.0.0.1/32
+acl ssl_ports port 443 563
+acl safe_ports port 80 443
+
+acl openvz_instances src 192.168.1.0/24
+acl squid_server src localhost
+acl manager proto cache_object
+acl connect method connect
+
+
+# deny requests to unknown ports
+http_access deny !safe_ports
+
+acl accelerated_protocols proto http https
+acl accelerated_domains dstdomain url_regex -i "{config_dir}/domains.txt"
+acl accelerated_ports myport 80 443 
+
+http_access allow accelerated_domains
+http_access allow accelerated_ports
+http_access allow accelerated_protocols
+
+
+acl purge method PURGE
+http_access allow squid_server purge
+http_access allow openvz_instances purge
+http_access deny purge
+
+# Reply access
+http_reply_access allow all
+
+# Cache manager setup - cache manager can only connect from localhost
+# only allow cache manager access from localhost
+http_access allow manager localhost
+http_access deny manager
+# deny connect to other than ssl ports
+http_access deny connect !ssl_ports
+
+# ICP access - anybody can access icp methods
+icp_access allow localhost
+
+# And finally deny all other access to this proxy
+http_access deny all
+
+
+# CACHE PEERS
+# ------------------------------------------------------------------------------
+
+# CONFIGURE THE CACHE PEERS. FIRST PORT IS THE HTTP PORT, SECOND PORT
+# IS THE ICP PORT. REMEMBER TO ENABLE 'icp-server' ON YOUR 'zope.conf'
+# LISTENING ON THE ICP PORT YOU USE HERE.
+# acl in_backendpool dstdomain backendpool
+# cache_peer 127.0.0.1 parent 8080 9090 no-digest no-netdb-exchange
+# cache_peer 192.168.0.3 parent 8081 9091 no-digest no-netdb-exchange
+
+# cache_peer_access 127.0.0.1 allow in_backendpool
+# cache_peer_access 127.0.0.1 deny all
+
+# cache_peer_access 192.168.0.3 allow in_backendpool
+# cache_peer_access 192.168.0.3 deny all
+
+# IF YOU NEED TO FORWARD REQUESTS TO HOSTS NOT IN THE POOL THIS IS
+# WHERE YOU ALLOW THE TARGET DOMAINS
+# acl local_servers dstdomain some.mysite.com other.mysite.com
+always_direct allow all
+
+# THE FOLLOWING DIRECTIVE IS NEEDED TO MAKE 'backendpool' RESOLVE TO
+# THE POOL OF CACHE PEERS.
+# never_direct allow all
+# icp_access allow all
+
+# PROXY ON, NEEDED TO MAKE CACHE PEERS INTERCOMMUNICATE
+# httpd_accel_with_proxy on
+
+
+# REDIRECTOR PROGRAM
+# ------------------------------------------------------------------------------
+
+
+url_rewrite_program {config_dir}/iRedirector.py
+url_rewrite_children 1
+url_rewrite_concurrency 20
+url_rewrite_host_header off
+
+
+# SPECIFY WHAT REQUESTS SQUID SHOULD CACHE
+# ------------------------------------------------------------------------------
+
+# Control what squid caches.  We want to have squid handle content that is not
+# personalized and that does not require any kind of authorization.
+#
+# 1) Always cache static content in squid
+
+acl static_content urlpath_regex -i \.(jpg|jpeg|gif|png|tiff|tif|svg|swf|ico|css|js|vsd|doc|ppt|pps|xls|pdf|mp3|mp4|m4a|ogg|mov|avi|wmv|sxw|zip|gz|bz2|tgz|tar|rar|odc|odb|odf|odg|odi|odp|ods|odt|sxc|sxd|sxi|sxw|dmg|torrent|deb|msi|iso|rpm)$
+no_cache allow static_content
+
+# 2) (OPTIONAL) Prevent squid from caching an item that is the result of a POST
+
+acl post_requests method POST
+no_cache deny post_requests
+
+# 3) (OPTIONAL) Prevent squid from caching items with items in the query string
+# If this is uncommented, squid will treat a url with 2 different query strings
+# as 2 different urls when caching.
+
+# XXX: where did this example go?
+
+# 4) Prevent squid from caching requests from authenticated users or conditional
+# GETs with an If-None-Match header (since squid doesn't know about ETags)
+# We use an external python method to check these conditions and pass in the
+# value of the __ac cookie (two different ways to allow for different cookie
+# delimiters), the HTTP Authorization header, and the If-None-Match header.
+#
+# Squid caches the results of the external python method, so for debugging, set
+# the options ttl=0 negative_ttl=0 so you can see what is going on
+
+# external_acl_type is_cacheable_type children=20 ttl=0 negative_ttl=0 %{Cookie:__ac} %{Cookie:;__ac} %{Authorization} %{If-None-Match} /etc/squid/squidAcl.py
+
+#external_acl_type is_cacheable_type protocol=2.5 children=20 %{Cookie:__ac} %{Cookie:;__ac} %{Authorization} %{If-None-Match} /etc/squid/squidAcl.py
+#acl is_cacheable external is_cacheable_type
+#no_cache allow is_cacheable
+
+
+collapsed_forwarding on
+#refresh_stale_hit on
+
+
+# Explicitly disallow squid from handling anything else
+no_cache deny all
+
+
+# SPECIFY EFFECTS OF A BROWSER REFRESH
+# ------------------------------------------------------------------------------
+
+# RELOAD_INTO_IMS CAUSES WEIRD SQUID BEHAVIOR - IT APPEARS TO CAUSE FILES WITH
+# INAPPROPRIATE HEADERS TO END UP IN THE CACHE, AND AS A RESULT BROWSERS END
+# UP MAKING LOTS OF EXTRA (CONDITIONAL) REQUESTS WHEN THEY WOULD OTHERWISE MAKE
+# NO REQUESTS.  DO NOT USE!
+
+# Tell squid how to handle expiration times for content with no explicit expiration
+# Assume static content is fresh for at least an hour and at most a day
+#refresh_pattern -i  \.(jpg|jpeg|gif|png|tiff|tif|svg|swf|ico|css|js|vsd|doc|ppt|pps|xls|pdf|mp3|mp4|m4a|ogg|mov|avi|wmv|sxw|zip|gz|bz2|tar|rar|odc|odb|odf|odg|odi|odp|ods|odt|sxc|sxd|sxi|sxw|dmg|torrent|deb|msi|iso|rpm)$ 60 50% 1440 reload-into-ims
+#refresh_pattern . 0 20%	1440
+
+# Change force-refresh requests into conditional gets using if-modified-since
+#reload_into_ims on
+
+# DEBUGGING
+# ------------------------------------------------------------------------------
+# debug_options ALL,1 33,2 # use this for debugging acls
+ debug_options ALL,8
+
+
+# MISCELLANEOUS
+# ------------------------------------------------------------------------------
+# have squid handle all requests with ranges
+# range_offset_limit -1
+
+# amount of time squid waits for existing requests to be serviced before shutting down
+shutdown_lifetime 1 seconds
+
+# allow squid to process multiple requests simultaneously if client is pipelining
+pipeline_prefetch on
+
+# allow white spaces to be included in URLs
+uri_whitespace allow
+
+
+# OTHER PARAMETERS THAT MAY BE OF INTEREST
+# ------------------------------------------------------------------------------
+
+# logfile_rotate 0
+# reload_into_ims off
+#error_directory /usr/local/squid/share/errors/English
+
+ 
+
diff --git a/install/tpl/ufw.conf.master b/install/tpl/ufw.conf.master
index 9dc02d3..caae14f 100644
--- a/install/tpl/ufw.conf.master
+++ b/install/tpl/ufw.conf.master
@@ -1,8 +1,8 @@
-# /etc/ufw/ufw.conf
-# 
-
-# set to yes to start on boot
-ENABLED=yes
-
-# set to one of 'off', 'low', 'medium', 'high'
-LOGLEVEL=low
+# /etc/ufw/ufw.conf
+# 
+
+# set to yes to start on boot
+ENABLED=yes
+
+# set to one of 'off', 'low', 'medium', 'high'
+LOGLEVEL=low
diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng
index c6de82f..cdee4e7 100644
--- a/interface/lib/lang/fr.lng
+++ b/interface/lib/lang/fr.lng
@@ -1,42 +1,42 @@
-<?php
-$wb['conf_format_dateshort'] = 'd-m-Y';
-$wb['conf_format_datelong'] = 'd-m-Y';
-$wb['conf_format_timeshort'] = 'H:i';
-$wb['conf_format_timelong'] = 'H:i:s';
-$wb['conf_format_datetime'] = 'd-m-Y H:i';
-$wb['301'] = 'Vous n\'avez pas accès à ce module';
-$wb['302'] = 'Module invalide.';
-$wb['1001'] = 'Le nom d\'utilisateur et/ou le nom de passe ne doivent pas être vides !';
-$wb['1002'] = 'Le nom d\'utilisateur et/ou le mot de passe son faux !';
-$wb['1003'] = 'L\'utilisateur est désactivé!';
-$wb['delete_confirmation'] = 'Voulez-vous vraiment supprimer cet enregistrement';
-$wb['error_no_view_permission'] = 'Vous n\'avez pas la permission de voir cet enregistrement, ou il n\'existe pas.';
-$wb['error_no_delete_permission'] = 'Vous n\'avez pas la permission de supprimer cet enregistrement !';
-$wb['page_txt'] = 'Page';
-$wb['page_of_txt'] = 'de';
-$wb['page_next_txt'] = 'Suivant';
-$wb['page_back_txt'] = 'Précédent';
-$wb['delete_txt'] = 'Supprimer';
-$wb['filter_txt'] = 'Filtrer';
-$wb['add_new_record_txt'] = 'Ajouter une entrée';
-$wb['btn_save_txt'] = 'Enregistrer';
-$wb['btn_cancel_txt'] = 'Annuler';
-$wb['toolsarea_head_txt'] = 'Outils';
-$wb['page_and_txt'] = 'et';
-$wb['top_menu_system'] = 'Système';
-$wb['top_menu_client'] = 'Client';
-$wb['top_menu_email'] = 'Email';
-$wb['top_menu_monitor'] = 'Suivi';
-$wb['top_menu_sites'] = 'Sites';
-$wb['top_menu_dns'] = 'DNS';
-$wb['top_menu_tools'] = 'Outils';
-$wb['top_menu_help'] = 'Aide';
-$wb['top_menu_billing'] = 'Facturation';
-$wb['top_menu_domain'] = 'Domaines';
-$wb['top_menu_dashboard'] = 'Accueil';
-$wb['latest_news_txt'] = 'Dernières actus';
-$wb['number_format_decimals'] = '2';
-$wb['number_format_dec_point'] = '.';
-$wb['number_format_thousands_sep'] = '';
-?>
-
+<?php
+$wb['conf_format_dateshort'] = 'd-m-Y';
+$wb['conf_format_datelong'] = 'd-m-Y';
+$wb['conf_format_timeshort'] = 'H:i';
+$wb['conf_format_timelong'] = 'H:i:s';
+$wb['conf_format_datetime'] = 'd-m-Y H:i';
+$wb['301'] = 'Vous n\'avez pas accès à ce module';
+$wb['302'] = 'Module invalide.';
+$wb['1001'] = 'Le nom d\'utilisateur et/ou le nom de passe ne doivent pas être vides !';
+$wb['1002'] = 'Le nom d\'utilisateur et/ou le mot de passe son faux !';
+$wb['1003'] = 'L\'utilisateur est désactivé!';
+$wb['delete_confirmation'] = 'Voulez-vous vraiment supprimer cet enregistrement';
+$wb['error_no_view_permission'] = 'Vous n\'avez pas la permission de voir cet enregistrement, ou il n\'existe pas.';
+$wb['error_no_delete_permission'] = 'Vous n\'avez pas la permission de supprimer cet enregistrement !';
+$wb['page_txt'] = 'Page';
+$wb['page_of_txt'] = 'de';
+$wb['page_next_txt'] = 'Suivant';
+$wb['page_back_txt'] = 'Précédent';
+$wb['delete_txt'] = 'Supprimer';
+$wb['filter_txt'] = 'Filtrer';
+$wb['add_new_record_txt'] = 'Ajouter une entrée';
+$wb['btn_save_txt'] = 'Enregistrer';
+$wb['btn_cancel_txt'] = 'Annuler';
+$wb['toolsarea_head_txt'] = 'Outils';
+$wb['page_and_txt'] = 'et';
+$wb['top_menu_system'] = 'Système';
+$wb['top_menu_client'] = 'Client';
+$wb['top_menu_email'] = 'Email';
+$wb['top_menu_monitor'] = 'Suivi';
+$wb['top_menu_sites'] = 'Sites';
+$wb['top_menu_dns'] = 'DNS';
+$wb['top_menu_tools'] = 'Outils';
+$wb['top_menu_help'] = 'Aide';
+$wb['top_menu_billing'] = 'Facturation';
+$wb['top_menu_domain'] = 'Domaines';
+$wb['top_menu_dashboard'] = 'Accueil';
+$wb['latest_news_txt'] = 'Dernières actus';
+$wb['number_format_decimals'] = '2';
+$wb['number_format_dec_point'] = '.';
+$wb['number_format_thousands_sep'] = '';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr.lng b/interface/web/admin/lib/lang/fr.lng
index 87c7620..0bdae1b 100644
--- a/interface/web/admin/lib/lang/fr.lng
+++ b/interface/web/admin/lib/lang/fr.lng
@@ -1,44 +1,44 @@
-<?php
-$wb['1001'] = 'Nom d\'utilisateur ou mot de passe vide.';
-$wb['1002'] = 'Nom d\'utilisateur ou mot de passe erroné.';
-$wb['Firewall'] = 'Pare-feu';
-$wb['Groups'] = 'Groupes';
-$wb['groups_description'] = 'Formulaire pour éditer les groupes d\'utilisateurs système.';
-$wb['Server'] = 'Serveur';
-$wb['Services'] = 'Services';
-$wb['Config'] = 'Configuration';
-$wb['Server Config'] = 'Configuration serveur';
-$wb['Mail'] = 'Email';
-$wb['Getmail'] = 'Getmail';
-$wb['Web'] = 'Web';
-$wb['FastCGI'] = 'FastCGI';
-$wb['Jailkit'] = 'Jailkit';
-$wb['System'] = 'Système';
-$wb['Add user'] = 'Ajout utilisateur';
-$wb['Edit user'] = 'Edition utilisateur';
-$wb['CP Users'] = 'CP utilisateurs';
-$wb['Add group'] = 'Ajout groupe';
-$wb['Edit group'] = 'Edition groupe';
-$wb['Edit server'] = 'Edition serveur';
-$wb['Edit Server IP'] = 'Adresses IP serveur';
-$wb['Servers'] = 'Serveurs';
-$wb['Sync. Now'] = 'Sync. maintenant';
-$wb['DB Sync.'] = 'Sync. BDD';
-$wb['Languages'] = 'Langues';
-$wb['New Language'] = 'Nouvelle Langue';
-$wb['Export'] = 'Exporter';
-$wb['Import'] = 'Importer';
-$wb['Language Editor'] = 'Editeur de langue';
-$wb['Software'] = 'Applications & Plugins';
-$wb['Repositories'] = 'Dépôt';
-$wb['Server Services'] = 'Services serveur';
-$wb['Interface Config'] = 'Configuration d\'interface';
-$wb['Packages'] = 'Paquets';
-$wb['Updates'] = 'Mises à jour';
-$wb['Merge'] = 'Fusion';
-$wb['Remote Users'] = 'Utilisateurs distants';
-$wb['Remote Actions'] = 'Actions distantes';
-$wb['Do OS-Update'] = 'Mise à jour de l\'OS';
-$wb['Do ISPConfig-Update'] = 'Mise à jour ISPConfig';
-?>
-
+<?php
+$wb['1001'] = 'Nom d\'utilisateur ou mot de passe vide.';
+$wb['1002'] = 'Nom d\'utilisateur ou mot de passe erroné.';
+$wb['Firewall'] = 'Pare-feu';
+$wb['Groups'] = 'Groupes';
+$wb['groups_description'] = 'Formulaire pour éditer les groupes d\'utilisateurs système.';
+$wb['Server'] = 'Serveur';
+$wb['Services'] = 'Services';
+$wb['Config'] = 'Configuration';
+$wb['Server Config'] = 'Configuration serveur';
+$wb['Mail'] = 'Email';
+$wb['Getmail'] = 'Getmail';
+$wb['Web'] = 'Web';
+$wb['FastCGI'] = 'FastCGI';
+$wb['Jailkit'] = 'Jailkit';
+$wb['System'] = 'Système';
+$wb['Add user'] = 'Ajout utilisateur';
+$wb['Edit user'] = 'Edition utilisateur';
+$wb['CP Users'] = 'CP utilisateurs';
+$wb['Add group'] = 'Ajout groupe';
+$wb['Edit group'] = 'Edition groupe';
+$wb['Edit server'] = 'Edition serveur';
+$wb['Edit Server IP'] = 'Adresses IP serveur';
+$wb['Servers'] = 'Serveurs';
+$wb['Sync. Now'] = 'Sync. maintenant';
+$wb['DB Sync.'] = 'Sync. BDD';
+$wb['Languages'] = 'Langues';
+$wb['New Language'] = 'Nouvelle Langue';
+$wb['Export'] = 'Exporter';
+$wb['Import'] = 'Importer';
+$wb['Language Editor'] = 'Editeur de langue';
+$wb['Software'] = 'Applications & Plugins';
+$wb['Repositories'] = 'Dépôt';
+$wb['Server Services'] = 'Services serveur';
+$wb['Interface Config'] = 'Configuration d\'interface';
+$wb['Packages'] = 'Paquets';
+$wb['Updates'] = 'Mises à jour';
+$wb['Merge'] = 'Fusion';
+$wb['Remote Users'] = 'Utilisateurs distants';
+$wb['Remote Actions'] = 'Actions distantes';
+$wb['Do OS-Update'] = 'Mise à jour de l\'OS';
+$wb['Do ISPConfig-Update'] = 'Mise à jour ISPConfig';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_firewall.lng b/interface/web/admin/lib/lang/fr_firewall.lng
index 745b8b1..66a2ab8 100644
--- a/interface/web/admin/lib/lang/fr_firewall.lng
+++ b/interface/web/admin/lib/lang/fr_firewall.lng
@@ -1,12 +1,12 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['tcp_port_txt'] = 'Ouvrir des ports TCP';
-$wb['udp_port_txt'] = 'Ouvrir des ports UDP';
-$wb['tcp_port_help_txt'] = 'Séparés par des virgules';
-$wb['udp_port_help_txt'] = 'Séparés par des virgules';
-$wb['active_txt'] = 'Actif';
-$wb['firewall_error_unique'] = 'Il y a déjà un enregistrement dans le pare-feu pour ce serveur.';
-$wb['tcp_ports_error_regex'] = 'Caractère non autorisé dans la définition du port TCP. Les caractères autorisés sont les nombres, : et ,.';
-$wb['udp_ports_error_regex'] = 'Caractère non autorisé dans la définition du port UDP. Les caractères autorisés sont les nombres, : et ,.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['tcp_port_txt'] = 'Ouvrir des ports TCP';
+$wb['udp_port_txt'] = 'Ouvrir des ports UDP';
+$wb['tcp_port_help_txt'] = 'Séparés par des virgules';
+$wb['udp_port_help_txt'] = 'Séparés par des virgules';
+$wb['active_txt'] = 'Actif';
+$wb['firewall_error_unique'] = 'Il y a déjà un enregistrement dans le pare-feu pour ce serveur.';
+$wb['tcp_ports_error_regex'] = 'Caractère non autorisé dans la définition du port TCP. Les caractères autorisés sont les nombres, : et ,.';
+$wb['udp_ports_error_regex'] = 'Caractère non autorisé dans la définition du port UDP. Les caractères autorisés sont les nombres, : et ,.';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_firewall_list.lng b/interface/web/admin/lib/lang/fr_firewall_list.lng
index 73bf402..9beb575 100644
--- a/interface/web/admin/lib/lang/fr_firewall_list.lng
+++ b/interface/web/admin/lib/lang/fr_firewall_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Pare-feu';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['tcp_port_txt'] = 'Ouvrir des ports TCP';
-$wb['udp_port_txt'] = 'Ouvrir des ports UDP';
-$wb['add_new_record_txt'] = 'Ajouter un enregistrement au pare-feu';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Pare-feu';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['tcp_port_txt'] = 'Ouvrir des ports TCP';
+$wb['udp_port_txt'] = 'Ouvrir des ports UDP';
+$wb['add_new_record_txt'] = 'Ajouter un enregistrement au pare-feu';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_groups.lng b/interface/web/admin/lib/lang/fr_groups.lng
index b128631..b48ed56 100644
--- a/interface/web/admin/lib/lang/fr_groups.lng
+++ b/interface/web/admin/lib/lang/fr_groups.lng
@@ -1,6 +1,6 @@
-<?php
-$wb['description_txt'] = 'Description';
-$wb['name_txt'] = 'Groupe';
-$wb['name_err'] = 'Le groupe doit avoir entre 1 et 30 caractères.';
-?>
-
+<?php
+$wb['description_txt'] = 'Description';
+$wb['name_txt'] = 'Groupe';
+$wb['name_err'] = 'Le groupe doit avoir entre 1 et 30 caractères.';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_groups_list.lng b/interface/web/admin/lib/lang/fr_groups_list.lng
index 07d7359..7b82610 100644
--- a/interface/web/admin/lib/lang/fr_groups_list.lng
+++ b/interface/web/admin/lib/lang/fr_groups_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Groupes d\'utilisateurs système';
-$wb['description_txt'] = 'Description';
-$wb['name_txt'] = 'Groupe';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau groupe';
-$wb['warning_txt'] = '<b>ATTENTION:</b> Ne pas éditer ou modifier de paramètre utilisateur ici. Utilisez les paramètres Client et Revendeur dans le module Client à la place. Modifier ou changer les informations ici peut conduire à la perte de données';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Groupes d\'utilisateurs système';
+$wb['description_txt'] = 'Description';
+$wb['name_txt'] = 'Groupe';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau groupe';
+$wb['warning_txt'] = '<b>ATTENTION:</b> Ne pas éditer ou modifier de paramètre utilisateur ici. Utilisez les paramètres Client et Revendeur dans le module Client à la place. Modifier ou changer les informations ici peut conduire à la perte de données';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_language_add.lng b/interface/web/admin/lib/lang/fr_language_add.lng
index 79cabb7..51fa7c9 100644
--- a/interface/web/admin/lib/lang/fr_language_add.lng
+++ b/interface/web/admin/lib/lang/fr_language_add.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Ajouter un nouveau langage';
-$wb['language_select_txt'] = 'Sélectionnez la base du langage';
-$wb['language_new_txt'] = 'Nouveau langage';
-$wb['btn_save_txt'] = 'Créer un nouveau fichier de langue';
-$wb['btn_cancel_txt'] = 'Précédent';
-$wb['language_new_hint_txt'] = 'Code langage à 2 caractères ISO 639-1 (Voir http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Ajouter un nouveau langage';
+$wb['language_select_txt'] = 'Sélectionnez la base du langage';
+$wb['language_new_txt'] = 'Nouveau langage';
+$wb['btn_save_txt'] = 'Créer un nouveau fichier de langue';
+$wb['btn_cancel_txt'] = 'Précédent';
+$wb['language_new_hint_txt'] = 'Code langage à 2 caractères ISO 639-1 (Voir http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_language_complete.lng b/interface/web/admin/lib/lang/fr_language_complete.lng
index 12c4321..711607a 100644
--- a/interface/web/admin/lib/lang/fr_language_complete.lng
+++ b/interface/web/admin/lib/lang/fr_language_complete.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Fusion de langages';
-$wb['language_select_txt'] = 'Sélectionnez le langage';
-$wb['btn_save_txt'] = 'Fusionner les fichiers';
-$wb['btn_cancel_txt'] = 'Précédent';
-$wb['list_desc_txt'] = 'Fusionne le langage sélectionné avec le langage principal anglais. <br />Ceci ajoute les élements manquants en anglais au fichier sélectionné.';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Fusion de langages';
+$wb['language_select_txt'] = 'Sélectionnez le langage';
+$wb['btn_save_txt'] = 'Fusionner les fichiers';
+$wb['btn_cancel_txt'] = 'Précédent';
+$wb['list_desc_txt'] = 'Fusionne le langage sélectionné avec le langage principal anglais. <br />Ceci ajoute les élements manquants en anglais au fichier sélectionné.';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_language_edit.lng b/interface/web/admin/lib/lang/fr_language_edit.lng
index 1e1f3b2..fe5f0c0 100644
--- a/interface/web/admin/lib/lang/fr_language_edit.lng
+++ b/interface/web/admin/lib/lang/fr_language_edit.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Editeur de fichier de langue';
-$wb['language_select_txt'] = 'Sélectionnez la langue';
-$wb['module_txt'] = 'Module';
-$wb['lang_file_txt'] = 'Fichier de langue';
-$wb['btn_save_txt'] = 'Enregistrer';
-$wb['btn_cancel_txt'] = 'Précédent';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Editeur de fichier de langue';
+$wb['language_select_txt'] = 'Sélectionnez la langue';
+$wb['module_txt'] = 'Module';
+$wb['lang_file_txt'] = 'Fichier de langue';
+$wb['btn_save_txt'] = 'Enregistrer';
+$wb['btn_cancel_txt'] = 'Précédent';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_language_export.lng b/interface/web/admin/lib/lang/fr_language_export.lng
index ed304f0..85edd5e 100644
--- a/interface/web/admin/lib/lang/fr_language_export.lng
+++ b/interface/web/admin/lib/lang/fr_language_export.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['list_head_txt'] = 'Exporter les fichiers de langue';
-$wb['language_select_txt'] = 'Sélectionnez la langue';
-$wb['btn_save_txt'] = 'Exporte la langue sélectionnée dans un fichier';
-$wb['btn_cancel_txt'] = 'Précédent';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Exporter les fichiers de langue';
+$wb['language_select_txt'] = 'Sélectionnez la langue';
+$wb['btn_save_txt'] = 'Exporte la langue sélectionnée dans un fichier';
+$wb['btn_cancel_txt'] = 'Précédent';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_language_import.lng b/interface/web/admin/lib/lang/fr_language_import.lng
index 66ab22c..2063247 100644
--- a/interface/web/admin/lib/lang/fr_language_import.lng
+++ b/interface/web/admin/lib/lang/fr_language_import.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Importer un fichier de langue';
-$wb['language_import_txt'] = 'Sélectionnez le fichier de langue';
-$wb['btn_save_txt'] = 'Importer le fichier de langue sélectionné';
-$wb['language_overwrite_txt'] = 'Ecraser le fichier s\'il existe déja.';
-$wb['btn_cancel_txt'] = 'Précédent';
-$wb['ignore_version_txt'] = 'Sauter le test de version ISPConfig';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Importer un fichier de langue';
+$wb['language_import_txt'] = 'Sélectionnez le fichier de langue';
+$wb['btn_save_txt'] = 'Importer le fichier de langue sélectionné';
+$wb['language_overwrite_txt'] = 'Ecraser le fichier s\'il existe déja.';
+$wb['btn_cancel_txt'] = 'Précédent';
+$wb['ignore_version_txt'] = 'Sauter le test de version ISPConfig';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_language_list.lng b/interface/web/admin/lib/lang/fr_language_list.lng
index ad38bc1..dab7271 100644
--- a/interface/web/admin/lib/lang/fr_language_list.lng
+++ b/interface/web/admin/lib/lang/fr_language_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Editeur de fichier de langue';
-$wb['language_select_txt'] = 'Sélectionnez le langage';
-$wb['module_txt'] = 'Module';
-$wb['lang_file_txt'] = 'Fichier de langue';
-$wb['lang_file_date_txt'] = 'Dernière modification';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Editeur de fichier de langue';
+$wb['language_select_txt'] = 'Sélectionnez le langage';
+$wb['module_txt'] = 'Module';
+$wb['lang_file_txt'] = 'Fichier de langue';
+$wb['lang_file_date_txt'] = 'Dernière modification';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_package_install.lng b/interface/web/admin/lib/lang/fr_package_install.lng
index f5c3afa..60ed772 100644
--- a/interface/web/admin/lib/lang/fr_package_install.lng
+++ b/interface/web/admin/lib/lang/fr_package_install.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['repo_name_txt'] = 'Dépôt';
-$wb['repo_url_txt'] = 'URL';
-$wb['repo_username_txt'] = 'Utilisateur (optionnel)';
-$wb['repo_password_txt'] = 'Mot de passe (optionnel)';
-$wb['active_txt'] = 'Actif';
-?>
-
+<?php
+$wb['repo_name_txt'] = 'Dépôt';
+$wb['repo_url_txt'] = 'URL';
+$wb['repo_username_txt'] = 'Utilisateur (optionnel)';
+$wb['repo_password_txt'] = 'Mot de passe (optionnel)';
+$wb['active_txt'] = 'Actif';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_remote_action.lng b/interface/web/admin/lib/lang/fr_remote_action.lng
index 4e21f96..9a4c579 100644
--- a/interface/web/admin/lib/lang/fr_remote_action.lng
+++ b/interface/web/admin/lib/lang/fr_remote_action.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['select_server_txt'] = 'Sélectionner un serveur';
-$wb['btn_do_txt'] = 'Exécuter l\'action';
-$wb['do_osupdate_caption'] = 'Mettre à jour l\'OS du serveur distant';
-$wb['do_osupdate_desc'] = 'Cette action effectue aptitude -y upgrade sur le serveur sélectionné.<br><br><strong>UTILISEZ A VOS RISQUES ET PERILS !</strong>';
-$wb['do_ispcupdate_caption'] = 'Mettre à jour ISPConfig 3 sur le serveur distant';
-$wb['do_ispcupdate_desc'] = 'Cette action met à jour ISPConfig3 sur le serveur sélectionné.<br><br><strong>UTILISEZ A VOS RISQUES ET PERILS !</strong>';
-$wb['action_scheduled'] = 'L\'action est marquée pour exécution';
-$wb['select_all_server'] = 'Tout serveur';
-?>
-
+<?php
+$wb['select_server_txt'] = 'Sélectionner un serveur';
+$wb['btn_do_txt'] = 'Exécuter l\'action';
+$wb['do_osupdate_caption'] = 'Mettre à jour l\'OS du serveur distant';
+$wb['do_osupdate_desc'] = 'Cette action effectue aptitude -y upgrade sur le serveur sélectionné.<br><br><strong>UTILISEZ A VOS RISQUES ET PERILS !</strong>';
+$wb['do_ispcupdate_caption'] = 'Mettre à jour ISPConfig 3 sur le serveur distant';
+$wb['do_ispcupdate_desc'] = 'Cette action met à jour ISPConfig3 sur le serveur sélectionné.<br><br><strong>UTILISEZ A VOS RISQUES ET PERILS !</strong>';
+$wb['action_scheduled'] = 'L\'action est marquée pour exécution';
+$wb['select_all_server'] = 'Tout serveur';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_remote_user.lng b/interface/web/admin/lib/lang/fr_remote_user.lng
index 451d800..ab77be4 100644
--- a/interface/web/admin/lib/lang/fr_remote_user.lng
+++ b/interface/web/admin/lib/lang/fr_remote_user.lng
@@ -1,43 +1,43 @@
-<?php
-$wb['username_txt'] = 'Identifiant :';
-$wb['password_txt'] = 'Mot de passe :';
-$wb['function_txt'] = 'Fonctions :';
-$wb['username_error_unique'] = 'L\'identifiant doit être unique';
-$wb['username_error_empty'] = 'L\'identifiant 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['Mail domain functions'] = 'Fonctions domaine email';
-$wb['Mail user functions'] = 'Fonctions utilisateur email';
-$wb['Mail alias functions'] = 'Fonctions alias email';
-$wb['Mail forward functions'] = 'Fonctions transfert email';
-$wb['Mail catchall functions'] = 'Fonctions collecteur email';
-$wb['Mail transport functions'] = 'Fonctions transport email';
-$wb['Mail whitelist functions'] = 'Fonctions liste blanche email';
-$wb['Mail blacklist functions'] = 'Fonctions liste noire email';
-$wb['Mail spamfilter user functions'] = 'Fonctions utilisateur filtre antispam';
-$wb['Mail spamfilter policy functions'] = 'Fonctions politique du filtre antispam';
-$wb['Mail fetchmail functions'] = 'Fonctions récupérateur email';
-$wb['Mail user filter functions'] = 'Fonctions filtre d\'utilisateur email';
-$wb['Mail filter functions'] = 'Fonctions filtre email';
-$wb['Client functions'] = 'Fonctions client';
-$wb['Sites cron functions'] = 'Fonctions cron des sites';
-$wb['Sites database functions'] = 'Fonctions BDD des sites';
-$wb['Sites FTP-User functions'] = 'Fonctions utilisateurs FTP des sites';
-$wb['Sites Shell-User functions'] = 'Fonctions utilisateurs shell des sites';
-$wb['Sites Domain functions'] = 'Fonctions domaines des sites';
-$wb['Sites Aliasdomain functions'] = 'Fonctions alias de domaines des sites';
-$wb['Sites Subdomain functions'] = 'Fonctions sous-domaines des sites';
-$wb['DNS zone functions'] = 'Fonctions zone DNS';
-$wb['DNS a functions'] = 'Fonctions A DNS';
-$wb['DNS aaaa functions'] = 'Fonctions AAAA DNS';
-$wb['DNS alias functions'] = 'Fonction alias DNS';
-$wb['DNS cname functions'] = 'Fonctions CNAME DNS';
-$wb['DNS hinfo functions'] = 'Fonctions HINFO DNS';
-$wb['DNS mx functions'] = 'Fonctions MX DNS';
-$wb['DNS ns functions'] = 'Fonctions NS DNS';
-$wb['DNS ptr functions'] = 'Fonctions PTR DNS';
-$wb['DNS rp functions'] = 'Fonctions RP DNS';
-$wb['DNS srv functions'] = 'Fonctions SRV DNS';
-$wb['DNS txt functions'] = 'Fonctions TXT DNS';
-?>
-
+<?php
+$wb['username_txt'] = 'Identifiant :';
+$wb['password_txt'] = 'Mot de passe :';
+$wb['function_txt'] = 'Fonctions :';
+$wb['username_error_unique'] = 'L\'identifiant doit être unique';
+$wb['username_error_empty'] = 'L\'identifiant 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['Mail domain functions'] = 'Fonctions domaine email';
+$wb['Mail user functions'] = 'Fonctions utilisateur email';
+$wb['Mail alias functions'] = 'Fonctions alias email';
+$wb['Mail forward functions'] = 'Fonctions transfert email';
+$wb['Mail catchall functions'] = 'Fonctions collecteur email';
+$wb['Mail transport functions'] = 'Fonctions transport email';
+$wb['Mail whitelist functions'] = 'Fonctions liste blanche email';
+$wb['Mail blacklist functions'] = 'Fonctions liste noire email';
+$wb['Mail spamfilter user functions'] = 'Fonctions utilisateur filtre antispam';
+$wb['Mail spamfilter policy functions'] = 'Fonctions politique du filtre antispam';
+$wb['Mail fetchmail functions'] = 'Fonctions récupérateur email';
+$wb['Mail user filter functions'] = 'Fonctions filtre d\'utilisateur email';
+$wb['Mail filter functions'] = 'Fonctions filtre email';
+$wb['Client functions'] = 'Fonctions client';
+$wb['Sites cron functions'] = 'Fonctions cron des sites';
+$wb['Sites database functions'] = 'Fonctions BDD des sites';
+$wb['Sites FTP-User functions'] = 'Fonctions utilisateurs FTP des sites';
+$wb['Sites Shell-User functions'] = 'Fonctions utilisateurs shell des sites';
+$wb['Sites Domain functions'] = 'Fonctions domaines des sites';
+$wb['Sites Aliasdomain functions'] = 'Fonctions alias de domaines des sites';
+$wb['Sites Subdomain functions'] = 'Fonctions sous-domaines des sites';
+$wb['DNS zone functions'] = 'Fonctions zone DNS';
+$wb['DNS a functions'] = 'Fonctions A DNS';
+$wb['DNS aaaa functions'] = 'Fonctions AAAA DNS';
+$wb['DNS alias functions'] = 'Fonction alias DNS';
+$wb['DNS cname functions'] = 'Fonctions CNAME DNS';
+$wb['DNS hinfo functions'] = 'Fonctions HINFO DNS';
+$wb['DNS mx functions'] = 'Fonctions MX DNS';
+$wb['DNS ns functions'] = 'Fonctions NS DNS';
+$wb['DNS ptr functions'] = 'Fonctions PTR DNS';
+$wb['DNS rp functions'] = 'Fonctions RP DNS';
+$wb['DNS srv functions'] = 'Fonctions SRV DNS';
+$wb['DNS txt functions'] = 'Fonctions TXT DNS';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_remote_user_list.lng b/interface/web/admin/lib/lang/fr_remote_user_list.lng
index 6b5ada2..808fa39 100644
--- a/interface/web/admin/lib/lang/fr_remote_user_list.lng
+++ b/interface/web/admin/lib/lang/fr_remote_user_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Utilisateurs distants';
-$wb['list_desc_txt'] = '';
-$wb['add_new_record_txt'] = 'Ajouter un utilisateur';
-$wb['parent_remote_userid_txt'] = 'ID';
-$wb['username_txt'] = 'Identifiant';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Utilisateurs distants';
+$wb['list_desc_txt'] = '';
+$wb['add_new_record_txt'] = 'Ajouter un utilisateur';
+$wb['parent_remote_userid_txt'] = 'ID';
+$wb['username_txt'] = 'Identifiant';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_server.lng b/interface/web/admin/lib/lang/fr_server.lng
index 5b8684a..4ba7b7d 100644
--- a/interface/web/admin/lib/lang/fr_server.lng
+++ b/interface/web/admin/lib/lang/fr_server.lng
@@ -1,14 +1,14 @@
-<?php
-$wb['server_name_txt'] = 'Nom du serveur';
-$wb['mail_server_txt'] = 'Serveur Mail';
-$wb['web_server_txt'] = 'Serveur Web';
-$wb['dns_server_txt'] = 'Serveur DNS';
-$wb['file_server_txt'] = 'Serveur de fichier';
-$wb['active_txt'] = 'Actif';
-$wb['config_txt'] = 'Config';
-$wb['db_server_txt'] = 'Serveur BDD';
-$wb['vserver_server_txt'] = 'Serveur VServer';
-$wb['mirror_server_id_txt'] = 'Est miroir du serveur';
-$wb['- None -'] = '- Aucun -';
-?>
-
+<?php
+$wb['server_name_txt'] = 'Nom du serveur';
+$wb['mail_server_txt'] = 'Serveur Mail';
+$wb['web_server_txt'] = 'Serveur Web';
+$wb['dns_server_txt'] = 'Serveur DNS';
+$wb['file_server_txt'] = 'Serveur de fichier';
+$wb['active_txt'] = 'Actif';
+$wb['config_txt'] = 'Config';
+$wb['db_server_txt'] = 'Serveur BDD';
+$wb['vserver_server_txt'] = 'Serveur VServer';
+$wb['mirror_server_id_txt'] = 'Est miroir du serveur';
+$wb['- None -'] = '- Aucun -';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 4e32219..3efec6a 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -1,78 +1,78 @@
-<?php
-$wb['jailkit_chroot_home_txt'] = 'Accueil du chroot Jailkit';
-$wb['jailkit_chroot_app_sections_txt'] = 'Sections des applications chrootées Jailkit';
-$wb['jailkit_chroot_app_programs_txt'] = 'Applications chrootées Jailkit';
-$wb['website_path_txt'] = 'Chemin du site web';
-$wb['website_symlinks_txt'] = 'Liens symboliques du site web';
-$wb['vhost_conf_dir_txt'] = 'Répertoire de configuration des VHosts';
-$wb['vhost_conf_enabled_dir_txt'] = 'Répertoire de configuration des VHosts actifs';
-$wb['getmail_config_dir_txt'] = 'Répertoire de configuration de Getmail';
-$wb['fastcgi_starter_path_txt'] = 'Chemin du lanceur de FastCGI';
-$wb['fastcgi_starter_script_txt'] = 'Script lanceur de FastCGI';
-$wb['fastcgi_alias_txt'] = 'Alias de FastCGI';
-$wb['fastcgi_phpini_path_txt'] = 'Chemin du php.ini de FastCGI';
-$wb['fastcgi_children_txt'] = 'Enfant de FastCGI';
-$wb['fastcgi_max_requests_txt'] = 'Nombre maximal de requêtes FastCGI';
-$wb['fastcgi_bin_txt'] = 'Exécutable FastCGI';
-$wb['module_txt'] = 'Module';
-$wb['maildir_path_txt'] = 'Chemin Maildir';
-$wb['homedir_path_txt'] = 'Chemin Homedir';
-$wb['mailuser_uid_txt'] = 'Utilisateur mail UID';
-$wb['mailuser_gid_txt'] = 'Utilisateur mail GID';
-$wb['mailuser_name_txt'] = 'Nom d\'utilisateur mail';
-$wb['mailuser_group_txt'] = 'Groupe de l\'utilisateur mail';
-$wb['relayhost_txt'] = 'Hôte de relais';
-$wb['relayhost_user_txt'] = 'Utilisateur du relais';
-$wb['relayhost_password_txt'] = 'Mot de passe du relais';
-$wb['mailbox_size_limit_txt'] = 'Taille maximale de la boite mail';
-$wb['message_size_limit_txt'] = 'Taille maximale des messages';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['netmask_txt'] = 'Masque de réseau';
-$wb['gateway_txt'] = 'Passerelle';
-$wb['hostname_txt'] = 'Hôte';
-$wb['nameservers_txt'] = 'Serveurs de nom';
-$wb['auto_network_configuration_txt'] = 'Configuration du réseau';
-$wb['website_basedir_txt'] = 'Répertoire de base web';
-$wb['ip_address_error_wrong'] = 'Format de l\'adresse IP invalide.';
-$wb['netmask_error_wrong'] = 'Format du masque de réseau invalide.';
-$wb['gateway_error_wrong'] = 'Format de la passerelle invalide.';
-$wb['hostname_error_empty'] = 'L\'hôte est vide.';
-$wb['nameservers_error_empty'] = 'Le serveur de nom est vide.';
-$wb['jailkit_chroot_cron_programs_txt'] = 'Applications Cron Jailkit chrootées';
-$wb['config_dir_txt'] = 'Répertoire de configuration';
-$wb['init_script_txt'] = 'Nom du script Cron de lancement';
-$wb['crontab_dir_txt'] = 'Chemin des différentes tables Cron';
-$wb['wget_txt'] = 'Chemin du programme wget';
-$wb['security_level_txt'] = 'Niveau de sécurité';
-$wb['web_user_txt'] = 'Utilisateur Apache';
-$wb['web_group_txt'] = 'Groupe Apache';
-$wb['loglevel_txt'] = 'Loglevel';
-$wb['apps_vhost_port_txt'] = 'Port Apps-vhost';
-$wb['apps_vhost_ip_txt'] = 'IP Apps-vhost';
-$wb['apps_vhost_servername_txt'] = ' Domaine Apps-vhost';
-$wb['bind_user_txt'] = 'Utilisateur BIND';
-$wb['bind_group_txt'] = 'Groupe BIND';
-$wb['bind_zonefiles_dir_txt'] = 'Dossier pour les zones BIND';
-$wb['named_conf_path_txt'] = 'Chemin named.conf BIND';
-$wb['bind_user_error_empty'] = 'L\'utilisateur BIND est vide.';
-$wb['bind_group_error_empty'] = 'Le groupe BIND est vide.';
-$wb['bind_zonefiles_dir_error_empty'] = 'Le dossier de zones BIND est vide.';
-$wb['named_conf_path_error_empty'] = 'Le chemin du named.conf BIND est vide.';
-$wb['named_conf_local_path_error_empty'] = 'Le chemin du named.conf.local BIND est vide.';
-$wb['mail_filter_syntax_txt'] = 'Syntaxe filtre email';
-$wb['pop3_imap_daemon_txt'] = 'Démon POP3/IMAP';
-$wb['php_open_basedir_txt'] = 'open_basedir PHP';
-$wb['php_open_basedir_error_empty'] = 'l\'open_basedir PHP est vide.';
-$wb['htaccess_allow_override_txt'] = 'AllowOverride .htaccess';
-$wb['htaccess_allow_override_error_empty'] = 'l\'AllowOverride .htaccess est vide.';
-$wb['awstats_conf_dir_txt'] = 'Dossier de configuration AWstats';
-$wb['awstats_data_dir_txt'] = 'Dossier de données AWstats';
-$wb['awstats_pl_txt'] = 'Script awstats.pl';
-$wb['awstats_buildstaticpages_pl_txt'] = 'Script awstats_buildstaticpages.pl';
-$wb['backup_dir_txt'] = 'Dossier de sauvegarde';
-$wb['named_conf_local_path_txt'] = 'Chemin named.conf.local BIND';
-$wb['php_ini_path_cgi_txt'] = 'Chemin php.ini CGI';
-$wb['php_ini_path_apache_txt'] = 'Chemin php.ini Apache';
-$wb['check_apache_config_txt'] = 'Tester la configuration Apache au redémarrage';
-?>
-
+<?php
+$wb['jailkit_chroot_home_txt'] = 'Accueil du chroot Jailkit';
+$wb['jailkit_chroot_app_sections_txt'] = 'Sections des applications chrootées Jailkit';
+$wb['jailkit_chroot_app_programs_txt'] = 'Applications chrootées Jailkit';
+$wb['website_path_txt'] = 'Chemin du site web';
+$wb['website_symlinks_txt'] = 'Liens symboliques du site web';
+$wb['vhost_conf_dir_txt'] = 'Répertoire de configuration des VHosts';
+$wb['vhost_conf_enabled_dir_txt'] = 'Répertoire de configuration des VHosts actifs';
+$wb['getmail_config_dir_txt'] = 'Répertoire de configuration de Getmail';
+$wb['fastcgi_starter_path_txt'] = 'Chemin du lanceur de FastCGI';
+$wb['fastcgi_starter_script_txt'] = 'Script lanceur de FastCGI';
+$wb['fastcgi_alias_txt'] = 'Alias de FastCGI';
+$wb['fastcgi_phpini_path_txt'] = 'Chemin du php.ini de FastCGI';
+$wb['fastcgi_children_txt'] = 'Enfant de FastCGI';
+$wb['fastcgi_max_requests_txt'] = 'Nombre maximal de requêtes FastCGI';
+$wb['fastcgi_bin_txt'] = 'Exécutable FastCGI';
+$wb['module_txt'] = 'Module';
+$wb['maildir_path_txt'] = 'Chemin Maildir';
+$wb['homedir_path_txt'] = 'Chemin Homedir';
+$wb['mailuser_uid_txt'] = 'Utilisateur mail UID';
+$wb['mailuser_gid_txt'] = 'Utilisateur mail GID';
+$wb['mailuser_name_txt'] = 'Nom d\'utilisateur mail';
+$wb['mailuser_group_txt'] = 'Groupe de l\'utilisateur mail';
+$wb['relayhost_txt'] = 'Hôte de relais';
+$wb['relayhost_user_txt'] = 'Utilisateur du relais';
+$wb['relayhost_password_txt'] = 'Mot de passe du relais';
+$wb['mailbox_size_limit_txt'] = 'Taille maximale de la boite mail';
+$wb['message_size_limit_txt'] = 'Taille maximale des messages';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['netmask_txt'] = 'Masque de réseau';
+$wb['gateway_txt'] = 'Passerelle';
+$wb['hostname_txt'] = 'Hôte';
+$wb['nameservers_txt'] = 'Serveurs de nom';
+$wb['auto_network_configuration_txt'] = 'Configuration du réseau';
+$wb['website_basedir_txt'] = 'Répertoire de base web';
+$wb['ip_address_error_wrong'] = 'Format de l\'adresse IP invalide.';
+$wb['netmask_error_wrong'] = 'Format du masque de réseau invalide.';
+$wb['gateway_error_wrong'] = 'Format de la passerelle invalide.';
+$wb['hostname_error_empty'] = 'L\'hôte est vide.';
+$wb['nameservers_error_empty'] = 'Le serveur de nom est vide.';
+$wb['jailkit_chroot_cron_programs_txt'] = 'Applications Cron Jailkit chrootées';
+$wb['config_dir_txt'] = 'Répertoire de configuration';
+$wb['init_script_txt'] = 'Nom du script Cron de lancement';
+$wb['crontab_dir_txt'] = 'Chemin des différentes tables Cron';
+$wb['wget_txt'] = 'Chemin du programme wget';
+$wb['security_level_txt'] = 'Niveau de sécurité';
+$wb['web_user_txt'] = 'Utilisateur Apache';
+$wb['web_group_txt'] = 'Groupe Apache';
+$wb['loglevel_txt'] = 'Loglevel';
+$wb['apps_vhost_port_txt'] = 'Port Apps-vhost';
+$wb['apps_vhost_ip_txt'] = 'IP Apps-vhost';
+$wb['apps_vhost_servername_txt'] = ' Domaine Apps-vhost';
+$wb['bind_user_txt'] = 'Utilisateur BIND';
+$wb['bind_group_txt'] = 'Groupe BIND';
+$wb['bind_zonefiles_dir_txt'] = 'Dossier pour les zones BIND';
+$wb['named_conf_path_txt'] = 'Chemin named.conf BIND';
+$wb['bind_user_error_empty'] = 'L\'utilisateur BIND est vide.';
+$wb['bind_group_error_empty'] = 'Le groupe BIND est vide.';
+$wb['bind_zonefiles_dir_error_empty'] = 'Le dossier de zones BIND est vide.';
+$wb['named_conf_path_error_empty'] = 'Le chemin du named.conf BIND est vide.';
+$wb['named_conf_local_path_error_empty'] = 'Le chemin du named.conf.local BIND est vide.';
+$wb['mail_filter_syntax_txt'] = 'Syntaxe filtre email';
+$wb['pop3_imap_daemon_txt'] = 'Démon POP3/IMAP';
+$wb['php_open_basedir_txt'] = 'open_basedir PHP';
+$wb['php_open_basedir_error_empty'] = 'l\'open_basedir PHP est vide.';
+$wb['htaccess_allow_override_txt'] = 'AllowOverride .htaccess';
+$wb['htaccess_allow_override_error_empty'] = 'l\'AllowOverride .htaccess est vide.';
+$wb['awstats_conf_dir_txt'] = 'Dossier de configuration AWstats';
+$wb['awstats_data_dir_txt'] = 'Dossier de données AWstats';
+$wb['awstats_pl_txt'] = 'Script awstats.pl';
+$wb['awstats_buildstaticpages_pl_txt'] = 'Script awstats_buildstaticpages.pl';
+$wb['backup_dir_txt'] = 'Dossier de sauvegarde';
+$wb['named_conf_local_path_txt'] = 'Chemin named.conf.local BIND';
+$wb['php_ini_path_cgi_txt'] = 'Chemin php.ini CGI';
+$wb['php_ini_path_apache_txt'] = 'Chemin php.ini Apache';
+$wb['check_apache_config_txt'] = 'Tester la configuration Apache au redémarrage';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_server_config_list.lng b/interface/web/admin/lib/lang/fr_server_config_list.lng
index 04278ff..c1c75e3 100644
--- a/interface/web/admin/lib/lang/fr_server_config_list.lng
+++ b/interface/web/admin/lib/lang/fr_server_config_list.lng
@@ -1,5 +1,5 @@
-<?php
-$wb['list_head_txt'] = 'Configuration du serveur';
-$wb['server_name_txt'] = 'Serveur';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Configuration du serveur';
+$wb['server_name_txt'] = 'Serveur';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_server_ip.lng b/interface/web/admin/lib/lang/fr_server_ip.lng
index 9e3be01..a7b36db 100644
--- a/interface/web/admin/lib/lang/fr_server_ip.lng
+++ b/interface/web/admin/lib/lang/fr_server_ip.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['virtualhost_txt'] = 'NameVirtualHost HTTP';
-$wb['ip_error_wrong'] = 'L\'adresse IP est invalide';
-$wb['ip_error_unique'] = 'L\'adresse IP doit être unique';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['virtualhost_txt'] = 'NameVirtualHost HTTP';
+$wb['ip_error_wrong'] = 'L\'adresse IP est invalide';
+$wb['ip_error_unique'] = 'L\'adresse IP doit être unique';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_server_ip_list.lng b/interface/web/admin/lib/lang/fr_server_ip_list.lng
index faca536..e75b76a 100644
--- a/interface/web/admin/lib/lang/fr_server_ip_list.lng
+++ b/interface/web/admin/lib/lang/fr_server_ip_list.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['list_head_txt'] = 'Adresses IP';
-$wb['server_id_txt'] = 'Serveur';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['add_new_record_txt'] = 'Nouvelle adresse IP';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Adresses IP';
+$wb['server_id_txt'] = 'Serveur';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['add_new_record_txt'] = 'Nouvelle adresse IP';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_server_list.lng b/interface/web/admin/lib/lang/fr_server_list.lng
index b4e6569..660d64c 100644
--- a/interface/web/admin/lib/lang/fr_server_list.lng
+++ b/interface/web/admin/lib/lang/fr_server_list.lng
@@ -1,12 +1,12 @@
-<?php
-$wb['list_head_txt'] = 'Serveur';
-$wb['server_name_txt'] = 'Nom';
-$wb['mail_server_txt'] = 'Mail';
-$wb['web_server_txt'] = 'Web';
-$wb['dns_server_txt'] = 'DNS';
-$wb['file_server_txt'] = 'Fichier';
-$wb['db_server_txt'] = 'Serveur BDD';
-$wb['vserver_server_txt'] = 'Serveur VServer';
-$wb['add_new_record_txt'] = 'Ajouter nouveau serveur';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Serveur';
+$wb['server_name_txt'] = 'Nom';
+$wb['mail_server_txt'] = 'Mail';
+$wb['web_server_txt'] = 'Web';
+$wb['dns_server_txt'] = 'DNS';
+$wb['file_server_txt'] = 'Fichier';
+$wb['db_server_txt'] = 'Serveur BDD';
+$wb['vserver_server_txt'] = 'Serveur VServer';
+$wb['add_new_record_txt'] = 'Ajouter nouveau serveur';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_software_package_install.lng b/interface/web/admin/lib/lang/fr_software_package_install.lng
index aa31bc6..9ebf62b 100644
--- a/interface/web/admin/lib/lang/fr_software_package_install.lng
+++ b/interface/web/admin/lib/lang/fr_software_package_install.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['head_txt'] = 'Installer un paquet logiciel';
-$wb['install_key_txt'] = 'Entrez la clef d\'installation';
-$wb['btn_save_txt'] = 'Démarrer l\'installation';
-$wb['btn_cancel_txt'] = 'Annuler';
-?>
-
+<?php
+$wb['head_txt'] = 'Installer un paquet logiciel';
+$wb['install_key_txt'] = 'Entrez la clef d\'installation';
+$wb['btn_save_txt'] = 'Démarrer l\'installation';
+$wb['btn_cancel_txt'] = 'Annuler';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_software_package_list.lng b/interface/web/admin/lib/lang/fr_software_package_list.lng
index 379840a..6258e9d 100644
--- a/interface/web/admin/lib/lang/fr_software_package_list.lng
+++ b/interface/web/admin/lib/lang/fr_software_package_list.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['list_head_txt'] = 'Paquets de logiciels';
-$wb['installed_txt'] = 'Statut';
-$wb['package_title_txt'] = 'Paquet';
-$wb['package_description_txt'] = 'Description';
-$wb['action_txt'] = 'Action';
-$wb['toolsarea_head_txt'] = 'Packages';
-$wb['repoupdate_txt'] = 'Mettre à jour la liste des paquets';
-$wb['package_id_txt'] = 'App-ID locale';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Paquets de logiciels';
+$wb['installed_txt'] = 'Statut';
+$wb['package_title_txt'] = 'Paquet';
+$wb['package_description_txt'] = 'Description';
+$wb['action_txt'] = 'Action';
+$wb['toolsarea_head_txt'] = 'Packages';
+$wb['repoupdate_txt'] = 'Mettre à jour la liste des paquets';
+$wb['package_id_txt'] = 'App-ID locale';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_software_repo.lng b/interface/web/admin/lib/lang/fr_software_repo.lng
index b6722b2..aaf6906 100644
--- a/interface/web/admin/lib/lang/fr_software_repo.lng
+++ b/interface/web/admin/lib/lang/fr_software_repo.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['repo_name_txt'] = 'Référence';
-$wb['repo_url_txt'] = 'URL';
-$wb['repo_username_txt'] = 'Utilisateur (optionnel)';
-$wb['repo_password_txt'] = 'Mot de passe (optionnel)';
-$wb['active_txt'] = 'Actif';
-?>
-
+<?php
+$wb['repo_name_txt'] = 'Référence';
+$wb['repo_url_txt'] = 'URL';
+$wb['repo_username_txt'] = 'Utilisateur (optionnel)';
+$wb['repo_password_txt'] = 'Mot de passe (optionnel)';
+$wb['active_txt'] = 'Actif';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_software_repo_list.lng b/interface/web/admin/lib/lang/fr_software_repo_list.lng
index 2e5029c..1b8d0ff 100644
--- a/interface/web/admin/lib/lang/fr_software_repo_list.lng
+++ b/interface/web/admin/lib/lang/fr_software_repo_list.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['list_head_txt'] = 'Référence';
-$wb['active_txt'] = 'Actif';
-$wb['repo_name_txt'] = 'Référence';
-$wb['repo_url_txt'] = 'URL';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Référence';
+$wb['active_txt'] = 'Actif';
+$wb['repo_name_txt'] = 'Référence';
+$wb['repo_url_txt'] = 'URL';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_software_update_list.lng b/interface/web/admin/lib/lang/fr_software_update_list.lng
index 8399418..1170d50 100644
--- a/interface/web/admin/lib/lang/fr_software_update_list.lng
+++ b/interface/web/admin/lib/lang/fr_software_update_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Mise à jour des logiciels';
-$wb['installed_txt'] = 'Action';
-$wb['update_title_txt'] = 'Mise à jour';
-$wb['version_txt'] = 'Version';
-$wb['action_txt'] = 'Action';
-$wb['server_select_txt'] = 'Sélectionnez le serveur';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Mise à jour des logiciels';
+$wb['installed_txt'] = 'Action';
+$wb['update_title_txt'] = 'Mise à jour';
+$wb['version_txt'] = 'Version';
+$wb['action_txt'] = 'Action';
+$wb['server_select_txt'] = 'Sélectionnez le serveur';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng
index 1f26b4b..63edba3 100644
--- a/interface/web/admin/lib/lang/fr_system_config.lng
+++ b/interface/web/admin/lib/lang/fr_system_config.lng
@@ -1,24 +1,24 @@
-<?php
-$wb['warning'] = 'Editez ces valeurs prudemment ! Il n\'est pas conseillé de modifier les préfixes lorsque vous avez des clients !';
-$wb['dbname_prefix_txt'] = 'Préfixe du nom de la BDD';
-$wb['dbuser_prefix_txt'] = 'Préfixe de l\'utilisateur de la BDD';
-$wb['shelluser_prefix_txt'] = 'Préfixe l\'utilisateur Shell';
-$wb['ftpuser_prefix_txt'] = 'Préfixe de l\'utilisateur FTP';
-$wb['dbname_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe du nom de la BDD.';
-$wb['dbuser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe de l\'utilisateur de la BDD.';
-$wb['ftpuser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe de l\'utilisateur FTP.';
-$wb['shelluser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe de l\'utilisateur Shell.';
-$wb['dblist_phpmyadmin_link_txt'] = 'Lien vers PHPMyAdmin dans la liste des bases';
-$wb['mailboxlist_webmail_link_txt'] = 'Lien vers le Webmail dans la liste des boites mail';
-$wb['dashboard_atom_url_txt'] = 'URL du fil Atom du tableau de bord';
-$wb['webdavuser_prefix_txt'] = 'Prefixe utilisateur Webdav';
-$wb['webdavuser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe utilisateur Webdav.';
-$wb['webmail_url_txt'] = 'URL du Webmail';
-$wb['phpmyadmin_url_txt'] = 'URL de PHPMyAdmin';
-$wb['use_domain_module_txt'] = 'Utiliser le module de domaine pour ajouter de nouveaux domaines';
-$wb['use_domain_module_hint'] = 'Si vous utilisez ce module, vos utilisateurs peuvent uniquement sélectionner un des domaines que l\'admin crée pour eux. Ils ne peuvent pas éditer librement le champ domaine. Vous devez vous identifier à nouveau après avoir modifié cette valeur pour rendre les modifications visibles.';
-$wb['new_domain_txt'] = 'HTML pour créer un nouveau domaine';
-$wb['webftp_url_txt'] = 'URL WebFTP';
-$wb['monitor_key_txt'] = 'Mot-clé du moniteur';
-?>
-
+<?php
+$wb['warning'] = 'Editez ces valeurs prudemment ! Il n\'est pas conseillé de modifier les préfixes lorsque vous avez des clients !';
+$wb['dbname_prefix_txt'] = 'Préfixe du nom de la BDD';
+$wb['dbuser_prefix_txt'] = 'Préfixe de l\'utilisateur de la BDD';
+$wb['shelluser_prefix_txt'] = 'Préfixe l\'utilisateur Shell';
+$wb['ftpuser_prefix_txt'] = 'Préfixe de l\'utilisateur FTP';
+$wb['dbname_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe du nom de la BDD.';
+$wb['dbuser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe de l\'utilisateur de la BDD.';
+$wb['ftpuser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe de l\'utilisateur FTP.';
+$wb['shelluser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe de l\'utilisateur Shell.';
+$wb['dblist_phpmyadmin_link_txt'] = 'Lien vers PHPMyAdmin dans la liste des bases';
+$wb['mailboxlist_webmail_link_txt'] = 'Lien vers le Webmail dans la liste des boites mail';
+$wb['dashboard_atom_url_txt'] = 'URL du fil Atom du tableau de bord';
+$wb['webdavuser_prefix_txt'] = 'Prefixe utilisateur Webdav';
+$wb['webdavuser_prefix_error_regex'] = 'Caractère non autorisé dans le préfixe utilisateur Webdav.';
+$wb['webmail_url_txt'] = 'URL du Webmail';
+$wb['phpmyadmin_url_txt'] = 'URL de PHPMyAdmin';
+$wb['use_domain_module_txt'] = 'Utiliser le module de domaine pour ajouter de nouveaux domaines';
+$wb['use_domain_module_hint'] = 'Si vous utilisez ce module, vos utilisateurs peuvent uniquement sélectionner un des domaines que l\'admin crée pour eux. Ils ne peuvent pas éditer librement le champ domaine. Vous devez vous identifier à nouveau après avoir modifié cette valeur pour rendre les modifications visibles.';
+$wb['new_domain_txt'] = 'HTML pour créer un nouveau domaine';
+$wb['webftp_url_txt'] = 'URL WebFTP';
+$wb['monitor_key_txt'] = 'Mot-clé du moniteur';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_users.lng b/interface/web/admin/lib/lang/fr_users.lng
index fd92c79..d9a4104 100644
--- a/interface/web/admin/lib/lang/fr_users.lng
+++ b/interface/web/admin/lib/lang/fr_users.lng
@@ -1,29 +1,29 @@
-<?php
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['username_err'] = 'Le nom d\'utilisateur est trop long ou contient des caractères invalides.';
-$wb['passwort_txt'] = 'Mot de passe';
-$wb['modules_txt'] = 'Module';
-$wb['startmodule_txt'] = 'Module de démarrage';
-$wb['app_theme_txt'] = 'Thème';
-$wb['typ_txt'] = 'Type';
-$wb['active_txt'] = 'Actif';
-$wb['language_txt'] = 'Langue';
-$wb['name_txt'] = 'Nom';
-$wb['vorname_txt'] = 'Prénom';
-$wb['unternehmen_txt'] = 'Société';
-$wb['strasse_txt'] = 'Rue';
-$wb['ort_txt'] = 'Ville';
-$wb['plz_txt'] = 'Code Postal';
-$wb['land_txt'] = 'Pays';
-$wb['email_txt'] = 'Email';
-$wb['url_txt'] = 'Url';
-$wb['telefon_txt'] = 'Télephone';
-$wb['fax_txt'] = 'Fax';
-$wb['groups_txt'] = 'Groupes';
-$wb['default_group_txt'] = 'Groupe par Défaut';
-$wb['username_empty'] = 'Le nom d\'utilisateur est vide.';
-$wb['username_unique'] = 'Le nom d\'utilisateur entré existe déja.';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['startmodule_err'] = 'Le module de départ n\'existe pas.';
-?>
-
+<?php
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['username_err'] = 'Le nom d\'utilisateur est trop long ou contient des caractères invalides.';
+$wb['passwort_txt'] = 'Mot de passe';
+$wb['modules_txt'] = 'Module';
+$wb['startmodule_txt'] = 'Module de démarrage';
+$wb['app_theme_txt'] = 'Thème';
+$wb['typ_txt'] = 'Type';
+$wb['active_txt'] = 'Actif';
+$wb['language_txt'] = 'Langue';
+$wb['name_txt'] = 'Nom';
+$wb['vorname_txt'] = 'Prénom';
+$wb['unternehmen_txt'] = 'Société';
+$wb['strasse_txt'] = 'Rue';
+$wb['ort_txt'] = 'Ville';
+$wb['plz_txt'] = 'Code Postal';
+$wb['land_txt'] = 'Pays';
+$wb['email_txt'] = 'Email';
+$wb['url_txt'] = 'Url';
+$wb['telefon_txt'] = 'Télephone';
+$wb['fax_txt'] = 'Fax';
+$wb['groups_txt'] = 'Groupes';
+$wb['default_group_txt'] = 'Groupe par Défaut';
+$wb['username_empty'] = 'Le nom d\'utilisateur est vide.';
+$wb['username_unique'] = 'Le nom d\'utilisateur entré existe déja.';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['startmodule_err'] = 'Le module de départ n\'existe pas.';
+?>
+
diff --git a/interface/web/admin/lib/lang/fr_users_list.lng b/interface/web/admin/lib/lang/fr_users_list.lng
index 770270c..e33efc6 100644
--- a/interface/web/admin/lib/lang/fr_users_list.lng
+++ b/interface/web/admin/lib/lang/fr_users_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Utilisateurs';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['name_txt'] = 'Nom';
-$wb['vorname_txt'] = 'Prénom';
-$wb['ort_txt'] = 'Ville';
-$wb['add_new_record_txt'] = 'Ajouter un nouvel utilisateur';
-$wb['warning_txt'] = '<b>ATTENTION:</b> Ne pas éditer ou modifier de paramètre utilisateur ici. Utilisez les paramètres Client et Revendeur dans le module Client à la place. Modifier ou changer les informations ici peut conduire à la perte de données';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Utilisateurs';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['name_txt'] = 'Nom';
+$wb['vorname_txt'] = 'Prénom';
+$wb['ort_txt'] = 'Ville';
+$wb['add_new_record_txt'] = 'Ajouter un nouvel utilisateur';
+$wb['warning_txt'] = '<b>ATTENTION:</b> Ne pas éditer ou modifier de paramètre utilisateur ici. Utilisez les paramètres Client et Revendeur dans le module Client à la place. Modifier ou changer les informations ici peut conduire à la perte de données';
+?>
+
diff --git a/interface/web/client/lib/lang/fr.lng b/interface/web/client/lib/lang/fr.lng
index 8223d24..a0075d8 100644
--- a/interface/web/client/lib/lang/fr.lng
+++ b/interface/web/client/lib/lang/fr.lng
@@ -1,14 +1,14 @@
-<?php
-$wb['Client'] = 'Client';
-$wb['Address'] = 'Adresse';
-$wb['Limits'] = 'Limites';
-$wb['Add Client'] = 'Ajouter un Client';
-$wb['Edit Client'] = 'Editer un Client';
-$wb['Clients'] = 'Clients';
-$wb['Edit Client-Templates'] = 'Editer les modèles de Clients';
-$wb['Add Reseller'] = 'Ajouter un Revendeur';
-$wb['Edit Reseller'] = 'Editer un Revendeur';
-$wb['Resellers'] = 'Revendeurs';
-$wb['error_has_clients'] = 'Ce revendeur a des clients. Effacez d\'abord les clients de ce revendeur.';
-?>
-
+<?php
+$wb['Client'] = 'Client';
+$wb['Address'] = 'Adresse';
+$wb['Limits'] = 'Limites';
+$wb['Add Client'] = 'Ajouter un Client';
+$wb['Edit Client'] = 'Editer un Client';
+$wb['Clients'] = 'Clients';
+$wb['Edit Client-Templates'] = 'Editer les modèles de Clients';
+$wb['Add Reseller'] = 'Ajouter un Revendeur';
+$wb['Edit Reseller'] = 'Editer un Revendeur';
+$wb['Resellers'] = 'Revendeurs';
+$wb['error_has_clients'] = 'Ce revendeur a des clients. Effacez d\'abord les clients de ce revendeur.';
+?>
+
diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng
index bc68dca..f5c8fca 100644
--- a/interface/web/client/lib/lang/fr_client.lng
+++ b/interface/web/client/lib/lang/fr_client.lng
@@ -1,102 +1,102 @@
-<?php
-$wb['limit_maildomain_txt'] = 'Nombre maximal de domaines d\'email';
-$wb['limit_mailbox_txt'] = 'Nombre maximal de boites email';
-$wb['limit_mailalias_txt'] = 'Nombre maximal d\'alias d\'email';
-$wb['limit_mailforward_txt'] = 'Nombre maximal de routeurs d\'email';
-$wb['limit_mailcatchall_txt'] = 'Nombre maximal de comptes collecteurs';
-$wb['limit_mailrouting_txt'] = 'Nombre maximal de routes d\'email';
-$wb['limit_mailfilter_txt'] = 'Nombre maximal de filtres d\'emails';
-$wb['limit_fetchmail_txt'] = 'Nombre maximal de comptes récupérateur email';
-$wb['limit_mailquota_txt'] = 'Quota des boites email';
-$wb['limit_spamfilter_wblist_txt'] = 'Nombre maximal de liste blanches/noires d\'email';
-$wb['limit_spamfilter_user_txt'] = 'Nombre maximal d\'utilisateurs du filtre antispam';
-$wb['limit_spamfilter_policy_txt'] = 'Nombre maximal de règles du filtre antispam';
-$wb['default_mailserver_txt'] = 'Serveur mail par défaut';
-$wb['company_name_txt'] = 'Nom de l\'entreprise';
-$wb['contact_name_txt'] = 'Nom de contact';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['password_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['language_txt'] = 'Langage';
-$wb['usertheme_txt'] = 'Thème';
-$wb['street_txt'] = 'Rue';
-$wb['zip_txt'] = 'Code Postal';
-$wb['city_txt'] = 'Ville';
-$wb['state_txt'] = 'Etat';
-$wb['country_txt'] = 'Pays';
-$wb['telephone_txt'] = 'Numéro de téléphone';
-$wb['mobile_txt'] = 'Numéro de Mobile';
-$wb['fax_txt'] = 'Fax';
-$wb['email_txt'] = 'Email';
-$wb['internet_txt'] = 'Adresse Web';
-$wb['icq_txt'] = 'ICQ';
-$wb['notes_txt'] = 'Notes';
-$wb['company_txt'] = 'Entreprise';
-$wb['title_txt'] = 'Titre';
-$wb['firstname_txt'] = 'Prénom';
-$wb['surname_txt'] = 'Nom';
-$wb['limit_client_txt'] = 'Nombre maximal de clients';
-$wb['limit_domain_txt'] = 'Nombre maximal de domaines';
-$wb['limit_subdomain_txt'] = 'Nombre maximal de sous-domaines';
-$wb['limit_webquota_txt'] = 'Limite du quota web';
-$wb['limit_database_txt'] = 'Nombre maximal de bases de données';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['limit_client_error_notint'] = 'La limite de sous-clients doit être un nombre';
-$wb['firstname_error_empty'] = 'Le prénom est vide.';
-$wb['contact_error_empty'] = 'Le nom de contact est vide.';
-$wb['default_webserver_txt'] = 'Serveur Web par défaut';
-$wb['limit_web_domain_txt'] = 'Nombre maximal de domaines Web';
-$wb['limit_web_aliasdomain_txt'] = 'Nombre maximal d\'alias de domaines';
-$wb['limit_web_subdomain_txt'] = 'Nombre maximal de sous-domaines';
-$wb['limit_ftp_user_txt'] = 'Nombre maximal d\'utilisateurs FTP';
-$wb['default_dnsserver_txt'] = 'Serveur DNS par défaut';
-$wb['limit_dns_zone_txt'] = 'Nombre maximal de zones DNS';
-$wb['limit_dns_record_txt'] = 'Nombre maximal d\'enregistrements DNS';
-$wb['limit_shell_user_txt'] = 'Nombre maximal d\'utilisateurs Shell';
-$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
-$wb['username_error_unique'] = 'Le nom d\'utilisateur existe déja.';
-$wb['limit_maildomain_error_notint'] = 'La limite de domaines d\'email doit être un nombre.';
-$wb['limit_mailbox_error_notint'] = 'La limite de boites d\'email doit être un nombre.';
-$wb['limit_mailalias_error_notint'] = 'La limite d\'alias d\'email doit être un nombre.';
-$wb['limit_mailforward_error_notint'] = 'La limite de routeurs d\'email doit être un nombre.';
-$wb['limit_mailcatchall_error_notint'] = 'La limite de comptes collecteurs doit être un nombre.';
-$wb['limit_mailrouting_error_notint'] = 'La limite de routes d\'email doit être un nombre.';
-$wb['limit_mailfilter_error_notint'] = 'La limite de filtres d\'email doit être un nombre.';
-$wb['limit_mailfetchmail_error_notint'] = 'La limite de comptes récupérateur email doit être un nombre.';
-$wb['limit_mailquota_error_notint'] = 'La limite du quota des boites d\'email doit être un nombre.';
-$wb['limit_spamfilter_wblist_error_notint'] = 'La limite de listes blanches/noires du filtre antispam doit être un nombre.';
-$wb['limit_spamfilter_user_error_notint'] = 'La limite d\'utilisateurs du filtre antispam doit être un nombre.';
-$wb['limit_spamfilter_policy_error_notint'] = 'La limite de règles du filtre antispam doit être un nombre.';
-$wb['limit_web_domain_error_notint'] = 'La limite de sites web doit être un nombre.';
-$wb['limit_web_aliasdomain_error_notint'] = 'La limite d\'alias de domaines doit être un nombre.';
-$wb['limit_web_subdomain_error_notint'] = 'La limite de sous-domaines doit être un nombre.';
-$wb['limit_ftp_user_error_notint'] = 'La limite d\'utilisateurs FTP doit être un nombre.';
-$wb['limit_shell_user_error_notint'] = 'La limite d\'utilisateurs Shell doit être un nombre.';
-$wb['limit_dns_zone_error_notint'] = 'La limite d\'enregistrements DNS doit être un nombre.';
-$wb['default_dbserver_txt'] = 'Serveur de bases de données par défaut';
-$wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.';
-$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
-$wb['template_master_txt'] = 'Maître';
-$wb['template_additional_txt'] = 'Ajout';
-$wb['ssh_chroot_txt'] = 'Options Chroot SSH';
-$wb['web_php_options_txt'] = 'Options PHP';
-$wb['limit_cron_txt'] = 'Nombre maximal de tâches Cron';
-$wb['limit_cron_type_txt'] = 'Types des tâches Cron';
-$wb['limit_cron_frequency_txt'] = 'Délai minimum entre deux éxécutions';
-$wb['limit_cron_error_notint'] = 'La limite de tâches Cron doit être un nombre.';
-$wb['limit_cron_error_frequency'] = 'La fréquence des tâches Cron doit être un nombre.';
-$wb['limit_client_error'] = 'Le nombre maximum de clients a été atteint.';
-$wb['limit_mailaliasdomain_txt'] = 'Nombre max d\'alias de domaines';
-$wb['limit_dns_slave_zone_txt'] = 'Nombre max de zones DNS secondaires';
-$wb['limit_webdav_user_txt'] = 'Nombre max d\'utilisateurs webdav';
-$wb['limit_mailaliasdomain_error_notint'] = 'La limite d\'alias de domaine email doit être un nombre.';
-$wb['limit_webdav_user_error_notint'] = 'La limite d\'utilisateurs webdav doit être un nombre.';
-$wb['limit_dns_slave_zone_error_notint'] = 'La limite de zones DNS secondaire doit être un nombre.';
-$wb['limit_web_quota_txt'] = 'Quota web';
-$wb['limit_traffic_quota_txt'] = 'Quota de trafic';
-$wb['limit_trafficquota_error_notint'] = 'Le Quota de trafic doit être un nombre.';
-$wb['customer_no_txt'] = 'No. Client';
-$wb['vat_id_txt'] = 'Numéro de TVA';
-$wb['required_fields_txt'] = '* Champs requis';
-?>
-
+<?php
+$wb['limit_maildomain_txt'] = 'Nombre maximal de domaines d\'email';
+$wb['limit_mailbox_txt'] = 'Nombre maximal de boites email';
+$wb['limit_mailalias_txt'] = 'Nombre maximal d\'alias d\'email';
+$wb['limit_mailforward_txt'] = 'Nombre maximal de routeurs d\'email';
+$wb['limit_mailcatchall_txt'] = 'Nombre maximal de comptes collecteurs';
+$wb['limit_mailrouting_txt'] = 'Nombre maximal de routes d\'email';
+$wb['limit_mailfilter_txt'] = 'Nombre maximal de filtres d\'emails';
+$wb['limit_fetchmail_txt'] = 'Nombre maximal de comptes récupérateur email';
+$wb['limit_mailquota_txt'] = 'Quota des boites email';
+$wb['limit_spamfilter_wblist_txt'] = 'Nombre maximal de liste blanches/noires d\'email';
+$wb['limit_spamfilter_user_txt'] = 'Nombre maximal d\'utilisateurs du filtre antispam';
+$wb['limit_spamfilter_policy_txt'] = 'Nombre maximal de règles du filtre antispam';
+$wb['default_mailserver_txt'] = 'Serveur mail par défaut';
+$wb['company_name_txt'] = 'Nom de l\'entreprise';
+$wb['contact_name_txt'] = 'Nom de contact';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['password_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['language_txt'] = 'Langage';
+$wb['usertheme_txt'] = 'Thème';
+$wb['street_txt'] = 'Rue';
+$wb['zip_txt'] = 'Code Postal';
+$wb['city_txt'] = 'Ville';
+$wb['state_txt'] = 'Etat';
+$wb['country_txt'] = 'Pays';
+$wb['telephone_txt'] = 'Numéro de téléphone';
+$wb['mobile_txt'] = 'Numéro de Mobile';
+$wb['fax_txt'] = 'Fax';
+$wb['email_txt'] = 'Email';
+$wb['internet_txt'] = 'Adresse Web';
+$wb['icq_txt'] = 'ICQ';
+$wb['notes_txt'] = 'Notes';
+$wb['company_txt'] = 'Entreprise';
+$wb['title_txt'] = 'Titre';
+$wb['firstname_txt'] = 'Prénom';
+$wb['surname_txt'] = 'Nom';
+$wb['limit_client_txt'] = 'Nombre maximal de clients';
+$wb['limit_domain_txt'] = 'Nombre maximal de domaines';
+$wb['limit_subdomain_txt'] = 'Nombre maximal de sous-domaines';
+$wb['limit_webquota_txt'] = 'Limite du quota web';
+$wb['limit_database_txt'] = 'Nombre maximal de bases de données';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['limit_client_error_notint'] = 'La limite de sous-clients doit être un nombre';
+$wb['firstname_error_empty'] = 'Le prénom est vide.';
+$wb['contact_error_empty'] = 'Le nom de contact est vide.';
+$wb['default_webserver_txt'] = 'Serveur Web par défaut';
+$wb['limit_web_domain_txt'] = 'Nombre maximal de domaines Web';
+$wb['limit_web_aliasdomain_txt'] = 'Nombre maximal d\'alias de domaines';
+$wb['limit_web_subdomain_txt'] = 'Nombre maximal de sous-domaines';
+$wb['limit_ftp_user_txt'] = 'Nombre maximal d\'utilisateurs FTP';
+$wb['default_dnsserver_txt'] = 'Serveur DNS par défaut';
+$wb['limit_dns_zone_txt'] = 'Nombre maximal de zones DNS';
+$wb['limit_dns_record_txt'] = 'Nombre maximal d\'enregistrements DNS';
+$wb['limit_shell_user_txt'] = 'Nombre maximal d\'utilisateurs Shell';
+$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
+$wb['username_error_unique'] = 'Le nom d\'utilisateur existe déja.';
+$wb['limit_maildomain_error_notint'] = 'La limite de domaines d\'email doit être un nombre.';
+$wb['limit_mailbox_error_notint'] = 'La limite de boites d\'email doit être un nombre.';
+$wb['limit_mailalias_error_notint'] = 'La limite d\'alias d\'email doit être un nombre.';
+$wb['limit_mailforward_error_notint'] = 'La limite de routeurs d\'email doit être un nombre.';
+$wb['limit_mailcatchall_error_notint'] = 'La limite de comptes collecteurs doit être un nombre.';
+$wb['limit_mailrouting_error_notint'] = 'La limite de routes d\'email doit être un nombre.';
+$wb['limit_mailfilter_error_notint'] = 'La limite de filtres d\'email doit être un nombre.';
+$wb['limit_mailfetchmail_error_notint'] = 'La limite de comptes récupérateur email doit être un nombre.';
+$wb['limit_mailquota_error_notint'] = 'La limite du quota des boites d\'email doit être un nombre.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'La limite de listes blanches/noires du filtre antispam doit être un nombre.';
+$wb['limit_spamfilter_user_error_notint'] = 'La limite d\'utilisateurs du filtre antispam doit être un nombre.';
+$wb['limit_spamfilter_policy_error_notint'] = 'La limite de règles du filtre antispam doit être un nombre.';
+$wb['limit_web_domain_error_notint'] = 'La limite de sites web doit être un nombre.';
+$wb['limit_web_aliasdomain_error_notint'] = 'La limite d\'alias de domaines doit être un nombre.';
+$wb['limit_web_subdomain_error_notint'] = 'La limite de sous-domaines doit être un nombre.';
+$wb['limit_ftp_user_error_notint'] = 'La limite d\'utilisateurs FTP doit être un nombre.';
+$wb['limit_shell_user_error_notint'] = 'La limite d\'utilisateurs Shell doit être un nombre.';
+$wb['limit_dns_zone_error_notint'] = 'La limite d\'enregistrements DNS doit être un nombre.';
+$wb['default_dbserver_txt'] = 'Serveur de bases de données par défaut';
+$wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.';
+$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
+$wb['template_master_txt'] = 'Maître';
+$wb['template_additional_txt'] = 'Ajout';
+$wb['ssh_chroot_txt'] = 'Options Chroot SSH';
+$wb['web_php_options_txt'] = 'Options PHP';
+$wb['limit_cron_txt'] = 'Nombre maximal de tâches Cron';
+$wb['limit_cron_type_txt'] = 'Types des tâches Cron';
+$wb['limit_cron_frequency_txt'] = 'Délai minimum entre deux éxécutions';
+$wb['limit_cron_error_notint'] = 'La limite de tâches Cron doit être un nombre.';
+$wb['limit_cron_error_frequency'] = 'La fréquence des tâches Cron doit être un nombre.';
+$wb['limit_client_error'] = 'Le nombre maximum de clients a été atteint.';
+$wb['limit_mailaliasdomain_txt'] = 'Nombre max d\'alias de domaines';
+$wb['limit_dns_slave_zone_txt'] = 'Nombre max de zones DNS secondaires';
+$wb['limit_webdav_user_txt'] = 'Nombre max d\'utilisateurs webdav';
+$wb['limit_mailaliasdomain_error_notint'] = 'La limite d\'alias de domaine email doit être un nombre.';
+$wb['limit_webdav_user_error_notint'] = 'La limite d\'utilisateurs webdav doit être un nombre.';
+$wb['limit_dns_slave_zone_error_notint'] = 'La limite de zones DNS secondaire doit être un nombre.';
+$wb['limit_web_quota_txt'] = 'Quota web';
+$wb['limit_traffic_quota_txt'] = 'Quota de trafic';
+$wb['limit_trafficquota_error_notint'] = 'Le Quota de trafic doit être un nombre.';
+$wb['customer_no_txt'] = 'No. Client';
+$wb['vat_id_txt'] = 'Numéro de TVA';
+$wb['required_fields_txt'] = '* Champs requis';
+?>
+
diff --git a/interface/web/client/lib/lang/fr_client_del.lng b/interface/web/client/lib/lang/fr_client_del.lng
index 8a9d14f..8a89485 100644
--- a/interface/web/client/lib/lang/fr_client_del.lng
+++ b/interface/web/client/lib/lang/fr_client_del.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['confirm_action_txt'] = 'Confirmer l\'action';
-$wb['delete_explanation'] = 'Cette action va supprimer le nombre d\'enregistrements suivants associés avec le client';
-$wb['btn_save_txt'] = 'Effacer le client';
-$wb['btn_cancel_txt'] = 'Annuler sans effacer le client';
-?>
-
+<?php
+$wb['confirm_action_txt'] = 'Confirmer l\'action';
+$wb['delete_explanation'] = 'Cette action va supprimer le nombre d\'enregistrements suivants associés avec le client';
+$wb['btn_save_txt'] = 'Effacer le client';
+$wb['btn_cancel_txt'] = 'Annuler sans effacer le client';
+?>
+
diff --git a/interface/web/client/lib/lang/fr_client_template.lng b/interface/web/client/lib/lang/fr_client_template.lng
index c1274b7..2d17b1f 100644
--- a/interface/web/client/lib/lang/fr_client_template.lng
+++ b/interface/web/client/lib/lang/fr_client_template.lng
@@ -1,64 +1,64 @@
-<?php
-$wb['limit_client_error_notint'] = 'La limite de sous clients doit être un nombre.';
-$wb['limit_maildomain_txt'] = 'Nombre maximal de domaines d\'emails';
-$wb['limit_mailbox_txt'] = 'Nombre maximal de boites email';
-$wb['limit_mailalias_txt'] = 'Nombre maximal d\'alias d\'email';
-$wb['limit_mailforward_txt'] = 'Nombre maximal de routeurs d\'email';
-$wb['limit_mailcatchall_txt'] = 'Nombre maximal de comptes collecteurs';
-$wb['limit_mailrouting_txt'] = 'Nombre maximal de routes d\'emails';
-$wb['limit_mailfilter_txt'] = 'Nombre maximal de filtres d\'emails';
-$wb['limit_fetchmail_txt'] = 'Nombre maximal de comptes récupérateur email';
-$wb['limit_mailquota_txt'] = 'Quota des boites email';
-$wb['limit_spamfilter_wblist_txt'] = 'Nombre maximal de liste blanches/noires d\'emails';
-$wb['limit_spamfilter_user_txt'] = 'Nombre maximal d\'utilisateurs du filtre antispam';
-$wb['limit_spamfilter_policy_txt'] = 'Nombre maximal de règles du filtre antispam';
-$wb['limit_client_txt'] = 'Nombre maximal de clients';
-$wb['limit_domain_txt'] = 'Nombre maximal de domaines';
-$wb['limit_subdomain_txt'] = 'Nombre maximal de sous-domaines';
-$wb['limit_webquota_txt'] = 'Limite du quota web';
-$wb['limit_database_txt'] = 'Nombre maximal de bases de données.';
-$wb['limit_web_domain_txt'] = 'Nombre maximal de domaines Web';
-$wb['limit_web_aliasdomain_txt'] = 'Nombre maximal d\'alias de domaine';
-$wb['limit_web_subdomain_txt'] = 'Nombre maximal de sous-domaines';
-$wb['limit_ftp_user_txt'] = 'Nombre maximal d\'utilisateurs FTP';
-$wb['limit_dns_zone_txt'] = 'Nombre maximal de zones DNS';
-$wb['limit_dns_record_txt'] = 'Nombre maximal d\'enregistrements DNS';
-$wb['limit_shell_user_txt'] = 'Nombre maximal d\'utilisateurs Shell';
-$wb['limit_maildomain_error_notint'] = 'La limite de domaines d\'email doit être un nombre.';
-$wb['limit_mailbox_error_notint'] = 'La limite de boites d\'email doit être un nombre.';
-$wb['limit_mailalias_error_notint'] = 'La limite d\'alias d\'email doit être un nombre.';
-$wb['limit_mailforward_error_notint'] = 'La limite de routeurs d\'email doit être un nombre.';
-$wb['limit_mailcatchall_error_notint'] = 'La limite de comptes collecteurs doit être un nombre.';
-$wb['limit_mailrouting_error_notint'] = 'La limite de routes d\'email doit être un nombre.';
-$wb['limit_mailfilter_error_notint'] = 'La limite de filtres d\'email doit être un nombre.';
-$wb['limit_mailfetchmail_error_notint'] = 'La limite de comptes récupérateur email doit être un nombre.';
-$wb['limit_mailquota_error_notint'] = 'La limite du quota des boites d\'email doit être un nombre.';
-$wb['limit_spamfilter_wblist_error_notint'] = 'La limite de listes blanches/noires du filtre antispam doit être un nombre.';
-$wb['limit_spamfilter_user_error_notint'] = 'La limite d\'utilisateurs du filtre antispam doit être un nombre.';
-$wb['limit_spamfilter_policy_error_notint'] = 'La limite de règles du filtre antispam doit être un nombre.';
-$wb['limit_web_domain_error_notint'] = 'La limite de sites web doit être un nombre.';
-$wb['limit_web_aliasdomain_error_notint'] = 'La limite d\'alias de domaines doit être un nombre.';
-$wb['limit_web_subdomain_error_notint'] = 'La limite de sous-domaines doit être un nombre.';
-$wb['limit_ftp_user_error_notint'] = 'La limite d\'utilisateurs FTP doit être un nombre.';
-$wb['limit_shell_user_error_notint'] = 'La limite d\'utilisateurs Shell doit être un nombre.';
-$wb['limit_dns_zone_error_notint'] = 'La limite d\'enregistrements DNS doit être un nombre.';
-$wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.';
-$wb['error_template_name_empty'] = 'Entrez le nom du modèle.';
-$wb['limit_cron_txt'] = 'Nombre maximal de tâches Cron';
-$wb['limit_cron_type_txt'] = 'Types des tâches Cron';
-$wb['limit_cron_frequency_txt'] = 'Délai minimum entre deux éxécutions';
-$wb['limit_cron_error_notint'] = 'La limite de tâches Cron doit être un nombre.';
-$wb['limit_cron_error_frequency'] = 'La fréquence des tâches Cron doit être un nombre.';
-$wb['limit_mailaliasdomain_txt'] = 'Nombre max. d\'alias de domaine';
-$wb['limit_dns_slave_zone_txt'] = 'Nombre max. de zones DNS secondaires';
-$wb['limit_webdav_user_txt'] = 'Nombre max. d\'utilisateurs Webdav';
-$wb['limit_mailaliasdomain_error_notint'] = 'La limite d\'alias de domaine doit être un nombre.';
-$wb['limit_webdav_user_error_notint'] = 'La limite d\'utilisateurs webdav doit être un nombre.';
-$wb['limit_dns_slave_zone_error_notint'] = 'La limite de zones DNS secondaires doit être un nombre.';
-$wb['limit_dns_record_error_notint'] = 'Le nombre d\'enregistrements DNS limite doit être un nombre.';
-$wb['limit_web_quota_txt'] = 'Quota web';
-$wb['limit_traffic_quota_txt'] = 'Quota de trafic';
-$wb['limit_trafficquota_error_notint'] = 'le quota de trafic doit être un nombre.';
-$wb['template_del_aborted_txt'] = 'Supression annulée. Il y a toujours un client qui a ce gabarit sélectionné.';
-?>
-
+<?php
+$wb['limit_client_error_notint'] = 'La limite de sous clients doit être un nombre.';
+$wb['limit_maildomain_txt'] = 'Nombre maximal de domaines d\'emails';
+$wb['limit_mailbox_txt'] = 'Nombre maximal de boites email';
+$wb['limit_mailalias_txt'] = 'Nombre maximal d\'alias d\'email';
+$wb['limit_mailforward_txt'] = 'Nombre maximal de routeurs d\'email';
+$wb['limit_mailcatchall_txt'] = 'Nombre maximal de comptes collecteurs';
+$wb['limit_mailrouting_txt'] = 'Nombre maximal de routes d\'emails';
+$wb['limit_mailfilter_txt'] = 'Nombre maximal de filtres d\'emails';
+$wb['limit_fetchmail_txt'] = 'Nombre maximal de comptes récupérateur email';
+$wb['limit_mailquota_txt'] = 'Quota des boites email';
+$wb['limit_spamfilter_wblist_txt'] = 'Nombre maximal de liste blanches/noires d\'emails';
+$wb['limit_spamfilter_user_txt'] = 'Nombre maximal d\'utilisateurs du filtre antispam';
+$wb['limit_spamfilter_policy_txt'] = 'Nombre maximal de règles du filtre antispam';
+$wb['limit_client_txt'] = 'Nombre maximal de clients';
+$wb['limit_domain_txt'] = 'Nombre maximal de domaines';
+$wb['limit_subdomain_txt'] = 'Nombre maximal de sous-domaines';
+$wb['limit_webquota_txt'] = 'Limite du quota web';
+$wb['limit_database_txt'] = 'Nombre maximal de bases de données.';
+$wb['limit_web_domain_txt'] = 'Nombre maximal de domaines Web';
+$wb['limit_web_aliasdomain_txt'] = 'Nombre maximal d\'alias de domaine';
+$wb['limit_web_subdomain_txt'] = 'Nombre maximal de sous-domaines';
+$wb['limit_ftp_user_txt'] = 'Nombre maximal d\'utilisateurs FTP';
+$wb['limit_dns_zone_txt'] = 'Nombre maximal de zones DNS';
+$wb['limit_dns_record_txt'] = 'Nombre maximal d\'enregistrements DNS';
+$wb['limit_shell_user_txt'] = 'Nombre maximal d\'utilisateurs Shell';
+$wb['limit_maildomain_error_notint'] = 'La limite de domaines d\'email doit être un nombre.';
+$wb['limit_mailbox_error_notint'] = 'La limite de boites d\'email doit être un nombre.';
+$wb['limit_mailalias_error_notint'] = 'La limite d\'alias d\'email doit être un nombre.';
+$wb['limit_mailforward_error_notint'] = 'La limite de routeurs d\'email doit être un nombre.';
+$wb['limit_mailcatchall_error_notint'] = 'La limite de comptes collecteurs doit être un nombre.';
+$wb['limit_mailrouting_error_notint'] = 'La limite de routes d\'email doit être un nombre.';
+$wb['limit_mailfilter_error_notint'] = 'La limite de filtres d\'email doit être un nombre.';
+$wb['limit_mailfetchmail_error_notint'] = 'La limite de comptes récupérateur email doit être un nombre.';
+$wb['limit_mailquota_error_notint'] = 'La limite du quota des boites d\'email doit être un nombre.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'La limite de listes blanches/noires du filtre antispam doit être un nombre.';
+$wb['limit_spamfilter_user_error_notint'] = 'La limite d\'utilisateurs du filtre antispam doit être un nombre.';
+$wb['limit_spamfilter_policy_error_notint'] = 'La limite de règles du filtre antispam doit être un nombre.';
+$wb['limit_web_domain_error_notint'] = 'La limite de sites web doit être un nombre.';
+$wb['limit_web_aliasdomain_error_notint'] = 'La limite d\'alias de domaines doit être un nombre.';
+$wb['limit_web_subdomain_error_notint'] = 'La limite de sous-domaines doit être un nombre.';
+$wb['limit_ftp_user_error_notint'] = 'La limite d\'utilisateurs FTP doit être un nombre.';
+$wb['limit_shell_user_error_notint'] = 'La limite d\'utilisateurs Shell doit être un nombre.';
+$wb['limit_dns_zone_error_notint'] = 'La limite d\'enregistrements DNS doit être un nombre.';
+$wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.';
+$wb['error_template_name_empty'] = 'Entrez le nom du modèle.';
+$wb['limit_cron_txt'] = 'Nombre maximal de tâches Cron';
+$wb['limit_cron_type_txt'] = 'Types des tâches Cron';
+$wb['limit_cron_frequency_txt'] = 'Délai minimum entre deux éxécutions';
+$wb['limit_cron_error_notint'] = 'La limite de tâches Cron doit être un nombre.';
+$wb['limit_cron_error_frequency'] = 'La fréquence des tâches Cron doit être un nombre.';
+$wb['limit_mailaliasdomain_txt'] = 'Nombre max. d\'alias de domaine';
+$wb['limit_dns_slave_zone_txt'] = 'Nombre max. de zones DNS secondaires';
+$wb['limit_webdav_user_txt'] = 'Nombre max. d\'utilisateurs Webdav';
+$wb['limit_mailaliasdomain_error_notint'] = 'La limite d\'alias de domaine doit être un nombre.';
+$wb['limit_webdav_user_error_notint'] = 'La limite d\'utilisateurs webdav doit être un nombre.';
+$wb['limit_dns_slave_zone_error_notint'] = 'La limite de zones DNS secondaires doit être un nombre.';
+$wb['limit_dns_record_error_notint'] = 'Le nombre d\'enregistrements DNS limite doit être un nombre.';
+$wb['limit_web_quota_txt'] = 'Quota web';
+$wb['limit_traffic_quota_txt'] = 'Quota de trafic';
+$wb['limit_trafficquota_error_notint'] = 'le quota de trafic doit être un nombre.';
+$wb['template_del_aborted_txt'] = 'Supression annulée. Il y a toujours un client qui a ce gabarit sélectionné.';
+?>
+
diff --git a/interface/web/client/lib/lang/fr_client_template_list.lng b/interface/web/client/lib/lang/fr_client_template_list.lng
index 776dbd0..f6063e2 100644
--- a/interface/web/client/lib/lang/fr_client_template_list.lng
+++ b/interface/web/client/lib/lang/fr_client_template_list.lng
@@ -1,6 +1,6 @@
-<?php
-$wb['list_head_txt'] = 'Modèles de clients';
-$wb['template_type_txt'] = 'Type';
-$wb['template_name_txt'] = 'Nom du modèle';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Modèles de clients';
+$wb['template_type_txt'] = 'Type';
+$wb['template_name_txt'] = 'Nom du modèle';
+?>
+
diff --git a/interface/web/client/lib/lang/fr_clients_list.lng b/interface/web/client/lib/lang/fr_clients_list.lng
index a6787f3..afbf646 100644
--- a/interface/web/client/lib/lang/fr_clients_list.lng
+++ b/interface/web/client/lib/lang/fr_clients_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Clients';
-$wb['client_id_txt'] = 'ID';
-$wb['company_name_txt'] = 'Nom de l\'entreprise';
-$wb['contact_name_txt'] = 'Nom du contact';
-$wb['city_txt'] = 'Ville';
-$wb['country_txt'] = 'Pays';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau client';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Clients';
+$wb['client_id_txt'] = 'ID';
+$wb['company_name_txt'] = 'Nom de l\'entreprise';
+$wb['contact_name_txt'] = 'Nom du contact';
+$wb['city_txt'] = 'Ville';
+$wb['country_txt'] = 'Pays';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau client';
+?>
+
diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng
index 0be106a..5245e0f 100644
--- a/interface/web/client/lib/lang/fr_reseller.lng
+++ b/interface/web/client/lib/lang/fr_reseller.lng
@@ -1,103 +1,103 @@
-<?php
-$wb['limit_maildomain_txt'] = 'Nombre maximal de domaines d\'emails';
-$wb['limit_mailbox_txt'] = 'Nombre maximal de boites email';
-$wb['limit_mailalias_txt'] = 'Nombre maximal d\'alias d\'email';
-$wb['limit_mailforward_txt'] = 'Nombre maximal de routeurs d\'email';
-$wb['limit_mailcatchall_txt'] = 'Nombre maximal de comptes collecteurs';
-$wb['limit_mailrouting_txt'] = 'Nombre maximal de routes d\'emails';
-$wb['limit_mailfilter_txt'] = 'Nombre maximal de filtres d\'emails';
-$wb['limit_fetchmail_txt'] = 'Nombre maximal de comptes récupérateur email';
-$wb['limit_mailquota_txt'] = 'Quota des boites email';
-$wb['limit_spamfilter_wblist_txt'] = 'Nombre maximal de liste blanches/noires d\'emails';
-$wb['limit_spamfilter_user_txt'] = 'Nombre maximal d\'utilisateurs du filtre antispam';
-$wb['limit_spamfilter_policy_txt'] = 'Nombre maximal de règles du filtre antispam';
-$wb['default_mailserver_txt'] = 'Serveur mail par défaut';
-$wb['company_name_txt'] = 'Nom de l\'entreprise';
-$wb['contact_name_txt'] = 'Nom de contact';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['password_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['language_txt'] = 'Langage';
-$wb['usertheme_txt'] = 'Thème';
-$wb['street_txt'] = 'Rue';
-$wb['zip_txt'] = 'Code Postal';
-$wb['city_txt'] = 'Ville';
-$wb['state_txt'] = 'Etat';
-$wb['country_txt'] = 'Pays';
-$wb['telephone_txt'] = 'Numéro de téléphone';
-$wb['mobile_txt'] = 'Numéro de Mobile';
-$wb['fax_txt'] = 'Fax';
-$wb['email_txt'] = 'Email';
-$wb['internet_txt'] = 'Adresse Web';
-$wb['icq_txt'] = 'ICQ';
-$wb['notes_txt'] = 'Notes';
-$wb['company_txt'] = 'Entreprise';
-$wb['title_txt'] = 'Titre';
-$wb['firstname_txt'] = 'Prénom';
-$wb['surname_txt'] = 'Nom';
-$wb['limit_domain_txt'] = 'Nombre maximal de domaines';
-$wb['limit_subdomain_txt'] = 'Nombre maximal de sous-domaines';
-$wb['limit_webquota_txt'] = 'Limite du quota web';
-$wb['limit_database_txt'] = 'Nombre maximal de bases de données';
-$wb['limit_cron_txt'] = 'Nombre maximal de tâches cron';
-$wb['limit_cron_type_txt'] = 'Types des tâches cron';
-$wb['limit_cron_frequency_txt'] = 'Délai minimum entre deux exécutions';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['limit_client_error_notint'] = 'La limite de sous-clients doit être un nombre.';
-$wb['firstname_error_empty'] = 'Le prénom est vide.';
-$wb['contact_error_empty'] = 'Le nom de contact est vide.';
-$wb['default_webserver_txt'] = 'Serveur Web par défaut';
-$wb['limit_web_domain_txt'] = 'Nombre maximal de domaines Web';
-$wb['limit_web_aliasdomain_txt'] = 'Nombre maximal d\'alias de domaines';
-$wb['limit_web_subdomain_txt'] = 'Nombre maximal de sous-domaines';
-$wb['limit_ftp_user_txt'] = 'Nombre maximal d\'utilisateurs FTP';
-$wb['default_dnsserver_txt'] = 'Serveur DNS par défaut';
-$wb['limit_dns_zone_txt'] = 'Nombre maximal de zones DNS';
-$wb['limit_dns_record_txt'] = 'Nombre maximal d\'enregistrements DNS';
-$wb['limit_shell_user_txt'] = 'Nombre maximal d\'utilisateurs Shell';
-$wb['limit_client_txt'] = 'Nombre maximal de clients';
-$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
-$wb['username_error_unique'] = 'Le nom d\'utilisateur existe déja.';
-$wb['limit_maildomain_error_notint'] = 'La limite de domaines d\'email doit être un nombre.';
-$wb['limit_mailbox_error_notint'] = 'La limite de boites d\'email doit être un nombre.';
-$wb['limit_mailalias_error_notint'] = 'La limite d\'alias d\'email doit être un nombre.';
-$wb['limit_mailforward_error_notint'] = 'La limite de routeurs d\'email doit être un nombre.';
-$wb['limit_mailcatchall_error_notint'] = 'La limite de comptes collecteurs doit être un nombre.';
-$wb['limit_mailrouting_error_notint'] = 'La limite de routes d\'email doit être un nombre.';
-$wb['limit_mailfilter_error_notint'] = 'La limite de filtres d\'email doit être un nombre.';
-$wb['limit_mailfetchmail_error_notint'] = 'La limite de comptes récupérateur email doit être un nombre.';
-$wb['limit_mailquota_error_notint'] = 'La limite du quota des boites d\'email doit être un nombre.';
-$wb['limit_spamfilter_wblist_error_notint'] = 'La limite de listes blanches/noires du filtre antispam doit être un nombre.';
-$wb['limit_spamfilter_user_error_notint'] = 'La limite d\'utilisateurs du filtre antispam doit être un nombre.';
-$wb['limit_spamfilter_policy_error_notint'] = 'La limite de règles du filtre antispam doit être un nombre.';
-$wb['limit_web_domain_error_notint'] = 'La limite de sites web doit être un nombre.';
-$wb['limit_web_aliasdomain_error_notint'] = 'La limite d\'alias de domaines doit être un nombre.';
-$wb['limit_web_subdomain_error_notint'] = 'La limite de sous-domaines doit être un nombre.';
-$wb['limit_ftp_user_error_notint'] = 'La limite d\'utilisateurs FTP doit être un nombre.';
-$wb['limit_shell_user_error_notint'] = 'La limite d\'utilisateurs Shell doit être un nombre.';
-$wb['limit_dns_zone_error_notint'] = 'La limite d\'enregistrements DNS doit être un nombre.';
-$wb['default_dbserver_txt'] = 'Serveur de bases de données par défaut';
-$wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.';
-$wb['limit_cron_error_notint'] = 'La limite de tâches Cron doit être un nombre.';
-$wb['limit_cron_error_frequency'] = 'La fréquence des tâches Cron doit être un nombre.';
-$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
-$wb['template_master_txt'] = 'Modèle Maître';
-$wb['template_additional_txt'] = 'Modèle additionnel';
-$wb['ssh_chroot_txt'] = 'Options Chroot SSH';
-$wb['web_php_options_txt'] = 'Options PHP';
-$wb['limit_client_error'] = 'Le nombre maximum de client a été atteint.';
-$wb['limit_client_error_positive'] = 'Le nombre de clients doit être plus grand que 0.';
-$wb['limit_dns_slave_zone_txt'] = 'Nombre maximum de zones DNS secondaire';
-$wb['limit_dns_slave_zone_error_notint'] = 'La limite de zones DNS secondaire doit être un nombre';
-$wb['limit_dns_record_error_notint'] = 'Le nombre maximum d\'enregistrements DNS doit être un nombre.';
-$wb['limit_web_quota_txt'] = 'Quota web';
-$wb['limit_traffic_quota_txt'] = 'Quota de trafic';
-$wb['limit_trafficquota_error_notint'] = 'Le quota de trafic doit être un nombre.';
-$wb['customer_no_txt'] = 'No. Client';
-$wb['vat_id_txt'] = 'Numéro de TVA';
-$wb['required_fields_txt'] = '* Champs requis';
-$wb['limit_mailaliasdomain_txt'] = 'Nombre max d\'alias de domaine';
-$wb['limit_webdav_user_txt'] = 'Nombre max d\'utilisateurs Webdav';
-$wb['limit_webdav_user_error_notint'] = 'La limite d\'utilisateurs Webdav doit être un nombre.';
-?>
-
+<?php
+$wb['limit_maildomain_txt'] = 'Nombre maximal de domaines d\'emails';
+$wb['limit_mailbox_txt'] = 'Nombre maximal de boites email';
+$wb['limit_mailalias_txt'] = 'Nombre maximal d\'alias d\'email';
+$wb['limit_mailforward_txt'] = 'Nombre maximal de routeurs d\'email';
+$wb['limit_mailcatchall_txt'] = 'Nombre maximal de comptes collecteurs';
+$wb['limit_mailrouting_txt'] = 'Nombre maximal de routes d\'emails';
+$wb['limit_mailfilter_txt'] = 'Nombre maximal de filtres d\'emails';
+$wb['limit_fetchmail_txt'] = 'Nombre maximal de comptes récupérateur email';
+$wb['limit_mailquota_txt'] = 'Quota des boites email';
+$wb['limit_spamfilter_wblist_txt'] = 'Nombre maximal de liste blanches/noires d\'emails';
+$wb['limit_spamfilter_user_txt'] = 'Nombre maximal d\'utilisateurs du filtre antispam';
+$wb['limit_spamfilter_policy_txt'] = 'Nombre maximal de règles du filtre antispam';
+$wb['default_mailserver_txt'] = 'Serveur mail par défaut';
+$wb['company_name_txt'] = 'Nom de l\'entreprise';
+$wb['contact_name_txt'] = 'Nom de contact';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['password_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['language_txt'] = 'Langage';
+$wb['usertheme_txt'] = 'Thème';
+$wb['street_txt'] = 'Rue';
+$wb['zip_txt'] = 'Code Postal';
+$wb['city_txt'] = 'Ville';
+$wb['state_txt'] = 'Etat';
+$wb['country_txt'] = 'Pays';
+$wb['telephone_txt'] = 'Numéro de téléphone';
+$wb['mobile_txt'] = 'Numéro de Mobile';
+$wb['fax_txt'] = 'Fax';
+$wb['email_txt'] = 'Email';
+$wb['internet_txt'] = 'Adresse Web';
+$wb['icq_txt'] = 'ICQ';
+$wb['notes_txt'] = 'Notes';
+$wb['company_txt'] = 'Entreprise';
+$wb['title_txt'] = 'Titre';
+$wb['firstname_txt'] = 'Prénom';
+$wb['surname_txt'] = 'Nom';
+$wb['limit_domain_txt'] = 'Nombre maximal de domaines';
+$wb['limit_subdomain_txt'] = 'Nombre maximal de sous-domaines';
+$wb['limit_webquota_txt'] = 'Limite du quota web';
+$wb['limit_database_txt'] = 'Nombre maximal de bases de données';
+$wb['limit_cron_txt'] = 'Nombre maximal de tâches cron';
+$wb['limit_cron_type_txt'] = 'Types des tâches cron';
+$wb['limit_cron_frequency_txt'] = 'Délai minimum entre deux exécutions';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['limit_client_error_notint'] = 'La limite de sous-clients doit être un nombre.';
+$wb['firstname_error_empty'] = 'Le prénom est vide.';
+$wb['contact_error_empty'] = 'Le nom de contact est vide.';
+$wb['default_webserver_txt'] = 'Serveur Web par défaut';
+$wb['limit_web_domain_txt'] = 'Nombre maximal de domaines Web';
+$wb['limit_web_aliasdomain_txt'] = 'Nombre maximal d\'alias de domaines';
+$wb['limit_web_subdomain_txt'] = 'Nombre maximal de sous-domaines';
+$wb['limit_ftp_user_txt'] = 'Nombre maximal d\'utilisateurs FTP';
+$wb['default_dnsserver_txt'] = 'Serveur DNS par défaut';
+$wb['limit_dns_zone_txt'] = 'Nombre maximal de zones DNS';
+$wb['limit_dns_record_txt'] = 'Nombre maximal d\'enregistrements DNS';
+$wb['limit_shell_user_txt'] = 'Nombre maximal d\'utilisateurs Shell';
+$wb['limit_client_txt'] = 'Nombre maximal de clients';
+$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
+$wb['username_error_unique'] = 'Le nom d\'utilisateur existe déja.';
+$wb['limit_maildomain_error_notint'] = 'La limite de domaines d\'email doit être un nombre.';
+$wb['limit_mailbox_error_notint'] = 'La limite de boites d\'email doit être un nombre.';
+$wb['limit_mailalias_error_notint'] = 'La limite d\'alias d\'email doit être un nombre.';
+$wb['limit_mailforward_error_notint'] = 'La limite de routeurs d\'email doit être un nombre.';
+$wb['limit_mailcatchall_error_notint'] = 'La limite de comptes collecteurs doit être un nombre.';
+$wb['limit_mailrouting_error_notint'] = 'La limite de routes d\'email doit être un nombre.';
+$wb['limit_mailfilter_error_notint'] = 'La limite de filtres d\'email doit être un nombre.';
+$wb['limit_mailfetchmail_error_notint'] = 'La limite de comptes récupérateur email doit être un nombre.';
+$wb['limit_mailquota_error_notint'] = 'La limite du quota des boites d\'email doit être un nombre.';
+$wb['limit_spamfilter_wblist_error_notint'] = 'La limite de listes blanches/noires du filtre antispam doit être un nombre.';
+$wb['limit_spamfilter_user_error_notint'] = 'La limite d\'utilisateurs du filtre antispam doit être un nombre.';
+$wb['limit_spamfilter_policy_error_notint'] = 'La limite de règles du filtre antispam doit être un nombre.';
+$wb['limit_web_domain_error_notint'] = 'La limite de sites web doit être un nombre.';
+$wb['limit_web_aliasdomain_error_notint'] = 'La limite d\'alias de domaines doit être un nombre.';
+$wb['limit_web_subdomain_error_notint'] = 'La limite de sous-domaines doit être un nombre.';
+$wb['limit_ftp_user_error_notint'] = 'La limite d\'utilisateurs FTP doit être un nombre.';
+$wb['limit_shell_user_error_notint'] = 'La limite d\'utilisateurs Shell doit être un nombre.';
+$wb['limit_dns_zone_error_notint'] = 'La limite d\'enregistrements DNS doit être un nombre.';
+$wb['default_dbserver_txt'] = 'Serveur de bases de données par défaut';
+$wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.';
+$wb['limit_cron_error_notint'] = 'La limite de tâches Cron doit être un nombre.';
+$wb['limit_cron_error_frequency'] = 'La fréquence des tâches Cron doit être un nombre.';
+$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
+$wb['template_master_txt'] = 'Modèle Maître';
+$wb['template_additional_txt'] = 'Modèle additionnel';
+$wb['ssh_chroot_txt'] = 'Options Chroot SSH';
+$wb['web_php_options_txt'] = 'Options PHP';
+$wb['limit_client_error'] = 'Le nombre maximum de client a été atteint.';
+$wb['limit_client_error_positive'] = 'Le nombre de clients doit être plus grand que 0.';
+$wb['limit_dns_slave_zone_txt'] = 'Nombre maximum de zones DNS secondaire';
+$wb['limit_dns_slave_zone_error_notint'] = 'La limite de zones DNS secondaire doit être un nombre';
+$wb['limit_dns_record_error_notint'] = 'Le nombre maximum d\'enregistrements DNS doit être un nombre.';
+$wb['limit_web_quota_txt'] = 'Quota web';
+$wb['limit_traffic_quota_txt'] = 'Quota de trafic';
+$wb['limit_trafficquota_error_notint'] = 'Le quota de trafic doit être un nombre.';
+$wb['customer_no_txt'] = 'No. Client';
+$wb['vat_id_txt'] = 'Numéro de TVA';
+$wb['required_fields_txt'] = '* Champs requis';
+$wb['limit_mailaliasdomain_txt'] = 'Nombre max d\'alias de domaine';
+$wb['limit_webdav_user_txt'] = 'Nombre max d\'utilisateurs Webdav';
+$wb['limit_webdav_user_error_notint'] = 'La limite d\'utilisateurs Webdav doit être un nombre.';
+?>
+
diff --git a/interface/web/client/lib/lang/fr_resellers_list.lng b/interface/web/client/lib/lang/fr_resellers_list.lng
index a6787f3..afbf646 100644
--- a/interface/web/client/lib/lang/fr_resellers_list.lng
+++ b/interface/web/client/lib/lang/fr_resellers_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Clients';
-$wb['client_id_txt'] = 'ID';
-$wb['company_name_txt'] = 'Nom de l\'entreprise';
-$wb['contact_name_txt'] = 'Nom du contact';
-$wb['city_txt'] = 'Ville';
-$wb['country_txt'] = 'Pays';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau client';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Clients';
+$wb['client_id_txt'] = 'ID';
+$wb['company_name_txt'] = 'Nom de l\'entreprise';
+$wb['contact_name_txt'] = 'Nom du contact';
+$wb['city_txt'] = 'Ville';
+$wb['country_txt'] = 'Pays';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau client';
+?>
+
diff --git a/interface/web/dashboard/lib/lang/fr.lng b/interface/web/dashboard/lib/lang/fr.lng
index 6bb32cf..305c525 100644
--- a/interface/web/dashboard/lib/lang/fr.lng
+++ b/interface/web/dashboard/lib/lang/fr.lng
@@ -1,5 +1,5 @@
-<?php
-$wb['welcome_user_txt'] = 'Bienvenue %s';
-$wb['available_modules_txt'] = 'Modules disponibles';
-?>
-
+<?php
+$wb['welcome_user_txt'] = 'Bienvenue %s';
+$wb['available_modules_txt'] = 'Modules disponibles';
+?>
+
diff --git a/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng b/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng
index 7a4f76b..2d37527 100644
--- a/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng
+++ b/interface/web/dashboard/lib/lang/fr_dashlet_limits.lng
@@ -1,30 +1,30 @@
-<?php
-$wb['limits_txt'] = 'Limites du compte';
-$wb['of_txt'] = 'sur';
-$wb['unlimited_txt'] = 'Illimité';
-$wb['limit_maildomain_txt'] = 'Nombre de domaines email';
-$wb['limit_mailbox_txt'] = 'Nombre de boites email';
-$wb['limit_mailalias_txt'] = 'Nombre d\'alias email';
-$wb['limit_mailaliasdomain_txt'] = 'Nombre d\'alias de domaine';
-$wb['limit_mailforward_txt'] = 'Nombre de transferts d\'email';
-$wb['limit_mailcatchall_txt'] = 'Nombre de comptes email collecteurs';
-$wb['limit_mailrouting_txt'] = 'Nombre de routes email';
-$wb['limit_mailfilter_txt'] = 'Nombre de filtres email';
-$wb['limit_fetchmail_txt'] = 'Nombre de comptes récupérateur email';
-$wb['limit_spamfilter_wblist_txt'] = 'Nombre de filtres liste blanche/noire Spamfilter';
-$wb['limit_spamfilter_user_txt'] = 'Nombre d\'utilisateurs Spamfilter';
-$wb['limit_spamfilter_policy_txt'] = 'Nombre de stratégies Spamfilter';
-$wb['limit_cron_txt'] = 'Nombre de taches Cron';
-$wb['limit_web_domain_txt'] = 'Nombre de domaines web';
-$wb['limit_web_aliasdomain_txt'] = 'Nombre d\'alias de domaine web';
-$wb['limit_web_subdomain_txt'] = 'Nombre de sous-domaines web';
-$wb['limit_ftp_user_txt'] = 'Nombre d\'utilisateurs FTP';
-$wb['limit_dns_zone_txt'] = 'Nombre de zones DNS';
-$wb['limit_dns_slave_zone_txt'] = 'Nombre de zones DNS secondaires';
-$wb['limit_dns_record_txt'] = 'Nombre d\'enregistrements DNS';
-$wb['limit_shell_user_txt'] = 'Nombre d\'utilisateurs shell';
-$wb['limit_webdav_user_txt'] = 'Nombre d\'utilisateurs WebDAV';
-$wb['limit_client_txt'] = 'Nombre de clients';
-$wb['limit_database_txt'] = 'Nombre de bases de données';
-?>
-
+<?php
+$wb['limits_txt'] = 'Limites du compte';
+$wb['of_txt'] = 'sur';
+$wb['unlimited_txt'] = 'Illimité';
+$wb['limit_maildomain_txt'] = 'Nombre de domaines email';
+$wb['limit_mailbox_txt'] = 'Nombre de boites email';
+$wb['limit_mailalias_txt'] = 'Nombre d\'alias email';
+$wb['limit_mailaliasdomain_txt'] = 'Nombre d\'alias de domaine';
+$wb['limit_mailforward_txt'] = 'Nombre de transferts d\'email';
+$wb['limit_mailcatchall_txt'] = 'Nombre de comptes email collecteurs';
+$wb['limit_mailrouting_txt'] = 'Nombre de routes email';
+$wb['limit_mailfilter_txt'] = 'Nombre de filtres email';
+$wb['limit_fetchmail_txt'] = 'Nombre de comptes récupérateur email';
+$wb['limit_spamfilter_wblist_txt'] = 'Nombre de filtres liste blanche/noire Spamfilter';
+$wb['limit_spamfilter_user_txt'] = 'Nombre d\'utilisateurs Spamfilter';
+$wb['limit_spamfilter_policy_txt'] = 'Nombre de stratégies Spamfilter';
+$wb['limit_cron_txt'] = 'Nombre de taches Cron';
+$wb['limit_web_domain_txt'] = 'Nombre de domaines web';
+$wb['limit_web_aliasdomain_txt'] = 'Nombre d\'alias de domaine web';
+$wb['limit_web_subdomain_txt'] = 'Nombre de sous-domaines web';
+$wb['limit_ftp_user_txt'] = 'Nombre d\'utilisateurs FTP';
+$wb['limit_dns_zone_txt'] = 'Nombre de zones DNS';
+$wb['limit_dns_slave_zone_txt'] = 'Nombre de zones DNS secondaires';
+$wb['limit_dns_record_txt'] = 'Nombre d\'enregistrements DNS';
+$wb['limit_shell_user_txt'] = 'Nombre d\'utilisateurs shell';
+$wb['limit_webdav_user_txt'] = 'Nombre d\'utilisateurs WebDAV';
+$wb['limit_client_txt'] = 'Nombre de clients';
+$wb['limit_database_txt'] = 'Nombre de bases de données';
+?>
+
diff --git a/interface/web/dashboard/lib/lang/fr_dashlet_modules.lng b/interface/web/dashboard/lib/lang/fr_dashlet_modules.lng
index 4eebdb7..c511af9 100644
--- a/interface/web/dashboard/lib/lang/fr_dashlet_modules.lng
+++ b/interface/web/dashboard/lib/lang/fr_dashlet_modules.lng
@@ -1,4 +1,4 @@
-<?php
-$wb['available_modules_txt'] = 'Modules disponibles';
-?>
-
+<?php
+$wb['available_modules_txt'] = 'Modules disponibles';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr.lng b/interface/web/designer/lib/lang/fr.lng
index 75c42c8..29f4a51 100644
--- a/interface/web/designer/lib/lang/fr.lng
+++ b/interface/web/designer/lib/lang/fr.lng
@@ -1,3 +1,3 @@
-<?php
-?>
-
+<?php
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_form_edit.lng b/interface/web/designer/lib/lang/fr_form_edit.lng
index 7b272a4..f029647 100644
--- a/interface/web/designer/lib/lang/fr_form_edit.lng
+++ b/interface/web/designer/lib/lang/fr_form_edit.lng
@@ -1,25 +1,25 @@
-<?php
-$wb['name_txt'] = 'Nom du Formulaire';
-$wb['title_txt'] = 'Titre du formulaire';
-$wb['template_txt'] = 'Gabarit';
-$wb['navframe_txt'] = 'Cadre de navigation';
-$wb['startpage_txt'] = 'Page de démarrage';
-$wb['tab_width_txt'] = 'Largeur Tableau';
-$wb['save_txt'] = 'Sauver';
-$wb['cancel_txt'] = 'Annuler';
-$wb['header_txt'] = 'Propriétés du Formulaire';
-$wb['description_txt'] = 'Description';
-$wb['action_txt'] = 'Action (script)';
-$wb['db_table_txt'] = 'Table BDD';
-$wb['db_table_idx_txt'] = 'Index table BDD';
-$wb['db_history_txt'] = 'Effacer le Log';
-$wb['tab_default_txt'] = 'Onglet par défaut';
-$wb['list_default_txt'] = 'Liste par défaut';
-$wb['auth_txt'] = 'Permissions';
-$wb['auth_preset_userid_txt'] = 'ID Utilisateur';
-$wb['auth_preset_groupid_txt'] = 'ID Groupe';
-$wb['auth_preset_perm_user_txt'] = 'Permission Utilisateur';
-$wb['auth_preset_perm_group_txt'] = 'Permission Groupe';
-$wb['auth_preset_perm_other_txt'] = 'Permission Autre';
-?>
-
+<?php
+$wb['name_txt'] = 'Nom du Formulaire';
+$wb['title_txt'] = 'Titre du formulaire';
+$wb['template_txt'] = 'Gabarit';
+$wb['navframe_txt'] = 'Cadre de navigation';
+$wb['startpage_txt'] = 'Page de démarrage';
+$wb['tab_width_txt'] = 'Largeur Tableau';
+$wb['save_txt'] = 'Sauver';
+$wb['cancel_txt'] = 'Annuler';
+$wb['header_txt'] = 'Propriétés du Formulaire';
+$wb['description_txt'] = 'Description';
+$wb['action_txt'] = 'Action (script)';
+$wb['db_table_txt'] = 'Table BDD';
+$wb['db_table_idx_txt'] = 'Index table BDD';
+$wb['db_history_txt'] = 'Effacer le Log';
+$wb['tab_default_txt'] = 'Onglet par défaut';
+$wb['list_default_txt'] = 'Liste par défaut';
+$wb['auth_txt'] = 'Permissions';
+$wb['auth_preset_userid_txt'] = 'ID Utilisateur';
+$wb['auth_preset_groupid_txt'] = 'ID Groupe';
+$wb['auth_preset_perm_user_txt'] = 'Permission Utilisateur';
+$wb['auth_preset_perm_group_txt'] = 'Permission Groupe';
+$wb['auth_preset_perm_other_txt'] = 'Permission Autre';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_form_list.lng b/interface/web/designer/lib/lang/fr_form_list.lng
index a386f5b..65497a5 100644
--- a/interface/web/designer/lib/lang/fr_form_list.lng
+++ b/interface/web/designer/lib/lang/fr_form_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Formulaire d\'administration';
-$wb['form_txt'] = 'Formulaire';
-$wb['module_txt'] = 'Module';
-$wb['title_txt'] = 'Titre';
-$wb['description_txt'] = 'Description';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Formulaire d\'administration';
+$wb['form_txt'] = 'Formulaire';
+$wb['module_txt'] = 'Module';
+$wb['title_txt'] = 'Titre';
+$wb['description_txt'] = 'Description';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_form_show.lng b/interface/web/designer/lib/lang/fr_form_show.lng
index 3a15faa..236ae2c 100644
--- a/interface/web/designer/lib/lang/fr_form_show.lng
+++ b/interface/web/designer/lib/lang/fr_form_show.lng
@@ -1,19 +1,19 @@
-<?php
-$wb['header_txt'] = 'Editeur de Formulaire';
-$wb['title_txt'] = 'Titre du Formulaire';
-$wb['name_txt'] = 'Nom du Fromulaire';
-$wb['delete_txt'] = 'X';
-$wb['properties_txt'] = 'Propriétés';
-$wb['new_tab_txt'] = 'Nouvel Onglet';
-$wb['edit_txt'] = 'Editer';
-$wb['new_txt'] = 'Nouveau';
-$wb['up_txt'] = '^';
-$wb['down_txt'] = 'v';
-$wb['module_txt'] = 'Module';
-$wb['form_txt'] = 'Formulaire';
-$wb['description_txt'] = 'Description';
-$wb['module_del_txt'] = 'Effacer le module et tous ses sous-répertoires';
-$wb['menu_del_txt'] = 'Effacer le menu et toutes ses entrées';
-$wb['item_del_txt'] = 'Effacer l\'entrée';
-?>
-
+<?php
+$wb['header_txt'] = 'Editeur de Formulaire';
+$wb['title_txt'] = 'Titre du Formulaire';
+$wb['name_txt'] = 'Nom du Fromulaire';
+$wb['delete_txt'] = 'X';
+$wb['properties_txt'] = 'Propriétés';
+$wb['new_tab_txt'] = 'Nouvel Onglet';
+$wb['edit_txt'] = 'Editer';
+$wb['new_txt'] = 'Nouveau';
+$wb['up_txt'] = '^';
+$wb['down_txt'] = 'v';
+$wb['module_txt'] = 'Module';
+$wb['form_txt'] = 'Formulaire';
+$wb['description_txt'] = 'Description';
+$wb['module_del_txt'] = 'Effacer le module et tous ses sous-répertoires';
+$wb['menu_del_txt'] = 'Effacer le menu et toutes ses entrées';
+$wb['item_del_txt'] = 'Effacer l\'entrée';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_module_edit.lng b/interface/web/designer/lib/lang/fr_module_edit.lng
index c5d1744..6de5b65 100644
--- a/interface/web/designer/lib/lang/fr_module_edit.lng
+++ b/interface/web/designer/lib/lang/fr_module_edit.lng
@@ -1,13 +1,13 @@
-<?php
-$wb['name_txt'] = 'Nom du module';
-$wb['title_txt'] = 'Titre du module';
-$wb['template_txt'] = 'Fichier gabarit';
-$wb['navframe_txt'] = 'Cadre de navigation';
-$wb['startpage_txt'] = 'Page par défaut';
-$wb['tab_width_txt'] = 'Largeur du tableau';
-$wb['save_txt'] = 'Sauver';
-$wb['cancel_txt'] = 'Annuler';
-$wb['header_txt'] = 'Propriétés du module';
-$wb['description_txt'] = ' <b>Description</b><br /><br /><b>Nom du Module:</b> Nom du répertoire du module. Seuls les nombres, lettres et underscores sont autorisés.<br/><b>Titre du module:</b> Sera affiché dans le menu de navigation (supérieur).<br/><b>Fichier gabarit:</b> Fichier';
-?>
-
+<?php
+$wb['name_txt'] = 'Nom du module';
+$wb['title_txt'] = 'Titre du module';
+$wb['template_txt'] = 'Fichier gabarit';
+$wb['navframe_txt'] = 'Cadre de navigation';
+$wb['startpage_txt'] = 'Page par défaut';
+$wb['tab_width_txt'] = 'Largeur du tableau';
+$wb['save_txt'] = 'Sauver';
+$wb['cancel_txt'] = 'Annuler';
+$wb['header_txt'] = 'Propriétés du module';
+$wb['description_txt'] = ' <b>Description</b><br /><br /><b>Nom du Module:</b> Nom du répertoire du module. Seuls les nombres, lettres et underscores sont autorisés.<br/><b>Titre du module:</b> Sera affiché dans le menu de navigation (supérieur).<br/><b>Fichier gabarit:</b> Fichier';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_module_list.lng b/interface/web/designer/lib/lang/fr_module_list.lng
index 83093db..06ac927 100644
--- a/interface/web/designer/lib/lang/fr_module_list.lng
+++ b/interface/web/designer/lib/lang/fr_module_list.lng
@@ -1,6 +1,6 @@
-<?php
-$wb['list_head_txt'] = 'Module d\'administration';
-$wb['module_txt'] = 'Module';
-$wb['title_txt'] = 'Titre';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Module d\'administration';
+$wb['module_txt'] = 'Module';
+$wb['title_txt'] = 'Titre';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_module_nav_edit.lng b/interface/web/designer/lib/lang/fr_module_nav_edit.lng
index affd745..8ff3018 100644
--- a/interface/web/designer/lib/lang/fr_module_nav_edit.lng
+++ b/interface/web/designer/lib/lang/fr_module_nav_edit.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['title_txt'] = 'Titre';
-$wb['header_txt'] = 'Propriétés de navigation';
-$wb['save_txt'] = 'Sauver';
-$wb['cancel_txt'] = 'Annuler';
-?>
-
+<?php
+$wb['title_txt'] = 'Titre';
+$wb['header_txt'] = 'Propriétés de navigation';
+$wb['save_txt'] = 'Sauver';
+$wb['cancel_txt'] = 'Annuler';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_module_nav_item_edit.lng b/interface/web/designer/lib/lang/fr_module_nav_item_edit.lng
index 803d96c..fafcfbc 100644
--- a/interface/web/designer/lib/lang/fr_module_nav_item_edit.lng
+++ b/interface/web/designer/lib/lang/fr_module_nav_item_edit.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['title_txt'] = 'Titre';
-$wb['target_txt'] = 'Cible';
-$wb['link_txt'] = 'Lien';
-$wb['header_txt'] = 'Propriétés de navigation';
-$wb['save_txt'] = 'Sauver';
-$wb['cancel_txt'] = 'Annuler';
-?>
-
+<?php
+$wb['title_txt'] = 'Titre';
+$wb['target_txt'] = 'Cible';
+$wb['link_txt'] = 'Lien';
+$wb['header_txt'] = 'Propriétés de navigation';
+$wb['save_txt'] = 'Sauver';
+$wb['cancel_txt'] = 'Annuler';
+?>
+
diff --git a/interface/web/designer/lib/lang/fr_module_show.lng b/interface/web/designer/lib/lang/fr_module_show.lng
index b768f49..857817a 100644
--- a/interface/web/designer/lib/lang/fr_module_show.lng
+++ b/interface/web/designer/lib/lang/fr_module_show.lng
@@ -1,17 +1,17 @@
-<?php
-$wb['header_txt'] = 'Editeur de menu';
-$wb['title_txt'] = 'Titre';
-$wb['name_txt'] = 'Module';
-$wb['delete_txt'] = 'Effacer';
-$wb['properties_txt'] = 'Propriétés';
-$wb['new_menu_txt'] = 'Nouveau menu';
-$wb['edit_txt'] = 'Editer';
-$wb['new_txt'] = 'Nouveau';
-$wb['up_txt'] = 'Monter';
-$wb['down_txt'] = 'Descendre';
-$wb['module_txt'] = 'Module';
-$wb['module_del_txt'] = 'Voulez-vous supprimer le module et tous les fichiers et sous-dossier du module ';
-$wb['menu_del_txt'] = 'Voulez-vous supprimer le menu avec tous ses sous-menus ';
-$wb['item_del_txt'] = 'Voulez-vous supprimer lentrée de menu ';
-?>
-
+<?php
+$wb['header_txt'] = 'Editeur de menu';
+$wb['title_txt'] = 'Titre';
+$wb['name_txt'] = 'Module';
+$wb['delete_txt'] = 'Effacer';
+$wb['properties_txt'] = 'Propriétés';
+$wb['new_menu_txt'] = 'Nouveau menu';
+$wb['edit_txt'] = 'Editer';
+$wb['new_txt'] = 'Nouveau';
+$wb['up_txt'] = 'Monter';
+$wb['down_txt'] = 'Descendre';
+$wb['module_txt'] = 'Module';
+$wb['module_del_txt'] = 'Voulez-vous supprimer le module et tous les fichiers et sous-dossier du module ';
+$wb['menu_del_txt'] = 'Voulez-vous supprimer le menu avec tous ses sous-menus ';
+$wb['item_del_txt'] = 'Voulez-vous supprimer lentrée de menu ';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr.lng b/interface/web/dns/lib/lang/fr.lng
index 6c2d923..af0a6df 100644
--- a/interface/web/dns/lib/lang/fr.lng
+++ b/interface/web/dns/lib/lang/fr.lng
@@ -1,21 +1,21 @@
-<?php
-$wb['DNS'] = 'DNS';
-$wb['Zones'] = 'Zones';
-$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'] = 'Zone DNS';
-$wb['Records'] = 'Enregistrements';
-$wb['DNS SRV'] = 'DNS SRV';
-$wb['DNS TXT Record'] = 'Enregistrement DNS TXT';
-$wb['DNS TXT'] = 'DNS TXT';
-$wb['DNS Wizard'] = 'Assistant DNS';
-$wb['Add DNS Zone'] = 'Ajout zone DNS';
-$wb['Templates'] = 'Gabarits';
-?>
-
+<?php
+$wb['DNS'] = 'DNS';
+$wb['Zones'] = 'Zones';
+$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'] = 'Zone DNS';
+$wb['Records'] = 'Enregistrements';
+$wb['DNS SRV'] = 'DNS SRV';
+$wb['DNS TXT Record'] = 'Enregistrement DNS TXT';
+$wb['DNS TXT'] = 'DNS TXT';
+$wb['DNS Wizard'] = 'Assistant DNS';
+$wb['Add DNS Zone'] = 'Ajout zone DNS';
+$wb['Templates'] = 'Gabarits';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_a.lng b/interface/web/dns/lib/lang/fr_dns_a.lng
index 207547f..929ccf5 100644
--- a/interface/web/dns/lib/lang/fr_dns_a.lng
+++ b/interface/web/dns/lib/lang/fr_dns_a.lng
@@ -1,17 +1,17 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Adresse IP';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = '\'Ladresse IP est vide.';
-$wb['data_error_regex'] = 'L\'adresse IP est d\'un format invalide.';
-$wb['data_error_duplicate'] = 'Dupliquer l\'enregistrement A';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Adresse IP';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = '\'Ladresse IP est vide.';
+$wb['data_error_regex'] = 'L\'adresse IP est d\'un format invalide.';
+$wb['data_error_duplicate'] = 'Dupliquer l\'enregistrement A';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_a_list.lng b/interface/web/dns/lib/lang/fr_dns_a_list.lng
index f34205a..8aec347 100644
--- a/interface/web/dns/lib/lang/fr_dns_a_list.lng
+++ b/interface/web/dns/lib/lang/fr_dns_a_list.lng
@@ -1,15 +1,15 @@
-<?php
-$wb['list_head_txt'] = 'Enregistrement A';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Nom';
-$wb['data_txt'] = 'Données';
-$wb['aux_txt'] = 'Priorité';
-$wb['type_txt'] = 'Type';
-$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement A';
-$wb['page_txt'] = 'Page';
-$wb['page_of_txt'] = 'de';
-$wb['delete_confirmation'] = 'Voulez-vous vraiment supprimer cet enregistrement';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Enregistrement A';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Nom';
+$wb['data_txt'] = 'Données';
+$wb['aux_txt'] = 'Priorité';
+$wb['type_txt'] = 'Type';
+$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement A';
+$wb['page_txt'] = 'Page';
+$wb['page_of_txt'] = 'de';
+$wb['delete_confirmation'] = 'Voulez-vous vraiment supprimer cet enregistrement';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_aaaa.lng b/interface/web/dns/lib/lang/fr_dns_aaaa.lng
index 826c764..dcc1eee 100644
--- a/interface/web/dns/lib/lang/fr_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/fr_dns_aaaa.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Adresse IP';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'L\'adresse IP est vide.';
-$wb['data_error_regex'] = 'L\'adresse IP est d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Adresse IP';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'L\'adresse IP est vide.';
+$wb['data_error_regex'] = 'L\'adresse IP est d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_alias.lng b/interface/web/dns/lib/lang/fr_dns_alias.lng
index e9e5b5c..6208ee6 100644
--- a/interface/web/dns/lib/lang/fr_dns_alias.lng
+++ b/interface/web/dns/lib/lang/fr_dns_alias.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Adresse IP';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission dajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'L\'adresse IP est vide.';
-$wb['data_error_regex'] = 'L\'adresse IP est d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Adresse IP';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission dajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'L\'adresse IP est vide.';
+$wb['data_error_regex'] = 'L\'adresse IP est d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_cname.lng b/interface/web/dns/lib/lang/fr_dns_cname.lng
index de0b938..f9dda24 100644
--- a/interface/web/dns/lib/lang/fr_dns_cname.lng
+++ b/interface/web/dns/lib/lang/fr_dns_cname.lng
@@ -1,17 +1,17 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Addresse IP cible';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'L\'adresse IP cible est vide.';
-$wb['data_error_regex'] = 'L\'adresse IP cible est d\'un format invalide.';
-$wb['data_error_duplicate'] = 'Enregistrement A ou CNAME dupliqué';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Addresse IP cible';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'L\'adresse IP cible est vide.';
+$wb['data_error_regex'] = 'L\'adresse IP cible est d\'un format invalide.';
+$wb['data_error_duplicate'] = 'Enregistrement A ou CNAME dupliqué';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_hinfo.lng b/interface/web/dns/lib/lang/fr_dns_hinfo.lng
index 6b974a7..2134f85 100644
--- a/interface/web/dns/lib/lang/fr_dns_hinfo.lng
+++ b/interface/web/dns/lib/lang/fr_dns_hinfo.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Informations hôte';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'Les informations hôte sont vides.';
-$wb['data_error_regex'] = 'Les informations hôte sont d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Informations hôte';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'Les informations hôte sont vides.';
+$wb['data_error_regex'] = 'Les informations hôte sont d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_mx.lng b/interface/web/dns/lib/lang/fr_dns_mx.lng
index 238ff1d..27dd822 100644
--- a/interface/web/dns/lib/lang/fr_dns_mx.lng
+++ b/interface/web/dns/lib/lang/fr_dns_mx.lng
@@ -1,17 +1,17 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Hôte du serveur mail';
-$wb['aux_txt'] = 'Priorité';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'Le serveur mail est vide.';
-$wb['data_error_regex'] = 'Le serveur mail est d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Hôte du serveur mail';
+$wb['aux_txt'] = 'Priorité';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'Le serveur mail est vide.';
+$wb['data_error_regex'] = 'Le serveur mail est d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_ns.lng b/interface/web/dns/lib/lang/fr_dns_ns.lng
index 5cc49ce..86bd0cf 100644
--- a/interface/web/dns/lib/lang/fr_dns_ns.lng
+++ b/interface/web/dns/lib/lang/fr_dns_ns.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Zone';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Hôte du serveur de nom';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'La zone est vide.';
-$wb['name_error_regex'] = 'La zone est d\'un format invalide.';
-$wb['data_error_empty'] = 'L\'hôte du serveur de nom est vide.';
-$wb['data_error_regex'] = 'L\'hôte du serveur de nom est d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Zone';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Hôte du serveur de nom';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'La zone est vide.';
+$wb['name_error_regex'] = 'La zone est d\'un format invalide.';
+$wb['data_error_empty'] = 'L\'hôte du serveur de nom est vide.';
+$wb['data_error_regex'] = 'L\'hôte du serveur de nom est d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_ptr.lng b/interface/web/dns/lib/lang/fr_dns_ptr.lng
index 7945618..9bd4e70 100644
--- a/interface/web/dns/lib/lang/fr_dns_ptr.lng
+++ b/interface/web/dns/lib/lang/fr_dns_ptr.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Nom';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Hôte canonique';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous navez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'Le nom est vide.';
-$wb['name_error_regex'] = 'Le nom est d\'un format invalide.';
-$wb['data_error_empty'] = 'L\'hôte canonique est vide.';
-$wb['data_error_regex'] = 'L\'hôte canonique est d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Nom';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Hôte canonique';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous navez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'Le nom est vide.';
+$wb['name_error_regex'] = 'Le nom est d\'un format invalide.';
+$wb['data_error_empty'] = 'L\'hôte canonique est vide.';
+$wb['data_error_regex'] = 'L\'hôte canonique est d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_rp.lng b/interface/web/dns/lib/lang/fr_dns_rp.lng
index 1d79fba..d6654df 100644
--- a/interface/web/dns/lib/lang/fr_dns_rp.lng
+++ b/interface/web/dns/lib/lang/fr_dns_rp.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Personne responsable';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'La personne responsable est vide.';
-$wb['data_error_regex'] = 'La personne responsable est d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Personne responsable';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'La personne responsable est vide.';
+$wb['data_error_regex'] = 'La personne responsable est d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_slave.lng b/interface/web/dns/lib/lang/fr_dns_slave.lng
index 2c8a96e..afd91c9 100644
--- a/interface/web/dns/lib/lang/fr_dns_slave.lng
+++ b/interface/web/dns/lib/lang/fr_dns_slave.lng
@@ -1,15 +1,15 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['origin_txt'] = 'Zone DNS';
-$wb['ns_txt'] = 'NS';
-$wb['active_txt'] = 'Active';
-$wb['limit_dns_slave_zone_txt'] = 'Le nombre maximal de zones DNS secondaire pour votre compte est atteint.';
-$wb['client_txt'] = 'Client';
-$wb['xfer_txt'] = 'Autoriser les transferts de zone de <br />ces IPs (liste séparée par des virgules)';
-$wb['server_id_error_empty'] = 'Aucun serveur sélectionné';
-$wb['origin_error_empty'] = 'zone vide.';
-$wb['origin_error_unique'] = 'Il y a déjà un enregistrement pour cette zone.';
-$wb['origin_error_regex'] = 'La zone a un format invalide.';
-$wb['ns_error_regex'] = 'L\'enregistrement NS a un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['origin_txt'] = 'Zone DNS';
+$wb['ns_txt'] = 'NS';
+$wb['active_txt'] = 'Active';
+$wb['limit_dns_slave_zone_txt'] = 'Le nombre maximal de zones DNS secondaire pour votre compte est atteint.';
+$wb['client_txt'] = 'Client';
+$wb['xfer_txt'] = 'Autoriser les transferts de zone de <br />ces IPs (liste séparée par des virgules)';
+$wb['server_id_error_empty'] = 'Aucun serveur sélectionné';
+$wb['origin_error_empty'] = 'zone vide.';
+$wb['origin_error_unique'] = 'Il y a déjà un enregistrement pour cette zone.';
+$wb['origin_error_regex'] = 'La zone a un format invalide.';
+$wb['ns_error_regex'] = 'L\'enregistrement NS a un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_slave_list.lng b/interface/web/dns/lib/lang/fr_dns_slave_list.lng
index f375f01..86b0b5b 100644
--- a/interface/web/dns/lib/lang/fr_dns_slave_list.lng
+++ b/interface/web/dns/lib/lang/fr_dns_slave_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Zones DNS secondaires';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['origin_txt'] = 'Zone';
-$wb['ns_txt'] = 'NS';
-$wb['add_new_record_txt'] = 'Ajouter une nouvelle zone DNS secondaire';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Zones DNS secondaires';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['origin_txt'] = 'Zone';
+$wb['ns_txt'] = 'NS';
+$wb['add_new_record_txt'] = 'Ajouter une nouvelle zone DNS secondaire';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_soa.lng b/interface/web/dns/lib/lang/fr_dns_soa.lng
index 8824f94..9b65216 100644
--- a/interface/web/dns/lib/lang/fr_dns_soa.lng
+++ b/interface/web/dns/lib/lang/fr_dns_soa.lng
@@ -1,27 +1,27 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['origin_txt'] = 'Zone (SOA)';
-$wb['ns_txt'] = 'NS';
-$wb['mbox_txt'] = 'Email';
-$wb['serial_txt'] = 'Série';
-$wb['refresh_txt'] = 'Rafraichissement';
-$wb['retry_txt'] = 'Nouvel essai';
-$wb['expire_txt'] = 'Expiration';
-$wb['minimum_txt'] = 'Minimum';
-$wb['ttl_txt'] = 'TTL';
-$wb['xfer_txt'] = 'Autoriser les transfers de zones vers <br />ces IP (liste séparée par des virgules)';
-$wb['active_txt'] = 'Actif';
-$wb['client_txt'] = 'Client';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['server_id_error_empty'] = 'Aucun serveur sélectionné';
-$wb['origin_error_empty'] = 'Zone vide.';
-$wb['origin_error_unique'] = 'Il y a déja un enregistrement pour cette zone.';
-$wb['origin_error_regex'] = 'La zone est d\'un format invalide.';
-$wb['ns_error_regex'] = 'Le serveur de nom est d\'un format invalide.';
-$wb['mbox_error_empty'] = 'L\'adresse email est vide.';
-$wb['mbox_error_regex'] = 'L\'adresse email est d\'un format invalide.';
-$wb['limit_dns_zone_txt'] = 'Le nombre maximal de zones DNS pour votre compte est atteint.';
-$wb['also_notify_txt'] = 'Notifier aussi';
-$wb['update_acl_txt'] = 'Mettre à jour l\'ACL';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['origin_txt'] = 'Zone (SOA)';
+$wb['ns_txt'] = 'NS';
+$wb['mbox_txt'] = 'Email';
+$wb['serial_txt'] = 'Série';
+$wb['refresh_txt'] = 'Rafraichissement';
+$wb['retry_txt'] = 'Nouvel essai';
+$wb['expire_txt'] = 'Expiration';
+$wb['minimum_txt'] = 'Minimum';
+$wb['ttl_txt'] = 'TTL';
+$wb['xfer_txt'] = 'Autoriser les transfers de zones vers <br />ces IP (liste séparée par des virgules)';
+$wb['active_txt'] = 'Actif';
+$wb['client_txt'] = 'Client';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['server_id_error_empty'] = 'Aucun serveur sélectionné';
+$wb['origin_error_empty'] = 'Zone vide.';
+$wb['origin_error_unique'] = 'Il y a déja un enregistrement pour cette zone.';
+$wb['origin_error_regex'] = 'La zone est d\'un format invalide.';
+$wb['ns_error_regex'] = 'Le serveur de nom est d\'un format invalide.';
+$wb['mbox_error_empty'] = 'L\'adresse email est vide.';
+$wb['mbox_error_regex'] = 'L\'adresse email est d\'un format invalide.';
+$wb['limit_dns_zone_txt'] = 'Le nombre maximal de zones DNS pour votre compte est atteint.';
+$wb['also_notify_txt'] = 'Notifier aussi';
+$wb['update_acl_txt'] = 'Mettre à jour l\'ACL';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_soa_list.lng b/interface/web/dns/lib/lang/fr_dns_soa_list.lng
index 1e39193..7b69c8a 100644
--- a/interface/web/dns/lib/lang/fr_dns_soa_list.lng
+++ b/interface/web/dns/lib/lang/fr_dns_soa_list.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['list_head_txt'] = 'Zones DNS';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['origin_txt'] = 'Zone';
-$wb['ns_txt'] = 'NS';
-$wb['mbox_txt'] = 'Email';
-$wb['add_new_record_txt'] = 'Ajouter une nouvelle zone DNS (SOA)';
-$wb['add_new_record_wizard_txt'] = 'Ajouter une nouvelle zone DNS en utilisant l\'assistant';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Zones DNS';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['origin_txt'] = 'Zone';
+$wb['ns_txt'] = 'NS';
+$wb['mbox_txt'] = 'Email';
+$wb['add_new_record_txt'] = 'Ajouter une nouvelle zone DNS (SOA)';
+$wb['add_new_record_wizard_txt'] = 'Ajouter une nouvelle zone DNS en utilisant l\'assistant';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_srv.lng b/interface/web/dns/lib/lang/fr_dns_srv.lng
index 2e649a3..dda4fba 100644
--- a/interface/web/dns/lib/lang/fr_dns_srv.lng
+++ b/interface/web/dns/lib/lang/fr_dns_srv.lng
@@ -1,18 +1,18 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Hôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Enregistrement serveur';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'L\'enregistrement serveur est vide.';
-$wb['data_error_regex'] = 'L\'enregistrement serveur est d\'un format invalide.';
-$wb['aux_txt'] = 'Priority';
-$wb['srv_error_regex'] = 'Format d\'enregistrement serveur invalide. L\'enregistrement serveur doit contenir 3 chaînes de caractères séparées par des espaces.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Hôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Enregistrement serveur';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'L\'enregistrement serveur est vide.';
+$wb['data_error_regex'] = 'L\'enregistrement serveur est d\'un format invalide.';
+$wb['aux_txt'] = 'Priority';
+$wb['srv_error_regex'] = 'Format d\'enregistrement serveur invalide. L\'enregistrement serveur doit contenir 3 chaînes de caractères séparées par des espaces.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_template.lng b/interface/web/dns/lib/lang/fr_dns_template.lng
index 303f8a1..dffdae2 100644
--- a/interface/web/dns/lib/lang/fr_dns_template.lng
+++ b/interface/web/dns/lib/lang/fr_dns_template.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['name_txt'] = 'Nom';
-$wb['fields_txt'] = 'Champs';
-$wb['template_txt'] = 'Modèle';
-$wb['visible_txt'] = 'Visible';
-?>
-
+<?php
+$wb['name_txt'] = 'Nom';
+$wb['fields_txt'] = 'Champs';
+$wb['template_txt'] = 'Modèle';
+$wb['visible_txt'] = 'Visible';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_template_list.lng b/interface/web/dns/lib/lang/fr_dns_template_list.lng
index b62aa8b..0a4b7ef 100644
--- a/interface/web/dns/lib/lang/fr_dns_template_list.lng
+++ b/interface/web/dns/lib/lang/fr_dns_template_list.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['list_head_txt'] = 'Modèle d\'assistant DNS';
-$wb['visible_txt'] = 'Visible';
-$wb['name_txt'] = 'Nom';
-$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Modèle d\'assistant DNS';
+$wb['visible_txt'] = 'Visible';
+$wb['name_txt'] = 'Nom';
+$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_txt.lng b/interface/web/dns/lib/lang/fr_dns_txt.lng
index 1581545..07ea85e 100644
--- a/interface/web/dns/lib/lang/fr_dns_txt.lng
+++ b/interface/web/dns/lib/lang/fr_dns_txt.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['zone_txt'] = 'Zone';
-$wb['name_txt'] = 'Nom dhôte';
-$wb['type_txt'] = 'Type';
-$wb['data_txt'] = 'Text';
-$wb['ttl_txt'] = 'TTL';
-$wb['active_txt'] = 'Actif';
-$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
-$wb['no_zone_perm'] = 'Vous n\'avez pas la permissions d\'ajouter un enregistrement dans cette zone DNS.';
-$wb['name_error_empty'] = 'L\'hôte est vide.';
-$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
-$wb['data_error_empty'] = 'La personne responsable est vide.';
-$wb['data_error_regex'] = 'La personne responsable est d\'un format invalide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['zone_txt'] = 'Zone';
+$wb['name_txt'] = 'Nom dhôte';
+$wb['type_txt'] = 'Type';
+$wb['data_txt'] = 'Text';
+$wb['ttl_txt'] = 'TTL';
+$wb['active_txt'] = 'Actif';
+$wb['limit_dns_record_txt'] = 'Le nombre maximum d\'enregistrements DNS pour votre compte a été atteint.';
+$wb['no_zone_perm'] = 'Vous n\'avez pas la permissions d\'ajouter un enregistrement dans cette zone DNS.';
+$wb['name_error_empty'] = 'L\'hôte est vide.';
+$wb['name_error_regex'] = 'L\'hôte est d\'un format invalide.';
+$wb['data_error_empty'] = 'La personne responsable est vide.';
+$wb['data_error_regex'] = 'La personne responsable est d\'un format invalide.';
+?>
+
diff --git a/interface/web/dns/lib/lang/fr_dns_wizard.lng b/interface/web/dns/lib/lang/fr_dns_wizard.lng
index 7ef4411..00dd983 100644
--- a/interface/web/dns/lib/lang/fr_dns_wizard.lng
+++ b/interface/web/dns/lib/lang/fr_dns_wizard.lng
@@ -1,30 +1,30 @@
-<?php
-$wb['template_id_txt'] = 'Modèle';
-$wb['server_id_txt'] = 'Serveur';
-$wb['client_txt'] = 'Client';
-$wb['btn_save_txt'] = 'Créer l\'enregistrement DNS';
-$wb['btn_cancel_txt'] = 'Annuler';
-$wb['domain_txt'] = 'Domaine';
-$wb['email_txt'] = 'Email';
-$wb['ns1_txt'] = 'NS 1';
-$wb['ns2_txt'] = 'NS 2';
-$wb['ip_txt'] = 'Adresse IP';
-$wb['error_origin_empty'] = 'Origine vide.';
-$wb['error_ns_empty'] = 'Serveur de nom vide.';
-$wb['error_mbox_empty'] = 'Mbox vide.';
-$wb['error_refresh_empty'] = 'Rafraîchissement vide.';
-$wb['error_retry_empty'] = 'Réésai vide.';
-$wb['error_expire_empty'] = 'Expiration vide.';
-$wb['error_minimum_empty'] = 'Minimum vide.';
-$wb['error_ttl_empty'] = 'TTL vide.';
-$wb['error_domain_empty'] = 'Domaine vide';
-$wb['error_ip_empty'] = 'IP vide.';
-$wb['error_ns1_empty'] = 'NS1 vide.';
-$wb['error_ns2_empty'] = 'NS2 vide.';
-$wb['error_email_empty'] = 'Email vide.';
-$wb['error_domain_regex'] = 'Le domaine contient des caractères invalides.';
-$wb['error_ns1_regex'] = 'NS1 contient des caractères invalides.';
-$wb['error_ns2_regex'] = 'NS2 contient des caractères invalides.';
-$wb['error_email_regex'] = 'L\'email ne contient pas une adresse email valide.';
-?>
-
+<?php
+$wb['template_id_txt'] = 'Modèle';
+$wb['server_id_txt'] = 'Serveur';
+$wb['client_txt'] = 'Client';
+$wb['btn_save_txt'] = 'Créer l\'enregistrement DNS';
+$wb['btn_cancel_txt'] = 'Annuler';
+$wb['domain_txt'] = 'Domaine';
+$wb['email_txt'] = 'Email';
+$wb['ns1_txt'] = 'NS 1';
+$wb['ns2_txt'] = 'NS 2';
+$wb['ip_txt'] = 'Adresse IP';
+$wb['error_origin_empty'] = 'Origine vide.';
+$wb['error_ns_empty'] = 'Serveur de nom vide.';
+$wb['error_mbox_empty'] = 'Mbox vide.';
+$wb['error_refresh_empty'] = 'Rafraîchissement vide.';
+$wb['error_retry_empty'] = 'Réésai vide.';
+$wb['error_expire_empty'] = 'Expiration vide.';
+$wb['error_minimum_empty'] = 'Minimum vide.';
+$wb['error_ttl_empty'] = 'TTL vide.';
+$wb['error_domain_empty'] = 'Domaine vide';
+$wb['error_ip_empty'] = 'IP vide.';
+$wb['error_ns1_empty'] = 'NS1 vide.';
+$wb['error_ns2_empty'] = 'NS2 vide.';
+$wb['error_email_empty'] = 'Email vide.';
+$wb['error_domain_regex'] = 'Le domaine contient des caractères invalides.';
+$wb['error_ns1_regex'] = 'NS1 contient des caractères invalides.';
+$wb['error_ns2_regex'] = 'NS2 contient des caractères invalides.';
+$wb['error_email_regex'] = 'L\'email ne contient pas une adresse email valide.';
+?>
+
diff --git a/interface/web/domain/lib/lang/fr.lng b/interface/web/domain/lib/lang/fr.lng
index 8e769cc..bf171db 100644
--- a/interface/web/domain/lib/lang/fr.lng
+++ b/interface/web/domain/lib/lang/fr.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['Domains'] = 'Domaines';
-$wb['domain_txt'] = 'Domaine';
-$wb['client_txt'] = 'Client';
-$wb['error_domain_in mailuse'] = 'Ce domaine ne peut pas être supprimé, parce qu\'il est actuellement utilisé comme domaine e-mail';
-$wb['error_domain_in webuse'] = 'Ce domaine ne peut pas être supprimé, parce qu\'il est actuellement utilisé comme domaine web';
-$wb['error_client_can_not_add_domain'] = 'Vous ne pouvez créer un nouveau domaine';
-$wb['error_client_group_id_empty'] = 'Vous devez choisir un client<br />';
-?>
-
+<?php
+$wb['Domains'] = 'Domaines';
+$wb['domain_txt'] = 'Domaine';
+$wb['client_txt'] = 'Client';
+$wb['error_domain_in mailuse'] = 'Ce domaine ne peut pas être supprimé, parce qu\'il est actuellement utilisé comme domaine e-mail';
+$wb['error_domain_in webuse'] = 'Ce domaine ne peut pas être supprimé, parce qu\'il est actuellement utilisé comme domaine web';
+$wb['error_client_can_not_add_domain'] = 'Vous ne pouvez créer un nouveau domaine';
+$wb['error_client_group_id_empty'] = 'Vous devez choisir un client<br />';
+?>
+
diff --git a/interface/web/domain/lib/lang/fr_domain.lng b/interface/web/domain/lib/lang/fr_domain.lng
index d6e689e..5658a19 100644
--- a/interface/web/domain/lib/lang/fr_domain.lng
+++ b/interface/web/domain/lib/lang/fr_domain.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['domain_error_empty'] = 'Le nom de domaine est vide';
-$wb['domain_error_unique'] = 'Ce nom de domaine existe déjà';
-$wb['domain_error_regex'] = 'Ce nom de domaine n\'est pas autorisé';
-$wb['Domain'] = 'Domaine';
-?>
-
+<?php
+$wb['domain_error_empty'] = 'Le nom de domaine est vide';
+$wb['domain_error_unique'] = 'Ce nom de domaine existe déjà';
+$wb['domain_error_regex'] = 'Ce nom de domaine n\'est pas autorisé';
+$wb['Domain'] = 'Domaine';
+?>
+
diff --git a/interface/web/domain/lib/lang/fr_domain_list.lng b/interface/web/domain/lib/lang/fr_domain_list.lng
index a431f87..f73cb55 100644
--- a/interface/web/domain/lib/lang/fr_domain_list.lng
+++ b/interface/web/domain/lib/lang/fr_domain_list.lng
@@ -1,6 +1,6 @@
-<?php
-$wb['list_head_txt'] = 'Domaines';
-$wb['add_new_record_txt'] = 'Ajouter nouveau Domaine';
-$wb['domain_txt'] = 'Domaine';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Domaines';
+$wb['add_new_record_txt'] = 'Ajouter nouveau Domaine';
+$wb['domain_txt'] = 'Domaine';
+?>
+
diff --git a/interface/web/help/lib/lang/fr.lng b/interface/web/help/lib/lang/fr.lng
index 25eec0a..3c08f2a 100644
--- a/interface/web/help/lib/lang/fr.lng
+++ b/interface/web/help/lib/lang/fr.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['Support Message'] = 'Message de support';
-$wb['Message'] = 'Message';
-$wb['Send message'] = 'Envoyer un message';
-$wb['View messages'] = 'Voir les messages';
-$wb['Support'] = 'Support';
-$wb['About ISPConfig'] = 'A propo d\'ISPConfig';
-$wb['Version'] = 'Version';
-?>
-
+<?php
+$wb['Support Message'] = 'Message de support';
+$wb['Message'] = 'Message';
+$wb['Send message'] = 'Envoyer un message';
+$wb['View messages'] = 'Voir les messages';
+$wb['Support'] = 'Support';
+$wb['About ISPConfig'] = 'A propo d\'ISPConfig';
+$wb['Version'] = 'Version';
+?>
+
diff --git a/interface/web/help/lib/lang/fr_support_message.lng b/interface/web/help/lib/lang/fr_support_message.lng
index 01b5b19..9d7eab1 100644
--- a/interface/web/help/lib/lang/fr_support_message.lng
+++ b/interface/web/help/lib/lang/fr_support_message.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['recipient_id_txt'] = 'ID Destinataire';
-$wb['sender_id_txt'] = 'ID Expéditeur';
-$wb['subject_txt'] = 'Sujet';
-$wb['message_txt'] = 'Message';
-$wb['tstamp_txt'] = 'Timestamp';
-?>
-
+<?php
+$wb['recipient_id_txt'] = 'ID Destinataire';
+$wb['sender_id_txt'] = 'ID Expéditeur';
+$wb['subject_txt'] = 'Sujet';
+$wb['message_txt'] = 'Message';
+$wb['tstamp_txt'] = 'Timestamp';
+?>
+
diff --git a/interface/web/help/lib/lang/fr_support_message_list.lng b/interface/web/help/lib/lang/fr_support_message_list.lng
index 358b5e1..cfa4610 100644
--- a/interface/web/help/lib/lang/fr_support_message_list.lng
+++ b/interface/web/help/lib/lang/fr_support_message_list.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['list_head_txt'] = 'Messages de support';
-$wb['sender_id_txt'] = 'Expéditeur';
-$wb['subject_txt'] = 'Sujet';
-$wb['add_new_record_txt'] = 'Créer un nouveau message de support';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Messages de support';
+$wb['sender_id_txt'] = 'Expéditeur';
+$wb['subject_txt'] = 'Sujet';
+$wb['add_new_record_txt'] = 'Créer un nouveau message de support';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr.lng b/interface/web/mail/lib/lang/fr.lng
index 637ebca..6a437b7 100644
--- a/interface/web/mail/lib/lang/fr.lng
+++ b/interface/web/mail/lib/lang/fr.lng
@@ -1,48 +1,48 @@
-<?php
-$wb['Email Alias'] = 'Alias d\'emails';
-$wb['Email Blacklist'] = 'Liste noire d\'emails';
-$wb['Blacklist'] = 'Liste noire';
-$wb['Mail Content Filter'] = 'Filtre de contenu des mails';
-$wb['Filter'] = 'Filtre';
-$wb['Mail Domain'] = 'Domaine email';
-$wb['Domain'] = 'Domaine';
-$wb['Email Catchall'] = 'Email collecteur';
-$wb['Email Forward'] = 'Email de transfert';
-$wb['Get Email'] = 'Obtenir un Email';
-$wb['Spamfilter'] = 'Filtre antispam';
-$wb['Email Routing'] = 'Routage d\'emails';
-$wb['Email transport'] = 'Transport d\'emails';
-$wb['Mailbox'] = 'Boîte email';
-$wb['Autoresponder'] = 'Autorépondeur';
-$wb['Mail Filter'] = 'Filtre email';
-$wb['Custom Rules'] = 'Règles personnalisées';
-$wb['Email filter'] = 'Filtre email';
-$wb['Email Whitelist'] = 'Liste blanche d\'emails';
-$wb['Whitelist'] = 'Liste blanche';
-$wb['Spamfilter blacklist'] = 'Liste noire du filtre antispam';
-$wb['Spamfilter Config'] = 'Configuration du filtre antispam';
-$wb['Server'] = 'Serveur';
-$wb['Spamfilter policy'] = 'Règles du filtre antispam';
-$wb['Policy'] = 'Règles';
-$wb['Quarantine'] = 'Quarantaine';
-$wb['Tag-Level'] = 'Niveau du tag';
-$wb['Other'] = 'Autre';
-$wb['Spamfilter users'] = 'Utilisateurs du filtre antispam';
-$wb['Users'] = 'Utilisateurs';
-$wb['Spamfilter Whitelist'] = 'Liste blanche du filtre antispam';
-$wb['Email'] = 'Email';
-$wb['Email Mailbox'] = 'Boîte email';
-$wb['Email Accounts'] = 'Comptes email';
-$wb['User / Domain'] = 'Utilisateur / Domaine';
-$wb['Server Settings'] = 'Paramètres du serveur';
-$wb['Fetchmail'] = 'Récupérateur email';
-$wb['Statistics'] = 'Statistiques';
-$wb['Postfix Whitelist'] = 'Liste blanche de Postfix';
-$wb['Postfix Blacklist'] = 'Liste noire de Postfix';
-$wb['Content Filter'] = 'Filtre de contenu';
-$wb['Global Filters'] = 'Filtres globaux';
-$wb['Mailbox traffic'] = 'Trafic de la boite email';
-$wb['Domain Alias'] = 'Alias de domaine';
-$wb['Relay Recipients'] = 'Destinataires de relais';
-?>
-
+<?php
+$wb['Email Alias'] = 'Alias d\'emails';
+$wb['Email Blacklist'] = 'Liste noire d\'emails';
+$wb['Blacklist'] = 'Liste noire';
+$wb['Mail Content Filter'] = 'Filtre de contenu des mails';
+$wb['Filter'] = 'Filtre';
+$wb['Mail Domain'] = 'Domaine email';
+$wb['Domain'] = 'Domaine';
+$wb['Email Catchall'] = 'Email collecteur';
+$wb['Email Forward'] = 'Email de transfert';
+$wb['Get Email'] = 'Obtenir un Email';
+$wb['Spamfilter'] = 'Filtre antispam';
+$wb['Email Routing'] = 'Routage d\'emails';
+$wb['Email transport'] = 'Transport d\'emails';
+$wb['Mailbox'] = 'Boîte email';
+$wb['Autoresponder'] = 'Autorépondeur';
+$wb['Mail Filter'] = 'Filtre email';
+$wb['Custom Rules'] = 'Règles personnalisées';
+$wb['Email filter'] = 'Filtre email';
+$wb['Email Whitelist'] = 'Liste blanche d\'emails';
+$wb['Whitelist'] = 'Liste blanche';
+$wb['Spamfilter blacklist'] = 'Liste noire du filtre antispam';
+$wb['Spamfilter Config'] = 'Configuration du filtre antispam';
+$wb['Server'] = 'Serveur';
+$wb['Spamfilter policy'] = 'Règles du filtre antispam';
+$wb['Policy'] = 'Règles';
+$wb['Quarantine'] = 'Quarantaine';
+$wb['Tag-Level'] = 'Niveau du tag';
+$wb['Other'] = 'Autre';
+$wb['Spamfilter users'] = 'Utilisateurs du filtre antispam';
+$wb['Users'] = 'Utilisateurs';
+$wb['Spamfilter Whitelist'] = 'Liste blanche du filtre antispam';
+$wb['Email'] = 'Email';
+$wb['Email Mailbox'] = 'Boîte email';
+$wb['Email Accounts'] = 'Comptes email';
+$wb['User / Domain'] = 'Utilisateur / Domaine';
+$wb['Server Settings'] = 'Paramètres du serveur';
+$wb['Fetchmail'] = 'Récupérateur email';
+$wb['Statistics'] = 'Statistiques';
+$wb['Postfix Whitelist'] = 'Liste blanche de Postfix';
+$wb['Postfix Blacklist'] = 'Liste noire de Postfix';
+$wb['Content Filter'] = 'Filtre de contenu';
+$wb['Global Filters'] = 'Filtres globaux';
+$wb['Mailbox traffic'] = 'Trafic de la boite email';
+$wb['Domain Alias'] = 'Alias de domaine';
+$wb['Relay Recipients'] = 'Destinataires de relais';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_alias.lng b/interface/web/mail/lib/lang/fr_mail_alias.lng
index 8a1a5eb..423d2ae 100644
--- a/interface/web/mail/lib/lang/fr_mail_alias.lng
+++ b/interface/web/mail/lib/lang/fr_mail_alias.lng
@@ -1,12 +1,12 @@
-<?php
-$wb['email_txt'] = 'Email';
-$wb['destination_txt'] = 'Destination';
-$wb['active_txt'] = 'Actif';
-$wb['email_error_isemail'] = 'L\'adresse email est invalide.';
-$wb['email_error_unique'] = 'Dupliquer l\'adresse email.';
-$wb['no_domain_perm'] = 'Vous n\'avez pas de permission pour ce domaine.';
-$wb['destination_error_isemail'] = 'L\'adresse email de destination est invalide.';
-$wb['limit_mailalias_txt'] = 'Le nombre maximal d\'alias d\'email pour votre compte a été atteint.';
-$wb['duplicate_mailbox_txt'] = 'Il y a déja une boîte mail avec cette adresse email';
-?>
-
+<?php
+$wb['email_txt'] = 'Email';
+$wb['destination_txt'] = 'Destination';
+$wb['active_txt'] = 'Actif';
+$wb['email_error_isemail'] = 'L\'adresse email est invalide.';
+$wb['email_error_unique'] = 'Dupliquer l\'adresse email.';
+$wb['no_domain_perm'] = 'Vous n\'avez pas de permission pour ce domaine.';
+$wb['destination_error_isemail'] = 'L\'adresse email de destination est invalide.';
+$wb['limit_mailalias_txt'] = 'Le nombre maximal d\'alias d\'email pour votre compte a été atteint.';
+$wb['duplicate_mailbox_txt'] = 'Il y a déja une boîte mail avec cette adresse email';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_alias_list.lng b/interface/web/mail/lib/lang/fr_mail_alias_list.lng
index 0e28b1e..cb88394 100644
--- a/interface/web/mail/lib/lang/fr_mail_alias_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_alias_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Alias d\'email';
-$wb['active_txt'] = 'Actif';
-$wb['source_txt'] = 'source';
-$wb['destination_txt'] = 'Destination';
-$wb['email_txt'] = 'Email';
-$wb['add_new_record_txt'] = 'Ajouter un nouvel alias d\'email';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Alias d\'email';
+$wb['active_txt'] = 'Actif';
+$wb['source_txt'] = 'source';
+$wb['destination_txt'] = 'Destination';
+$wb['email_txt'] = 'Email';
+$wb['add_new_record_txt'] = 'Ajouter un nouvel alias d\'email';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_aliasdomain.lng b/interface/web/mail/lib/lang/fr_mail_aliasdomain.lng
index 8855ee7..c59aaa9 100644
--- a/interface/web/mail/lib/lang/fr_mail_aliasdomain.lng
+++ b/interface/web/mail/lib/lang/fr_mail_aliasdomain.lng
@@ -1,12 +1,12 @@
-<?php
-$wb['source_txt'] = 'Source';
-$wb['destination_txt'] = 'Destination';
-$wb['active_txt'] = 'Actif';
-$wb['no_domain_perm'] = 'Vous n\'avez pas de permission pour ce domaine.';
-$wb['limit_mailaliasdomain_txt'] = 'Le nombre maximal d\'alias de domaine pour votre compte est atteint.';
-$wb['source_destination_identical_txt'] = 'Les domaines source et cible sont identiques.';
-$wb['source_error_empty'] = 'Le domaine source est vide.';
-$wb['source_error_unique'] = 'Domaine source dupliqué.';
-$wb['source_error_regex'] = 'Nom de domaine source invalide.';
-?>
-
+<?php
+$wb['source_txt'] = 'Source';
+$wb['destination_txt'] = 'Destination';
+$wb['active_txt'] = 'Actif';
+$wb['no_domain_perm'] = 'Vous n\'avez pas de permission pour ce domaine.';
+$wb['limit_mailaliasdomain_txt'] = 'Le nombre maximal d\'alias de domaine pour votre compte est atteint.';
+$wb['source_destination_identical_txt'] = 'Les domaines source et cible sont identiques.';
+$wb['source_error_empty'] = 'Le domaine source est vide.';
+$wb['source_error_unique'] = 'Domaine source dupliqué.';
+$wb['source_error_regex'] = 'Nom de domaine source invalide.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/fr_mail_aliasdomain_list.lng
index 8f0999d..e961544 100644
--- a/interface/web/mail/lib/lang/fr_mail_aliasdomain_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_aliasdomain_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Alias de domaine';
-$wb['active_txt'] = 'Actif';
-$wb['source_txt'] = 'Source';
-$wb['destination_txt'] = 'Destination';
-$wb['add_new_record_txt'] = 'Ajouter un alias de domaine';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Alias de domaine';
+$wb['active_txt'] = 'Actif';
+$wb['source_txt'] = 'Source';
+$wb['destination_txt'] = 'Destination';
+$wb['add_new_record_txt'] = 'Ajouter un alias de domaine';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_blacklist.lng b/interface/web/mail/lib/lang/fr_mail_blacklist.lng
index a2f1e13..ba70338 100644
--- a/interface/web/mail/lib/lang/fr_mail_blacklist.lng
+++ b/interface/web/mail/lib/lang/fr_mail_blacklist.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['source_txt'] = 'Adresse de la liste noire';
-$wb['recipient_txt'] = 'Bénéficiaire';
-$wb['active_txt'] = 'Actif';
-$wb['source_error_notempty'] = 'L\'adresse est vide.';
-$wb['type_txt'] = 'Type';
-$wb['limit_mailfilter_txt'] = 'Le nombre maximal de filtres d\'email pour votre compte a été atteint.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['source_txt'] = 'Adresse de la liste noire';
+$wb['recipient_txt'] = 'Bénéficiaire';
+$wb['active_txt'] = 'Actif';
+$wb['source_error_notempty'] = 'L\'adresse est vide.';
+$wb['type_txt'] = 'Type';
+$wb['limit_mailfilter_txt'] = 'Le nombre maximal de filtres d\'email pour votre compte a été atteint.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_blacklist_list.lng b/interface/web/mail/lib/lang/fr_mail_blacklist_list.lng
index b9158ec..a2e698c 100644
--- a/interface/web/mail/lib/lang/fr_mail_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_blacklist_list.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['list_head_txt'] = 'Liste noire d\'emails';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['source_txt'] = 'Adresse de la liste noire';
-$wb['type_txt'] = 'Type';
-$wb['recipient_txt'] = 'Bénéficiaire';
-$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
-$wb['access_txt'] = 'accès';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Liste noire d\'emails';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['source_txt'] = 'Adresse de la liste noire';
+$wb['type_txt'] = 'Type';
+$wb['recipient_txt'] = 'Bénéficiaire';
+$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
+$wb['access_txt'] = 'accès';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_content_filter.lng b/interface/web/mail/lib/lang/fr_mail_content_filter.lng
index 0097ce1..2eadb4b 100644
--- a/interface/web/mail/lib/lang/fr_mail_content_filter.lng
+++ b/interface/web/mail/lib/lang/fr_mail_content_filter.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['type_txt'] = 'Filtre';
-$wb['pattern_txt'] = 'Schéma Regexp';
-$wb['data_txt'] = 'Données';
-$wb['action_txt'] = 'Action';
-$wb['active_txt'] = 'Actif';
-$wb['pattern_error_empty'] = 'Le schéma est vide.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['type_txt'] = 'Filtre';
+$wb['pattern_txt'] = 'Schéma Regexp';
+$wb['data_txt'] = 'Données';
+$wb['action_txt'] = 'Action';
+$wb['active_txt'] = 'Actif';
+$wb['pattern_error_empty'] = 'Le schéma est vide.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_content_filter_list.lng b/interface/web/mail/lib/lang/fr_mail_content_filter_list.lng
index 184401b..89774df 100644
--- a/interface/web/mail/lib/lang/fr_mail_content_filter_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_content_filter_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Entête de Postfix';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['pattern_txt'] = 'Schéma';
-$wb['action_txt'] = 'Action';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau filtre de contenu';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Entête de Postfix';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['pattern_txt'] = 'Schéma';
+$wb['action_txt'] = 'Action';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau filtre de contenu';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_domain.lng b/interface/web/mail/lib/lang/fr_mail_domain.lng
index dc77e9c..5584326 100644
--- a/interface/web/mail/lib/lang/fr_mail_domain.lng
+++ b/interface/web/mail/lib/lang/fr_mail_domain.lng
@@ -1,14 +1,14 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['type_txt'] = 'Type';
-$wb['active_txt'] = 'Actif';
-$wb['domain_error_empty'] = 'Le domaine est vide.';
-$wb['domain_error_unique'] = 'Dupliquer le domaine.';
-$wb['domain_error_regex'] = 'Le domaine est invalide.';
-$wb['client_txt'] = 'Client';
-$wb['limit_maildomain_txt'] = 'Le nombre maximal de domaines d\'email pour votre compte a été atteint.';
-$wb['policy_txt'] = 'Filtre antispam';
-$wb['no_policy'] = '- inactif -';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['type_txt'] = 'Type';
+$wb['active_txt'] = 'Actif';
+$wb['domain_error_empty'] = 'Le domaine est vide.';
+$wb['domain_error_unique'] = 'Dupliquer le domaine.';
+$wb['domain_error_regex'] = 'Le domaine est invalide.';
+$wb['client_txt'] = 'Client';
+$wb['limit_maildomain_txt'] = 'Le nombre maximal de domaines d\'email pour votre compte a été atteint.';
+$wb['policy_txt'] = 'Filtre antispam';
+$wb['no_policy'] = '- inactif -';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/fr_mail_domain_admin_list.lng
index b3f1bec..87ae970 100644
--- a/interface/web/mail/lib/lang/fr_mail_domain_admin_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_domain_admin_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Domaine d\'email';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['add_new_record_txt'] = 'Ajouter un domaine';
-$wb['active_txt'] = 'Actif';
-$wb['sys_groupid_txt'] = 'Client';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Domaine d\'email';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['add_new_record_txt'] = 'Ajouter un domaine';
+$wb['active_txt'] = 'Actif';
+$wb['sys_groupid_txt'] = 'Client';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng
index 0f973bf..fdc59c4 100644
--- a/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng
+++ b/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['domain_txt'] = 'Domaine';
-$wb['destination_txt'] = 'Destination';
-$wb['active_txt'] = 'Actif';
-$wb['domain_error_unique'] = 'Il y a déja un enregistrement collecteur pour ce domaine.';
-$wb['no_domain_perm'] = 'Vous navez pas de permission pour ce domaine.';
-$wb['domain_error_regex'] = 'Nom de domaine invalide, ou contient des caractères invalides.';
-$wb['limit_mailcatchall_txt'] = 'Le nombre maximal de comptes collecteurs pour votre compte a été atteint.';
-?>
-
+<?php
+$wb['domain_txt'] = 'Domaine';
+$wb['destination_txt'] = 'Destination';
+$wb['active_txt'] = 'Actif';
+$wb['domain_error_unique'] = 'Il y a déja un enregistrement collecteur pour ce domaine.';
+$wb['no_domain_perm'] = 'Vous navez pas de permission pour ce domaine.';
+$wb['domain_error_regex'] = 'Nom de domaine invalide, ou contient des caractères invalides.';
+$wb['limit_mailcatchall_txt'] = 'Le nombre maximal de comptes collecteurs pour votre compte a été atteint.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/fr_mail_domain_catchall_list.lng
index 57281c6..41833df 100644
--- a/interface/web/mail/lib/lang/fr_mail_domain_catchall_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_domain_catchall_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Collecteur Email';
-$wb['active_txt'] = 'Actif';
-$wb['source_txt'] = 'source';
-$wb['destination_txt'] = 'Adresse email de destination';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau collecteur';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Collecteur Email';
+$wb['active_txt'] = 'Actif';
+$wb['source_txt'] = 'source';
+$wb['destination_txt'] = 'Adresse email de destination';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau collecteur';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_domain_list.lng b/interface/web/mail/lib/lang/fr_mail_domain_list.lng
index 6419abb..f0897b5 100644
--- a/interface/web/mail/lib/lang/fr_mail_domain_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_domain_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Domaine email';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau domaine';
-$wb['active_txt'] = 'Actif';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Domaine email';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau domaine';
+$wb['active_txt'] = 'Actif';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_forward.lng b/interface/web/mail/lib/lang/fr_mail_forward.lng
index 23270cc..4672e69 100644
--- a/interface/web/mail/lib/lang/fr_mail_forward.lng
+++ b/interface/web/mail/lib/lang/fr_mail_forward.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['email_txt'] = 'Email';
-$wb['destination_txt'] = 'Email de destination';
-$wb['active_txt'] = 'Actif';
-$wb['limit_mailforward_txt'] = 'Le nombre maximal de transferts d\'email pour votre compte a été atteint.';
-$wb['duplicate_mailbox_txt'] = 'Il y a déja une boite email avec cette adresse email';
-?>
-
+<?php
+$wb['email_txt'] = 'Email';
+$wb['destination_txt'] = 'Email de destination';
+$wb['active_txt'] = 'Actif';
+$wb['limit_mailforward_txt'] = 'Le nombre maximal de transferts d\'email pour votre compte a été atteint.';
+$wb['duplicate_mailbox_txt'] = 'Il y a déja une boite email avec cette adresse email';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_forward_list.lng b/interface/web/mail/lib/lang/fr_mail_forward_list.lng
index 6083720..c5373a8 100644
--- a/interface/web/mail/lib/lang/fr_mail_forward_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_forward_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Transfert d\'email';
-$wb['active_txt'] = 'Actif';
-$wb['source_txt'] = 'source';
-$wb['destination_txt'] = 'Destination';
-$wb['email_txt'] = 'Email';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau transfert d\'email';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Transfert d\'email';
+$wb['active_txt'] = 'Actif';
+$wb['source_txt'] = 'source';
+$wb['destination_txt'] = 'Destination';
+$wb['email_txt'] = 'Email';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau transfert d\'email';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_get.lng b/interface/web/mail/lib/lang/fr_mail_get.lng
index 8d69849..33be0e9 100644
--- a/interface/web/mail/lib/lang/fr_mail_get.lng
+++ b/interface/web/mail/lib/lang/fr_mail_get.lng
@@ -1,17 +1,17 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['type_txt'] = 'Type';
-$wb['source_server_txt'] = 'Serveur Pop3/Imap';
-$wb['source_username_txt'] = 'Utilisateur';
-$wb['source_password_txt'] = 'Mot de passe';
-$wb['source_delete_txt'] = 'Supprimer les emails après récupération';
-$wb['destination_txt'] = 'Destination';
-$wb['active_txt'] = 'Actif';
-$wb['limit_fetchmail_txt'] = 'Le nombre maximal d\'enregistrements récupérateur email pour votre compte a été atteint.';
-$wb['source_server_error_isempty'] = 'Le serveur est vide.';
-$wb['source_username_error_isempty'] = 'l\'utilisateur est vide.';
-$wb['source_password_error_isempty'] = 'Le mot de passe est vide.';
-$wb['destination_error_isemail'] = 'Pas de destination sélectionnée.';
-$wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['type_txt'] = 'Type';
+$wb['source_server_txt'] = 'Serveur Pop3/Imap';
+$wb['source_username_txt'] = 'Utilisateur';
+$wb['source_password_txt'] = 'Mot de passe';
+$wb['source_delete_txt'] = 'Supprimer les emails après récupération';
+$wb['destination_txt'] = 'Destination';
+$wb['active_txt'] = 'Actif';
+$wb['limit_fetchmail_txt'] = 'Le nombre maximal d\'enregistrements récupérateur email pour votre compte a été atteint.';
+$wb['source_server_error_isempty'] = 'Le serveur est vide.';
+$wb['source_username_error_isempty'] = 'l\'utilisateur est vide.';
+$wb['source_password_error_isempty'] = 'Le mot de passe est vide.';
+$wb['destination_error_isemail'] = 'Pas de destination sélectionnée.';
+$wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_get_list.lng b/interface/web/mail/lib/lang/fr_mail_get_list.lng
index 590fc9c..4f3be03 100644
--- a/interface/web/mail/lib/lang/fr_mail_get_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_get_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Récupérer les emails depuis des serveurs POP3/IMAP externes';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['source_server_txt'] = 'Serveur externe';
-$wb['source_username_txt'] = 'Utilisateur';
-$wb['destination_txt'] = 'Destination';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau compte';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Récupérer les emails depuis des serveurs POP3/IMAP externes';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['source_server_txt'] = 'Serveur externe';
+$wb['source_username_txt'] = 'Utilisateur';
+$wb['destination_txt'] = 'Destination';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau compte';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_relay_recipient.lng b/interface/web/mail/lib/lang/fr_mail_relay_recipient.lng
index f714d76..9f01efb 100644
--- a/interface/web/mail/lib/lang/fr_mail_relay_recipient.lng
+++ b/interface/web/mail/lib/lang/fr_mail_relay_recipient.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['source_txt'] = 'Relayer le destinataire';
-$wb['recipient_txt'] = 'Destinataire';
-$wb['active_txt'] = 'Actif';
-$wb['source_error_notempty'] = 'L\'adresse est vide';
-$wb['type_txt'] = 'Type';
-$wb['limit_mailfilter_txt'] = 'Le nombre maximal de filtres pour votre compte est atteint.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['source_txt'] = 'Relayer le destinataire';
+$wb['recipient_txt'] = 'Destinataire';
+$wb['active_txt'] = 'Actif';
+$wb['source_error_notempty'] = 'L\'adresse est vide';
+$wb['type_txt'] = 'Type';
+$wb['limit_mailfilter_txt'] = 'Le nombre maximal de filtres pour votre compte est atteint.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/fr_mail_relay_recipient_list.lng
index 834d047..96ee42d 100644
--- a/interface/web/mail/lib/lang/fr_mail_relay_recipient_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_relay_recipient_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Relayer les destinataires';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['source_txt'] = 'Adresse du destinataire';
-$wb['recipient_txt'] = 'Destinataire';
-$wb['add_new_record_txt'] = 'Ajouter un relai de destinataire';
-$wb['access_txt'] = 'accès';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Relayer les destinataires';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['source_txt'] = 'Adresse du destinataire';
+$wb['recipient_txt'] = 'Destinataire';
+$wb['add_new_record_txt'] = 'Ajouter un relai de destinataire';
+$wb['access_txt'] = 'accès';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_spamfilter.lng b/interface/web/mail/lib/lang/fr_mail_spamfilter.lng
index 958435f..dc1c237 100644
--- a/interface/web/mail/lib/lang/fr_mail_spamfilter.lng
+++ b/interface/web/mail/lib/lang/fr_mail_spamfilter.lng
@@ -1,18 +1,18 @@
-<?php
-$wb['email_txt'] = 'Email';
-$wb['spam_rewrite_score_int_txt'] = 'Réécrire le score';
-$wb['spam_redirect_score_int_txt'] = 'Réorienter le score';
-$wb['spam_delete_score_int_txt'] = 'Supprimer le score';
-$wb['spam_rewrite_subject_txt'] = 'Réécrire le sujet';
-$wb['spam_redirect_maildir_txt'] = 'Réorienter la boîte mail';
-$wb['active_txt'] = 'Actif';
-$wb['spam_rewrite_txt'] = 'Réécrire l\'objet de l\'email ci-dessus.';
-$wb['spam_redirect_txt'] = 'Réorienter l\'email à la boîte email sélectionnée ci-dessus.';
-$wb['spam_delete_txt'] = 'Supprimer l\'email ci-dessus.';
-$wb['disable_txt'] = 'Astuce: Pour désactiver une option de filtrage, mettez le score à 0.00.';
-$wb['email_error_isemail'] = 'L\'adresse email est invalide.';
-$wb['email_error_unique'] = 'Il y a déja un enregistrement de filtre antispam avec cette adresse email.';
-$wb['spam_redirect_maildir_purge_txt'] = 'Purger le répertoire de mail après';
-$wb['days_txt'] = 'Jours.';
-?>
-
+<?php
+$wb['email_txt'] = 'Email';
+$wb['spam_rewrite_score_int_txt'] = 'Réécrire le score';
+$wb['spam_redirect_score_int_txt'] = 'Réorienter le score';
+$wb['spam_delete_score_int_txt'] = 'Supprimer le score';
+$wb['spam_rewrite_subject_txt'] = 'Réécrire le sujet';
+$wb['spam_redirect_maildir_txt'] = 'Réorienter la boîte mail';
+$wb['active_txt'] = 'Actif';
+$wb['spam_rewrite_txt'] = 'Réécrire l\'objet de l\'email ci-dessus.';
+$wb['spam_redirect_txt'] = 'Réorienter l\'email à la boîte email sélectionnée ci-dessus.';
+$wb['spam_delete_txt'] = 'Supprimer l\'email ci-dessus.';
+$wb['disable_txt'] = 'Astuce: Pour désactiver une option de filtrage, mettez le score à 0.00.';
+$wb['email_error_isemail'] = 'L\'adresse email est invalide.';
+$wb['email_error_unique'] = 'Il y a déja un enregistrement de filtre antispam avec cette adresse email.';
+$wb['spam_redirect_maildir_purge_txt'] = 'Purger le répertoire de mail après';
+$wb['days_txt'] = 'Jours.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/fr_mail_spamfilter_list.lng
index 33edceb..217860b 100644
--- a/interface/web/mail/lib/lang/fr_mail_spamfilter_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_spamfilter_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Filtre antispam';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['server_name_txt'] = 'Nom du serveur';
-$wb['email_txt'] = 'Email';
-$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Filtre antispam';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['server_name_txt'] = 'Nom du serveur';
+$wb['email_txt'] = 'Email';
+$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_transport.lng b/interface/web/mail/lib/lang/fr_mail_transport.lng
index 2e8d588..bfa35e6 100644
--- a/interface/web/mail/lib/lang/fr_mail_transport.lng
+++ b/interface/web/mail/lib/lang/fr_mail_transport.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['destination_txt'] = 'Destination';
-$wb['type_txt'] = 'Type';
-$wb['mx_txt'] = 'Pas de résolution MX';
-$wb['sort_order_txt'] = 'Trier par';
-$wb['active_txt'] = 'Actif';
-$wb['limit_mailrouting_txt'] = 'Le nombre maximal de routes pour votre compte a été atteint.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['destination_txt'] = 'Destination';
+$wb['type_txt'] = 'Type';
+$wb['mx_txt'] = 'Pas de résolution MX';
+$wb['sort_order_txt'] = 'Trier par';
+$wb['active_txt'] = 'Actif';
+$wb['limit_mailrouting_txt'] = 'Le nombre maximal de routes pour votre compte a été atteint.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_transport_list.lng b/interface/web/mail/lib/lang/fr_mail_transport_list.lng
index 05eede3..5814d0b 100644
--- a/interface/web/mail/lib/lang/fr_mail_transport_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_transport_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Routage d\'email avancé';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['transport_txt'] = 'Déplacement';
-$wb['sort_order_txt'] = 'Trier par';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau déplacement';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Routage d\'email avancé';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['transport_txt'] = 'Déplacement';
+$wb['sort_order_txt'] = 'Trier par';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau déplacement';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_user.lng b/interface/web/mail/lib/lang/fr_mail_user.lng
index bb8831a..b2d3764 100644
--- a/interface/web/mail/lib/lang/fr_mail_user.lng
+++ b/interface/web/mail/lib/lang/fr_mail_user.lng
@@ -1,43 +1,43 @@
-<?php
-$wb['custom_mailfilter_txt'] = 'Filtre d\'email personnalisé';
-$wb['email_txt'] = 'Email';
-$wb['cryptpwd_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['active_txt'] = 'Actif';
-$wb['email_error_isemail'] = 'L\'adresse email est invalide.';
-$wb['email_error_unique'] = 'Dupliquer l\'adresse email.';
-$wb['autoresponder_text_txt'] = 'Texte';
-$wb['autoresponder_txt'] = 'Auto répondeur';
-$wb['no_domain_perm'] = 'Vous n\'avez pas de permission sur ce domaine.';
-$wb['error_no_pwd'] = 'Le mot de passe est vide.';
-$wb['quota_error_isint'] = 'La taille de la boîte à mail doit être en Mo.';
-$wb['quota_txt'] = 'Quota en Mo';
-$wb['server_id_txt'] = 'ID Serveur';
-$wb['password_txt'] = 'Mot de passe';
-$wb['maildir_txt'] = 'Maildir';
-$wb['postfix_txt'] = 'Activer la réception';
-$wb['access_txt'] = 'Activer l\'accès';
-$wb['policy_txt'] = 'Filtre antispam';
-$wb['no_policy'] = '- inactif -';
-$wb['limit_mailbox_txt'] = 'Le nombre maximal de boites email pour votre compte est atteint..';
-$wb['limit_mailquota_txt'] = 'L\'espace maximal pour les boites email est atteint. L\'espace maximal disponible est de ';
-$wb['welcome_mail_subject'] = 'Bienvenue sur votre nouveau compte mail.';
-$wb['welcome_mail_message'] = 'Bienvenue sur votre nouveau compte mail.  Votre webmaster.';
-$wb['disableimap_txt'] = 'Désactiver IMAP';
-$wb['disablepop3_txt'] = 'Désactiver POP3';
-$wb['welcome_mail_fromname_txt'] = 'ISPConfig3';
-$wb['welcome_mail_fromemail_txt'] = 'webmaster@localhost.tld';
-$wb['duplicate_alias_or_forward_txt'] = 'Il y a déja un alias ou un transfert d\'email sur cette adresse.';
-$wb['autoresponder_start_date_txt'] = 'Démarrer le';
-$wb['autoresponder_start_date_isfuture'] = 'La date de démarrage ne peut être une date passée.';
-$wb['autoresponder_end_date_txt'] = 'Terminer le';
-$wb['autoresponder_end_date_isgreater'] = 'La date de fin doit être saisie et doit être ultérieure à la date de début.';
-$wb['quota_error_value'] = 'Valuer de quota invalide. Les valeurs de quota autorisées sont: 0 pour illimité ou nombres > 1';
-$wb['move_junk_txt'] = 'Déplacer le spam vers le dossier pourris';
-$wb['name_txt'] = 'Nom véritable';
-$wb['name_optional_txt'] = '(Optionnel)';
-$wb['autoresponder_active'] = 'Activer l\'autorépondeur';
-$wb['cc_txt'] = 'Envoyer une copie à';
-$wb['cc_error_isemail'] = 'Le champ Envoyer une copie ne contient pas une adresse email valide';
-?>
-
+<?php
+$wb['custom_mailfilter_txt'] = 'Filtre d\'email personnalisé';
+$wb['email_txt'] = 'Email';
+$wb['cryptpwd_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['active_txt'] = 'Actif';
+$wb['email_error_isemail'] = 'L\'adresse email est invalide.';
+$wb['email_error_unique'] = 'Dupliquer l\'adresse email.';
+$wb['autoresponder_text_txt'] = 'Texte';
+$wb['autoresponder_txt'] = 'Auto répondeur';
+$wb['no_domain_perm'] = 'Vous n\'avez pas de permission sur ce domaine.';
+$wb['error_no_pwd'] = 'Le mot de passe est vide.';
+$wb['quota_error_isint'] = 'La taille de la boîte à mail doit être en Mo.';
+$wb['quota_txt'] = 'Quota en Mo';
+$wb['server_id_txt'] = 'ID Serveur';
+$wb['password_txt'] = 'Mot de passe';
+$wb['maildir_txt'] = 'Maildir';
+$wb['postfix_txt'] = 'Activer la réception';
+$wb['access_txt'] = 'Activer l\'accès';
+$wb['policy_txt'] = 'Filtre antispam';
+$wb['no_policy'] = '- inactif -';
+$wb['limit_mailbox_txt'] = 'Le nombre maximal de boites email pour votre compte est atteint..';
+$wb['limit_mailquota_txt'] = 'L\'espace maximal pour les boites email est atteint. L\'espace maximal disponible est de ';
+$wb['welcome_mail_subject'] = 'Bienvenue sur votre nouveau compte mail.';
+$wb['welcome_mail_message'] = 'Bienvenue sur votre nouveau compte mail.  Votre webmaster.';
+$wb['disableimap_txt'] = 'Désactiver IMAP';
+$wb['disablepop3_txt'] = 'Désactiver POP3';
+$wb['welcome_mail_fromname_txt'] = 'ISPConfig3';
+$wb['welcome_mail_fromemail_txt'] = 'webmaster@localhost.tld';
+$wb['duplicate_alias_or_forward_txt'] = 'Il y a déja un alias ou un transfert d\'email sur cette adresse.';
+$wb['autoresponder_start_date_txt'] = 'Démarrer le';
+$wb['autoresponder_start_date_isfuture'] = 'La date de démarrage ne peut être une date passée.';
+$wb['autoresponder_end_date_txt'] = 'Terminer le';
+$wb['autoresponder_end_date_isgreater'] = 'La date de fin doit être saisie et doit être ultérieure à la date de début.';
+$wb['quota_error_value'] = 'Valuer de quota invalide. Les valeurs de quota autorisées sont: 0 pour illimité ou nombres > 1';
+$wb['move_junk_txt'] = 'Déplacer le spam vers le dossier pourris';
+$wb['name_txt'] = 'Nom véritable';
+$wb['name_optional_txt'] = '(Optionnel)';
+$wb['autoresponder_active'] = 'Activer l\'autorépondeur';
+$wb['cc_txt'] = 'Envoyer une copie à';
+$wb['cc_error_isemail'] = 'Le champ Envoyer une copie ne contient pas une adresse email valide';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_user_filter.lng b/interface/web/mail/lib/lang/fr_mail_user_filter.lng
index 4e4bb57..0f51290 100644
--- a/interface/web/mail/lib/lang/fr_mail_user_filter.lng
+++ b/interface/web/mail/lib/lang/fr_mail_user_filter.lng
@@ -1,12 +1,12 @@
-<?php
-$wb['rulename_txt'] = 'Nom';
-$wb['action_txt'] = 'Action';
-$wb['target_txt'] = 'Répertoire';
-$wb['active_txt'] = 'Actif';
-$wb['rulename_error_empty'] = 'Le nom est vide.';
-$wb['searchterm_is_empty'] = 'Le terme recherché est vide.';
-$wb['source_txt'] = 'Source';
-$wb['target_error_regex'] = 'La cible ne peut contenir que ces caractères : a-z, 0-9, -, ., _, et {espace}';
-$wb['limit_mailfilter_txt'] = 'Le nombre max de filtres email est atteint.';
-?>
-
+<?php
+$wb['rulename_txt'] = 'Nom';
+$wb['action_txt'] = 'Action';
+$wb['target_txt'] = 'Répertoire';
+$wb['active_txt'] = 'Actif';
+$wb['rulename_error_empty'] = 'Le nom est vide.';
+$wb['searchterm_is_empty'] = 'Le terme recherché est vide.';
+$wb['source_txt'] = 'Source';
+$wb['target_error_regex'] = 'La cible ne peut contenir que ces caractères : a-z, 0-9, -, ., _, et {espace}';
+$wb['limit_mailfilter_txt'] = 'Le nombre max de filtres email est atteint.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_user_filter_list.lng b/interface/web/mail/lib/lang/fr_mail_user_filter_list.lng
index dbe3ea9..237a2b8 100644
--- a/interface/web/mail/lib/lang/fr_mail_user_filter_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_user_filter_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['rulename_txt'] = 'Nom';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau filtre';
-$wb['page_txt'] = 'Page';
-$wb['page_of_txt'] = 'de';
-$wb['delete_confirmation'] = 'Voulez-vous vraiment supprimer ce filtre';
-?>
-
+<?php
+$wb['rulename_txt'] = 'Nom';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau filtre';
+$wb['page_txt'] = 'Page';
+$wb['page_of_txt'] = 'de';
+$wb['delete_confirmation'] = 'Voulez-vous vraiment supprimer ce filtre';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_user_list.lng b/interface/web/mail/lib/lang/fr_mail_user_list.lng
index 01241d3..58039d5 100644
--- a/interface/web/mail/lib/lang/fr_mail_user_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_user_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Boîte mail';
-$wb['email_txt'] = 'Email';
-$wb['autoresponder_txt'] = 'Autorépondeur';
-$wb['add_new_record_txt'] = 'Ajouter une nouvelle boîte email';
-$wb['name_txt'] = 'Nom véritable';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Boîte mail';
+$wb['email_txt'] = 'Email';
+$wb['autoresponder_txt'] = 'Autorépondeur';
+$wb['add_new_record_txt'] = 'Ajouter une nouvelle boîte email';
+$wb['name_txt'] = 'Nom véritable';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_user_stats_list.lng b/interface/web/mail/lib/lang/fr_mail_user_stats_list.lng
index 9a1f844..195c6b8 100644
--- a/interface/web/mail/lib/lang/fr_mail_user_stats_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_user_stats_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'trafic email';
-$wb['email_txt'] = 'Email';
-$wb['this_month_txt'] = 'Ce mois';
-$wb['last_month_txt'] = 'Le mois dernier';
-$wb['this_year_txt'] = 'Cette année';
-$wb['last_year_txt'] = 'L\'année dernière';
-?>
-
+<?php
+$wb['list_head_txt'] = 'trafic email';
+$wb['email_txt'] = 'Email';
+$wb['this_month_txt'] = 'Ce mois';
+$wb['last_month_txt'] = 'Le mois dernier';
+$wb['this_year_txt'] = 'Cette année';
+$wb['last_year_txt'] = 'L\'année dernière';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_whitelist.lng b/interface/web/mail/lib/lang/fr_mail_whitelist.lng
index 00bab6f..c3dbc67 100644
--- a/interface/web/mail/lib/lang/fr_mail_whitelist.lng
+++ b/interface/web/mail/lib/lang/fr_mail_whitelist.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['source_txt'] = 'Adresse de la liste blanche';
-$wb['recipient_txt'] = 'Destinataire';
-$wb['active_txt'] = 'Actif';
-$wb['source_error_notempty'] = 'L\'adresse est vide.';
-$wb['type_txt'] = 'Type';
-$wb['limit_mailfilter_txt'] = 'Le nombre maximal de filtres à mails pour votre compte a été atteint.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['source_txt'] = 'Adresse de la liste blanche';
+$wb['recipient_txt'] = 'Destinataire';
+$wb['active_txt'] = 'Actif';
+$wb['source_error_notempty'] = 'L\'adresse est vide.';
+$wb['type_txt'] = 'Type';
+$wb['limit_mailfilter_txt'] = 'Le nombre maximal de filtres à mails pour votre compte a été atteint.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_mail_whitelist_list.lng b/interface/web/mail/lib/lang/fr_mail_whitelist_list.lng
index 20e49cf..2be47e5 100644
--- a/interface/web/mail/lib/lang/fr_mail_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/fr_mail_whitelist_list.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['list_head_txt'] = 'Liste blanche d\'emails';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['source_txt'] = 'Adresse de la liste blanche';
-$wb['type_txt'] = 'Type';
-$wb['recipient_txt'] = 'Destinataire';
-$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
-$wb['access_txt'] = 'accès';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Liste blanche d\'emails';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['source_txt'] = 'Adresse de la liste blanche';
+$wb['type_txt'] = 'Type';
+$wb['recipient_txt'] = 'Destinataire';
+$wb['add_new_record_txt'] = 'Ajouter un nouvel enregistrement';
+$wb['access_txt'] = 'accès';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/fr_spamfilter_blacklist.lng
index 279db53..86f91d6 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_blacklist.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_blacklist.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['wb_txt'] = 'wb';
-$wb['rid_txt'] = 'Utilisateur';
-$wb['email_txt'] = 'Email';
-$wb['priority_txt'] = 'Priorité';
-$wb['active_txt'] = 'Actif';
-$wb['limit_spamfilter_wblist_txt'] = 'Le nombre maximal d\'enregistrements dans votre liste blanche/noire pour votre compte a été atteint.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['wb_txt'] = 'wb';
+$wb['rid_txt'] = 'Utilisateur';
+$wb['email_txt'] = 'Email';
+$wb['priority_txt'] = 'Priorité';
+$wb['active_txt'] = 'Actif';
+$wb['limit_spamfilter_wblist_txt'] = 'Le nombre maximal d\'enregistrements dans votre liste blanche/noire pour votre compte a été atteint.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/fr_spamfilter_blacklist_list.lng
index 14d086e..c915c81 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_blacklist_list.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_blacklist_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Liste noire du filtre antispam';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['priority_txt'] = 'Priorité';
-$wb['rid_txt'] = 'Utilisateur';
-$wb['email_txt'] = 'Email en liste blanche';
-$wb['add_new_record_txt'] = 'Ajouter un enregistrement';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Liste noire du filtre antispam';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['priority_txt'] = 'Priorité';
+$wb['rid_txt'] = 'Utilisateur';
+$wb['email_txt'] = 'Email en liste blanche';
+$wb['add_new_record_txt'] = 'Ajouter un enregistrement';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_config.lng b/interface/web/mail/lib/lang/fr_spamfilter_config.lng
index bfdca70..6cd09cd 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_config.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_config.lng
@@ -1,21 +1,21 @@
-<?php
-$wb['getmail_config_dir_txt'] = 'Chemin de configuration Getmail';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['netmask_txt'] = 'Masque réseau';
-$wb['gateway_txt'] = 'Passerelle';
-$wb['hostname_txt'] = 'Nom d\'hôte';
-$wb['nameservers_txt'] = 'Serveurs de nom';
-$wb['module_txt'] = 'Module serveur';
-$wb['maildir_path_txt'] = 'Chemin du dossier de mails';
-$wb['homedir_path_txt'] = 'Chemin dossier home';
-$wb['mailuser_uid_txt'] = 'UID utilisateur mail';
-$wb['mailuser_gid_txt'] = 'GID utilisateur mail';
-$wb['mailuser_name_txt'] = 'Nom utilisateur mail';
-$wb['mailuser_group_txt'] = 'Groupe utilisateur mail';
-$wb['relayhost_txt'] = 'Hôte de relais';
-$wb['relayhost_user_txt'] = 'Utilisateur hôte de relais';
-$wb['relayhost_password_txt'] = 'Mot de passe hôte de relais';
-$wb['mailbox_size_limit_txt'] = 'Limite de taille de la boite email';
-$wb['message_size_limit_txt'] = 'Limite de taille des messages';
-?>
-
+<?php
+$wb['getmail_config_dir_txt'] = 'Chemin de configuration Getmail';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['netmask_txt'] = 'Masque réseau';
+$wb['gateway_txt'] = 'Passerelle';
+$wb['hostname_txt'] = 'Nom d\'hôte';
+$wb['nameservers_txt'] = 'Serveurs de nom';
+$wb['module_txt'] = 'Module serveur';
+$wb['maildir_path_txt'] = 'Chemin du dossier de mails';
+$wb['homedir_path_txt'] = 'Chemin dossier home';
+$wb['mailuser_uid_txt'] = 'UID utilisateur mail';
+$wb['mailuser_gid_txt'] = 'GID utilisateur mail';
+$wb['mailuser_name_txt'] = 'Nom utilisateur mail';
+$wb['mailuser_group_txt'] = 'Groupe utilisateur mail';
+$wb['relayhost_txt'] = 'Hôte de relais';
+$wb['relayhost_user_txt'] = 'Utilisateur hôte de relais';
+$wb['relayhost_password_txt'] = 'Mot de passe hôte de relais';
+$wb['mailbox_size_limit_txt'] = 'Limite de taille de la boite email';
+$wb['message_size_limit_txt'] = 'Limite de taille des messages';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_config_list.lng b/interface/web/mail/lib/lang/fr_spamfilter_config_list.lng
index 812ba85..03f09d1 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_config_list.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_config_list.lng
@@ -1,6 +1,6 @@
-<?php
-$wb['list_head_txt'] = 'Configuration du serveur';
-$wb['server_name_txt'] = 'Serveur';
-$wb['server_id_txt'] = 'ID Serveur';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Configuration du serveur';
+$wb['server_name_txt'] = 'Serveur';
+$wb['server_id_txt'] = 'ID Serveur';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_policy.lng b/interface/web/mail/lib/lang/fr_spamfilter_policy.lng
index bc0d939..4322460 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_policy.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_policy.lng
@@ -1,39 +1,39 @@
-<?php
-$wb['policy_name_txt'] = 'Nom de la stratégie';
-$wb['virus_lover_txt'] = 'Aime les virus';
-$wb['spam_lover_txt'] = 'Aime le spam';
-$wb['banned_files_lover_txt'] = 'Aime les fichiers bannis';
-$wb['bad_header_lover_txt'] = 'Aime les mauvaises entêtes';
-$wb['bypass_virus_checks_txt'] = 'Contourner la vérification des virus';
-$wb['bypass_banned_checks_txt'] = 'Contourner la vérification des bannissements.';
-$wb['bypass_header_checks_txt'] = 'Contourner la vérification des entêtes';
-$wb['virus_quarantine_to_txt'] = 'Faire suivre les virus vers l\'email';
-$wb['spam_quarantine_to_txt'] = 'Faire suivre le spam vers l\'email';
-$wb['banned_quarantine_to_txt'] = 'Faire suivre les bannis vers l\'email';
-$wb['bad_header_quarantine_to_txt'] = 'Faire suivre les mauvaises entêtes vers l\'email';
-$wb['clean_quarantine_to_txt'] = 'Faire suivre ce qui est propre vers l\'email';
-$wb['other_quarantine_to_txt'] = 'Faire suivre les autres vers l\'email';
-$wb['spam_tag_level_txt'] = 'Niveau du tag de SPAM';
-$wb['spam_tag2_level_txt'] = 'Niveau du tag2 de SPAM';
-$wb['spam_kill_level_txt'] = 'Niveau du kill de SPAM';
-$wb['spam_dsn_cutoff_level_txt'] = 'Seuil dsn du SPAM';
-$wb['spam_quarantine_cutoff_level_txt'] = 'Seuil quarantaine du SPAM';
-$wb['spam_modifies_subj_txt'] = 'SPAM modifie le sujet';
-$wb['spam_subject_tag_txt'] = 'SPAM tag dans le sujet';
-$wb['spam_subject_tag2_txt'] = 'SPAM tag dans le sujet 2';
-$wb['addr_extension_virus_txt'] = 'Adresse extension virus';
-$wb['addr_extension_spam_txt'] = 'Adresse extension SPAM';
-$wb['addr_extension_banned_txt'] = 'Adresse extension bannir';
-$wb['addr_extension_bad_header_txt'] = 'Adresse extension mauvais entête';
-$wb['warnvirusrecip_txt'] = 'Avertir destinataire des virus';
-$wb['warnbannedrecip_txt'] = 'Avertir destinataire banni';
-$wb['warnbadhrecip_txt'] = 'Avertir destinataire mauvais entête';
-$wb['newvirus_admin_txt'] = 'Admin nouveau virus';
-$wb['virus_admin_txt'] = 'Admin virus';
-$wb['banned_admin_txt'] = 'Admin bannissement';
-$wb['bad_header_admin_txt'] = 'Admin mauvais entête';
-$wb['spam_admin_txt'] = 'Admin SPAM';
-$wb['message_size_limit_txt'] = 'Limite de taille de message';
-$wb['banned_rulenames_txt'] = 'Noms des règles bannir';
-?>
-
+<?php
+$wb['policy_name_txt'] = 'Nom de la stratégie';
+$wb['virus_lover_txt'] = 'Aime les virus';
+$wb['spam_lover_txt'] = 'Aime le spam';
+$wb['banned_files_lover_txt'] = 'Aime les fichiers bannis';
+$wb['bad_header_lover_txt'] = 'Aime les mauvaises entêtes';
+$wb['bypass_virus_checks_txt'] = 'Contourner la vérification des virus';
+$wb['bypass_banned_checks_txt'] = 'Contourner la vérification des bannissements.';
+$wb['bypass_header_checks_txt'] = 'Contourner la vérification des entêtes';
+$wb['virus_quarantine_to_txt'] = 'Faire suivre les virus vers l\'email';
+$wb['spam_quarantine_to_txt'] = 'Faire suivre le spam vers l\'email';
+$wb['banned_quarantine_to_txt'] = 'Faire suivre les bannis vers l\'email';
+$wb['bad_header_quarantine_to_txt'] = 'Faire suivre les mauvaises entêtes vers l\'email';
+$wb['clean_quarantine_to_txt'] = 'Faire suivre ce qui est propre vers l\'email';
+$wb['other_quarantine_to_txt'] = 'Faire suivre les autres vers l\'email';
+$wb['spam_tag_level_txt'] = 'Niveau du tag de SPAM';
+$wb['spam_tag2_level_txt'] = 'Niveau du tag2 de SPAM';
+$wb['spam_kill_level_txt'] = 'Niveau du kill de SPAM';
+$wb['spam_dsn_cutoff_level_txt'] = 'Seuil dsn du SPAM';
+$wb['spam_quarantine_cutoff_level_txt'] = 'Seuil quarantaine du SPAM';
+$wb['spam_modifies_subj_txt'] = 'SPAM modifie le sujet';
+$wb['spam_subject_tag_txt'] = 'SPAM tag dans le sujet';
+$wb['spam_subject_tag2_txt'] = 'SPAM tag dans le sujet 2';
+$wb['addr_extension_virus_txt'] = 'Adresse extension virus';
+$wb['addr_extension_spam_txt'] = 'Adresse extension SPAM';
+$wb['addr_extension_banned_txt'] = 'Adresse extension bannir';
+$wb['addr_extension_bad_header_txt'] = 'Adresse extension mauvais entête';
+$wb['warnvirusrecip_txt'] = 'Avertir destinataire des virus';
+$wb['warnbannedrecip_txt'] = 'Avertir destinataire banni';
+$wb['warnbadhrecip_txt'] = 'Avertir destinataire mauvais entête';
+$wb['newvirus_admin_txt'] = 'Admin nouveau virus';
+$wb['virus_admin_txt'] = 'Admin virus';
+$wb['banned_admin_txt'] = 'Admin bannissement';
+$wb['bad_header_admin_txt'] = 'Admin mauvais entête';
+$wb['spam_admin_txt'] = 'Admin SPAM';
+$wb['message_size_limit_txt'] = 'Limite de taille de message';
+$wb['banned_rulenames_txt'] = 'Noms des règles bannir';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/fr_spamfilter_policy_list.lng
index 27a1a20..2269111 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_policy_list.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_policy_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Stratégie du filtre antispam';
-$wb['policy_name_txt'] = 'Nom';
-$wb['virus_lover_txt'] = 'Aime les virus';
-$wb['spam_lover_txt'] = 'Aime le spam';
-$wb['banned_files_lover_txt'] = 'Aime les fichiers bannis';
-$wb['bad_header_lover_txt'] = 'Aime les mauvaises entêtes';
-$wb['add_new_record_txt'] = 'Ajouter une entrée à la politique';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Stratégie du filtre antispam';
+$wb['policy_name_txt'] = 'Nom';
+$wb['virus_lover_txt'] = 'Aime les virus';
+$wb['spam_lover_txt'] = 'Aime le spam';
+$wb['banned_files_lover_txt'] = 'Aime les fichiers bannis';
+$wb['bad_header_lover_txt'] = 'Aime les mauvaises entêtes';
+$wb['add_new_record_txt'] = 'Ajouter une entrée à la politique';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_users.lng b/interface/web/mail/lib/lang/fr_spamfilter_users.lng
index 93e9215..9f29ef0 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_users.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_users.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['priority_txt'] = 'Priorité';
-$wb['policy_id_txt'] = 'Politique';
-$wb['email_txt'] = 'Email (Schéma)';
-$wb['fullname_txt'] = 'Nom';
-$wb['local_txt'] = 'Local';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['priority_txt'] = 'Priorité';
+$wb['policy_id_txt'] = 'Politique';
+$wb['email_txt'] = 'Email (Schéma)';
+$wb['fullname_txt'] = 'Nom';
+$wb['local_txt'] = 'Local';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_users_list.lng b/interface/web/mail/lib/lang/fr_spamfilter_users_list.lng
index 82509ec..81dc8d8 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_users_list.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_users_list.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['list_head_txt'] = 'Utilisateurs du filtre antispam';
-$wb['local_txt'] = 'Local';
-$wb['server_id_txt'] = 'Serveur';
-$wb['priority_txt'] = 'Priorité';
-$wb['policy_id_txt'] = 'Politique';
-$wb['fullname_txt'] = 'Nom';
-$wb['email_txt'] = 'Email';
-$wb['add_new_record_txt'] = 'Ajouter un utilisateur du filtre antispam';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Utilisateurs du filtre antispam';
+$wb['local_txt'] = 'Local';
+$wb['server_id_txt'] = 'Serveur';
+$wb['priority_txt'] = 'Priorité';
+$wb['policy_id_txt'] = 'Politique';
+$wb['fullname_txt'] = 'Nom';
+$wb['email_txt'] = 'Email';
+$wb['add_new_record_txt'] = 'Ajouter un utilisateur du filtre antispam';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/fr_spamfilter_whitelist.lng
index f318d82..67b7efc 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_whitelist.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_whitelist.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['wb_txt'] = 'wb';
-$wb['rid_txt'] = 'Utilisateur';
-$wb['email_txt'] = 'Email';
-$wb['priority_txt'] = 'Priorité';
-$wb['active_txt'] = 'Actif';
-$wb['limit_spamfilter_wblist_txt'] = 'Le nombre maximal d\'enregistrements de liste blanche ou noire est atteint pour votre compte.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['wb_txt'] = 'wb';
+$wb['rid_txt'] = 'Utilisateur';
+$wb['email_txt'] = 'Email';
+$wb['priority_txt'] = 'Priorité';
+$wb['active_txt'] = 'Actif';
+$wb['limit_spamfilter_wblist_txt'] = 'Le nombre maximal d\'enregistrements de liste blanche ou noire est atteint pour votre compte.';
+?>
+
diff --git a/interface/web/mail/lib/lang/fr_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/fr_spamfilter_whitelist_list.lng
index 20a18f0..ea298b8 100644
--- a/interface/web/mail/lib/lang/fr_spamfilter_whitelist_list.lng
+++ b/interface/web/mail/lib/lang/fr_spamfilter_whitelist_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Liste blanche Spamfilter';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['priority_txt'] = 'Priorité';
-$wb['rid_txt'] = 'Utilisateur';
-$wb['email_txt'] = 'Email en liste blanche';
-$wb['add_new_record_txt'] = 'Ajouter des enregistrements en liste blanche';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Liste blanche Spamfilter';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['priority_txt'] = 'Priorité';
+$wb['rid_txt'] = 'Utilisateur';
+$wb['email_txt'] = 'Email en liste blanche';
+$wb['add_new_record_txt'] = 'Ajouter des enregistrements en liste blanche';
+?>
+
diff --git a/interface/web/monitor/lib/lang/fr.lng b/interface/web/monitor/lib/lang/fr.lng
index 4c9d812..4974aad 100644
--- a/interface/web/monitor/lib/lang/fr.lng
+++ b/interface/web/monitor/lib/lang/fr.lng
@@ -1,146 +1,146 @@
-<?php
-$wb['Server online since'] = 'Serveur en ligne depuis';
-$wb['Users online'] = 'Utilisateurs en ligne';
-$wb['System load 1 minute'] = 'Charge du système sur 1 minute';
-$wb['System load 5 minutes'] = 'Charge du système sur 5 minutes';
-$wb['System load 15 minutes'] = 'Charge du système sur 15 minutes';
-$wb['Server Load'] = 'Charge du serveur';
-$wb['Disk usage'] = 'Usage disque';
-$wb['Memory usage'] = 'Utilisation mémoire';
-$wb['no_data_serverload_txt'] = 'Aucune donnée concernant la charge du serveur actuellement. Réésayez plus tard.';
-$wb['no_data_memusage_txt'] = 'Aucune donnée concernant l\'utilisation mémoire actuellement. Réésayez plus tard.';
-$wb['no_data_diskusage_txt'] = 'Aucune donnée concernant l\'usage disque actuellement. Réésayez plus tard.';
-$wb['no_data_cpuinfo_txt'] = 'Aucune donnée concernant la charge CPU actuellement. Réésayez plus tard.';
-$wb['no_data_services_txt'] = 'Aucune donnée concernant les services actuellement. Réésayez plus tard.';
-$wb['no_logdata_txt'] = 'Pas de logs disponibles actuellement. Réésayez plus tard.';
-$wb['Monitoring'] = 'Surveillance';
-$wb['Server to Monitor'] = 'Serveur à surveiller';
-$wb['Logfiles'] = 'Fichiers de logs';
-$wb['Status of services'] = 'Statut des services';
-$wb['No Refresh'] = 'Pas de rafraichissement';
-$wb['minutes'] = 'minutes';
-$wb['Show Overview'] = 'Vue générale';
-$wb['System State (All Servers)'] = 'Statut du système (Tous serveurs)';
-$wb['Hardware-Information'] = 'Informations sur le materiel';
-$wb['Show CPU info'] = 'Voir les informations CPU';
-$wb['Server State'] = 'Statut du serveur';
-$wb['Show Update State'] = 'Mise à jour du statut';
-$wb['Show RAID state'] = 'Voir le statut RAID';
-$wb['Show Server load'] = 'Voir la charge du serveur';
-$wb['Show Disk usage'] = 'Voir l\'usage disque';
-$wb['Show Memory usage'] = 'Voir l\'utilisation mémoire';
-$wb['Show Services'] = 'Voir les services';
-$wb['Show Mail-Queue'] = 'Voir la mailqueue';
-$wb['Show Mail-Log'] = 'Voir les logs mails';
-$wb['Show Mail warn-Log'] = 'Voir les logs mails d\'avertissement';
-$wb['Show Mail err-Log'] = 'Voir les logs mails d\'erreur';
-$wb['Show System-Log'] = 'Voir les logs système';
-$wb['Show Freshclam-Log'] = 'Voir les logs de Freshclam';
-$wb['Show Clamav-Log'] = 'Voir les logs de Clamav';
-$wb['Show ISPConfig-Log'] = 'Voir les logs d\'ISPConfig';
-$wb['Show RKHunter-Log'] = 'Voir les logs de RKHunter';
-$wb['Show ISPC Cron-Log'] = 'Voir les logs des crons ISPC';
-$wb['no_data_updates_txt'] = 'Aucune donnée concernant les mises à jour actuellement. Réésayez plus tard.';
-$wb['no_data_raid_txt'] = 'Aucune donnée concernant le RAID actuellement. Réésayez plus tard.';
-$wb['no_data_rkhunter_txt'] = 'Aucune donnée concernant RKHunter actuellement. Réésayez plus tard.';
-$wb['no_data_mailq_txt'] = 'Aucune donnée concernant la queue de mails actuellement. Réésayez plus tard.';
-$wb['monitor_general_serverstate_txt'] = 'Statut du serveur';
-$wb['monitor_general_systemstate_txt'] = 'Statut du système';
-$wb['monitor_diskusage_filesystem_txt'] = 'Système de fichiers';
-$wb['monitor_diskusage_type_txt'] = 'Type';
-$wb['monitor_diskusage_size_txt'] = 'Taille';
-$wb['monitor_diskusage_used_txt'] = 'Utilisé';
-$wb['monitor_diskusage_available_txt'] = 'Disponible';
-$wb['monitor_diskusage_usage_txt'] = 'Utilisé%';
-$wb['monitor_diskusage_mounted_txt'] = 'Monté sur';
-$wb['monitor_logs_mail_txt'] = 'Mail - Log';
-$wb['monitor_logs_mailwarn_txt'] = 'Avertissements Mail - Log';
-$wb['monitor_logs_mailerr_txt'] = 'Erreurs Mail - Log';
-$wb['monitor_logs_messages_txt'] = 'Messages Système - 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_norkhunter_txt'] = 'RKHunter n\'est pas installé, il n\'y a donc pas de logs';
-$wb['monitor_serverstate_server_txt'] = 'Serveur';
-$wb['monitor_serverstate_state_txt'] = 'Statut';
-$wb['monitor_serverstate_unknown_txt'] = 'inconnu';
-$wb['monitor_serverstate_info_txt'] = 'info';
-$wb['monitor_serverstate_warning_txt'] = 'avertissement';
-$wb['monitor_serverstate_critical_txt'] = 'critique';
-$wb['monitor_serverstate_error_txt'] = 'erreur';
-$wb['monitor_serverstate_moreinfo_txt'] = 'Plus d\'informations...';
-$wb['monitor_serverstate_more_txt'] = 'Plus...';
-$wb['monitor_serverstate_fclamok_txt'] = 'Votre protection virus est OK';
-$wb['monitor_serverstate_fclamoutdated_txt'] = 'Votre protection virus est PERIMEE';
-$wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: !';
-$wb['monitor_serverstate_hdok_txt'] = 'Le statut de l\'usage de votre disque est OK';
-$wb['monitor_serverstate_hdgoingfull_txt'] = 'Votre disque commence à être chargé';
-$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Votre disque est très chargé';
-$wb['monitor_serverstate_hdveryfull_txt'] = 'Votre disque est bientôt plein';
-$wb['monitor_serverstate_hdfull_txt'] = 'Votre disque est plein';
-$wb['monitor_serverstate_hdunknown_txt'] = 'Disque dur: ';
-$wb['monitor_serverstate_listok_txt'] = 'ok';
-$wb['monitor_serverstate_listinfo_txt'] = 'info';
-$wb['monitor_serverstate_listwarning_txt'] = 'avertissement';
-$wb['monitor_serverstate_listcritical_txt'] = 'critique';
-$wb['monitor_serverstate_listerror_txt'] = 'erreur';
-$wb['monitor_serverstate_listunknown_txt'] = 'inconnu';
-$wb['monitor_serverstate_loadok_txt'] = 'La charge de votre serveur est correcte';
-$wb['monitor_serverstate_loadheavy_txt'] = 'La charge de votre serveur est légèrement élevée';
-$wb['monitor_serverstate_loadhigh_txt'] = 'La charge de votre serveur est élevée';
-$wb['monitor_serverstate_loaghigher_txt'] = 'La charge de votre serveur est très élevée';
-$wb['monitor_serverstate_loadhighest_txt'] = 'La charge de votre serveur est extrèmement élevée';
-$wb['monitor_serverstate_loadunknown_txt'] = 'Charge du serveur: ';
-$wb['monitor_serverstate_mailqok_txt'] = 'La charge de Mailq est correcte';
-$wb['monitor_serverstate_mailqheavy_txt'] = 'La charge de Mailq est légèrement élevée';
-$wb['monitor_serverstate_mailqhigh_txt'] = 'La charge de Mailq est élevée';
-$wb['monitor_serverstate_mailqhigher_txt'] = 'La charge de Mailq est très élevée';
-$wb['monitor_serverstate_mailqhighest_txt'] = 'La charge de Mailq est extrèmement élevée';
-$wb['monitor_serverstate_mailqunknown_txt'] = 'Mailq: ';
-$wb['monitor_serverstate_raidok_txt'] = 'Votre RAID est ok';
-$wb['monitor_serverstate_raidresync_txt'] = 'Votre RAID est en mode RESYNC';
-$wb['monitor_serverstate_raidfault_txt'] = 'Votre RAID à une erreur FAULT de disque. Remplacez le rapidement!';
-$wb['monitor_serverstate_raiderror_txt'] = 'Votre RAID n\'est pas fonctionnel';
-$wb['monitor_serverstate_raidunknown_txt'] = 'Statut RAID: ';
-$wb['monitor_serverstate_servicesonline_txt'] = 'Tous les services nécessaires sont en ligne';
-$wb['monitor_serverstate_servicesoffline_txt'] = 'Un ou plusieurs services sont hors-ligne';
-$wb['monitor_serverstate_servicesunknown_txt'] = 'Services: ';
-$wb['monitor_serverstate_syslogok_txt'] = 'Votre log système est OK';
-$wb['monitor_serverstate_syslogwarning_txt'] = 'Il y a des avertissements dans votre log système';
-$wb['monitor_serverstate_syslogerror_txt'] = 'Il y a des erreurs dans votre log système';
-$wb['monitor_serverstate_syslogunknown_txt'] = 'Log système: ';
-$wb['monitor_serverstate_updatesok_txt'] = 'Votre système est à jour.';
-$wb['monitor_serverstate_updatesneeded_txt'] = 'Un ou plusieurs composants nécessitent une mise à jour';
-$wb['monitor_serverstate_updatesunknown_txt'] = 'Mise à jour du système: ';
-$wb['monitor_services_online_txt'] = 'En ligne';
-$wb['monitor_services_offline_txt'] = 'Hors-ligne';
-$wb['monitor_services_web_txt'] = 'Serveur Web:';
-$wb['monitor_services_ftp_txt'] = 'Serveur FTP:';
-$wb['monitor_services_smtp_txt'] = 'Serveur SMTP:';
-$wb['monitor_services_pop_txt'] = 'Serveur POP3:';
-$wb['monitor_services_imap_txt'] = 'Serveur IMAP:';
-$wb['monitor_services_mydns_txt'] = 'Serveur myDNS:';
-$wb['monitor_services_mysql_txt'] = 'Serveur mySQL:';
-$wb['monitor_settings_datafromdate_txt'] = 'Données depuis: ';
-$wb['monitor_settings_datetimeformat_txt'] = 'd-m-Y H:i';
-$wb['monitor_settings_refreshsq_txt'] = 'Séquence de rafraichissement:';
-$wb['monitor_settings_server_txt'] = 'Serveur';
-$wb['monitor_title_cpuinfo_txt'] = 'Informations CPU';
-$wb['monitor_title_updatestate_txt'] = 'Statut de mise à jour';
-$wb['monitor_title_mailq_txt'] = 'Mailqueue';
-$wb['monitor_title_raidstate_txt'] = 'Statut RAID';
-$wb['monitor_title_rkhunterlog_txt'] = 'Log RKHunter';
-$wb['monitor_updates_nosupport_txt'] = 'Votre distribution n\'est pas supportée par le moniteur';
-$wb['Show Jobqueue'] = 'Show Jobqueue';
-$wb['monitor_nosupportedraid1_txt'] = 'Pour le moment, nous supportons mdadm ou mpt-status pour suivre le RAID.<br>Nous n\'avaons pas trouvé ces logiciels sur votre serveur.<br><br>Ceci implique que nous ne pouvons pas encore prendre en charge votre RAID.';
-$wb['monitor_serverstate_beancounterok_txt'] = 'Le compteur ok';
-$wb['monitor_serverstate_beancounterinfo_txt'] = 'Il y a quelques échecs dans le compteur';
-$wb['monitor_serverstate_beancounterwarning_txt'] = 'Il y a des échecs dans le compteur';
-$wb['monitor_serverstate_beancountercritical_txt'] = 'Il y a beaucoup d\'échecs dans le compteur';
-$wb['monitor_serverstate_beancountererror_txt'] = 'Il y a trop d\'échecs dans le compteur';
-$wb['monitor_title_fail2ban_txt'] = 'Log Fail2Ban';
-$wb['monitor_title_beancounter_txt'] = 'Compteur OpenVz VE';
-$wb['monitor_beancounter_nosupport_txt'] = 'Ce serveur n\'est pas un VE OpenVz et n\'a pas d\'information de compteur';
-?>
-
+<?php
+$wb['Server online since'] = 'Serveur en ligne depuis';
+$wb['Users online'] = 'Utilisateurs en ligne';
+$wb['System load 1 minute'] = 'Charge du système sur 1 minute';
+$wb['System load 5 minutes'] = 'Charge du système sur 5 minutes';
+$wb['System load 15 minutes'] = 'Charge du système sur 15 minutes';
+$wb['Server Load'] = 'Charge du serveur';
+$wb['Disk usage'] = 'Usage disque';
+$wb['Memory usage'] = 'Utilisation mémoire';
+$wb['no_data_serverload_txt'] = 'Aucune donnée concernant la charge du serveur actuellement. Réésayez plus tard.';
+$wb['no_data_memusage_txt'] = 'Aucune donnée concernant l\'utilisation mémoire actuellement. Réésayez plus tard.';
+$wb['no_data_diskusage_txt'] = 'Aucune donnée concernant l\'usage disque actuellement. Réésayez plus tard.';
+$wb['no_data_cpuinfo_txt'] = 'Aucune donnée concernant la charge CPU actuellement. Réésayez plus tard.';
+$wb['no_data_services_txt'] = 'Aucune donnée concernant les services actuellement. Réésayez plus tard.';
+$wb['no_logdata_txt'] = 'Pas de logs disponibles actuellement. Réésayez plus tard.';
+$wb['Monitoring'] = 'Surveillance';
+$wb['Server to Monitor'] = 'Serveur à surveiller';
+$wb['Logfiles'] = 'Fichiers de logs';
+$wb['Status of services'] = 'Statut des services';
+$wb['No Refresh'] = 'Pas de rafraichissement';
+$wb['minutes'] = 'minutes';
+$wb['Show Overview'] = 'Vue générale';
+$wb['System State (All Servers)'] = 'Statut du système (Tous serveurs)';
+$wb['Hardware-Information'] = 'Informations sur le materiel';
+$wb['Show CPU info'] = 'Voir les informations CPU';
+$wb['Server State'] = 'Statut du serveur';
+$wb['Show Update State'] = 'Mise à jour du statut';
+$wb['Show RAID state'] = 'Voir le statut RAID';
+$wb['Show Server load'] = 'Voir la charge du serveur';
+$wb['Show Disk usage'] = 'Voir l\'usage disque';
+$wb['Show Memory usage'] = 'Voir l\'utilisation mémoire';
+$wb['Show Services'] = 'Voir les services';
+$wb['Show Mail-Queue'] = 'Voir la mailqueue';
+$wb['Show Mail-Log'] = 'Voir les logs mails';
+$wb['Show Mail warn-Log'] = 'Voir les logs mails d\'avertissement';
+$wb['Show Mail err-Log'] = 'Voir les logs mails d\'erreur';
+$wb['Show System-Log'] = 'Voir les logs système';
+$wb['Show Freshclam-Log'] = 'Voir les logs de Freshclam';
+$wb['Show Clamav-Log'] = 'Voir les logs de Clamav';
+$wb['Show ISPConfig-Log'] = 'Voir les logs d\'ISPConfig';
+$wb['Show RKHunter-Log'] = 'Voir les logs de RKHunter';
+$wb['Show ISPC Cron-Log'] = 'Voir les logs des crons ISPC';
+$wb['no_data_updates_txt'] = 'Aucune donnée concernant les mises à jour actuellement. Réésayez plus tard.';
+$wb['no_data_raid_txt'] = 'Aucune donnée concernant le RAID actuellement. Réésayez plus tard.';
+$wb['no_data_rkhunter_txt'] = 'Aucune donnée concernant RKHunter actuellement. Réésayez plus tard.';
+$wb['no_data_mailq_txt'] = 'Aucune donnée concernant la queue de mails actuellement. Réésayez plus tard.';
+$wb['monitor_general_serverstate_txt'] = 'Statut du serveur';
+$wb['monitor_general_systemstate_txt'] = 'Statut du système';
+$wb['monitor_diskusage_filesystem_txt'] = 'Système de fichiers';
+$wb['monitor_diskusage_type_txt'] = 'Type';
+$wb['monitor_diskusage_size_txt'] = 'Taille';
+$wb['monitor_diskusage_used_txt'] = 'Utilisé';
+$wb['monitor_diskusage_available_txt'] = 'Disponible';
+$wb['monitor_diskusage_usage_txt'] = 'Utilisé%';
+$wb['monitor_diskusage_mounted_txt'] = 'Monté sur';
+$wb['monitor_logs_mail_txt'] = 'Mail - Log';
+$wb['monitor_logs_mailwarn_txt'] = 'Avertissements Mail - Log';
+$wb['monitor_logs_mailerr_txt'] = 'Erreurs Mail - Log';
+$wb['monitor_logs_messages_txt'] = 'Messages Système - 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_norkhunter_txt'] = 'RKHunter n\'est pas installé, il n\'y a donc pas de logs';
+$wb['monitor_serverstate_server_txt'] = 'Serveur';
+$wb['monitor_serverstate_state_txt'] = 'Statut';
+$wb['monitor_serverstate_unknown_txt'] = 'inconnu';
+$wb['monitor_serverstate_info_txt'] = 'info';
+$wb['monitor_serverstate_warning_txt'] = 'avertissement';
+$wb['monitor_serverstate_critical_txt'] = 'critique';
+$wb['monitor_serverstate_error_txt'] = 'erreur';
+$wb['monitor_serverstate_moreinfo_txt'] = 'Plus d\'informations...';
+$wb['monitor_serverstate_more_txt'] = 'Plus...';
+$wb['monitor_serverstate_fclamok_txt'] = 'Votre protection virus est OK';
+$wb['monitor_serverstate_fclamoutdated_txt'] = 'Votre protection virus est PERIMEE';
+$wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: !';
+$wb['monitor_serverstate_hdok_txt'] = 'Le statut de l\'usage de votre disque est OK';
+$wb['monitor_serverstate_hdgoingfull_txt'] = 'Votre disque commence à être chargé';
+$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Votre disque est très chargé';
+$wb['monitor_serverstate_hdveryfull_txt'] = 'Votre disque est bientôt plein';
+$wb['monitor_serverstate_hdfull_txt'] = 'Votre disque est plein';
+$wb['monitor_serverstate_hdunknown_txt'] = 'Disque dur: ';
+$wb['monitor_serverstate_listok_txt'] = 'ok';
+$wb['monitor_serverstate_listinfo_txt'] = 'info';
+$wb['monitor_serverstate_listwarning_txt'] = 'avertissement';
+$wb['monitor_serverstate_listcritical_txt'] = 'critique';
+$wb['monitor_serverstate_listerror_txt'] = 'erreur';
+$wb['monitor_serverstate_listunknown_txt'] = 'inconnu';
+$wb['monitor_serverstate_loadok_txt'] = 'La charge de votre serveur est correcte';
+$wb['monitor_serverstate_loadheavy_txt'] = 'La charge de votre serveur est légèrement élevée';
+$wb['monitor_serverstate_loadhigh_txt'] = 'La charge de votre serveur est élevée';
+$wb['monitor_serverstate_loaghigher_txt'] = 'La charge de votre serveur est très élevée';
+$wb['monitor_serverstate_loadhighest_txt'] = 'La charge de votre serveur est extrèmement élevée';
+$wb['monitor_serverstate_loadunknown_txt'] = 'Charge du serveur: ';
+$wb['monitor_serverstate_mailqok_txt'] = 'La charge de Mailq est correcte';
+$wb['monitor_serverstate_mailqheavy_txt'] = 'La charge de Mailq est légèrement élevée';
+$wb['monitor_serverstate_mailqhigh_txt'] = 'La charge de Mailq est élevée';
+$wb['monitor_serverstate_mailqhigher_txt'] = 'La charge de Mailq est très élevée';
+$wb['monitor_serverstate_mailqhighest_txt'] = 'La charge de Mailq est extrèmement élevée';
+$wb['monitor_serverstate_mailqunknown_txt'] = 'Mailq: ';
+$wb['monitor_serverstate_raidok_txt'] = 'Votre RAID est ok';
+$wb['monitor_serverstate_raidresync_txt'] = 'Votre RAID est en mode RESYNC';
+$wb['monitor_serverstate_raidfault_txt'] = 'Votre RAID à une erreur FAULT de disque. Remplacez le rapidement!';
+$wb['monitor_serverstate_raiderror_txt'] = 'Votre RAID n\'est pas fonctionnel';
+$wb['monitor_serverstate_raidunknown_txt'] = 'Statut RAID: ';
+$wb['monitor_serverstate_servicesonline_txt'] = 'Tous les services nécessaires sont en ligne';
+$wb['monitor_serverstate_servicesoffline_txt'] = 'Un ou plusieurs services sont hors-ligne';
+$wb['monitor_serverstate_servicesunknown_txt'] = 'Services: ';
+$wb['monitor_serverstate_syslogok_txt'] = 'Votre log système est OK';
+$wb['monitor_serverstate_syslogwarning_txt'] = 'Il y a des avertissements dans votre log système';
+$wb['monitor_serverstate_syslogerror_txt'] = 'Il y a des erreurs dans votre log système';
+$wb['monitor_serverstate_syslogunknown_txt'] = 'Log système: ';
+$wb['monitor_serverstate_updatesok_txt'] = 'Votre système est à jour.';
+$wb['monitor_serverstate_updatesneeded_txt'] = 'Un ou plusieurs composants nécessitent une mise à jour';
+$wb['monitor_serverstate_updatesunknown_txt'] = 'Mise à jour du système: ';
+$wb['monitor_services_online_txt'] = 'En ligne';
+$wb['monitor_services_offline_txt'] = 'Hors-ligne';
+$wb['monitor_services_web_txt'] = 'Serveur Web:';
+$wb['monitor_services_ftp_txt'] = 'Serveur FTP:';
+$wb['monitor_services_smtp_txt'] = 'Serveur SMTP:';
+$wb['monitor_services_pop_txt'] = 'Serveur POP3:';
+$wb['monitor_services_imap_txt'] = 'Serveur IMAP:';
+$wb['monitor_services_mydns_txt'] = 'Serveur myDNS:';
+$wb['monitor_services_mysql_txt'] = 'Serveur mySQL:';
+$wb['monitor_settings_datafromdate_txt'] = 'Données depuis: ';
+$wb['monitor_settings_datetimeformat_txt'] = 'd-m-Y H:i';
+$wb['monitor_settings_refreshsq_txt'] = 'Séquence de rafraichissement:';
+$wb['monitor_settings_server_txt'] = 'Serveur';
+$wb['monitor_title_cpuinfo_txt'] = 'Informations CPU';
+$wb['monitor_title_updatestate_txt'] = 'Statut de mise à jour';
+$wb['monitor_title_mailq_txt'] = 'Mailqueue';
+$wb['monitor_title_raidstate_txt'] = 'Statut RAID';
+$wb['monitor_title_rkhunterlog_txt'] = 'Log RKHunter';
+$wb['monitor_updates_nosupport_txt'] = 'Votre distribution n\'est pas supportée par le moniteur';
+$wb['Show Jobqueue'] = 'Show Jobqueue';
+$wb['monitor_nosupportedraid1_txt'] = 'Pour le moment, nous supportons mdadm ou mpt-status pour suivre le RAID.<br>Nous n\'avaons pas trouvé ces logiciels sur votre serveur.<br><br>Ceci implique que nous ne pouvons pas encore prendre en charge votre RAID.';
+$wb['monitor_serverstate_beancounterok_txt'] = 'Le compteur ok';
+$wb['monitor_serverstate_beancounterinfo_txt'] = 'Il y a quelques échecs dans le compteur';
+$wb['monitor_serverstate_beancounterwarning_txt'] = 'Il y a des échecs dans le compteur';
+$wb['monitor_serverstate_beancountercritical_txt'] = 'Il y a beaucoup d\'échecs dans le compteur';
+$wb['monitor_serverstate_beancountererror_txt'] = 'Il y a trop d\'échecs dans le compteur';
+$wb['monitor_title_fail2ban_txt'] = 'Log Fail2Ban';
+$wb['monitor_title_beancounter_txt'] = 'Compteur OpenVz VE';
+$wb['monitor_beancounter_nosupport_txt'] = 'Ce serveur n\'est pas un VE OpenVz et n\'a pas d\'information de compteur';
+?>
+
diff --git a/interface/web/monitor/lib/lang/fr_datalog_list.lng b/interface/web/monitor/lib/lang/fr_datalog_list.lng
index e30a334..111b6d1 100644
--- a/interface/web/monitor/lib/lang/fr_datalog_list.lng
+++ b/interface/web/monitor/lib/lang/fr_datalog_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Processus en attente';
-$wb['tstamp_txt'] = 'Date';
-$wb['server_id_txt'] = 'Serveur';
-$wb['dbtable_txt'] = 'Table DB';
-$wb['action_txt'] = 'Action';
-$wb['status_txt'] = 'Status';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Processus en attente';
+$wb['tstamp_txt'] = 'Date';
+$wb['server_id_txt'] = 'Serveur';
+$wb['dbtable_txt'] = 'Table DB';
+$wb['action_txt'] = 'Action';
+$wb['status_txt'] = 'Status';
+?>
+
diff --git a/interface/web/monitor/lib/lang/fr_syslog_list.lng b/interface/web/monitor/lib/lang/fr_syslog_list.lng
index 166e7cd..9ca1f59 100644
--- a/interface/web/monitor/lib/lang/fr_syslog_list.lng
+++ b/interface/web/monitor/lib/lang/fr_syslog_list.lng
@@ -1,8 +1,8 @@
-<?php
-$wb['list_head_txt'] = 'Log ISPConfig';
-$wb['tstamp_txt'] = 'Date';
-$wb['server_id_txt'] = 'Serveur';
-$wb['loglevel_txt'] = 'Niveau de log ';
-$wb['message_txt'] = 'Message';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Log ISPConfig';
+$wb['tstamp_txt'] = 'Date';
+$wb['server_id_txt'] = 'Serveur';
+$wb['loglevel_txt'] = 'Niveau de log ';
+$wb['message_txt'] = 'Message';
+?>
+
diff --git a/interface/web/remote/monitor.php b/interface/web/remote/monitor.php
index c7a69f6..2f35105 100644
--- a/interface/web/remote/monitor.php
+++ b/interface/web/remote/monitor.php
@@ -1,126 +1,126 @@
-<?php
-require_once('../../lib/config.inc.php');
-$conf['start_session'] = false;
-require_once('../../lib/app.inc.php');
-
-if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
-
-header('Content-Type: application/json; charset=utf-8');
-header('Access-Control-Allow-Origin: *');
-header('Access-Control-Allow-Headers: X-Requested-With');
-header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
-header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
-
-$type = addslashes($_GET['type']);
-$token = addslashes($_GET['token']);
-$server_id = intval($_GET['server']);
-
-$app->uses('getconf');
-$interface_config = $app->getconf->get_global_config('misc');
-$secret = $interface_config['monitor_key'];
-
-$out = array();
-
-if($token == '' or $secret == '' or $token != $secret) {
-	$out['state'] = 'syserror';
-	$out['data'] = 'Password empty or incorrect.';
-	$out['time'] = date('Y-m-d H:i');
-} else {
-	if($type == 'serverlist') {
-		$sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id';
-		$records = $app->db->queryAllRecords($sql);
-		$out['state'] = 'ok';
-		$out['data'] = $records;
-		$out['time'] = date('Y-m-d H:i',$rec['created']);
-	} else {
-		$rec = $app->db->queryOneRecord("SELECT * FROM monitor_data WHERE type = '$type' AND server_id = $server_id");
-		if(is_array($rec)) {
-			$out['state'] = $rec['state'];
-			$out['data'] = unserialize(stripslashes($rec['data']));
-			if(is_array($out['data']) && sizeof($out['data']) > 0){
-				foreach($out['data'] as $key => $val){
-					if(!$val) $out['data'][$key] = "&nbsp;";
-				}
-			}
-			$out['time'] = date('Y-m-d H:i',$rec['created']);
-		} else {
-			$out['state'] = 'syserror';
-			$out['data'] = 'No monitor record found.';
-			$out['time'] = date('Y-m-d H:i');
-		}
-		$sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id';
-		$records = $app->db->queryAllRecords($sql);
-		$out['serverlist'] = $records;
-	}
-}
-$out['type'] = $type;
-
-function __json_encode($data) {           
-    if( is_array($data) || is_object($data) ) {
-        $islist = is_array($data) && ( empty($data) || array_keys($data) === range(0,count($data)-1) );
-       
-        if( $islist ) {
-            $json = '[' . implode(',', array_map('__json_encode', $data) ) . ']';
-        } else {
-            $items = Array();
-            foreach( $data as $key => $value ) {
-                $items[] = __json_encode("$key") . ':' . __json_encode($value);
-            }
-            $json = '{' . implode(',', $items) . '}';
-        }
-    } elseif( is_string($data) ) {
-        # Escape non-printable or Non-ASCII characters.
-        # I also put the \\ character first, as suggested in comments on the 'addcslashes' page.
-        $string = '"' . addcslashes($data, "\\\"\n\r\t/" . chr(8) . chr(12)) . '"';
-        $json    = '';
-        $len    = strlen($string);
-        # Convert UTF-8 to Hexadecimal Codepoints.
-        for( $i = 0; $i < $len; $i++ ) {
-           
-            $char = $string[$i];
-            $c1 = ord($char);
-           
-            # Single byte;
-            if( $c1 <128 ) {
-                $json .= ($c1 > 31) ? $char : sprintf("\\u%04x", $c1);
-                continue;
-            }
-           
-            # Double byte
-            $c2 = ord($string[++$i]);
-            if ( ($c1 & 32) === 0 ) {
-                $json .= sprintf("\\u%04x", ($c1 - 192) * 64 + $c2 - 128);
-                continue;
-            }
-           
-            # Triple
-            $c3 = ord($string[++$i]);
-            if( ($c1 & 16) === 0 ) {
-                $json .= sprintf("\\u%04x", (($c1 - 224) <<12) + (($c2 - 128) << 6) + ($c3 - 128));
-                continue;
-            }
-               
-            # Quadruple
-            $c4 = ord($string[++$i]);
-            if( ($c1 & 8 ) === 0 ) {
-                $u = (($c1 & 15) << 2) + (($c2>>4) & 3) - 1;
-           
-                $w1 = (54<<10) + ($u<<6) + (($c2 & 15) << 2) + (($c3>>4) & 3);
-                $w2 = (55<<10) + (($c3 & 15)<<6) + ($c4-128);
-                $json .= sprintf("\\u%04x\\u%04x", $w1, $w2);
-            }
-        }
-    } else {
-        # int, floats, bools, null
-        $json = strtolower(var_export( $data, true ));
-    }
-    return $json;
-}
-
-if(function_exists('json_encode')) { // PHP >= 5.2
-	echo json_encode($out);
-} else { // PHP < 5.2
-	echo __json_encode($out);
-}
-exit;
+<?php
+require_once('../../lib/config.inc.php');
+$conf['start_session'] = false;
+require_once('../../lib/app.inc.php');
+
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
+
+header('Content-Type: application/json; charset=utf-8');
+header('Access-Control-Allow-Origin: *');
+header('Access-Control-Allow-Headers: X-Requested-With');
+header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
+header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
+
+$type = addslashes($_GET['type']);
+$token = addslashes($_GET['token']);
+$server_id = intval($_GET['server']);
+
+$app->uses('getconf');
+$interface_config = $app->getconf->get_global_config('misc');
+$secret = $interface_config['monitor_key'];
+
+$out = array();
+
+if($token == '' or $secret == '' or $token != $secret) {
+	$out['state'] = 'syserror';
+	$out['data'] = 'Password empty or incorrect.';
+	$out['time'] = date('Y-m-d H:i');
+} else {
+	if($type == 'serverlist') {
+		$sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id';
+		$records = $app->db->queryAllRecords($sql);
+		$out['state'] = 'ok';
+		$out['data'] = $records;
+		$out['time'] = date('Y-m-d H:i',$rec['created']);
+	} else {
+		$rec = $app->db->queryOneRecord("SELECT * FROM monitor_data WHERE type = '$type' AND server_id = $server_id");
+		if(is_array($rec)) {
+			$out['state'] = $rec['state'];
+			$out['data'] = unserialize(stripslashes($rec['data']));
+			if(is_array($out['data']) && sizeof($out['data']) > 0){
+				foreach($out['data'] as $key => $val){
+					if(!$val) $out['data'][$key] = "&nbsp;";
+				}
+			}
+			$out['time'] = date('Y-m-d H:i',$rec['created']);
+		} else {
+			$out['state'] = 'syserror';
+			$out['data'] = 'No monitor record found.';
+			$out['time'] = date('Y-m-d H:i');
+		}
+		$sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id';
+		$records = $app->db->queryAllRecords($sql);
+		$out['serverlist'] = $records;
+	}
+}
+$out['type'] = $type;
+
+function __json_encode($data) {           
+    if( is_array($data) || is_object($data) ) {
+        $islist = is_array($data) && ( empty($data) || array_keys($data) === range(0,count($data)-1) );
+       
+        if( $islist ) {
+            $json = '[' . implode(',', array_map('__json_encode', $data) ) . ']';
+        } else {
+            $items = Array();
+            foreach( $data as $key => $value ) {
+                $items[] = __json_encode("$key") . ':' . __json_encode($value);
+            }
+            $json = '{' . implode(',', $items) . '}';
+        }
+    } elseif( is_string($data) ) {
+        # Escape non-printable or Non-ASCII characters.
+        # I also put the \\ character first, as suggested in comments on the 'addcslashes' page.
+        $string = '"' . addcslashes($data, "\\\"\n\r\t/" . chr(8) . chr(12)) . '"';
+        $json    = '';
+        $len    = strlen($string);
+        # Convert UTF-8 to Hexadecimal Codepoints.
+        for( $i = 0; $i < $len; $i++ ) {
+           
+            $char = $string[$i];
+            $c1 = ord($char);
+           
+            # Single byte;
+            if( $c1 <128 ) {
+                $json .= ($c1 > 31) ? $char : sprintf("\\u%04x", $c1);
+                continue;
+            }
+           
+            # Double byte
+            $c2 = ord($string[++$i]);
+            if ( ($c1 & 32) === 0 ) {
+                $json .= sprintf("\\u%04x", ($c1 - 192) * 64 + $c2 - 128);
+                continue;
+            }
+           
+            # Triple
+            $c3 = ord($string[++$i]);
+            if( ($c1 & 16) === 0 ) {
+                $json .= sprintf("\\u%04x", (($c1 - 224) <<12) + (($c2 - 128) << 6) + ($c3 - 128));
+                continue;
+            }
+               
+            # Quadruple
+            $c4 = ord($string[++$i]);
+            if( ($c1 & 8 ) === 0 ) {
+                $u = (($c1 & 15) << 2) + (($c2>>4) & 3) - 1;
+           
+                $w1 = (54<<10) + ($u<<6) + (($c2 & 15) << 2) + (($c3>>4) & 3);
+                $w2 = (55<<10) + (($c3 & 15)<<6) + ($c4-128);
+                $json .= sprintf("\\u%04x\\u%04x", $w1, $w2);
+            }
+        }
+    } else {
+        # int, floats, bools, null
+        $json = strtolower(var_export( $data, true ));
+    }
+    return $json;
+}
+
+if(function_exists('json_encode')) { // PHP >= 5.2
+	echo json_encode($out);
+} else { // PHP < 5.2
+	echo __json_encode($out);
+}
+exit;
 ?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/fr.lng b/interface/web/sites/lib/lang/fr.lng
index 6757337..082750a 100644
--- a/interface/web/sites/lib/lang/fr.lng
+++ b/interface/web/sites/lib/lang/fr.lng
@@ -1,26 +1,26 @@
-<?php
-$wb['Database'] = 'Base de données';
-$wb['Options'] = 'Options';
-$wb['Shell User'] = 'Utilisateur Shell';
-$wb['Domain'] = 'Domaine';
-$wb['Redirect'] = 'Redirection';
-$wb['SSL'] = 'SSL';
-$wb['Subdomain'] = 'Sous-domaine';
-$wb['Sites'] = 'Sites';
-$wb['Aliasdomain'] = 'Alias';
-$wb['FTP-User'] = 'Utilisateur FTP';
-$wb['FTP'] = 'FTP';
-$wb['Shell-User'] = 'Utilisateur Shell';
-$wb['Shell'] = 'Shell';
-$wb['Websites'] = 'Sites Web';
-$wb['Stats'] = 'Statistiques';
-$wb['Website'] = 'Site web';
-$wb['Webdav-User'] = 'Utilisateur Webdav';
-$wb['Webdav'] = 'Webdav';
-$wb['Cron'] = 'Cron';
-$wb['Cron Jobs'] = 'Tâches cron';
-$wb['Statistics'] = 'Statistiques';
-$wb['Web traffic'] = 'Trafic web';
-$wb['Website quota (Harddisk)'] = 'Quota du site web (disque dur)';
-?>
-
+<?php
+$wb['Database'] = 'Base de données';
+$wb['Options'] = 'Options';
+$wb['Shell User'] = 'Utilisateur Shell';
+$wb['Domain'] = 'Domaine';
+$wb['Redirect'] = 'Redirection';
+$wb['SSL'] = 'SSL';
+$wb['Subdomain'] = 'Sous-domaine';
+$wb['Sites'] = 'Sites';
+$wb['Aliasdomain'] = 'Alias';
+$wb['FTP-User'] = 'Utilisateur FTP';
+$wb['FTP'] = 'FTP';
+$wb['Shell-User'] = 'Utilisateur Shell';
+$wb['Shell'] = 'Shell';
+$wb['Websites'] = 'Sites Web';
+$wb['Stats'] = 'Statistiques';
+$wb['Website'] = 'Site web';
+$wb['Webdav-User'] = 'Utilisateur Webdav';
+$wb['Webdav'] = 'Webdav';
+$wb['Cron'] = 'Cron';
+$wb['Cron Jobs'] = 'Tâches cron';
+$wb['Statistics'] = 'Statistiques';
+$wb['Web traffic'] = 'Trafic web';
+$wb['Website quota (Harddisk)'] = 'Quota du site web (disque dur)';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_cron.lng b/interface/web/sites/lib/lang/fr_cron.lng
index 4c3ba5c..d15b2df 100644
--- a/interface/web/sites/lib/lang/fr_cron.lng
+++ b/interface/web/sites/lib/lang/fr_cron.lng
@@ -1,22 +1,22 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site Parent';
-$wb['active_txt'] = 'Actif';
-$wb['client_txt'] = 'Client';
-$wb['run_min_txt'] = 'Minutes';
-$wb['run_hour_txt'] = 'Heures';
-$wb['run_mday_txt'] = 'Jours du mois';
-$wb['run_month_txt'] = 'Mois';
-$wb['run_wday_txt'] = 'Jours de la semaine';
-$wb['command_txt'] = 'Commande à éxécuter (commandes via sh, urls via wget)';
-$wb['limit_cron_txt'] = 'La nombre maximum de tâches cron autorisés a été atteint.';
-$wb['limit_cron_frequency_txt'] = 'La fréquence du cron excède la limite autorisée.';
-$wb['run_min_error_format'] = 'Format invalide pour les minutes.';
-$wb['run_hour_error_format'] = 'Format invalide pour les heures.';
-$wb['run_mday_error_format'] = 'Format invalide pour les jours du mois.';
-$wb['run_month_error_format'] = 'Format invalide pour les mois.';
-$wb['run_wday_error_format'] = 'Format invalide pour les jours du mois.';
-$wb['command_error_format'] = 'Format de la commande invalide.';
-$wb['unknown_fieldtype_error'] = 'Un champ inconnu a été utilisé';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site Parent';
+$wb['active_txt'] = 'Actif';
+$wb['client_txt'] = 'Client';
+$wb['run_min_txt'] = 'Minutes';
+$wb['run_hour_txt'] = 'Heures';
+$wb['run_mday_txt'] = 'Jours du mois';
+$wb['run_month_txt'] = 'Mois';
+$wb['run_wday_txt'] = 'Jours de la semaine';
+$wb['command_txt'] = 'Commande à éxécuter (commandes via sh, urls via wget)';
+$wb['limit_cron_txt'] = 'La nombre maximum de tâches cron autorisés a été atteint.';
+$wb['limit_cron_frequency_txt'] = 'La fréquence du cron excède la limite autorisée.';
+$wb['run_min_error_format'] = 'Format invalide pour les minutes.';
+$wb['run_hour_error_format'] = 'Format invalide pour les heures.';
+$wb['run_mday_error_format'] = 'Format invalide pour les jours du mois.';
+$wb['run_month_error_format'] = 'Format invalide pour les mois.';
+$wb['run_wday_error_format'] = 'Format invalide pour les jours du mois.';
+$wb['command_error_format'] = 'Format de la commande invalide.';
+$wb['unknown_fieldtype_error'] = 'Un champ inconnu a été utilisé';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_cron_list.lng b/interface/web/sites/lib/lang/fr_cron_list.lng
index ad652c6..78faabf 100644
--- a/interface/web/sites/lib/lang/fr_cron_list.lng
+++ b/interface/web/sites/lib/lang/fr_cron_list.lng
@@ -1,13 +1,13 @@
-<?php
-$wb['list_head_txt'] = 'Crons';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['run_min_txt'] = 'Minute';
-$wb['run_hour_txt'] = 'Heure';
-$wb['run_mday_txt'] = 'Jour du mois';
-$wb['run_month_txt'] = 'Mois';
-$wb['run_wday_txt'] = 'Jour de la semaine';
-$wb['command_txt'] = 'Commande';
-$wb['add_new_cron_txt'] = 'Nouveau Cron';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Crons';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['run_min_txt'] = 'Minute';
+$wb['run_hour_txt'] = 'Heure';
+$wb['run_mday_txt'] = 'Jour du mois';
+$wb['run_month_txt'] = 'Mois';
+$wb['run_wday_txt'] = 'Jour de la semaine';
+$wb['command_txt'] = 'Commande';
+$wb['add_new_cron_txt'] = 'Nouveau Cron';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_database.lng b/interface/web/sites/lib/lang/fr_database.lng
index f29ea4a..3bcd0b1 100644
--- a/interface/web/sites/lib/lang/fr_database.lng
+++ b/interface/web/sites/lib/lang/fr_database.lng
@@ -1,26 +1,26 @@
-<?php
-$wb['server_id_txt'] = 'Serveur';
-$wb['type_txt'] = 'Type';
-$wb['database_name_txt'] = 'Nom de la base';
-$wb['database_user_txt'] = 'Nom d\'utilisateur';
-$wb['database_password_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['database_charset_txt'] = 'Jeu de caractères de la base';
-$wb['remote_access_txt'] = 'Accès à Distance';
-$wb['client_txt'] = 'Client';
-$wb['active_txt'] = 'Actif';
-$wb['database_name_error_empty'] = 'Le nom de la base ne peut être vide.';
-$wb['database_name_error_unique'] = 'Il y a déja une base portant ce nom sur le serveur.';
-$wb['database_name_error_regex'] = 'Nom de la base incorrect. Le nom de la base peut uniquement contenir ces caractères: a-z, A-Z, 0-9 et le tiret bas. Taille: 2 - 64 caractères.';
-$wb['database_user_error_empty'] = 'Le nom d\'utilisateur ne peut être vide.';
-$wb['database_user_error_unique'] = 'Il y a déja un utilisateur de base avec ce nom.';
-$wb['database_user_error_regex'] = 'Nom d\'utilisateur incorrect. Le nom d\'utilisateur peut uniquement contenir ces caractères: a-z, A-Z, 0-9 et le tiret bas. Taille: 2 - 64 caractères.';
-$wb['limit_database_txt'] = 'Le nombre maximum de bases de données a été atteint.';
-$wb['database_name_change_txt'] = 'Le nom de la base ne peut être modifié';
-$wb['database_charset_change_txt'] = 'Le charset de la base ne peut être modifié';
-$wb['remote_ips_txt'] = 'IP d\'accès à distance (séparés par des virgules, ne rien mettre pour tout autoriser)';
-$wb['database_remote_error_ips'] = 'L\'une des IP entrées n\'est pas valide';
-$wb['database_name_error_len'] = 'Nom de base de données - {db} - trop long. La longueur maximale incluant le préfixe est de 64 caractères.';
-$wb['database_user_error_len'] = 'Nom d\'utilisateur de base de données - {user}- trop long. La longueur maximale incluant le préfixe est de 16 caractères.';
-?>
-
+<?php
+$wb['server_id_txt'] = 'Serveur';
+$wb['type_txt'] = 'Type';
+$wb['database_name_txt'] = 'Nom de la base';
+$wb['database_user_txt'] = 'Nom d\'utilisateur';
+$wb['database_password_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['database_charset_txt'] = 'Jeu de caractères de la base';
+$wb['remote_access_txt'] = 'Accès à Distance';
+$wb['client_txt'] = 'Client';
+$wb['active_txt'] = 'Actif';
+$wb['database_name_error_empty'] = 'Le nom de la base ne peut être vide.';
+$wb['database_name_error_unique'] = 'Il y a déja une base portant ce nom sur le serveur.';
+$wb['database_name_error_regex'] = 'Nom de la base incorrect. Le nom de la base peut uniquement contenir ces caractères: a-z, A-Z, 0-9 et le tiret bas. Taille: 2 - 64 caractères.';
+$wb['database_user_error_empty'] = 'Le nom d\'utilisateur ne peut être vide.';
+$wb['database_user_error_unique'] = 'Il y a déja un utilisateur de base avec ce nom.';
+$wb['database_user_error_regex'] = 'Nom d\'utilisateur incorrect. Le nom d\'utilisateur peut uniquement contenir ces caractères: a-z, A-Z, 0-9 et le tiret bas. Taille: 2 - 64 caractères.';
+$wb['limit_database_txt'] = 'Le nombre maximum de bases de données a été atteint.';
+$wb['database_name_change_txt'] = 'Le nom de la base ne peut être modifié';
+$wb['database_charset_change_txt'] = 'Le charset de la base ne peut être modifié';
+$wb['remote_ips_txt'] = 'IP d\'accès à distance (séparés par des virgules, ne rien mettre pour tout autoriser)';
+$wb['database_remote_error_ips'] = 'L\'une des IP entrées n\'est pas valide';
+$wb['database_name_error_len'] = 'Nom de base de données - {db} - trop long. La longueur maximale incluant le préfixe est de 64 caractères.';
+$wb['database_user_error_len'] = 'Nom d\'utilisateur de base de données - {user}- trop long. La longueur maximale incluant le préfixe est de 16 caractères.';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_database_admin_list.lng b/interface/web/sites/lib/lang/fr_database_admin_list.lng
index 28a6f9f..cca3373 100644
--- a/interface/web/sites/lib/lang/fr_database_admin_list.lng
+++ b/interface/web/sites/lib/lang/fr_database_admin_list.lng
@@ -1,11 +1,11 @@
-<?php
-$wb['list_head_txt'] = 'Base de données';
-$wb['active_txt'] = 'Actif';
-$wb['remote_access_txt'] = 'Accès distant';
-$wb['server_id_txt'] = 'Serveur';
-$wb['database_user_txt'] = 'Utilisateur de la base de données';
-$wb['database_name_txt'] = 'Nom de la base de données';
-$wb['add_new_record_txt'] = 'Ajouter une base de données';
-$wb['sys_groupid_txt'] = 'Client';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Base de données';
+$wb['active_txt'] = 'Actif';
+$wb['remote_access_txt'] = 'Accès distant';
+$wb['server_id_txt'] = 'Serveur';
+$wb['database_user_txt'] = 'Utilisateur de la base de données';
+$wb['database_name_txt'] = 'Nom de la base de données';
+$wb['add_new_record_txt'] = 'Ajouter une base de données';
+$wb['sys_groupid_txt'] = 'Client';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_database_list.lng b/interface/web/sites/lib/lang/fr_database_list.lng
index 2a875dd..6ceba6e 100644
--- a/interface/web/sites/lib/lang/fr_database_list.lng
+++ b/interface/web/sites/lib/lang/fr_database_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['list_head_txt'] = 'Base';
-$wb['active_txt'] = 'Actif';
-$wb['remote_access_txt'] = 'Accès à distance';
-$wb['server_id_txt'] = 'Serveur';
-$wb['database_name_txt'] = 'Nom de la base';
-$wb['add_new_record_txt'] = 'Nouvelle base de données';
-$wb['database_user_txt'] = 'Utilisateur BDD';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Base';
+$wb['active_txt'] = 'Actif';
+$wb['remote_access_txt'] = 'Accès à distance';
+$wb['server_id_txt'] = 'Serveur';
+$wb['database_name_txt'] = 'Nom de la base';
+$wb['add_new_record_txt'] = 'Nouvelle base de données';
+$wb['database_user_txt'] = 'Utilisateur BDD';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_ftp_user.lng b/interface/web/sites/lib/lang/fr_ftp_user.lng
index 1921d8e..0ade08e 100644
--- a/interface/web/sites/lib/lang/fr_ftp_user.lng
+++ b/interface/web/sites/lib/lang/fr_ftp_user.lng
@@ -1,29 +1,29 @@
-<?php
-$wb['uid_txt'] = 'UID';
-$wb['gid_txt'] = 'GID';
-$wb['dir_txt'] = 'Répertoire';
-$wb['quota_files_txt'] = 'Quota de fichiers';
-$wb['ul_ratio_txt'] = 'Ratio upload';
-$wb['dl_ratio_txt'] = 'Ratio download';
-$wb['ul_bandwidth_txt'] = 'Bande passante upload';
-$wb['dl_bandwidth_txt'] = 'Bande passante download';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site web';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['password_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['quota_size_txt'] = 'Quota disque';
-$wb['active_txt'] = 'Actif';
-$wb['limit_ftp_user_txt'] = 'Le nombre maximum d\'utilisateurs FTP a été atteint.';
-$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
-$wb['username_error_unique'] = 'Le nom d\'utilisateur doit être unique.';
-$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
-$wb['quota_size_error_empty'] = 'Le quota est vide.';
-$wb['uid_error_empty'] = 'Le GID est vide.';
-$wb['directory_error_empty'] = 'Le répertoire est vide.';
-$wb['quota_files_unity_txt'] = 'Fichiers';
-$wb['directory_error_notinweb'] = 'Le répertoire n\'est pas dans la racine web.';
-$wb['parent_domain_id_error_empty'] = 'Pas de site web sélectionné.';
-$wb['quota_size_error_regex'] = 'Quota: entrez -1 pour illimité ou un nombre > 0';
-?>
-
+<?php
+$wb['uid_txt'] = 'UID';
+$wb['gid_txt'] = 'GID';
+$wb['dir_txt'] = 'Répertoire';
+$wb['quota_files_txt'] = 'Quota de fichiers';
+$wb['ul_ratio_txt'] = 'Ratio upload';
+$wb['dl_ratio_txt'] = 'Ratio download';
+$wb['ul_bandwidth_txt'] = 'Bande passante upload';
+$wb['dl_bandwidth_txt'] = 'Bande passante download';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site web';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['password_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['quota_size_txt'] = 'Quota disque';
+$wb['active_txt'] = 'Actif';
+$wb['limit_ftp_user_txt'] = 'Le nombre maximum d\'utilisateurs FTP a été atteint.';
+$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
+$wb['username_error_unique'] = 'Le nom d\'utilisateur doit être unique.';
+$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
+$wb['quota_size_error_empty'] = 'Le quota est vide.';
+$wb['uid_error_empty'] = 'Le GID est vide.';
+$wb['directory_error_empty'] = 'Le répertoire est vide.';
+$wb['quota_files_unity_txt'] = 'Fichiers';
+$wb['directory_error_notinweb'] = 'Le répertoire n\'est pas dans la racine web.';
+$wb['parent_domain_id_error_empty'] = 'Pas de site web sélectionné.';
+$wb['quota_size_error_regex'] = 'Quota: entrez -1 pour illimité ou un nombre > 0';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_ftp_user_list.lng b/interface/web/sites/lib/lang/fr_ftp_user_list.lng
index 8cf91cf..468201d 100644
--- a/interface/web/sites/lib/lang/fr_ftp_user_list.lng
+++ b/interface/web/sites/lib/lang/fr_ftp_user_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Utilisateur FTP';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site web';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['add_new_record_txt'] = 'Nouvel utilisateur FTP';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Utilisateur FTP';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site web';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['add_new_record_txt'] = 'Nouvel utilisateur FTP';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_shell_user.lng b/interface/web/sites/lib/lang/fr_shell_user.lng
index 65efda4..753d137 100644
--- a/interface/web/sites/lib/lang/fr_shell_user.lng
+++ b/interface/web/sites/lib/lang/fr_shell_user.lng
@@ -1,23 +1,23 @@
-<?php
-$wb['shell_txt'] = 'Shell';
-$wb['dir_txt'] = 'Répertoire';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['password_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['chroot_txt'] = 'Chrotter le shell';
-$wb['quota_size_txt'] = 'Quota';
-$wb['active_txt'] = 'Actif';
-$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
-$wb['username_error_unique'] = 'Le nom d\'utilisateur doit être unique.';
-$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
-$wb['quota_size_error_empty'] = 'Le quota est vide.';
-$wb['uid_error_empty'] = 'Le GID est vide.';
-$wb['directory_error_empty'] = 'Le répertoire est vide.';
-$wb['limit_shell_user_txt'] = 'Le nombre maximum d\'utilisateurs shell a été atteint..';
-$wb['parent_domain_id_error_empty'] = 'Aucun site web sélectionné.';
-$wb['puser_txt'] = 'Web Username';
-$wb['pgroup_txt'] = 'Web Group';
-?>
-
+<?php
+$wb['shell_txt'] = 'Shell';
+$wb['dir_txt'] = 'Répertoire';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['password_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['chroot_txt'] = 'Chrotter le shell';
+$wb['quota_size_txt'] = 'Quota';
+$wb['active_txt'] = 'Actif';
+$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide.';
+$wb['username_error_unique'] = 'Le nom d\'utilisateur doit être unique.';
+$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères invalides.';
+$wb['quota_size_error_empty'] = 'Le quota est vide.';
+$wb['uid_error_empty'] = 'Le GID est vide.';
+$wb['directory_error_empty'] = 'Le répertoire est vide.';
+$wb['limit_shell_user_txt'] = 'Le nombre maximum d\'utilisateurs shell a été atteint..';
+$wb['parent_domain_id_error_empty'] = 'Aucun site web sélectionné.';
+$wb['puser_txt'] = 'Web Username';
+$wb['pgroup_txt'] = 'Web Group';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_shell_user_list.lng b/interface/web/sites/lib/lang/fr_shell_user_list.lng
index 888ec5f..a5cc29a 100644
--- a/interface/web/sites/lib/lang/fr_shell_user_list.lng
+++ b/interface/web/sites/lib/lang/fr_shell_user_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Utilisateur Shell';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site web';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['add_new_record_txt'] = 'Nouvel utilisateur Shell';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Utilisateur Shell';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site web';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['add_new_record_txt'] = 'Nouvel utilisateur Shell';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_user_quota_stats_list.lng b/interface/web/sites/lib/lang/fr_user_quota_stats_list.lng
index d8f3a32..106b3e9 100644
--- a/interface/web/sites/lib/lang/fr_user_quota_stats_list.lng
+++ b/interface/web/sites/lib/lang/fr_user_quota_stats_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Quota disque du site';
-$wb['domain_txt'] = 'Domaine / Site web';
-$wb['system_user_txt'] = 'Utilisateur Linux';
-$wb['used_txt'] = 'Espace utilisé';
-$wb['hard_txt'] = 'Limite dure';
-$wb['soft_txt'] = 'Limite douce';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Quota disque du site';
+$wb['domain_txt'] = 'Domaine / Site web';
+$wb['system_user_txt'] = 'Utilisateur Linux';
+$wb['used_txt'] = 'Espace utilisé';
+$wb['hard_txt'] = 'Limite dure';
+$wb['soft_txt'] = 'Limite douce';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/fr_web_aliasdomain_list.lng
index a7bd62e..50d3bd2 100644
--- a/interface/web/sites/lib/lang/fr_web_aliasdomain_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_aliasdomain_list.lng
@@ -1,12 +1,12 @@
-<?php
-$wb['list_head_txt'] = 'Alias de domaine';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site web';
-$wb['domain_txt'] = 'Alias de domaine';
-$wb['add_new_record_txt'] = 'Nouvel alias de domaine';
-$wb['domain_error_empty'] = 'Le nom de domaine est vide.';
-$wb['domain_error_unique'] = 'Le nom de domaine doit être unique.';
-$wb['domain_error_regex'] = 'Le nom de domaine est invalide.';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Alias de domaine';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site web';
+$wb['domain_txt'] = 'Alias de domaine';
+$wb['add_new_record_txt'] = 'Nouvel alias de domaine';
+$wb['domain_error_empty'] = 'Le nom de domaine est vide.';
+$wb['domain_error_unique'] = 'Le nom de domaine doit être unique.';
+$wb['domain_error_regex'] = 'Le nom de domaine est invalide.';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_web_domain.lng b/interface/web/sites/lib/lang/fr_web_domain.lng
index 850c2f9..152dbec 100644
--- a/interface/web/sites/lib/lang/fr_web_domain.lng
+++ b/interface/web/sites/lib/lang/fr_web_domain.lng
@@ -1,71 +1,71 @@
-<?php
-$wb['ssl_state_txt'] = 'Pays';
-$wb['ssl_locality_txt'] = 'Localité';
-$wb['ssl_organisation_txt'] = 'Organisation';
-$wb['ssl_organisation_unit_txt'] = 'Unité dorganisation';
-$wb['ssl_country_txt'] = 'Pays';
-$wb['ssl_request_txt'] = 'Requête SSL';
-$wb['ssl_cert_txt'] = 'Certificat SSL';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'Action SSL';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['type_txt'] = 'Type';
-$wb['parent_domain_id_txt'] = 'Site web parent';
-$wb['redirect_type_txt'] = 'Type de redirection';
-$wb['redirect_path_txt'] = 'Chemin de redirection';
-$wb['active_txt'] = 'Actif';
-$wb['document_root_txt'] = 'Racine du document';
-$wb['system_user_txt'] = 'Utilisateur Linux';
-$wb['system_group_txt'] = 'Groupe Linux';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['vhost_type_txt'] = 'Type de VHost';
-$wb['hd_quota_txt'] = 'Quota disque';
-$wb['cgi_txt'] = 'CGI';
-$wb['ssi_txt'] = 'SSI';
-$wb['errordocs_txt'] = 'Pages d\'erreurs personnalisées';
-$wb['ssl_txt'] = 'SSL';
-$wb['suexec_txt'] = 'SuEXEC';
-$wb['php_txt'] = 'PHP';
-$wb['client_txt'] = 'Client';
-$wb['limit_web_domain_txt'] = 'Le nombre maximum de noms de domaine pour votre compte a été atteint.';
-$wb['limit_web_aliasdomain_txt'] = 'Le nombre maximum d\'alias de domaine pour votre compte a été atteint.';
-$wb['limit_web_subdomain_txt'] = 'Le nombre maximum de sous-domaines pour votre compte a été atteint.';
-$wb['apache_directives_txt'] = 'Directives Apache';
-$wb['domain_error_empty'] = 'Le nom de domaine est vide.';
-$wb['domain_error_unique'] = 'Le nom de domaine doit être unique.';
-$wb['domain_error_regex'] = 'Le nom de domaine est invalide.';
-$wb['hd_quota_error_empty'] = 'Le quota disque est vide.';
-$wb['error_ssl_state_empty'] = 'L\'état du SSL est vide.';
-$wb['error_ssl_locality_empty'] = 'La localité du SSL est vide.';
-$wb['error_ssl_organisation_empty'] = 'L\'organisation du SSL est vide.';
-$wb['error_ssl_organisation_unit_empty'] = 'L\'unité d\'organisation du SSL est vide.';
-$wb['error_ssl_country_empty'] = 'Le pays du SSL est vide.';
-$wb['subdomain_txt'] = 'Auto sous-domaine';
-$wb['client_group_id_txt'] = 'Client';
-$wb['stats_password_txt'] = 'Mot de passe statistiques web';
-$wb['backup_interval_txt'] = 'Intervalle de sauvegarde';
-$wb['backup_copies_txt'] = 'Nombre de copies de sauvegarde';
-$wb['ssl_domain_txt'] = 'Domaine SSL';
-$wb['traffic_quota_txt'] = 'Quota de trafic';
-$wb['traffic_quota_error_empty'] = 'Le quota de trafic est vide.';
-$wb['error_ssl_cert_empty'] = 'Le champ certificat SSL est vide';
-$wb['allow_override_txt'] = 'AllowOverride Apache';
-$wb['limit_web_quota_free_txt'] = 'Quota max espace disque disponible';
-$wb['ssl_state_error_regex'] = 'Etat SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
-$wb['ssl_locality_error_regex'] = 'Localité SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
-$wb['ssl_organisation_error_regex'] = 'Organisation SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
-$wb['ssl_organistaion_unit_error_regex'] = 'Unité d\'organisation SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
-$wb['ssl_country_error_regex'] = 'Pays SSL invalide. Les caractères valides sont: A-Z';
-$wb['limit_traffic_quota_free_txt'] = 'Quota de trafic max disponible';
-$wb['redirect_error_regex'] = 'Chemin de redirection invalide. Exemple de redirections valides: /test/ or http://www.domain.tld/test/';
-$wb['php_open_basedir_txt'] = 'open_basedir PHP';
-$wb['traffic_quota_exceeded_txt'] = 'Quota de trafic dépassé';
-$wb['ruby_txt'] = 'Ruby';
-$wb['stats_user_txt'] = 'Nom d\'utilisateur statistiques web';
-$wb['stats_type_txt'] = 'Programme de  statistiques web';
-$wb['custom_php_ini_txt'] = 'Paramètres php.ini personnalisés';
-$wb['hd_quota_error_regex'] = 'Quota de disque dur: entrez -1 pour illimité ou un nombre > 0';
-$wb['traffic_quota_error_regex'] = 'Quota de trafic: entrez -1 pour illimité ou un nombre > 0';
-?>
-
+<?php
+$wb['ssl_state_txt'] = 'Pays';
+$wb['ssl_locality_txt'] = 'Localité';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Unité dorganisation';
+$wb['ssl_country_txt'] = 'Pays';
+$wb['ssl_request_txt'] = 'Requête SSL';
+$wb['ssl_cert_txt'] = 'Certificat SSL';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'Action SSL';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Site web parent';
+$wb['redirect_type_txt'] = 'Type de redirection';
+$wb['redirect_path_txt'] = 'Chemin de redirection';
+$wb['active_txt'] = 'Actif';
+$wb['document_root_txt'] = 'Racine du document';
+$wb['system_user_txt'] = 'Utilisateur Linux';
+$wb['system_group_txt'] = 'Groupe Linux';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['vhost_type_txt'] = 'Type de VHost';
+$wb['hd_quota_txt'] = 'Quota disque';
+$wb['cgi_txt'] = 'CGI';
+$wb['ssi_txt'] = 'SSI';
+$wb['errordocs_txt'] = 'Pages d\'erreurs personnalisées';
+$wb['ssl_txt'] = 'SSL';
+$wb['suexec_txt'] = 'SuEXEC';
+$wb['php_txt'] = 'PHP';
+$wb['client_txt'] = 'Client';
+$wb['limit_web_domain_txt'] = 'Le nombre maximum de noms de domaine pour votre compte a été atteint.';
+$wb['limit_web_aliasdomain_txt'] = 'Le nombre maximum d\'alias de domaine pour votre compte a été atteint.';
+$wb['limit_web_subdomain_txt'] = 'Le nombre maximum de sous-domaines pour votre compte a été atteint.';
+$wb['apache_directives_txt'] = 'Directives Apache';
+$wb['domain_error_empty'] = 'Le nom de domaine est vide.';
+$wb['domain_error_unique'] = 'Le nom de domaine doit être unique.';
+$wb['domain_error_regex'] = 'Le nom de domaine est invalide.';
+$wb['hd_quota_error_empty'] = 'Le quota disque est vide.';
+$wb['error_ssl_state_empty'] = 'L\'état du SSL est vide.';
+$wb['error_ssl_locality_empty'] = 'La localité du SSL est vide.';
+$wb['error_ssl_organisation_empty'] = 'L\'organisation du SSL est vide.';
+$wb['error_ssl_organisation_unit_empty'] = 'L\'unité d\'organisation du SSL est vide.';
+$wb['error_ssl_country_empty'] = 'Le pays du SSL est vide.';
+$wb['subdomain_txt'] = 'Auto sous-domaine';
+$wb['client_group_id_txt'] = 'Client';
+$wb['stats_password_txt'] = 'Mot de passe statistiques web';
+$wb['backup_interval_txt'] = 'Intervalle de sauvegarde';
+$wb['backup_copies_txt'] = 'Nombre de copies de sauvegarde';
+$wb['ssl_domain_txt'] = 'Domaine SSL';
+$wb['traffic_quota_txt'] = 'Quota de trafic';
+$wb['traffic_quota_error_empty'] = 'Le quota de trafic est vide.';
+$wb['error_ssl_cert_empty'] = 'Le champ certificat SSL est vide';
+$wb['allow_override_txt'] = 'AllowOverride Apache';
+$wb['limit_web_quota_free_txt'] = 'Quota max espace disque disponible';
+$wb['ssl_state_error_regex'] = 'Etat SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
+$wb['ssl_locality_error_regex'] = 'Localité SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
+$wb['ssl_organisation_error_regex'] = 'Organisation SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
+$wb['ssl_organistaion_unit_error_regex'] = 'Unité d\'organisation SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_';
+$wb['ssl_country_error_regex'] = 'Pays SSL invalide. Les caractères valides sont: A-Z';
+$wb['limit_traffic_quota_free_txt'] = 'Quota de trafic max disponible';
+$wb['redirect_error_regex'] = 'Chemin de redirection invalide. Exemple de redirections valides: /test/ or http://www.domain.tld/test/';
+$wb['php_open_basedir_txt'] = 'open_basedir PHP';
+$wb['traffic_quota_exceeded_txt'] = 'Quota de trafic dépassé';
+$wb['ruby_txt'] = 'Ruby';
+$wb['stats_user_txt'] = 'Nom d\'utilisateur statistiques web';
+$wb['stats_type_txt'] = 'Programme de  statistiques web';
+$wb['custom_php_ini_txt'] = 'Paramètres php.ini personnalisés';
+$wb['hd_quota_error_regex'] = 'Quota de disque dur: entrez -1 pour illimité ou un nombre > 0';
+$wb['traffic_quota_error_regex'] = 'Quota de trafic: entrez -1 pour illimité ou un nombre > 0';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_web_domain_admin_list.lng b/interface/web/sites/lib/lang/fr_web_domain_admin_list.lng
index 413c364..bb8f1a1 100644
--- a/interface/web/sites/lib/lang/fr_web_domain_admin_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_domain_admin_list.lng
@@ -1,10 +1,10 @@
-<?php
-$wb['sys_groupid_txt'] = 'Client';
-$wb['list_head_txt'] = 'Sites web';
-$wb['domain_id_txt'] = 'ID';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['add_new_record_txt'] = 'Ajouter un nouveau site';
-?>
-
+<?php
+$wb['sys_groupid_txt'] = 'Client';
+$wb['list_head_txt'] = 'Sites web';
+$wb['domain_id_txt'] = 'ID';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['add_new_record_txt'] = 'Ajouter un nouveau site';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_web_domain_list.lng b/interface/web/sites/lib/lang/fr_web_domain_list.lng
index 306c6d1..f59495c 100644
--- a/interface/web/sites/lib/lang/fr_web_domain_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_domain_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Sites web';
-$wb['domain_id_txt'] = 'ID';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['add_new_record_txt'] = 'Nouveau site web';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Sites web';
+$wb['domain_id_txt'] = 'ID';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['add_new_record_txt'] = 'Nouveau site web';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_web_sites_stats_list.lng b/interface/web/sites/lib/lang/fr_web_sites_stats_list.lng
index 39f98ee..4c91b7d 100644
--- a/interface/web/sites/lib/lang/fr_web_sites_stats_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_sites_stats_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'trafic Web';
-$wb['domain_txt'] = 'Domaine';
-$wb['this_month_txt'] = 'Ce mois';
-$wb['last_month_txt'] = 'Mois précédent';
-$wb['this_year_txt'] = 'Cette année';
-$wb['last_year_txt'] = 'Année précédente';
-?>
-
+<?php
+$wb['list_head_txt'] = 'trafic Web';
+$wb['domain_txt'] = 'Domaine';
+$wb['this_month_txt'] = 'Ce mois';
+$wb['last_month_txt'] = 'Mois précédent';
+$wb['this_year_txt'] = 'Cette année';
+$wb['last_year_txt'] = 'Année précédente';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_web_subdomain.lng b/interface/web/sites/lib/lang/fr_web_subdomain.lng
index 93e038c..7264aec 100644
--- a/interface/web/sites/lib/lang/fr_web_subdomain.lng
+++ b/interface/web/sites/lib/lang/fr_web_subdomain.lng
@@ -1,41 +1,41 @@
-<?php
-$wb['ssl_state_txt'] = 'Pays';
-$wb['ssl_locality_txt'] = 'Lieu';
-$wb['ssl_organisation_txt'] = 'Organisation';
-$wb['ssl_organisation_unit_txt'] = 'Unité d\'organisation';
-$wb['ssl_country_txt'] = 'Pays';
-$wb['ssl_request_txt'] = 'Requête SSL';
-$wb['ssl_cert_txt'] = 'Certificat SSL';
-$wb['ssl_bundle_txt'] = 'SSL Bundle';
-$wb['ssl_action_txt'] = 'Action SSL';
-$wb['server_id_txt'] = 'Serveur';
-$wb['domain_txt'] = 'Domaine';
-$wb['type_txt'] = 'Type';
-$wb['parent_domain_id_txt'] = 'Site web parent';
-$wb['redirect_type_txt'] = 'Type de redirection';
-$wb['redirect_path_txt'] = 'Chemin de redirection';
-$wb['active_txt'] = 'Actif';
-$wb['document_root_txt'] = 'Racine du document';
-$wb['system_user_txt'] = 'Utilisateur Linux';
-$wb['system_group_txt'] = 'Groupe Linux';
-$wb['ip_address_txt'] = 'Adresse IP';
-$wb['vhost_type_txt'] = 'Type de VHost';
-$wb['hd_quota_txt'] = 'Quota disque';
-$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'] = 'Le nombre maximum de noms de domaine pour votre compte a été atteint.';
-$wb['limit_web_aliasdomain_txt'] = 'Le nombre maximum d\'alias de domaine pour votre compte a été atteint.';
-$wb['limit_web_subdomain_txt'] = 'Le nombre maximum de sous-domaines pour votre compte a été atteint.';
-$wb['apache_directives_txt'] = 'Directives Apache';
-$wb['domain_error_empty'] = 'Le nom de domaine est vide.';
-$wb['domain_error_unique'] = 'Le nom de domaine doit être unique.';
-$wb['domain_error_regex'] = 'Le nom de domaine est invalide.';
-$wb['host_txt'] = 'Hôte';
-$wb['traffic_quota_txt'] = 'Quota de trafic';
-$wb['redirect_error_regex'] = 'Chemin de redirection invalide. Exemples de redirections valides: /test/ ou http://www.domain.tld/test/';
-?>
-
+<?php
+$wb['ssl_state_txt'] = 'Pays';
+$wb['ssl_locality_txt'] = 'Lieu';
+$wb['ssl_organisation_txt'] = 'Organisation';
+$wb['ssl_organisation_unit_txt'] = 'Unité d\'organisation';
+$wb['ssl_country_txt'] = 'Pays';
+$wb['ssl_request_txt'] = 'Requête SSL';
+$wb['ssl_cert_txt'] = 'Certificat SSL';
+$wb['ssl_bundle_txt'] = 'SSL Bundle';
+$wb['ssl_action_txt'] = 'Action SSL';
+$wb['server_id_txt'] = 'Serveur';
+$wb['domain_txt'] = 'Domaine';
+$wb['type_txt'] = 'Type';
+$wb['parent_domain_id_txt'] = 'Site web parent';
+$wb['redirect_type_txt'] = 'Type de redirection';
+$wb['redirect_path_txt'] = 'Chemin de redirection';
+$wb['active_txt'] = 'Actif';
+$wb['document_root_txt'] = 'Racine du document';
+$wb['system_user_txt'] = 'Utilisateur Linux';
+$wb['system_group_txt'] = 'Groupe Linux';
+$wb['ip_address_txt'] = 'Adresse IP';
+$wb['vhost_type_txt'] = 'Type de VHost';
+$wb['hd_quota_txt'] = 'Quota disque';
+$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'] = 'Le nombre maximum de noms de domaine pour votre compte a été atteint.';
+$wb['limit_web_aliasdomain_txt'] = 'Le nombre maximum d\'alias de domaine pour votre compte a été atteint.';
+$wb['limit_web_subdomain_txt'] = 'Le nombre maximum de sous-domaines pour votre compte a été atteint.';
+$wb['apache_directives_txt'] = 'Directives Apache';
+$wb['domain_error_empty'] = 'Le nom de domaine est vide.';
+$wb['domain_error_unique'] = 'Le nom de domaine doit être unique.';
+$wb['domain_error_regex'] = 'Le nom de domaine est invalide.';
+$wb['host_txt'] = 'Hôte';
+$wb['traffic_quota_txt'] = 'Quota de trafic';
+$wb['redirect_error_regex'] = 'Chemin de redirection invalide. Exemples de redirections valides: /test/ ou http://www.domain.tld/test/';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_web_subdomain_list.lng b/interface/web/sites/lib/lang/fr_web_subdomain_list.lng
index c8230d4..592464c 100644
--- a/interface/web/sites/lib/lang/fr_web_subdomain_list.lng
+++ b/interface/web/sites/lib/lang/fr_web_subdomain_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Sous-domaines';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site web';
-$wb['domain_txt'] = 'Sous-domaine';
-$wb['add_new_record_txt'] = 'Nouveau sous-domaine';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Sous-domaines';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site web';
+$wb['domain_txt'] = 'Sous-domaine';
+$wb['add_new_record_txt'] = 'Nouveau sous-domaine';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_webdav_user.lng b/interface/web/sites/lib/lang/fr_webdav_user.lng
index 0eb3332..0100828 100644
--- a/interface/web/sites/lib/lang/fr_webdav_user.lng
+++ b/interface/web/sites/lib/lang/fr_webdav_user.lng
@@ -1,16 +1,16 @@
-<?php
-$wb['dir_txt'] = 'Dossier';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site web';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['password_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['active_txt'] = 'Actif';
-$wb['limit_webdav_user_txt'] = 'Le nombre maximal d\'utilisateurs WebDAV pour votre compte est atteint.';
-$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide';
-$wb['username_error_unique'] = 'Le nom d\'utilisateur doit être unique';
-$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères non autorisés.';
-$wb['directory_error_empty'] = 'Dossier vide.';
-$wb['parent_domain_id_error_empty'] = 'Aucun site web sélectionné.';
-?>
-
+<?php
+$wb['dir_txt'] = 'Dossier';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site web';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['password_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['active_txt'] = 'Actif';
+$wb['limit_webdav_user_txt'] = 'Le nombre maximal d\'utilisateurs WebDAV pour votre compte est atteint.';
+$wb['username_error_empty'] = 'Le nom d\'utilisateur est vide';
+$wb['username_error_unique'] = 'Le nom d\'utilisateur doit être unique';
+$wb['username_error_regex'] = 'Le nom d\'utilisateur contient des caractères non autorisés.';
+$wb['directory_error_empty'] = 'Dossier vide.';
+$wb['parent_domain_id_error_empty'] = 'Aucun site web sélectionné.';
+?>
+
diff --git a/interface/web/sites/lib/lang/fr_webdav_user_list.lng b/interface/web/sites/lib/lang/fr_webdav_user_list.lng
index 4ceedd7..88bb7fa 100644
--- a/interface/web/sites/lib/lang/fr_webdav_user_list.lng
+++ b/interface/web/sites/lib/lang/fr_webdav_user_list.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['list_head_txt'] = 'Utilisateur WebDAV';
-$wb['active_txt'] = 'Actif';
-$wb['server_id_txt'] = 'Serveur';
-$wb['parent_domain_id_txt'] = 'Site web';
-$wb['username_txt'] = 'Nom d\'utilisateur';
-$wb['add_new_record_txt'] = 'Ajouter un utilisateur WebDAV';
-?>
-
+<?php
+$wb['list_head_txt'] = 'Utilisateur WebDAV';
+$wb['active_txt'] = 'Actif';
+$wb['server_id_txt'] = 'Serveur';
+$wb['parent_domain_id_txt'] = 'Site web';
+$wb['username_txt'] = 'Nom d\'utilisateur';
+$wb['add_new_record_txt'] = 'Ajouter un utilisateur WebDAV';
+?>
+
diff --git a/interface/web/strengthmeter/lib/lang/fr_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/fr_strengthmeter.lng
index f64de79..91804fc 100644
--- a/interface/web/strengthmeter/lib/lang/fr_strengthmeter.lng
+++ b/interface/web/strengthmeter/lib/lang/fr_strengthmeter.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['password_strength_0_txt'] = 'Trop court';
-$wb['password_strength_1_txt'] = 'Faible';
-$wb['password_strength_2_txt'] = 'Moyen';
-$wb['password_strength_3_txt'] = 'Bon';
-$wb['password_strength_4_txt'] = 'Fort';
-$wb['password_strength_5_txt'] = 'Très fort';
-?>
-
+<?php
+$wb['password_strength_0_txt'] = 'Trop court';
+$wb['password_strength_1_txt'] = 'Faible';
+$wb['password_strength_2_txt'] = 'Moyen';
+$wb['password_strength_3_txt'] = 'Bon';
+$wb['password_strength_4_txt'] = 'Fort';
+$wb['password_strength_5_txt'] = 'Très fort';
+?>
+
diff --git a/interface/web/tools/lib/lang/fr.lng b/interface/web/tools/lib/lang/fr.lng
index 56d46fd..aad8916 100644
--- a/interface/web/tools/lib/lang/fr.lng
+++ b/interface/web/tools/lib/lang/fr.lng
@@ -1,7 +1,7 @@
-<?php
-$wb['User Settings'] = 'Paramètres Utilisateur';
-$wb['Settings'] = 'Paramètres';
-$wb['ISPConfig Tools'] = 'Outils ISPConfig';
-$wb['Password and Language'] = 'Mot de passe et Langage';
-?>
-
+<?php
+$wb['User Settings'] = 'Paramètres Utilisateur';
+$wb['Settings'] = 'Paramètres';
+$wb['ISPConfig Tools'] = 'Outils ISPConfig';
+$wb['Password and Language'] = 'Mot de passe et Langage';
+?>
+
diff --git a/interface/web/tools/lib/lang/fr_usersettings.lng b/interface/web/tools/lib/lang/fr_usersettings.lng
index a84cdc7..b37da7c 100644
--- a/interface/web/tools/lib/lang/fr_usersettings.lng
+++ b/interface/web/tools/lib/lang/fr_usersettings.lng
@@ -1,9 +1,9 @@
-<?php
-$wb['passwort_txt'] = 'Mot de passe';
-$wb['password_strength_txt'] = 'Force du mot de passe';
-$wb['language_txt'] = 'Langage';
-$wb['password_mismatch'] = 'Le mot de passe de confirmation ne correspond avec le premier.';
-$wb['Form to edit the user password and language.'] = 'Formulaire d\'édition du mot de passe et du langage.';
-$wb['Settings'] = 'Paramètres';
-?>
-
+<?php
+$wb['passwort_txt'] = 'Mot de passe';
+$wb['password_strength_txt'] = 'Force du mot de passe';
+$wb['language_txt'] = 'Langage';
+$wb['password_mismatch'] = 'Le mot de passe de confirmation ne correspond avec le premier.';
+$wb['Form to edit the user password and language.'] = 'Formulaire d\'édition du mot de passe et du langage.';
+$wb['Settings'] = 'Paramètres';
+?>
+
diff --git a/server/conf/nginx_rewrites.conf.master b/server/conf/nginx_rewrites.conf.master
index b5d2ad5..c9080a7 100644
--- a/server/conf/nginx_rewrites.conf.master
+++ b/server/conf/nginx_rewrites.conf.master
@@ -1,9 +1,9 @@
-server {
-    listen       80 default_server;
-    listen       443 default_server;
-    server_name  _;
-    include         /etc/nginx/proxy.conf;
-    <tmpl_loop name="nginx_rewrite_rules">
-        rewrite ^{tmpl_var name="rewrite_url_src"}  {tmpl_var name="rewrite_url_dst"};
-    </tmpl_loop>
-}
+server {
+    listen       80 default_server;
+    listen       443 default_server;
+    server_name  _;
+    include         /etc/nginx/proxy.conf;
+    <tmpl_loop name="nginx_rewrite_rules">
+        rewrite ^{tmpl_var name="rewrite_url_src"}  {tmpl_var name="rewrite_url_dst"};
+    </tmpl_loop>
+}
diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index 83ed251..40df895 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -1,69 +1,69 @@
-server {
-        listen   80;
-        server_name  <tmpl_var name='alias'> <tmpl_var name='domain'>;
-
-        access_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/access.log;
-        error_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/error.log;
-
-        include         /etc/nginx/proxy.conf;
-
-        location / {
-                proxy_pass      http://<tmpl_var name='ip_address'>:80;
-        }
-
-        location ~* \.(jpg|png|gif|jpeg|css|js|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
-                # Cache static-looking files for 120 minutes, setting a 10 day expiry time in the HTTP header,
-                # whether logged in or not (may be too heavy-handed).
-                proxy_cache_valid 200 120m;
-                expires 864000;
-                proxy_pass      http://<tmpl_var name='ip_address'>:80;
-        }
-
-        <tmpl_if name='nginx_directives'>
-            <tmpl_var name='nginx_directives'>
-        </tmpl_if>
-
-
-
-}
-
-
-<tmpl_if name='ssl_enabled'>
-###########################################################
-# SSL Vhost
-###########################################################
-server {
-        listen   443;
-        server_name  <tmpl_var name='ssl_domain'> <tmpl_var name='alias'>;
-
-        access_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/access.log
-        error_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/error.log
-        
-        ### SSL cert files ###
-        ssl_certificate      <tmpl_var name='config_dir'>/ssl/<tmpl_var name='ssl_domain'>.crt
-        ssl_certificate_key  <tmpl_var name='config_dir'>/ssl/<tmpl_var name='ssl_domain'>.crt
-        
-        <tmpl_if name='has_bundle_cert'>
-            ssl_client_certificate <tmpl_var name='config_dir'>/ssl/<tmpl_var name='ssl_domain'>.bundle
-        </tmpl_if>
-        
-        ### Add SSL specific settings here ###
-        keepalive_timeout    60;
-        
-        ###  Limiting Ciphers ########################
-        # Uncomment as per your setup
-        #ssl_ciphers HIGH:!ADH;
-        #ssl_perfer_server_ciphers on;
-        #ssl_protocols SSLv3;
-        ##############################################
-
-        include         /etc/nginx/proxy.conf;
-
-        ### Most PHP, Python, Rails, Java App can use this header ###
-        proxy_set_header X-Forwarded-Proto https;
-
-        location / {
-                proxy_pass      https://<tmpl_var name='ip_address'>:443;
-        }
-}
-</tmpl_if>
+server {
+        listen   80;
+        server_name  <tmpl_var name='alias'> <tmpl_var name='domain'>;
+
+        access_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/access.log;
+        error_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/error.log;
+
+        include         /etc/nginx/proxy.conf;
+
+        location / {
+                proxy_pass      http://<tmpl_var name='ip_address'>:80;
+        }
+
+        location ~* \.(jpg|png|gif|jpeg|css|js|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
+                # Cache static-looking files for 120 minutes, setting a 10 day expiry time in the HTTP header,
+                # whether logged in or not (may be too heavy-handed).
+                proxy_cache_valid 200 120m;
+                expires 864000;
+                proxy_pass      http://<tmpl_var name='ip_address'>:80;
+        }
+
+        <tmpl_if name='nginx_directives'>
+            <tmpl_var name='nginx_directives'>
+        </tmpl_if>
+
+
+
+}
+
+
+<tmpl_if name='ssl_enabled'>
+###########################################################
+# SSL Vhost
+###########################################################
+server {
+        listen   443;
+        server_name  <tmpl_var name='ssl_domain'> <tmpl_var name='alias'>;
+
+        access_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/access.log
+        error_log  /var/log/ispconfig/nginx/<tmpl_var name='domain'>/error.log
+        
+        ### SSL cert files ###
+        ssl_certificate      <tmpl_var name='config_dir'>/ssl/<tmpl_var name='ssl_domain'>.crt
+        ssl_certificate_key  <tmpl_var name='config_dir'>/ssl/<tmpl_var name='ssl_domain'>.crt
+        
+        <tmpl_if name='has_bundle_cert'>
+            ssl_client_certificate <tmpl_var name='config_dir'>/ssl/<tmpl_var name='ssl_domain'>.bundle
+        </tmpl_if>
+        
+        ### Add SSL specific settings here ###
+        keepalive_timeout    60;
+        
+        ###  Limiting Ciphers ########################
+        # Uncomment as per your setup
+        #ssl_ciphers HIGH:!ADH;
+        #ssl_perfer_server_ciphers on;
+        #ssl_protocols SSLv3;
+        ##############################################
+
+        include         /etc/nginx/proxy.conf;
+
+        ### Most PHP, Python, Rails, Java App can use this header ###
+        proxy_set_header X-Forwarded-Proto https;
+
+        location / {
+                proxy_pass      https://<tmpl_var name='ip_address'>:443;
+        }
+}
+</tmpl_if>
diff --git a/server/conf/squidRewriteRules.py.master b/server/conf/squidRewriteRules.py.master
index 6005bb3..a8a241b 100644
--- a/server/conf/squidRewriteRules.py.master
+++ b/server/conf/squidRewriteRules.py.master
@@ -1,196 +1,196 @@
-"""
-/**********************************************************************
-FILE     : $RCSfile: squidRewriteRules.py,v $
-PURPOSE  : Rule set for icoya redirector
-NOTES    :
-AUTHOR   : Simon Eisenmann
-COPYRIGHT: (c) 2003,2004 by struktur AG
-DATE     : 28JAN2003
-REVISION : $Revision: 1.12 $
-VERSION  : $Id: squidRewriteRules.py,v 1.12 2004/08/06 08:16:19 longsleep Exp $ (Author: $Author: longsleep $)
-
-struktur AG            Phone: +49 711 8966560
-Junghansstr. 5         Fax:   +49 711 89665610
-70469 Stuttgart        email: info@struktur.de
-GERMANY
-
-http://www.struktur.de
-http://www.strukturag.com
-
-**********************************************************************/
-
- Reloadable module allows arbitrary url transformations.
-
-
- Automatic reload of the rules
- +++++++++++++++++++++++++++++++++++
-
- NOTE: use the reload after parameter to auto reload this module
-       after x requests. Use -1 to disable auto reload
-
-
- Logging
- +++++++++++++++++++++++++++++++++++
-
- NOTE: set debug to 1 to enable logging
-       define the logfile in the logfile variable (enter full path)
-
-
-"""
-import re, sys
-
-try:
-    import py
-except ImportError:
-    pass
-
-"""
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-begin of configuration
-"""
-
-# log mode (set to 1 to enable logging)
-debug = 0
-
-# logfile for debugging (only required when debug == 1)
-logfile = "/etc/squid/redirector_class.log"
-
-# set this to -1 to get best performance (no reload)
-reload_after = -1
-
-# define sitemap matching regex mapping
-
-# MODIFY THIS REWRITE RULE AS NEEDED FOR YOUR SITE
-
-rewrites = (
-  
-### HTTP SSL/encrypted webmail rewrite ### You can use this as an example for your ssl virtualhosted website
-
-<tmpl_loop name="squid_rewrite_rules">
-    (r'{tmpl_var name="rewrite_url_src"}', r'{tmpl_var name="rewrite_url_dest"}\1', 'P,L'),
-</tmpl_loop>
-
-  
-
-
-
-)
-
-
-
-"""
-end of configuration
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-"""
-
-compiled_rewrites = None
-
-def log(s):
-    """ Logging facility.
-    """
-    try:
-        f = open(logfile, "a")
-    except IOError:
-        print >> sys.stderr, s
-        return
-    f.write('%s\n' % s)
-    f.flush()
-    f.close()
-
-def init():
-    global compiled_rewrites
-
-    compiled_rewrites = []
-    for rewrite in rewrites:
-        regexp = re.compile(rewrite[0])
-        template = rewrite[1]
-        flags = {}
-        for flag in rewrite[2].split(','):
-            parts = flag.split('=')
-            flag = parts[0]
-            option = None
-            if flag == 'R':
-                if len(parts) > 1:
-                    option = "%s:" % parts[1]
-                else:
-                    option = '302:'
-            flags[flag] = option
-        compiled = (regexp, template, flags)
-        if debug:
-            log('compiled: %s' % str((regexp.pattern, template, flags)))
-        compiled_rewrites.append(compiled)
-    compiled_rewrites = tuple(compiled_rewrites)
-
-def rewrite(url, src_address=''):
-    """ just rewrites urls.
-    """
-
-    if debug:
-        log("args: %s" % str((url, src_address)))
-
-    newurl = None
-    for regexp, template, flags in compiled_rewrites:
-        m = regexp.match(url)
-        if m is not None and template != '-':
-            if debug:
-                log("match.groups ('%s'): %s" % (regexp.pattern, str(m.groups())))
-            url = newurl = "%s%s" % (flags.get('R', ''), m.expand(template))
-            if debug:
-                log('newurl: %s' % newurl)
-            if 'L' in flags:
-                break
-
-    if newurl is not None:
-        if debug:
-            log('finalurl: %s' % newurl)
-        return newurl
-
-    # redirect to something we can match by a squid acl
-    # this special non existing domain should be denied
-    # by squid with a http_reply_access line
-    return "http://denypool/denyme"
-
-def test_foobar_redirection():
-    assert rewrite('http://foobar.com/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://www.foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://www.foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    assert rewrite('http://www.foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
-    # shouldn't redirect, just rewrite
-    assert not rewrite('http://www.foobar.com/foo/bar').startswith('302:')
-
-def test_foobarbacon_redirection():
-    assert rewrite('http://foobar-bacon.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    assert rewrite('http://www.foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
-    # shouldn't redirect, just rewrite
-    assert not rewrite('http://www.foobar-bacon.com/foo/bar').startswith('302:')
-
-def test_virtual_hosting():
-    assert rewrite('http://www.foobar.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/foobarportal/VirtualHostRoot/foo/bar'
-    assert rewrite('http://www.foobar.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/foobarportal/VirtualHostRoot/foo/bar'
-    assert rewrite('http://www.foobar-bacon.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com/foobarbacon/VirtualHostRoot/foo/bar'
-    assert rewrite('http://www.foobar-bacon.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com:8088/foobarbacon/VirtualHostRoot/foo/bar'
-
-def test_zmi():
-    assert rewrite('http://www.foobar.com/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/VirtualHostRoot/_vh_--zmi--/foo/bar'
-    assert rewrite('http://www.foobar.com:8088/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/VirtualHostRoot/_vh_--zmi--/foo/bar'
-
-def test_repos():
-    assert rewrite('http://www.foobar.com/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
-    assert rewrite('http://www.foobar.com:8088/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
-
-if debug:
-    log("reloading user redirector module")
-init()
-if debug:
-    log("reloaded user redirector module")
-
+"""
+/**********************************************************************
+FILE     : $RCSfile: squidRewriteRules.py,v $
+PURPOSE  : Rule set for icoya redirector
+NOTES    :
+AUTHOR   : Simon Eisenmann
+COPYRIGHT: (c) 2003,2004 by struktur AG
+DATE     : 28JAN2003
+REVISION : $Revision: 1.12 $
+VERSION  : $Id: squidRewriteRules.py,v 1.12 2004/08/06 08:16:19 longsleep Exp $ (Author: $Author: longsleep $)
+
+struktur AG            Phone: +49 711 8966560
+Junghansstr. 5         Fax:   +49 711 89665610
+70469 Stuttgart        email: info@struktur.de
+GERMANY
+
+http://www.struktur.de
+http://www.strukturag.com
+
+**********************************************************************/
+
+ Reloadable module allows arbitrary url transformations.
+
+
+ Automatic reload of the rules
+ +++++++++++++++++++++++++++++++++++
+
+ NOTE: use the reload after parameter to auto reload this module
+       after x requests. Use -1 to disable auto reload
+
+
+ Logging
+ +++++++++++++++++++++++++++++++++++
+
+ NOTE: set debug to 1 to enable logging
+       define the logfile in the logfile variable (enter full path)
+
+
+"""
+import re, sys
+
+try:
+    import py
+except ImportError:
+    pass
+
+"""
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+begin of configuration
+"""
+
+# log mode (set to 1 to enable logging)
+debug = 0
+
+# logfile for debugging (only required when debug == 1)
+logfile = "/etc/squid/redirector_class.log"
+
+# set this to -1 to get best performance (no reload)
+reload_after = -1
+
+# define sitemap matching regex mapping
+
+# MODIFY THIS REWRITE RULE AS NEEDED FOR YOUR SITE
+
+rewrites = (
+  
+### HTTP SSL/encrypted webmail rewrite ### You can use this as an example for your ssl virtualhosted website
+
+<tmpl_loop name="squid_rewrite_rules">
+    (r'{tmpl_var name="rewrite_url_src"}', r'{tmpl_var name="rewrite_url_dest"}\1', 'P,L'),
+</tmpl_loop>
+
+  
+
+
+
+)
+
+
+
+"""
+end of configuration
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+"""
+
+compiled_rewrites = None
+
+def log(s):
+    """ Logging facility.
+    """
+    try:
+        f = open(logfile, "a")
+    except IOError:
+        print >> sys.stderr, s
+        return
+    f.write('%s\n' % s)
+    f.flush()
+    f.close()
+
+def init():
+    global compiled_rewrites
+
+    compiled_rewrites = []
+    for rewrite in rewrites:
+        regexp = re.compile(rewrite[0])
+        template = rewrite[1]
+        flags = {}
+        for flag in rewrite[2].split(','):
+            parts = flag.split('=')
+            flag = parts[0]
+            option = None
+            if flag == 'R':
+                if len(parts) > 1:
+                    option = "%s:" % parts[1]
+                else:
+                    option = '302:'
+            flags[flag] = option
+        compiled = (regexp, template, flags)
+        if debug:
+            log('compiled: %s' % str((regexp.pattern, template, flags)))
+        compiled_rewrites.append(compiled)
+    compiled_rewrites = tuple(compiled_rewrites)
+
+def rewrite(url, src_address=''):
+    """ just rewrites urls.
+    """
+
+    if debug:
+        log("args: %s" % str((url, src_address)))
+
+    newurl = None
+    for regexp, template, flags in compiled_rewrites:
+        m = regexp.match(url)
+        if m is not None and template != '-':
+            if debug:
+                log("match.groups ('%s'): %s" % (regexp.pattern, str(m.groups())))
+            url = newurl = "%s%s" % (flags.get('R', ''), m.expand(template))
+            if debug:
+                log('newurl: %s' % newurl)
+            if 'L' in flags:
+                break
+
+    if newurl is not None:
+        if debug:
+            log('finalurl: %s' % newurl)
+        return newurl
+
+    # redirect to something we can match by a squid acl
+    # this special non existing domain should be denied
+    # by squid with a http_reply_access line
+    return "http://denypool/denyme"
+
+def test_foobar_redirection():
+    assert rewrite('http://foobar.com/foo/bar') == '302:http://www.foobar.com/foo/bar'
+    assert rewrite('http://foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
+    assert rewrite('http://www.foobar.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
+    assert rewrite('http://foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
+    assert rewrite('http://www.foobar-portal.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
+    assert rewrite('http://foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
+    assert rewrite('http://www.foobar-portal-europe.de/foo/bar') == '302:http://www.foobar.com/foo/bar'
+    # shouldn't redirect, just rewrite
+    assert not rewrite('http://www.foobar.com/foo/bar').startswith('302:')
+
+def test_foobarbacon_redirection():
+    assert rewrite('http://foobar-bacon.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://www.foobar-bacon.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://www.foobar-bacon-europe.de/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://www.foobar-bacon-europe.com/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    assert rewrite('http://www.foobar-bacon.net/foo/bar') == '302:http://www.foobar-bacon.com/foo/bar'
+    # shouldn't redirect, just rewrite
+    assert not rewrite('http://www.foobar-bacon.com/foo/bar').startswith('302:')
+
+def test_virtual_hosting():
+    assert rewrite('http://www.foobar.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/foobarportal/VirtualHostRoot/foo/bar'
+    assert rewrite('http://www.foobar.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/foobarportal/VirtualHostRoot/foo/bar'
+    assert rewrite('http://www.foobar-bacon.com/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com/foobarbacon/VirtualHostRoot/foo/bar'
+    assert rewrite('http://www.foobar-bacon.com:8088/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar-bacon.com:8088/foobarbacon/VirtualHostRoot/foo/bar'
+
+def test_zmi():
+    assert rewrite('http://www.foobar.com/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com/VirtualHostRoot/_vh_--zmi--/foo/bar'
+    assert rewrite('http://www.foobar.com:8088/--zmi--/foo/bar') == 'http://backendpool/VirtualHostBase/http/www.foobar.com:8088/VirtualHostRoot/_vh_--zmi--/foo/bar'
+
+def test_repos():
+    assert rewrite('http://www.foobar.com/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
+    assert rewrite('http://www.foobar.com:8088/--repos--/foo/bar') == 'http://localhost/--repos--/foo/bar'
+
+if debug:
+    log("reloading user redirector module")
+init()
+if debug:
+    log("reloaded user redirector module")
+
diff --git a/server/conf/ufw.before.rules.master b/server/conf/ufw.before.rules.master
index ab45171..613e525 100644
--- a/server/conf/ufw.before.rules.master
+++ b/server/conf/ufw.before.rules.master
@@ -1,78 +1,78 @@
-#
-# rules.before
-#
-# Rules that should be run before the ufw command line added rules. Custom
-# rules should be added to one of these chains:
-#   ufw-before-input
-#   ufw-before-output
-#   ufw-before-forward
-#
-
-# Don't delete these required lines, otherwise there will be errors
-*filter
-:ufw-before-input - [0:0]
-:ufw-before-output - [0:0]
-:ufw-before-forward - [0:0]
-:ufw-not-local - [0:0]
-# End required lines
-
-
-# allow all on loopback
--A ufw-before-input -i lo -j ACCEPT
--A ufw-before-output -o lo -j ACCEPT
-
-# connection tracking rules
--A ufw-before-input -m state --state RELATED,ESTABLISHED -j ACCEPT
-
-# drop INVALID packets (logs these in loglevel medium and higher)
--A ufw-before-input -m state --state INVALID -j ufw-logging-deny
--A ufw-before-input -m state --state INVALID -j DROP
-
-# connection tracking for outbound
--A ufw-before-output -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
--A ufw-before-output -p udp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-
-# ok icmp codes
--A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
--A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
--A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
--A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
--A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
-
-# allow dhcp client to work
--A ufw-before-input -p udp --sport 67 --dport 68 -j ACCEPT
-
-#
-# ufw-not-local
-#
--A ufw-before-input -j ufw-not-local
-
-# if LOCAL, RETURN
--A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-
-# if MULTICAST, RETURN
--A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-
-# if BROADCAST, RETURN
--A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-
-# all other non-local packets are dropped
--A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
--A ufw-not-local -j DROP
-
-# allow MULTICAST, be sure the MULTICAST line above is uncommented
--A ufw-before-input -s 224.0.0.0/4 -j ACCEPT
--A ufw-before-input -d 224.0.0.0/4 -j ACCEPT
-
-COMMIT
-
-# nat Table rules
-*nat
-:POSTROUTING ACCEPT [0:0]
-
--A POSTROUTING -s 192.168.5.2/24 -o eth0 -j SNAT --to 192.168.5.105
-
--A PREROUTING -p tcp -d 192.168.5.105 --dport 80 -i eth0 -j DNAT --to-destination 192.168.5.200:80 
-
-# don't delete the 'COMMIT' line or these rules won't be processed
-COMMIT
+#
+# rules.before
+#
+# Rules that should be run before the ufw command line added rules. Custom
+# rules should be added to one of these chains:
+#   ufw-before-input
+#   ufw-before-output
+#   ufw-before-forward
+#
+
+# Don't delete these required lines, otherwise there will be errors
+*filter
+:ufw-before-input - [0:0]
+:ufw-before-output - [0:0]
+:ufw-before-forward - [0:0]
+:ufw-not-local - [0:0]
+# End required lines
+
+
+# allow all on loopback
+-A ufw-before-input -i lo -j ACCEPT
+-A ufw-before-output -o lo -j ACCEPT
+
+# connection tracking rules
+-A ufw-before-input -m state --state RELATED,ESTABLISHED -j ACCEPT
+
+# drop INVALID packets (logs these in loglevel medium and higher)
+-A ufw-before-input -m state --state INVALID -j ufw-logging-deny
+-A ufw-before-input -m state --state INVALID -j DROP
+
+# connection tracking for outbound
+-A ufw-before-output -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
+-A ufw-before-output -p udp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
+
+# ok icmp codes
+-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
+-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
+-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
+-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
+-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
+
+# allow dhcp client to work
+-A ufw-before-input -p udp --sport 67 --dport 68 -j ACCEPT
+
+#
+# ufw-not-local
+#
+-A ufw-before-input -j ufw-not-local
+
+# if LOCAL, RETURN
+-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
+
+# if MULTICAST, RETURN
+-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
+
+# if BROADCAST, RETURN
+-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
+
+# all other non-local packets are dropped
+-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
+-A ufw-not-local -j DROP
+
+# allow MULTICAST, be sure the MULTICAST line above is uncommented
+-A ufw-before-input -s 224.0.0.0/4 -j ACCEPT
+-A ufw-before-input -d 224.0.0.0/4 -j ACCEPT
+
+COMMIT
+
+# nat Table rules
+*nat
+:POSTROUTING ACCEPT [0:0]
+
+-A POSTROUTING -s 192.168.5.2/24 -o eth0 -j SNAT --to 192.168.5.105
+
+-A PREROUTING -p tcp -d 192.168.5.105 --dport 80 -i eth0 -j DNAT --to-destination 192.168.5.200:80 
+
+# don't delete the 'COMMIT' line or these rules won't be processed
+COMMIT
diff --git a/server/conf/ufw.conf.master b/server/conf/ufw.conf.master
index 7870d63..a3710d7 100644
--- a/server/conf/ufw.conf.master
+++ b/server/conf/ufw.conf.master
@@ -1,8 +1,8 @@
-# /etc/ufw/ufw.conf
-# 
-
-# set to yes to start on boot
-ENABLED={tmpl_var name='enable'}
-
-# set to one of 'off', 'low', 'medium', 'high'
-LOGLEVEL={tmpl_var name='log_level'}
+# /etc/ufw/ufw.conf
+# 
+
+# set to yes to start on boot
+ENABLED={tmpl_var name='enable'}
+
+# set to one of 'off', 'low', 'medium', 'high'
+LOGLEVEL={tmpl_var name='log_level'}
diff --git a/server/conf/ufw.default.master b/server/conf/ufw.default.master
index 6a20500..2deb421 100644
--- a/server/conf/ufw.default.master
+++ b/server/conf/ufw.default.master
@@ -1,39 +1,39 @@
-# /etc/default/ufw
-# 
-
-# set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
-# accepted). You will need to 'disable' and then 'enable' the firewall for
-# the changes to take affect.
-IPV6={tmpl_var name='ipv6'}
-
-# set the default input policy to ACCEPT, DROP or REJECT.  Please note that if
-# you change this you will most likely want to adjust your rules
-DEFAULT_INPUT_POLICY="{tmpl_var name='default_input_policy'}"
-
-# set the default output policy to ACCEPT, DROP, or REJECT.  Please note that
-# if you change this you will most likely want to adjust your rules
-DEFAULT_OUTPUT_POLICY="{tmpl_var name='default_output_policy'}T"
-
-# set the default forward policy to ACCEPT, DROP or REJECT.  Please note that
-# if you change this you will most likely want to adjust your rules
-DEFAULT_FORWARD_POLICY="{tmpl_var name='default_forward_policy'}"
-
-# set the default application policy to ACCEPT, DROP, REJECT or SKIP. Please
-# note that setting this to ACCEPT may be a security risk. See 'man ufw' for
-# details
-DEFAULT_APPLICATION_POLICY="{tmpl_var name='default_application_policy'}"
-
-# By default, ufw only touches its own chains. Set this to 'yes' to have ufw
-# manage the built-in chains too. Warning: setting this to 'yes' will break
-# non-ufw managed firewall rules
-MANAGE_BUILTINS={tmpl_var name='manage_builtins'}
-
-#
-# IPT backend
-#
-# only enable if using iptables backend
-IPT_SYSCTL=/etc/ufw/sysctl.conf
-
-# extra connection tracking modules to load
-IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc"
-
+# /etc/default/ufw
+# 
+
+# set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
+# accepted). You will need to 'disable' and then 'enable' the firewall for
+# the changes to take affect.
+IPV6={tmpl_var name='ipv6'}
+
+# set the default input policy to ACCEPT, DROP or REJECT.  Please note that if
+# you change this you will most likely want to adjust your rules
+DEFAULT_INPUT_POLICY="{tmpl_var name='default_input_policy'}"
+
+# set the default output policy to ACCEPT, DROP, or REJECT.  Please note that
+# if you change this you will most likely want to adjust your rules
+DEFAULT_OUTPUT_POLICY="{tmpl_var name='default_output_policy'}T"
+
+# set the default forward policy to ACCEPT, DROP or REJECT.  Please note that
+# if you change this you will most likely want to adjust your rules
+DEFAULT_FORWARD_POLICY="{tmpl_var name='default_forward_policy'}"
+
+# set the default application policy to ACCEPT, DROP, REJECT or SKIP. Please
+# note that setting this to ACCEPT may be a security risk. See 'man ufw' for
+# details
+DEFAULT_APPLICATION_POLICY="{tmpl_var name='default_application_policy'}"
+
+# By default, ufw only touches its own chains. Set this to 'yes' to have ufw
+# manage the built-in chains too. Warning: setting this to 'yes' will break
+# non-ufw managed firewall rules
+MANAGE_BUILTINS={tmpl_var name='manage_builtins'}
+
+#
+# IPT backend
+#
+# only enable if using iptables backend
+IPT_SYSCTL=/etc/ufw/sysctl.conf
+
+# extra connection tracking modules to load
+IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc"
+
diff --git a/server/mods-available/remoteaction_core_module.inc.php b/server/mods-available/remoteaction_core_module.inc.php
index b112e8c..6bf3ad3 100644
--- a/server/mods-available/remoteaction_core_module.inc.php
+++ b/server/mods-available/remoteaction_core_module.inc.php
@@ -1,207 +1,207 @@
-<?php
-/*
-Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
-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 remoteaction_core_module {
-	var $module_name = 'remoteaction_core_module';
-	var $class_name = 'remoteaction_core_module';
-	/* No actions at this time. maybe later... */
-	var $actions_available = array();
-	//* This function is called during ispconfig installation to determine
-	//  if a symlink shall be created for this plugin.
-	function onInstall() {
-		return true;
-	}
-
-	/*
-        This function is called when the module is loaded
-	*/
-	function onLoad() {
-		/*
-       	 * Check for actions to execute
-		*/
-		$this->_execActions();
-	}
-
-	/*
-     This function is called when a change in one of the registered tables is detected.
-     The function then raises the events for the plugins.
-	*/
-	function process($tablename, $action, $data) {
-		// not needed
-	} // end function
-
-	private function _actionDone($id, $state) {
-		/*
-		 * First set the state
-		 */
-		global $app;
-		$sql = "UPDATE sys_remoteaction " .
-				"SET action_state = '" . $app->dbmaster->quote($state) . "' " .
-				"WHERE action_id = " . intval($id);
-		$app->dbmaster->query($sql);
-
-		/*
-		 * Then save the maxid for the next time...
-		 */
-		$fp = fopen(dirname(__FILE__) .  "/../lib/remote_action.inc.php", 'wb');
-		$content = '<?php' . "\n" . '$maxid_remote_action = ' . $id . ';' . "\n?>";
-		fwrite($fp, $content);
-		fclose($fp);
-	}
-
-
-	/**
-	 * This method searches for scheduled actions and exec then
-	 */
-	private function _execActions() {
-		global $app;
-		global $conf;
-
-		/* the id of the server as int */
-		$server_id = intval($conf["server_id"]);
-
-		/*
-		 * First we (till and i, oliver) thought, it was enough to write
-		 * "select from where action_status = 'pending'" and then execute this actions.
-		 * But it is not!
-		 * If a hacker can hack into a server, she can change the valus of action_status
-		 * and so re-exec a action, executed some days bevore. So she can (for example)
-		 * stop a service, a admin stopped some days before! To avoid this, we ignore
-		 * the status (it is only for the interface to show) and use our own maxid
-		*/
-		include_once (dirname(__FILE__) .  "/../lib/remote_action.inc.php");
-
-		/*
-		 * Get all actions this server should execute
-		*/
-		$sql = "SELECT action_id, action_type, action_param " .
-				"FROM sys_remoteaction " .
-				"WHERE server_id = " . $server_id . " ".
-				" AND  action_id > " . intval($maxid_remote_action) . " ".
-				"ORDER BY action_id";
-		$actions = $app->dbmaster->queryAllRecords($sql);
-
-		/*
-		 * process all actions
-		*/
-		if(is_array($actions)) {
-			foreach ($actions as $action) {
-				if ($action['action_type'] == 'os_update') {
-					/* do the update */
-					$this->_doOsUpdate($action);
-					/* this action takes so much time,
-					* we stop executing the actions not to waste more time */
-					return;
-				}
-				if ($action['action_type'] == 'ispc_update') {
-					/* do the update */
-					$this->_doIspCUpdate($action);
-					/* this action takes so much time,
-					* we stop executing the actions not to waste more time */
-					return;
-				}
-			}
-		}
-	}
-
-	private function _doOsUpdate($action) {
-		/*
-		 * Do the update
-		 */
-		exec("aptitude update");
-		exec("aptitude safe-upgrade -y");
-
-		//TODO : change this when distribution information has been integrated into server record
-		if(file_exists('/etc/gentoo-release')) {
-			exec("glsa-check -f --nocolor affected");
-		}
-		else {
-			exec("aptitude update");
-			exec("aptitude safe-upgrade -y");
-		}
-		
-		/*
-		 * All well done!
-		 */
-		$this->_actionDone($action['action_id'], 'ok');
-	}
-
-	private function _doIspCUpdate($action) {
-		
-		// Ensure that this code is not executed twice as this would cause a loop in case of a failure
-		$this->_actionDone($action['action_id'], 'ok');
-		
-		/*
-		 * Get the version-number of the newest version 
-		 */
-		$new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt');
-		$new_version = trim($new_version);
-
-		/*
-		 * Do the update
-		 */
-
-		/* jump into the temporary dir */
-		$oldDir = getcwd();
-		chdir("/tmp");
-
-		/* delete the old files (if there are any...) */
-		exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz");
-		exec("rm /tmp/ispconfig3_install -R");
-		
-		/* get the newest version */
-		exec("wget http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz");
-		
-		/* extract the files */
-		exec("tar xvfz ISPConfig-" . $new_version . ".tar.gz");
-
-		/*
-		 * Initialize the automated update
-		 * (the update is then done next start of server.sh
-		 */
-		chdir("/tmp/ispconfig3_install/install");
-		exec("touch autoupdate");
-		
-		/*
-		 * do some clean-up
-		 */
-		exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz");
-
-		/*
-		 * go back to the "old path"
-		 */
-		chdir($oldDir);
-
-		/*
-		 * All well done!
-		 */
-		//$this->_actionDone($action['action_id'], 'ok');
-	}
-}
+<?php
+/*
+Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+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 remoteaction_core_module {
+	var $module_name = 'remoteaction_core_module';
+	var $class_name = 'remoteaction_core_module';
+	/* No actions at this time. maybe later... */
+	var $actions_available = array();
+	//* This function is called during ispconfig installation to determine
+	//  if a symlink shall be created for this plugin.
+	function onInstall() {
+		return true;
+	}
+
+	/*
+        This function is called when the module is loaded
+	*/
+	function onLoad() {
+		/*
+       	 * Check for actions to execute
+		*/
+		$this->_execActions();
+	}
+
+	/*
+     This function is called when a change in one of the registered tables is detected.
+     The function then raises the events for the plugins.
+	*/
+	function process($tablename, $action, $data) {
+		// not needed
+	} // end function
+
+	private function _actionDone($id, $state) {
+		/*
+		 * First set the state
+		 */
+		global $app;
+		$sql = "UPDATE sys_remoteaction " .
+				"SET action_state = '" . $app->dbmaster->quote($state) . "' " .
+				"WHERE action_id = " . intval($id);
+		$app->dbmaster->query($sql);
+
+		/*
+		 * Then save the maxid for the next time...
+		 */
+		$fp = fopen(dirname(__FILE__) .  "/../lib/remote_action.inc.php", 'wb');
+		$content = '<?php' . "\n" . '$maxid_remote_action = ' . $id . ';' . "\n?>";
+		fwrite($fp, $content);
+		fclose($fp);
+	}
+
+
+	/**
+	 * This method searches for scheduled actions and exec then
+	 */
+	private function _execActions() {
+		global $app;
+		global $conf;
+
+		/* the id of the server as int */
+		$server_id = intval($conf["server_id"]);
+
+		/*
+		 * First we (till and i, oliver) thought, it was enough to write
+		 * "select from where action_status = 'pending'" and then execute this actions.
+		 * But it is not!
+		 * If a hacker can hack into a server, she can change the valus of action_status
+		 * and so re-exec a action, executed some days bevore. So she can (for example)
+		 * stop a service, a admin stopped some days before! To avoid this, we ignore
+		 * the status (it is only for the interface to show) and use our own maxid
+		*/
+		include_once (dirname(__FILE__) .  "/../lib/remote_action.inc.php");
+
+		/*
+		 * Get all actions this server should execute
+		*/
+		$sql = "SELECT action_id, action_type, action_param " .
+				"FROM sys_remoteaction " .
+				"WHERE server_id = " . $server_id . " ".
+				" AND  action_id > " . intval($maxid_remote_action) . " ".
+				"ORDER BY action_id";
+		$actions = $app->dbmaster->queryAllRecords($sql);
+
+		/*
+		 * process all actions
+		*/
+		if(is_array($actions)) {
+			foreach ($actions as $action) {
+				if ($action['action_type'] == 'os_update') {
+					/* do the update */
+					$this->_doOsUpdate($action);
+					/* this action takes so much time,
+					* we stop executing the actions not to waste more time */
+					return;
+				}
+				if ($action['action_type'] == 'ispc_update') {
+					/* do the update */
+					$this->_doIspCUpdate($action);
+					/* this action takes so much time,
+					* we stop executing the actions not to waste more time */
+					return;
+				}
+			}
+		}
+	}
+
+	private function _doOsUpdate($action) {
+		/*
+		 * Do the update
+		 */
+		exec("aptitude update");
+		exec("aptitude safe-upgrade -y");
+
+		//TODO : change this when distribution information has been integrated into server record
+		if(file_exists('/etc/gentoo-release')) {
+			exec("glsa-check -f --nocolor affected");
+		}
+		else {
+			exec("aptitude update");
+			exec("aptitude safe-upgrade -y");
+		}
+		
+		/*
+		 * All well done!
+		 */
+		$this->_actionDone($action['action_id'], 'ok');
+	}
+
+	private function _doIspCUpdate($action) {
+		
+		// Ensure that this code is not executed twice as this would cause a loop in case of a failure
+		$this->_actionDone($action['action_id'], 'ok');
+		
+		/*
+		 * Get the version-number of the newest version 
+		 */
+		$new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt');
+		$new_version = trim($new_version);
+
+		/*
+		 * Do the update
+		 */
+
+		/* jump into the temporary dir */
+		$oldDir = getcwd();
+		chdir("/tmp");
+
+		/* delete the old files (if there are any...) */
+		exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz");
+		exec("rm /tmp/ispconfig3_install -R");
+		
+		/* get the newest version */
+		exec("wget http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz");
+		
+		/* extract the files */
+		exec("tar xvfz ISPConfig-" . $new_version . ".tar.gz");
+
+		/*
+		 * Initialize the automated update
+		 * (the update is then done next start of server.sh
+		 */
+		chdir("/tmp/ispconfig3_install/install");
+		exec("touch autoupdate");
+		
+		/*
+		 * do some clean-up
+		 */
+		exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz");
+
+		/*
+		 * go back to the "old path"
+		 */
+		chdir($oldDir);
+
+		/*
+		 * All well done!
+		 */
+		//$this->_actionDone($action['action_id'], 'ok');
+	}
+}
 ?>
\ No newline at end of file
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index a200daf..7016ad1 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1,368 +1,368 @@
-<?php
-
-class nginx_plugin {
-
-	var $plugin_name = 'nginx_plugin';
-	var $class_name = 'nginx_plugin';
-
-	// private variables
-	var $action = '';
-
-	//* This function is called during ispconfig installation to determine
-	//  if a symlink shall be created for this plugin.
-	function onInstall() {
-		global $conf;
-
-		if($conf['services']['proxy'] == true && $conf['nginx']['installed'] == true) {
-			return true;
-		} else {
-			return false;
-		}
-
-	}
-
-
-	/*
-	 	This function is called when the plugin is loaded
-	*/
-
-	function onLoad() {
-		global $app;
-
-		/*
-		Register for the events
-		*/
-		
-		$app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'ssl');
-		$app->plugins->registerEvent('web_domain_update',$this->plugin_name,'ssl');
-		$app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'ssl');
-
-		$app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert');
-		$app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update');
-		$app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete');
-		
-	//	$app->plugins->registerEvent('proxy_reverse_insert',$this->plugin_name,'rewrite_insert');
-	//	$app->plugins->registerEvent('proxy_reverse_update',$this->plugin_name,'rewrite_update');
-	//	$app->plugins->registerEvent('proxy_reverse_delete',$this->plugin_name,'rewrite_delete');
-	
-
-
-	}
-	
-	
-	function insert($event_name,$data) {
-		global $app, $conf;
-	
-		// just run the update function
-		$this->update($event_name,$data);
-	}
-	
-	
-	function update($event_name,$data) {
-		global $app, $conf;
-
-		if($this->action != 'insert') $this->action = 'update';
-
-		if($data['new']['type'] != 'vhost' && $data['new']['parent_domain_id'] > 0) {
-
-			$old_parent_domain_id = intval($data['old']['parent_domain_id']);
-			$new_parent_domain_id = intval($data['new']['parent_domain_id']);
-
-			// If the parent_domain_id has been chenged, we will have to update the old site as well.
-			if($this->action == 'update' && $data['new']['parent_domain_id'] != $data['old']['parent_domain_id']) {
-				$tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$old_parent_domain_id." AND active = 'y'");
-				$data['new'] = $tmp;
-				$data['old'] = $tmp;
-				$this->action = 'update';
-				$this->update($event_name,$data);
-			}
-
-			// This is not a vhost, so we need to update the parent record instead.
-			$tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$new_parent_domain_id." AND active = 'y'");
-			$data['new'] = $tmp;
-			$data['old'] = $tmp;
-			$this->action = 'update';
-		}
-		
-		
-		
-		
-		// load the server configuration options
-		$app->uses('getconf');
-		$nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx');
-
-		// Create group and user, if not exist
-		$app->uses('system');
-
-		//* Create the vhost config file
-		$app->load('tpl');
-
-		$tpl = new tpl();
-		$tpl->newTemplate('nginx_vhost.conf.master');
-
-		$vhost_data = $data['new'];
-		$vhost_data['config_dir'] = $config['nginx']['config_dir'];
-	
-		$vhost_data['ssl_domain'] = $data['new']['ssl_domain'];
-		// Check if a SSL cert exists
-		$ssl_dir = $config['nginx']['config_dir'].'/ssl';
-		$domain = $data['new']['ssl_domain'];
-		$key_file = $ssl_dir.'/'.$domain.'.key';
-		$crt_file = $ssl_dir.'/'.$domain.'.crt';
-		$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
-
-        $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']);
-
-
-		if($data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file)) {
-			$vhost_data['ssl_enabled'] = 1;
-			$app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG);
-		} else {
-			$vhost_data['ssl_enabled'] = 0;
-			$app->log('Disable SSL for: '.$domain,LOGLEVEL_DEBUG);
-		}
-
-		if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1;
-
-
-		$tpl->setVar($vhost_data);
-
-		
-
-		// get alias domains (co-domains and subdomains)
-		$aliases = $app->dbmaster->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y'");
-		$server_alias = array();
-		switch($data['new']['subdomain']) {
-			case 'www':
-				$server_alias[] .= 'www.'.$data['new']['domain'].' ';
-				break;
-			case '*':
-				$server_alias[] .= '*.'.$data['new']['domain'].' ';
-				break;
-		}
-		if(is_array($aliases)) {
-			foreach($aliases as $alias) {
-				switch($alias['subdomain']) {
-					case 'www':
-						$server_alias[] .= 'www.'.$alias['domain'].' '.$alias['domain'].' ';
-						break;
-					case '*':
-						$server_alias[] .= '*.'.$alias['domain'].' '.$alias['domain'].' ';
-						break;
-					default:
-						$server_alias[] .= $alias['domain'].' ';
-						break;
-				}
-				$app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG);
-				
-			}
-		}
-
-		//* If we have some alias records
-		if(count($server_alias) > 0) {
-			$server_alias_str = '';
-			$n = 0;
-
-			// begin a new ServerAlias line after 30 alias domains
-			foreach($server_alias as $tmp_alias) {
-				if($n % 30 == 0) $server_alias_str .= " ";
-				$server_alias_str .= $tmp_alias;
-			}
-			unset($tmp_alias);
-
-			$tpl->setVar('alias',trim($server_alias_str));
-		} else {
-			$tpl->setVar('alias','');
-		}
-		
-
-		$vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost');
-		//* Make a backup copy of vhost file
-		copy($vhost_file,$vhost_file.'~');
-		
-		//* Write vhost file
-		file_put_contents($vhost_file,$tpl->grab());
-		$app->log('Writing the vhost file: '.$vhost_file,LOGLEVEL_DEBUG);
-		unset($tpl);
-
-
-		// Set the symlink to enable the vhost
-		$vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost');
-		if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) {
-			symlink($vhost_file,$vhost_symlink);
-			$app->log('Creating symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
-		}
-
-		// Remove the symlink, if site is inactive
-		if($data['new']['active'] == 'n' && is_link($vhost_symlink)) {
-			unlink($vhost_symlink);
-			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
-		}
-		
-		if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/nginx/'.$data['new']['domain']);
-
-		// remove old symlink and vhost file, if domain name of the site has changed
-		if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) {
-			$vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
-			unlink($vhost_symlink);
-			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
-			$vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost');
-			unlink($vhost_file);
-			$app->log('Removing file: '.$vhost_file,LOGLEVEL_DEBUG);
-			
-			if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/nginx/'.$data['old']['domain']);
-		}
-		
-		// request a httpd reload when all records have been processed
-		$app->services->restartServiceDelayed('nginx','restart');
-			
-		// Remove the backup copy of the config file.
-		if(@is_file($vhost_file.'~')) unlink($vhost_file.'~');
-		
-
-		//* Unset action to clean it for next processed vhost.
-		$this->action = '';
-
-	}
-	
-	
-	
-
-	// Handle the creation of SSL certificates
-	function ssl($event_name,$data) {
-		global $app, $conf;
-
-		if(!is_dir($conf['nginx']['config_dir'].'/ssl')) exec('mkdir -p '.$conf['nginx']['config_dir'].'/ssl');
-		$ssl_dir = $conf['nginx']['config_dir'].'/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';
-
-		
-		//* Save a SSL certificate to disk
-		if($data["new"]["ssl_action"] == 'save') {
-			$web = $app->masterdb->queryOneRecord("select wd.document_root, sp.ip_address from web_domain wd INNER JOIN server_ip sp USING(server_id) WHERE domain = '".$data['new']['domain']."'");
-			
-			$src_ssl_dir = $web["document_root"]."/ssl";
-			//$domain = $data["new"]["ssl_domain"];
-			//$csr_file = $ssl_dir.'/'.$domain.".csr";
-			//$crt_file = $ssl_dir.'/'.$domain.".crt";
-			//$bundle_file = $ssl_dir.'/'.$domain.".bundle";
-			$this->_exec('rsync -v -e ssh root@'.$web['ip_address'].':~/$src_ssl_dir '.$ssl_dir);
-			
-			$app->log('Syncing SSL Cert for: '.$domain,LOGLEVEL_DEBUG);
-		}
-
-		//* Delete a SSL certificate
-		if($data['new']['ssl_action'] == 'del') {
-			//$ssl_dir = $data['new']['document_root'].'/ssl';
-			$domain = $data['new']['ssl_domain'];
-			$csr_file = $ssl_dir.'/'.$domain.'.csr';
-			$crt_file = $ssl_dir.'/'.$domain.'.crt';
-			$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
-			unlink($csr_file);
-			unlink($crt_file);
-			unlink($bundle_file);
-			$app->log('Deleting SSL Cert for: '.$domain,LOGLEVEL_DEBUG);
-		}
-
-
-	}
-
-
-	function delete($event_name,$data) {
-		global $app, $conf;
-
-		// load the server configuration options
-		$app->uses('getconf');
-		$nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx');
-
-
-		if($data['old']['type'] == 'vhost') {
-
-			//* This is a website
-			// Deleting the vhost file, symlink and the data directory
-			$vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
-			unlink($vhost_symlink);
-			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
-
-			$vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost');
-			unlink($vhost_file);
-			$app->log('Removing vhost file: '.$vhost_file,LOGLEVEL_DEBUG);
-			
-			
-
-			// Delete the log file directory
-			$vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/nginx/'.$data['old']['domain']);
-			if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir,'..')) exec('rm -rf '.$vhost_logfile_dir);
-			$app->log('Removing website logfile directory: '.$vhost_logfile_dir,LOGLEVEL_DEBUG);
-
-		}
-	}
-	
-	//* Wrapper for exec function for easier debugging
-	private function _exec($command) {
-		global $app;
-		$app->log('exec: '.$command,LOGLEVEL_DEBUG);
-		exec($command);
-	}
-	
-	function rewrite_insert($event_name,$data) {
-		global $app, $conf;
-
-		// just run the update function
-		$this->update($event_name,$data);
-	}
-	
-	function rewrite_update($event_name,$data) {
-		global $app, $conf;
-		
-		$rules = $this->_getRewriteRules($app);
-		
-		$app->uses('getconf');
-		$nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx');
-		
-		$app->load('tpl');
-		$tpl = new tpl();
-		$tpl->newTemplate("nginx-rewrites.conf.master");
-		if (!empty($rules))$tpl->setLoop('nginx_rewrite_rules',$rules);
-		
-		$rewrites_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/default.rewrites.conf');
-		//* Make a backup copy of vhost file
-		copy($rewrites_file,$rewrites_file.'~');
-		
-		//* Write vhost file
-		file_put_contents($rewrites_file,$tpl->grab());
-		$app->log('Writing the nginx rewrites file: '.$rewrites_file,LOGLEVEL_DEBUG);
-		unset($tpl);
-
-
-		// Set the symlink to enable the vhost
-		$rewrite_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/default.rewrites.conf');
-		
-		if(!is_link($rewrite_symlink)) {
-			symlink($rewrites_file,$rewrite_symlink);
-			$app->log('Creating symlink for nginx rewrites: '.$rewrite_symlink.'->'.$rewrites_file,LOGLEVEL_DEBUG);
-		}	
-	}
-	
-	function rewrite_delete($event_name,$data) {
-		global $app, $conf;
-		
-		// just run the update function
-		$this->rewrite_update($event_name,$data);	
-	}
-	
-
-	function _getRewriteRules($app)
-	{
-		$rules = array();
-		$rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dst FROM proxy_reverse ORDER BY rewrite_id ASC");		
-		return $rules;
-	}
-
-} // end class
-
-?>
+<?php
+
+class nginx_plugin {
+
+	var $plugin_name = 'nginx_plugin';
+	var $class_name = 'nginx_plugin';
+
+	// private variables
+	var $action = '';
+
+	//* This function is called during ispconfig installation to determine
+	//  if a symlink shall be created for this plugin.
+	function onInstall() {
+		global $conf;
+
+		if($conf['services']['proxy'] == true && $conf['nginx']['installed'] == true) {
+			return true;
+		} else {
+			return false;
+		}
+
+	}
+
+
+	/*
+	 	This function is called when the plugin is loaded
+	*/
+
+	function onLoad() {
+		global $app;
+
+		/*
+		Register for the events
+		*/
+		
+		$app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'ssl');
+		$app->plugins->registerEvent('web_domain_update',$this->plugin_name,'ssl');
+		$app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'ssl');
+
+		$app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert');
+		$app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update');
+		$app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete');
+		
+	//	$app->plugins->registerEvent('proxy_reverse_insert',$this->plugin_name,'rewrite_insert');
+	//	$app->plugins->registerEvent('proxy_reverse_update',$this->plugin_name,'rewrite_update');
+	//	$app->plugins->registerEvent('proxy_reverse_delete',$this->plugin_name,'rewrite_delete');
+	
+
+
+	}
+	
+	
+	function insert($event_name,$data) {
+		global $app, $conf;
+	
+		// just run the update function
+		$this->update($event_name,$data);
+	}
+	
+	
+	function update($event_name,$data) {
+		global $app, $conf;
+
+		if($this->action != 'insert') $this->action = 'update';
+
+		if($data['new']['type'] != 'vhost' && $data['new']['parent_domain_id'] > 0) {
+
+			$old_parent_domain_id = intval($data['old']['parent_domain_id']);
+			$new_parent_domain_id = intval($data['new']['parent_domain_id']);
+
+			// If the parent_domain_id has been chenged, we will have to update the old site as well.
+			if($this->action == 'update' && $data['new']['parent_domain_id'] != $data['old']['parent_domain_id']) {
+				$tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$old_parent_domain_id." AND active = 'y'");
+				$data['new'] = $tmp;
+				$data['old'] = $tmp;
+				$this->action = 'update';
+				$this->update($event_name,$data);
+			}
+
+			// This is not a vhost, so we need to update the parent record instead.
+			$tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$new_parent_domain_id." AND active = 'y'");
+			$data['new'] = $tmp;
+			$data['old'] = $tmp;
+			$this->action = 'update';
+		}
+		
+		
+		
+		
+		// load the server configuration options
+		$app->uses('getconf');
+		$nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx');
+
+		// Create group and user, if not exist
+		$app->uses('system');
+
+		//* Create the vhost config file
+		$app->load('tpl');
+
+		$tpl = new tpl();
+		$tpl->newTemplate('nginx_vhost.conf.master');
+
+		$vhost_data = $data['new'];
+		$vhost_data['config_dir'] = $config['nginx']['config_dir'];
+	
+		$vhost_data['ssl_domain'] = $data['new']['ssl_domain'];
+		// Check if a SSL cert exists
+		$ssl_dir = $config['nginx']['config_dir'].'/ssl';
+		$domain = $data['new']['ssl_domain'];
+		$key_file = $ssl_dir.'/'.$domain.'.key';
+		$crt_file = $ssl_dir.'/'.$domain.'.crt';
+		$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
+
+        $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']);
+
+
+		if($data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file)) {
+			$vhost_data['ssl_enabled'] = 1;
+			$app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG);
+		} else {
+			$vhost_data['ssl_enabled'] = 0;
+			$app->log('Disable SSL for: '.$domain,LOGLEVEL_DEBUG);
+		}
+
+		if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1;
+
+
+		$tpl->setVar($vhost_data);
+
+		
+
+		// get alias domains (co-domains and subdomains)
+		$aliases = $app->dbmaster->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y'");
+		$server_alias = array();
+		switch($data['new']['subdomain']) {
+			case 'www':
+				$server_alias[] .= 'www.'.$data['new']['domain'].' ';
+				break;
+			case '*':
+				$server_alias[] .= '*.'.$data['new']['domain'].' ';
+				break;
+		}
+		if(is_array($aliases)) {
+			foreach($aliases as $alias) {
+				switch($alias['subdomain']) {
+					case 'www':
+						$server_alias[] .= 'www.'.$alias['domain'].' '.$alias['domain'].' ';
+						break;
+					case '*':
+						$server_alias[] .= '*.'.$alias['domain'].' '.$alias['domain'].' ';
+						break;
+					default:
+						$server_alias[] .= $alias['domain'].' ';
+						break;
+				}
+				$app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG);
+				
+			}
+		}
+
+		//* If we have some alias records
+		if(count($server_alias) > 0) {
+			$server_alias_str = '';
+			$n = 0;
+
+			// begin a new ServerAlias line after 30 alias domains
+			foreach($server_alias as $tmp_alias) {
+				if($n % 30 == 0) $server_alias_str .= " ";
+				$server_alias_str .= $tmp_alias;
+			}
+			unset($tmp_alias);
+
+			$tpl->setVar('alias',trim($server_alias_str));
+		} else {
+			$tpl->setVar('alias','');
+		}
+		
+
+		$vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost');
+		//* Make a backup copy of vhost file
+		copy($vhost_file,$vhost_file.'~');
+		
+		//* Write vhost file
+		file_put_contents($vhost_file,$tpl->grab());
+		$app->log('Writing the vhost file: '.$vhost_file,LOGLEVEL_DEBUG);
+		unset($tpl);
+
+
+		// Set the symlink to enable the vhost
+		$vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost');
+		if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) {
+			symlink($vhost_file,$vhost_symlink);
+			$app->log('Creating symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+		}
+
+		// Remove the symlink, if site is inactive
+		if($data['new']['active'] == 'n' && is_link($vhost_symlink)) {
+			unlink($vhost_symlink);
+			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+		}
+		
+		if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/nginx/'.$data['new']['domain']);
+
+		// remove old symlink and vhost file, if domain name of the site has changed
+		if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) {
+			$vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
+			unlink($vhost_symlink);
+			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+			$vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost');
+			unlink($vhost_file);
+			$app->log('Removing file: '.$vhost_file,LOGLEVEL_DEBUG);
+			
+			if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/nginx/'.$data['old']['domain']);
+		}
+		
+		// request a httpd reload when all records have been processed
+		$app->services->restartServiceDelayed('nginx','restart');
+			
+		// Remove the backup copy of the config file.
+		if(@is_file($vhost_file.'~')) unlink($vhost_file.'~');
+		
+
+		//* Unset action to clean it for next processed vhost.
+		$this->action = '';
+
+	}
+	
+	
+	
+
+	// Handle the creation of SSL certificates
+	function ssl($event_name,$data) {
+		global $app, $conf;
+
+		if(!is_dir($conf['nginx']['config_dir'].'/ssl')) exec('mkdir -p '.$conf['nginx']['config_dir'].'/ssl');
+		$ssl_dir = $conf['nginx']['config_dir'].'/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';
+
+		
+		//* Save a SSL certificate to disk
+		if($data["new"]["ssl_action"] == 'save') {
+			$web = $app->masterdb->queryOneRecord("select wd.document_root, sp.ip_address from web_domain wd INNER JOIN server_ip sp USING(server_id) WHERE domain = '".$data['new']['domain']."'");
+			
+			$src_ssl_dir = $web["document_root"]."/ssl";
+			//$domain = $data["new"]["ssl_domain"];
+			//$csr_file = $ssl_dir.'/'.$domain.".csr";
+			//$crt_file = $ssl_dir.'/'.$domain.".crt";
+			//$bundle_file = $ssl_dir.'/'.$domain.".bundle";
+			$this->_exec('rsync -v -e ssh root@'.$web['ip_address'].':~/$src_ssl_dir '.$ssl_dir);
+			
+			$app->log('Syncing SSL Cert for: '.$domain,LOGLEVEL_DEBUG);
+		}
+
+		//* Delete a SSL certificate
+		if($data['new']['ssl_action'] == 'del') {
+			//$ssl_dir = $data['new']['document_root'].'/ssl';
+			$domain = $data['new']['ssl_domain'];
+			$csr_file = $ssl_dir.'/'.$domain.'.csr';
+			$crt_file = $ssl_dir.'/'.$domain.'.crt';
+			$bundle_file = $ssl_dir.'/'.$domain.'.bundle';
+			unlink($csr_file);
+			unlink($crt_file);
+			unlink($bundle_file);
+			$app->log('Deleting SSL Cert for: '.$domain,LOGLEVEL_DEBUG);
+		}
+
+
+	}
+
+
+	function delete($event_name,$data) {
+		global $app, $conf;
+
+		// load the server configuration options
+		$app->uses('getconf');
+		$nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx');
+
+
+		if($data['old']['type'] == 'vhost') {
+
+			//* This is a website
+			// Deleting the vhost file, symlink and the data directory
+			$vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost');
+			unlink($vhost_symlink);
+			$app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG);
+
+			$vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost');
+			unlink($vhost_file);
+			$app->log('Removing vhost file: '.$vhost_file,LOGLEVEL_DEBUG);
+			
+			
+
+			// Delete the log file directory
+			$vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/nginx/'.$data['old']['domain']);
+			if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir,'..')) exec('rm -rf '.$vhost_logfile_dir);
+			$app->log('Removing website logfile directory: '.$vhost_logfile_dir,LOGLEVEL_DEBUG);
+
+		}
+	}
+	
+	//* Wrapper for exec function for easier debugging
+	private function _exec($command) {
+		global $app;
+		$app->log('exec: '.$command,LOGLEVEL_DEBUG);
+		exec($command);
+	}
+	
+	function rewrite_insert($event_name,$data) {
+		global $app, $conf;
+
+		// just run the update function
+		$this->update($event_name,$data);
+	}
+	
+	function rewrite_update($event_name,$data) {
+		global $app, $conf;
+		
+		$rules = $this->_getRewriteRules($app);
+		
+		$app->uses('getconf');
+		$nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx');
+		
+		$app->load('tpl');
+		$tpl = new tpl();
+		$tpl->newTemplate("nginx-rewrites.conf.master");
+		if (!empty($rules))$tpl->setLoop('nginx_rewrite_rules',$rules);
+		
+		$rewrites_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/default.rewrites.conf');
+		//* Make a backup copy of vhost file
+		copy($rewrites_file,$rewrites_file.'~');
+		
+		//* Write vhost file
+		file_put_contents($rewrites_file,$tpl->grab());
+		$app->log('Writing the nginx rewrites file: '.$rewrites_file,LOGLEVEL_DEBUG);
+		unset($tpl);
+
+
+		// Set the symlink to enable the vhost
+		$rewrite_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/default.rewrites.conf');
+		
+		if(!is_link($rewrite_symlink)) {
+			symlink($rewrites_file,$rewrite_symlink);
+			$app->log('Creating symlink for nginx rewrites: '.$rewrite_symlink.'->'.$rewrites_file,LOGLEVEL_DEBUG);
+		}	
+	}
+	
+	function rewrite_delete($event_name,$data) {
+		global $app, $conf;
+		
+		// just run the update function
+		$this->rewrite_update($event_name,$data);	
+	}
+	
+
+	function _getRewriteRules($app)
+	{
+		$rules = array();
+		$rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dst FROM proxy_reverse ORDER BY rewrite_id ASC");		
+		return $rules;
+	}
+
+} // end class
+
+?>
diff --git a/server/plugins-available/squid_plugin.inc.php b/server/plugins-available/squid_plugin.inc.php
index fb667e0..f8bdefc 100644
--- a/server/plugins-available/squid_plugin.inc.php
+++ b/server/plugins-available/squid_plugin.inc.php
@@ -1,171 +1,171 @@
-<?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.
-*/
-
-class squid_plugin {
-	
-	var $plugin_name = 'squid_plugin';
-	var $class_name = 'squid_plugin';
-	
-	// private variables
-	var $action = '';
-	
-	//* This function is called during ispconfig installation to determine
-	//  if a symlink shall be created for this plugin.
-	function onInstall() {
-		global $conf;
-		
-		if($conf['services']['proxy'] == true && $conf['squid']['installed'] == true) {
-			return true;
-		} else {
-			return false;
-		}
-		
-	}
-	
-		
-	/*
-	 	This function is called when the plugin is loaded
-	*/
-	
-	function onLoad() {
-		global $app;
-		
-		/*
-		Register for the events
-		*/
-		
-		
-		$app->plugins->registerEvent('proxy_reverse_insert',$this->plugin_name,'insert');
-		$app->plugins->registerEvent('proxy_reverse_update',$this->plugin_name,'update');
-		$app->plugins->registerEvent('proxy_reverse_delete',$this->plugin_name,'delete');
-		
-		$app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert');
-		$app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update');
-		$app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete');
-		
-
-		
-	}
-	
-	
-	
-	
-	function insert($event_name,$data) {
-		global $app, $conf;
-		
-		
-		// just run the update function
-		$this->update($event_name,$data);
-		
-		
-	}
-	
-	
-	function update($event_name,$data) {
-		global $app, $conf;
-		
-		$domains = $this->_getSquidDomains($app);
-		$rules = $this->_getSquidRewriteRules($app);
-		
-		$app->load('tpl');
-		$tpl = new tpl();
-		$tpl->newTemplate("squidRewriteRules.py.master");
-		if (!empty($rules))$tpl->setLoop('squid_rewrite_rules',$rules);
-		file_put_contents('/etc/squid/squidRewriteRules.py',$tpl->grab());
-		unset($tpl);
-		$app->log('Writing squid rewrite configuration to /etc/squid/squidRewriteRules.py',LOGLEVEL_DEBUG);
-		
-		
-		$tpl = new tpl();
-		$tpl->newTemplate("domains.txt.master");
-		$tpl->setLoop('squid_domains',$domains);
-		file_put_contents('/etc/squid/domains.txt',$tpl->grab());
-		unset($tpl);
-		$app->log('Writing squid domains configuration to /etc/squid/domains.txt',LOGLEVEL_DEBUG);
-		
-		
-		// request a httpd reload when all records have been processed
-		$app->services->restartServiceDelayed('squid','restart');
-		
-	}
-	
-	function delete($event_name,$data) {
-		global $app, $conf;
-		
-		// load the server configuration options
-
-		// just run the update function
-		$this->update($event_name,$data);
-		
-	}
-	
-	function _getSquidDomains($app)
-	{
-		$records = $app->dbmaster->queryAllRecords("SELECT ds.origin, dr.name, IF(origin=name,true,false) AS isRoot FROM dns_soa ds inner join dns_rr dr ON ds.id=dr.zone WHERE ds.active='Y' AND dr.type IN ('A','CNAME') AND dr.name NOT IN ('mail','ns1')");
-		$domains = array();
-		foreach ($records as $record) {
-			
-			$origin = substr($record["origin"],0,-1);
-			if ($record["isRoot"])
-			{
-				array_push($domains, array("domain" => $origin));
-			} else {
-				array_push($domains, array("domain" => $record["name"].".".$origin));
-			}
-
-		}
-		
-		return $domains;
-		
-	}
-	
-	function _getSquidRewriteRules($app)
-	{
-		$rules = array();
-		
-		$rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dest FROM squid_reverse ORDER BY rewrite_id ASC");		
-		$web_domains = $app->db->queryAllRecords("SELECT wd.subdomain, wd.domain, si.ip_address  FROM web_domain wd INNER JOIN server s USING(server_id) INNER JOIN server_ip si USING(server_id)");
-		
-		foreach ($web_domains as $domain) {
-			if ($domain["subdomain"] == "www") {
-				array_push($rules,array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
-				array_push($rules,array("rewrite_url_src"=>"^http://".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));		
-			}  else {
-				array_push($rules,array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
-			}	
-		}
-		return $rules;
-	}
-
-	
-
-} // end class
-
-?>
+<?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.
+*/
+
+class squid_plugin {
+	
+	var $plugin_name = 'squid_plugin';
+	var $class_name = 'squid_plugin';
+	
+	// private variables
+	var $action = '';
+	
+	//* This function is called during ispconfig installation to determine
+	//  if a symlink shall be created for this plugin.
+	function onInstall() {
+		global $conf;
+		
+		if($conf['services']['proxy'] == true && $conf['squid']['installed'] == true) {
+			return true;
+		} else {
+			return false;
+		}
+		
+	}
+	
+		
+	/*
+	 	This function is called when the plugin is loaded
+	*/
+	
+	function onLoad() {
+		global $app;
+		
+		/*
+		Register for the events
+		*/
+		
+		
+		$app->plugins->registerEvent('proxy_reverse_insert',$this->plugin_name,'insert');
+		$app->plugins->registerEvent('proxy_reverse_update',$this->plugin_name,'update');
+		$app->plugins->registerEvent('proxy_reverse_delete',$this->plugin_name,'delete');
+		
+		$app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert');
+		$app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update');
+		$app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete');
+		
+
+		
+	}
+	
+	
+	
+	
+	function insert($event_name,$data) {
+		global $app, $conf;
+		
+		
+		// just run the update function
+		$this->update($event_name,$data);
+		
+		
+	}
+	
+	
+	function update($event_name,$data) {
+		global $app, $conf;
+		
+		$domains = $this->_getSquidDomains($app);
+		$rules = $this->_getSquidRewriteRules($app);
+		
+		$app->load('tpl');
+		$tpl = new tpl();
+		$tpl->newTemplate("squidRewriteRules.py.master");
+		if (!empty($rules))$tpl->setLoop('squid_rewrite_rules',$rules);
+		file_put_contents('/etc/squid/squidRewriteRules.py',$tpl->grab());
+		unset($tpl);
+		$app->log('Writing squid rewrite configuration to /etc/squid/squidRewriteRules.py',LOGLEVEL_DEBUG);
+		
+		
+		$tpl = new tpl();
+		$tpl->newTemplate("domains.txt.master");
+		$tpl->setLoop('squid_domains',$domains);
+		file_put_contents('/etc/squid/domains.txt',$tpl->grab());
+		unset($tpl);
+		$app->log('Writing squid domains configuration to /etc/squid/domains.txt',LOGLEVEL_DEBUG);
+		
+		
+		// request a httpd reload when all records have been processed
+		$app->services->restartServiceDelayed('squid','restart');
+		
+	}
+	
+	function delete($event_name,$data) {
+		global $app, $conf;
+		
+		// load the server configuration options
+
+		// just run the update function
+		$this->update($event_name,$data);
+		
+	}
+	
+	function _getSquidDomains($app)
+	{
+		$records = $app->dbmaster->queryAllRecords("SELECT ds.origin, dr.name, IF(origin=name,true,false) AS isRoot FROM dns_soa ds inner join dns_rr dr ON ds.id=dr.zone WHERE ds.active='Y' AND dr.type IN ('A','CNAME') AND dr.name NOT IN ('mail','ns1')");
+		$domains = array();
+		foreach ($records as $record) {
+			
+			$origin = substr($record["origin"],0,-1);
+			if ($record["isRoot"])
+			{
+				array_push($domains, array("domain" => $origin));
+			} else {
+				array_push($domains, array("domain" => $record["name"].".".$origin));
+			}
+
+		}
+		
+		return $domains;
+		
+	}
+	
+	function _getSquidRewriteRules($app)
+	{
+		$rules = array();
+		
+		$rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dest FROM squid_reverse ORDER BY rewrite_id ASC");		
+		$web_domains = $app->db->queryAllRecords("SELECT wd.subdomain, wd.domain, si.ip_address  FROM web_domain wd INNER JOIN server s USING(server_id) INNER JOIN server_ip si USING(server_id)");
+		
+		foreach ($web_domains as $domain) {
+			if ($domain["subdomain"] == "www") {
+				array_push($rules,array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
+				array_push($rules,array("rewrite_url_src"=>"^http://".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));		
+			}  else {
+				array_push($rules,array("rewrite_url_src"=>"^http://www.".$domain["domain"]."/(.*)","rewrite_url_dest"=>"http://".$domain["ip_address"].":80/"));
+			}	
+		}
+		return $rules;
+	}
+
+	
+
+} // end class
+
+?>
diff --git a/server/plugins-available/ufw_firewall_plugin.inc.php b/server/plugins-available/ufw_firewall_plugin.inc.php
index 4eb1e1f..be10cf6 100644
--- a/server/plugins-available/ufw_firewall_plugin.inc.php
+++ b/server/plugins-available/ufw_firewall_plugin.inc.php
@@ -1,504 +1,504 @@
-<?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.
-*/
-
-class ufw_firewall_plugin {
-	
-	var $plugin_name = 'ufw_firewall_plugin';
-	var $class_name  = 'ufw_firewall_plugin';
-	
-	//* This function is called during ispconfig installation to determine
-	//  if a symlink shall be created for this plugin.
-	function onInstall() {
-		global $conf;
-		if ($conf['ufw']['installed'] == true && $conf['services']['firewall'] == true) {
-			return true;
-		} else {
-			return false;
-		}
-		
-	}
-	
-		
-	/*
-	 	This function is called when the plugin is loaded
-	*/
-	
-	function onLoad() {
-		global $app;
-		
-		/*
-		Register for the events
-		*/
-		
-		$app->plugins->registerEvent('firewall_insert',$this->plugin_name,'insert_basic');
-		$app->plugins->registerEvent('firewall_update',$this->plugin_name,'update_basic');
-		$app->plugins->registerEvent('firewall_delete',$this->plugin_name,'update_basic');
-	
-		$app->plugins->registerEvent('firewall_forward_insert',$this->plugin_name,'insert_forward');
-		$app->plugins->registerEvent('firewall_forward_update',$this->plugin_name,'update_forward');
-		$app->plugins->registerEvent('firewall_forward_delete',$this->plugin_name,'update_forward');
-		
-		$app->plugins->registerEvent('firewall_filter_insert',$this->plugin_name,'insert_filter');
-		$app->plugins->registerEvent('firewall_filter_update',$this->plugin_name,'update_filter');
-		$app->plugins->registerEvent('firewall_filter_delete',$this->plugin_name,'delete_filter');
-		
-		$app->plugins->registerEvent('server_insert',$this->plugin_name,'updateSettings');
-		$app->plugins->registerEvent('server_update',$this->plugin_name,'updateSettings');
-		
-		
-		
-	}
-	
-	
-	function insert_basic($event_name,$data) {
-		global $app, $conf;
-		
-		$this->update_basic($event_name,$data);
-		
-	}
-	
-	function update_basic($event_name,$data) {
-		global $app, $conf;
-		
-		$tcp_ports = '';
-		$udp_ports = '';
-		
-		$delete_rule = ($data["new"]["active"] == "n" ? "delete " : "");
-		/*
-		$ports = explode(',',$data["new"]["tcp_port"]);
-		if(is_array($ports)) {
-			foreach($ports as $p) {
-				if(strstr($p,':')) {
-					$p_parts = explode(':',$p);
-					$p_clean = intval($p_parts[0]).':'.intval($p_parts[1]);
-				} else {
-					$p_clean = intval($p);
-				}
-				
-				//system("ufw $delete_rule allow " . $p_clean . "/tcp");
-
-			}
-		}*/
-		
-		system("ufw $delete_rule allow out" . $data["new"]["tcp_port"] . "/tcp");
-		system("ufw $delete_rule allow in" . $data["new"]["tcp_port"] . "/tcp");
-		system("ufw $delete_rule allow out" . $data["new"]["udp_port"] . "/udp");
-		system("ufw $delete_rule allow in" . $data["new"]["udp_port"] . "/udp");
-		//$tcp_ports = trim($tcp_ports);
-		/*
-		$ports = explode(',',$data["new"]["udp_port"]);
-		if(is_array($ports)) {
-			foreach($ports as $p) {
-				if(strstr($p,':')) {
-					$p_parts = explode(':',$p);
-					$p_clean = intval($p_parts[0]).':'.intval($p_parts[1]);
-				} else {
-					$p_clean = intval($p);
-				}
-
-				
-			}
-		}
-		
-		system("ufw $delete_rule allow " . $p_clean . "/udp");
-		*/
-		
-		if($data["new"]["active"] == 'y') {
-			exec('/etc/init.d/ufw force-reload');
-			$app->log('Restarting the firewall',LOGLEVEL_DEBUG);
-		} else {
-			exec('/etc/init.d/ufw force-reload');
-			$app->log('Flushing the firewall',LOGLEVEL_DEBUG);
-		}
-		
-		
-	}
-	
-	
-	function insert_filter($event_name,$data) {
-		global $app, $conf;
-		
-		$this->update_filter($event_name,$data);
-		
-	}
-	
-	function getCidr($mask) {
-		$long = ip2long($mask);
- 		$base = ip2long('255.255.255.255');
-  		return 32-log(($long ^ $base)+1,2);
-	}
-	
-	function update_filter($event_name,$data) {
-		global $app, $conf;
-		
-		$app->uses("getconf");
-		$server_config = $app->getconf->get_server_config($conf["server_id"], 'ufw');
-			$network = $server_config["ufw_network"];
-		
-		$records = $app->db->queryAllRecords(
-			"SELECT 
-					 protocol,
-					 IF 
-					 	(src_from_port=src_to_port, src_from_port, CONCAT(src_from_port, ':',src_to_port)) 
-					 AS 
-					 	src_port,
-					 IF 
-					 	(dst_from_port=dst_to_port, dst_from_port, CONCAT(dst_from_port, ':',dst_to_port)) 
-					 AS 
-					 	dst_port, 
-					 IF
-					 	(src_ip='0.0.0.0','any',src_ip) 
-					 AS 
-					 	src_ip, 
-					 IF
-					 	(dst_ip='0.0.0.0','any',dst_ip) 
-					 AS 
-					 	dst_ip, 
-					 src_netmask, 
-					 dst_netmask, 
-					 inbound_policy,
-					 outbound_policy,
-					 rule_id,
-					 active
-			FROM 
-				firewall_filter 
-			ORDER BY
-				rule_id
-			ASC");
-		
-		$commands = array();
-		foreach ($records as $record) {
-			$src_netmask = $this->getCidr($record["src_netmask"]);
-			$dst_netmask = $this->getCidr($record["dst_netmask"]);
-			$src_port = ($record["src_port"] == "0:65535" ? "" : " port " .$record["src_port"]);
-			$dst_port = ($record["dst_port"] == "0:65535" ? "" : " port " . $record["dst_port"]);
-			$src_ip = ($record["src_ip"] == "any" ? "any" : $record["src_ip"] . "/" . $src_netmask);
-			$dst_ip = ($record["dst_ip"] == "any" ? "any" : $record["dst_ip"] . "/" . $dst_netmask);
-			//$protocol = $record["protocol"];
-			$delete = ($record["active"] == "n" ? true : false);
-			//$protocols = array_split($record["protocol"]);
-			//$inbound = ($record["inbound"] == 0 ? "deny " : "allow");
-			//$outbound = ($record["outbound"] == 0 ? "deny out" : "allow out");
-			
-			//foreach ($protocols as $protocol) {
-				
-				
-				$ufw = new UFW();
-				//$ufw->setDelete($record["active"] == "n");
-				$ufw->setRuleID($record["rule_id"]);
-				$ufw->setSrcIP($src_ip);
-				$ufw->setDstIP($dst_ip);
-				$ufw->setSrcPort($src_port);
-				$ufw->setDstPort($dst_port);
-				$ufw->setInboundPolicy($record["inbound_policy"]);
-				$ufw->setOutboundPolicy($record["outbound_policy"]);
-				$ufw->setProtocol($record["protocol"]);
-				$ufw->setNetwork($network);
-				
-				if ($delete) {
-					$ufw->delete();
-				} else {
-					$ufw->insert();
-				}				
-			//}
-			
-			/*
-			if ($record["active"] == 'n') {
-				$inbound = ($record["inbound"] == 0 ? "deny " : "allow");
-				$outbound = ($record["outbound"] == 0 ? "deny out" : "allow out");
-				array_push($commands, "ufw deny proto udp from $src_ip $src_port to $dst_ip $dst_port");
-				if ($protocol == "tcp/udp") {
-					array_push($commands, "ufw delete $inbound proto udp from $src_ip $src_port to $dst_ip $dst_port");
-					array_push($commands, "ufw delete $outbound proto udp from $src_ip $src_port to $dst_ip $dst_port");
-					array_push($commands, "ufw delete $inbound proto tcp from $src_ip $src_port to $dst_ip $dst_port");
-					array_push($commands, "ufw delete $outbound proto tcp from $src_ip $src_port to $dst_ip $dst_port");
-				} else {
-					array_push($commands, "ufw delete $inbound proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
-					array_push($commands, "ufw delete $outbound proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
-				}
-			} elseif ($record["inbound"] == 0) {
-				if ($protocol == "tcp/udp") {
-					array_push($commands, "ufw deny proto udp from $src_ip $src_port to $dst_ip $dst_port");
-					array_push($commands, "ufw deny proto tcp from $src_ip $src_port to $dst_ip $dst_port");
-				} else {
-					array_push($commands, "ufw deny proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
-				}
-
-			} elseif ($record["outbound"] == 0) {
-				if ($protocol == "tcp/udp") {
-					array_push($commands, "ufw deny out proto udp from $network to any $dst_port");
-					array_push($commands, "ufw deny out proto tcp from $network to any $dst_port");
-				} else {
-					array_push($commands, "ufw deny out proto $protocol from $network to any $dst_port");
-				}
-			}*/
-			
-			
-		}
-		
-		/*
-		
-		$records = $app->db->queryAllRecords(
-			"SELECT 
-					 protocol,
-					 IF 
-					 	(src_from_port=src_to_port, src_from_port, CONCAT(src_from_port, ':',src_to_port)) 
-					 AS 
-					 	src_port,
-					 IF 
-					 	(dst_from_port=dst_to_port, dst_from_port, CONCAT(dst_from_port, ':',dst_to_port)) 
-					 AS 
-					 	dst_port, 
-					 IF
-					 	(src_ip='0.0.0.0','any',src_ip) 
-					 AS 
-					 	src_ip, 
-					 IF
-					 	(dst_ip='0.0.0.0','any',dst_ip) 
-					 AS 
-					 	dst_ip, 
-					 src_netmask, 
-					 dst_netmask, 
-					 inbound,
-					 outbound,
-					 active
-			FROM 
-				firewall_filter 
-			WHERE 
-				inbound=1
-			OR 
-				outbound=1 
-			AND 
-				active='y'");	
-		
-	
-		foreach ($records as $record) {
-			$src_netmask = $this->getCidr($record["src_netmask"]);
-			$dst_netmask = $this->getCidr($record["dst_netmask"]);
-			$src_port = ($record["src_port"] == "0:65535" ? "" : " port " .$record["src_port"]);
-			$dst_port = ($record["dst_port"] == "0:65535" ? "" : " port " . $record["dst_port"]);
-			$src_ip = ($record["src_ip"] == "any" ? "any" : $record["src_ip"] . "/" . $src_netmask);
-			$dst_ip = ($record["dst_ip"] == "any" ? "any" : $record["dst_ip"] . "/" . $dst_netmask);
-			$protocol = $record["protocol"];
-			$outbound = ($record["outbound"] == 1 ? "out" : "");
-			
-			
-		
-			if ($record["inbound"] == 1) {
-				if ($protocol == "tcp/udp") {
-					array_push($commands, "ufw allow proto udp from $src_ip $src_port to $dst_ip $dst_port");
-					array_push($commands, "ufw allow proto tcp from $src_ip $src_port to $dst_ip $dst_port");
-				} else {
-					array_push($commands, "ufw allow proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
-				}
-
-			} elseif ($record["outbound"] == 1) {
-				if ($protocol == "tcp/udp") {
-					array_push($commands, "ufw allow out proto udp from $network to any $dst_port");
-					array_push($commands, "ufw allow out proto tcp from $network to any $dst_port");
-				} else {
-					array_push($commands, "ufw allow out proto $protocol from $network to any $dst_port");
-				}
-			}
-			
-			
-		}
-		
-		foreach ($commands as $command) {
-			system($command);
-		}
-		*/
-	}
-	
-	function insert_forward($event_name,$data) {
-		global $app, $conf;
-		
-		$this->update_filter($event_name,$data);
-		
-	}
-	
-	function update_forward($event_name,$data) {
-		global $app, $conf;
-		
-		
-		
-	}
-	
-	//update server config
-	
-	function backupConfigs()
-	{
-		copy('/etc/default/ufw','/etc/default/ufw~');
-		copy('/etc/ufw/ufw.conf','/etc/ufw/ufw.conf~');
-		copy('/etc/ufw/before.rules','/etc/ufw/before.rules~');
-	}
-	
-	function updateSettings($event_name,$data) {
-		global $app, $conf;
-		
-		// get the config
-		$app->uses("getconf");
-		$server_config = $app->getconf->get_server_config($conf["server_id"], 'ufw');
-		
-
-		if(is_dir('/etc/ufw') && is_file('/etc/default/ufw')) {
-			$this->backupConfigs();
-			
-			$app->load('tpl');
-			
-			$ufw_tpl = new tpl();
-			$ufw_tpl->newTemplate("ufw.conf.master");
-				
-			$ufw_tpl->setVar('enable',($server_config["ufw_enable"] == "" ? "no" : $server_config["ufw_enable"]));
-			$ufw_tpl->setVar('log_level',$server_config["ufw_log_level"]);
-			
-			
-			file_put_contents('/etc/ufw/ufw.conf',$ufw_tpl->grab());
-			unset($ufw_tpl);
-			
-			$app->log("Changed UFW settings",LOGLEVEL_DEBUG);
-			
-			$ufw_tpl = new tpl();
-			$ufw_tpl->newTemplate("ufw.default.master");
-			
-			$ufw_tpl->setVar('ipv6',$server_config["ufw_ipv6"] == "" ? "no" : $server_config["ufw_ipv6"]);
-			$ufw_tpl->setVar('default_input_policy',$server_config["ufw_default_input_policy"]);
-			$ufw_tpl->setVar('default_output_policy',$server_config["ufw_default_output_policy"]);
-			$ufw_tpl->setVar('default_forward_policy',$server_config["ufw_default_forward_policy"]);
-			$ufw_tpl->setVar('default_application_policy',$server_config["ufw_default_application_policy"]);
-			$ufw_tpl->setVar('manage_builtins',$server_config["ufw_manage_builtins"] == "" ? "no" : $server_config["ufw_manage_builtins"]);
-			
-			file_put_contents('/etc/default/ufw',$ufw_tpl->grab());
-			unset($ufw_tpl);
-			
-			$app->log("Changed default UFW settings",LOGLEVEL_DEBUG);
-			
-			$app->services->restartServiceDelayed('ufw','--force-reload');
-			
-		} else {
-			$app->log("Ubuntu  Uncomplicated Firewall configuration not available for this linux distribution.",LOGLEVEL_DEBUG);
-		}
-		
-	}
-	
-	
-	
-
-} // end class
-
-class UFW {
-		
-	var $_delete = false;
-	var $_ufwCmd = "ufw";
-	var $_inboundPolicy = "allow";
-	var $_outboundPolicy = "allow";
-	var $_protocol = "tcp";
-	var $_ruleID = 1;
-	var $_srcIP;
-	var $_dstIP;
-	var $_srcPort;
-	var $_dstPort;
-	var $_network = "0.0.0.0/24";
-	
-	function UFW() {
-		
-	}
-	
-	function setDelete($delete) {
-		$this->_delete = $delete;
-	}
-	
-	function setInboundPolicy($policy) {
-		$this->_inboundPolicy = $policy;
-	}
-	
-	function setOutboundPolicy($policy) {
-		$this->_outboundPolicy = $policy;
-	}
-	
-	function setProtocol($protocol) {
-		$this->_outboundPolicy = $protocol;
-	}
-	
-	function setRuleID($id) {
-		$this->_ruleID = $id;
-	}
-	
-	function setSrcIP($ip) {
-		$this->_srcIP = $ip;	
-	}
-	
-	function setDstIP($ip) {
-		$this->_dstIP = $ip;
-	}
-	
-	function setSrcPort($port) {
-		$this->_srcPort = $port;
-	}
-	
-	function setDstPort($port) {
-		$this->_dstPort = $port;
-	}
-	
-	function setNetwork($network) {
-		$this->_network = $network;
-	}
-	
-	
-	function insert() {
-		$protocols = split("/",$this->_protocol);
-		foreach ($protocols as $protocol) {
-			$inbound = sprintf("ufw insert %s %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_inboundPolicy, $protocol, $this->_srcIP, $this->_srcPort, $this->_dstIP, $this->_dstPort);
-			$outbound = sprintf("ufw insert %s %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_outboundPolicy, $protocol, $this->_network, $this->_srcPort, $this->_dstIP, $this->_dstPort);
-			
-			echo $inbound."\n";
-			echo $outbound."\n";
-			system($inbound);
-			system($outbound);
-		}
-	}
-	
-	function delete() {
-		$protocols = split("/",$this->_protocol);
-		foreach ($protocols as $protocol) {
-			$inbound = sprintf("ufw delete %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_inboundPolicy, $protocol, $this->_srcIP, $this->_srcPort, $this->_dstIP, $this->_dstPort);
-			$outbound = sprintf("ufw delete %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_outboundPolicy, $protocol, $this->_network, $this->_srcPort, $this->_dstIP, $this->_dstPort);
-			
-			echo $inbound."\n";
-			echo $outbound."\n";
-			
-			system($inbound);
-			system($outbound);
-		}
-	}
-		
-}
-
-?>
+<?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.
+*/
+
+class ufw_firewall_plugin {
+	
+	var $plugin_name = 'ufw_firewall_plugin';
+	var $class_name  = 'ufw_firewall_plugin';
+	
+	//* This function is called during ispconfig installation to determine
+	//  if a symlink shall be created for this plugin.
+	function onInstall() {
+		global $conf;
+		if ($conf['ufw']['installed'] == true && $conf['services']['firewall'] == true) {
+			return true;
+		} else {
+			return false;
+		}
+		
+	}
+	
+		
+	/*
+	 	This function is called when the plugin is loaded
+	*/
+	
+	function onLoad() {
+		global $app;
+		
+		/*
+		Register for the events
+		*/
+		
+		$app->plugins->registerEvent('firewall_insert',$this->plugin_name,'insert_basic');
+		$app->plugins->registerEvent('firewall_update',$this->plugin_name,'update_basic');
+		$app->plugins->registerEvent('firewall_delete',$this->plugin_name,'update_basic');
+	
+		$app->plugins->registerEvent('firewall_forward_insert',$this->plugin_name,'insert_forward');
+		$app->plugins->registerEvent('firewall_forward_update',$this->plugin_name,'update_forward');
+		$app->plugins->registerEvent('firewall_forward_delete',$this->plugin_name,'update_forward');
+		
+		$app->plugins->registerEvent('firewall_filter_insert',$this->plugin_name,'insert_filter');
+		$app->plugins->registerEvent('firewall_filter_update',$this->plugin_name,'update_filter');
+		$app->plugins->registerEvent('firewall_filter_delete',$this->plugin_name,'delete_filter');
+		
+		$app->plugins->registerEvent('server_insert',$this->plugin_name,'updateSettings');
+		$app->plugins->registerEvent('server_update',$this->plugin_name,'updateSettings');
+		
+		
+		
+	}
+	
+	
+	function insert_basic($event_name,$data) {
+		global $app, $conf;
+		
+		$this->update_basic($event_name,$data);
+		
+	}
+	
+	function update_basic($event_name,$data) {
+		global $app, $conf;
+		
+		$tcp_ports = '';
+		$udp_ports = '';
+		
+		$delete_rule = ($data["new"]["active"] == "n" ? "delete " : "");
+		/*
+		$ports = explode(',',$data["new"]["tcp_port"]);
+		if(is_array($ports)) {
+			foreach($ports as $p) {
+				if(strstr($p,':')) {
+					$p_parts = explode(':',$p);
+					$p_clean = intval($p_parts[0]).':'.intval($p_parts[1]);
+				} else {
+					$p_clean = intval($p);
+				}
+				
+				//system("ufw $delete_rule allow " . $p_clean . "/tcp");
+
+			}
+		}*/
+		
+		system("ufw $delete_rule allow out" . $data["new"]["tcp_port"] . "/tcp");
+		system("ufw $delete_rule allow in" . $data["new"]["tcp_port"] . "/tcp");
+		system("ufw $delete_rule allow out" . $data["new"]["udp_port"] . "/udp");
+		system("ufw $delete_rule allow in" . $data["new"]["udp_port"] . "/udp");
+		//$tcp_ports = trim($tcp_ports);
+		/*
+		$ports = explode(',',$data["new"]["udp_port"]);
+		if(is_array($ports)) {
+			foreach($ports as $p) {
+				if(strstr($p,':')) {
+					$p_parts = explode(':',$p);
+					$p_clean = intval($p_parts[0]).':'.intval($p_parts[1]);
+				} else {
+					$p_clean = intval($p);
+				}
+
+				
+			}
+		}
+		
+		system("ufw $delete_rule allow " . $p_clean . "/udp");
+		*/
+		
+		if($data["new"]["active"] == 'y') {
+			exec('/etc/init.d/ufw force-reload');
+			$app->log('Restarting the firewall',LOGLEVEL_DEBUG);
+		} else {
+			exec('/etc/init.d/ufw force-reload');
+			$app->log('Flushing the firewall',LOGLEVEL_DEBUG);
+		}
+		
+		
+	}
+	
+	
+	function insert_filter($event_name,$data) {
+		global $app, $conf;
+		
+		$this->update_filter($event_name,$data);
+		
+	}
+	
+	function getCidr($mask) {
+		$long = ip2long($mask);
+ 		$base = ip2long('255.255.255.255');
+  		return 32-log(($long ^ $base)+1,2);
+	}
+	
+	function update_filter($event_name,$data) {
+		global $app, $conf;
+		
+		$app->uses("getconf");
+		$server_config = $app->getconf->get_server_config($conf["server_id"], 'ufw');
+			$network = $server_config["ufw_network"];
+		
+		$records = $app->db->queryAllRecords(
+			"SELECT 
+					 protocol,
+					 IF 
+					 	(src_from_port=src_to_port, src_from_port, CONCAT(src_from_port, ':',src_to_port)) 
+					 AS 
+					 	src_port,
+					 IF 
+					 	(dst_from_port=dst_to_port, dst_from_port, CONCAT(dst_from_port, ':',dst_to_port)) 
+					 AS 
+					 	dst_port, 
+					 IF
+					 	(src_ip='0.0.0.0','any',src_ip) 
+					 AS 
+					 	src_ip, 
+					 IF
+					 	(dst_ip='0.0.0.0','any',dst_ip) 
+					 AS 
+					 	dst_ip, 
+					 src_netmask, 
+					 dst_netmask, 
+					 inbound_policy,
+					 outbound_policy,
+					 rule_id,
+					 active
+			FROM 
+				firewall_filter 
+			ORDER BY
+				rule_id
+			ASC");
+		
+		$commands = array();
+		foreach ($records as $record) {
+			$src_netmask = $this->getCidr($record["src_netmask"]);
+			$dst_netmask = $this->getCidr($record["dst_netmask"]);
+			$src_port = ($record["src_port"] == "0:65535" ? "" : " port " .$record["src_port"]);
+			$dst_port = ($record["dst_port"] == "0:65535" ? "" : " port " . $record["dst_port"]);
+			$src_ip = ($record["src_ip"] == "any" ? "any" : $record["src_ip"] . "/" . $src_netmask);
+			$dst_ip = ($record["dst_ip"] == "any" ? "any" : $record["dst_ip"] . "/" . $dst_netmask);
+			//$protocol = $record["protocol"];
+			$delete = ($record["active"] == "n" ? true : false);
+			//$protocols = array_split($record["protocol"]);
+			//$inbound = ($record["inbound"] == 0 ? "deny " : "allow");
+			//$outbound = ($record["outbound"] == 0 ? "deny out" : "allow out");
+			
+			//foreach ($protocols as $protocol) {
+				
+				
+				$ufw = new UFW();
+				//$ufw->setDelete($record["active"] == "n");
+				$ufw->setRuleID($record["rule_id"]);
+				$ufw->setSrcIP($src_ip);
+				$ufw->setDstIP($dst_ip);
+				$ufw->setSrcPort($src_port);
+				$ufw->setDstPort($dst_port);
+				$ufw->setInboundPolicy($record["inbound_policy"]);
+				$ufw->setOutboundPolicy($record["outbound_policy"]);
+				$ufw->setProtocol($record["protocol"]);
+				$ufw->setNetwork($network);
+				
+				if ($delete) {
+					$ufw->delete();
+				} else {
+					$ufw->insert();
+				}				
+			//}
+			
+			/*
+			if ($record["active"] == 'n') {
+				$inbound = ($record["inbound"] == 0 ? "deny " : "allow");
+				$outbound = ($record["outbound"] == 0 ? "deny out" : "allow out");
+				array_push($commands, "ufw deny proto udp from $src_ip $src_port to $dst_ip $dst_port");
+				if ($protocol == "tcp/udp") {
+					array_push($commands, "ufw delete $inbound proto udp from $src_ip $src_port to $dst_ip $dst_port");
+					array_push($commands, "ufw delete $outbound proto udp from $src_ip $src_port to $dst_ip $dst_port");
+					array_push($commands, "ufw delete $inbound proto tcp from $src_ip $src_port to $dst_ip $dst_port");
+					array_push($commands, "ufw delete $outbound proto tcp from $src_ip $src_port to $dst_ip $dst_port");
+				} else {
+					array_push($commands, "ufw delete $inbound proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
+					array_push($commands, "ufw delete $outbound proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
+				}
+			} elseif ($record["inbound"] == 0) {
+				if ($protocol == "tcp/udp") {
+					array_push($commands, "ufw deny proto udp from $src_ip $src_port to $dst_ip $dst_port");
+					array_push($commands, "ufw deny proto tcp from $src_ip $src_port to $dst_ip $dst_port");
+				} else {
+					array_push($commands, "ufw deny proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
+				}
+
+			} elseif ($record["outbound"] == 0) {
+				if ($protocol == "tcp/udp") {
+					array_push($commands, "ufw deny out proto udp from $network to any $dst_port");
+					array_push($commands, "ufw deny out proto tcp from $network to any $dst_port");
+				} else {
+					array_push($commands, "ufw deny out proto $protocol from $network to any $dst_port");
+				}
+			}*/
+			
+			
+		}
+		
+		/*
+		
+		$records = $app->db->queryAllRecords(
+			"SELECT 
+					 protocol,
+					 IF 
+					 	(src_from_port=src_to_port, src_from_port, CONCAT(src_from_port, ':',src_to_port)) 
+					 AS 
+					 	src_port,
+					 IF 
+					 	(dst_from_port=dst_to_port, dst_from_port, CONCAT(dst_from_port, ':',dst_to_port)) 
+					 AS 
+					 	dst_port, 
+					 IF
+					 	(src_ip='0.0.0.0','any',src_ip) 
+					 AS 
+					 	src_ip, 
+					 IF
+					 	(dst_ip='0.0.0.0','any',dst_ip) 
+					 AS 
+					 	dst_ip, 
+					 src_netmask, 
+					 dst_netmask, 
+					 inbound,
+					 outbound,
+					 active
+			FROM 
+				firewall_filter 
+			WHERE 
+				inbound=1
+			OR 
+				outbound=1 
+			AND 
+				active='y'");	
+		
+	
+		foreach ($records as $record) {
+			$src_netmask = $this->getCidr($record["src_netmask"]);
+			$dst_netmask = $this->getCidr($record["dst_netmask"]);
+			$src_port = ($record["src_port"] == "0:65535" ? "" : " port " .$record["src_port"]);
+			$dst_port = ($record["dst_port"] == "0:65535" ? "" : " port " . $record["dst_port"]);
+			$src_ip = ($record["src_ip"] == "any" ? "any" : $record["src_ip"] . "/" . $src_netmask);
+			$dst_ip = ($record["dst_ip"] == "any" ? "any" : $record["dst_ip"] . "/" . $dst_netmask);
+			$protocol = $record["protocol"];
+			$outbound = ($record["outbound"] == 1 ? "out" : "");
+			
+			
+		
+			if ($record["inbound"] == 1) {
+				if ($protocol == "tcp/udp") {
+					array_push($commands, "ufw allow proto udp from $src_ip $src_port to $dst_ip $dst_port");
+					array_push($commands, "ufw allow proto tcp from $src_ip $src_port to $dst_ip $dst_port");
+				} else {
+					array_push($commands, "ufw allow proto $protocol from $src_ip $src_port to $dst_ip $dst_port");
+				}
+
+			} elseif ($record["outbound"] == 1) {
+				if ($protocol == "tcp/udp") {
+					array_push($commands, "ufw allow out proto udp from $network to any $dst_port");
+					array_push($commands, "ufw allow out proto tcp from $network to any $dst_port");
+				} else {
+					array_push($commands, "ufw allow out proto $protocol from $network to any $dst_port");
+				}
+			}
+			
+			
+		}
+		
+		foreach ($commands as $command) {
+			system($command);
+		}
+		*/
+	}
+	
+	function insert_forward($event_name,$data) {
+		global $app, $conf;
+		
+		$this->update_filter($event_name,$data);
+		
+	}
+	
+	function update_forward($event_name,$data) {
+		global $app, $conf;
+		
+		
+		
+	}
+	
+	//update server config
+	
+	function backupConfigs()
+	{
+		copy('/etc/default/ufw','/etc/default/ufw~');
+		copy('/etc/ufw/ufw.conf','/etc/ufw/ufw.conf~');
+		copy('/etc/ufw/before.rules','/etc/ufw/before.rules~');
+	}
+	
+	function updateSettings($event_name,$data) {
+		global $app, $conf;
+		
+		// get the config
+		$app->uses("getconf");
+		$server_config = $app->getconf->get_server_config($conf["server_id"], 'ufw');
+		
+
+		if(is_dir('/etc/ufw') && is_file('/etc/default/ufw')) {
+			$this->backupConfigs();
+			
+			$app->load('tpl');
+			
+			$ufw_tpl = new tpl();
+			$ufw_tpl->newTemplate("ufw.conf.master");
+				
+			$ufw_tpl->setVar('enable',($server_config["ufw_enable"] == "" ? "no" : $server_config["ufw_enable"]));
+			$ufw_tpl->setVar('log_level',$server_config["ufw_log_level"]);
+			
+			
+			file_put_contents('/etc/ufw/ufw.conf',$ufw_tpl->grab());
+			unset($ufw_tpl);
+			
+			$app->log("Changed UFW settings",LOGLEVEL_DEBUG);
+			
+			$ufw_tpl = new tpl();
+			$ufw_tpl->newTemplate("ufw.default.master");
+			
+			$ufw_tpl->setVar('ipv6',$server_config["ufw_ipv6"] == "" ? "no" : $server_config["ufw_ipv6"]);
+			$ufw_tpl->setVar('default_input_policy',$server_config["ufw_default_input_policy"]);
+			$ufw_tpl->setVar('default_output_policy',$server_config["ufw_default_output_policy"]);
+			$ufw_tpl->setVar('default_forward_policy',$server_config["ufw_default_forward_policy"]);
+			$ufw_tpl->setVar('default_application_policy',$server_config["ufw_default_application_policy"]);
+			$ufw_tpl->setVar('manage_builtins',$server_config["ufw_manage_builtins"] == "" ? "no" : $server_config["ufw_manage_builtins"]);
+			
+			file_put_contents('/etc/default/ufw',$ufw_tpl->grab());
+			unset($ufw_tpl);
+			
+			$app->log("Changed default UFW settings",LOGLEVEL_DEBUG);
+			
+			$app->services->restartServiceDelayed('ufw','--force-reload');
+			
+		} else {
+			$app->log("Ubuntu  Uncomplicated Firewall configuration not available for this linux distribution.",LOGLEVEL_DEBUG);
+		}
+		
+	}
+	
+	
+	
+
+} // end class
+
+class UFW {
+		
+	var $_delete = false;
+	var $_ufwCmd = "ufw";
+	var $_inboundPolicy = "allow";
+	var $_outboundPolicy = "allow";
+	var $_protocol = "tcp";
+	var $_ruleID = 1;
+	var $_srcIP;
+	var $_dstIP;
+	var $_srcPort;
+	var $_dstPort;
+	var $_network = "0.0.0.0/24";
+	
+	function UFW() {
+		
+	}
+	
+	function setDelete($delete) {
+		$this->_delete = $delete;
+	}
+	
+	function setInboundPolicy($policy) {
+		$this->_inboundPolicy = $policy;
+	}
+	
+	function setOutboundPolicy($policy) {
+		$this->_outboundPolicy = $policy;
+	}
+	
+	function setProtocol($protocol) {
+		$this->_outboundPolicy = $protocol;
+	}
+	
+	function setRuleID($id) {
+		$this->_ruleID = $id;
+	}
+	
+	function setSrcIP($ip) {
+		$this->_srcIP = $ip;	
+	}
+	
+	function setDstIP($ip) {
+		$this->_dstIP = $ip;
+	}
+	
+	function setSrcPort($port) {
+		$this->_srcPort = $port;
+	}
+	
+	function setDstPort($port) {
+		$this->_dstPort = $port;
+	}
+	
+	function setNetwork($network) {
+		$this->_network = $network;
+	}
+	
+	
+	function insert() {
+		$protocols = split("/",$this->_protocol);
+		foreach ($protocols as $protocol) {
+			$inbound = sprintf("ufw insert %s %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_inboundPolicy, $protocol, $this->_srcIP, $this->_srcPort, $this->_dstIP, $this->_dstPort);
+			$outbound = sprintf("ufw insert %s %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_outboundPolicy, $protocol, $this->_network, $this->_srcPort, $this->_dstIP, $this->_dstPort);
+			
+			echo $inbound."\n";
+			echo $outbound."\n";
+			system($inbound);
+			system($outbound);
+		}
+	}
+	
+	function delete() {
+		$protocols = split("/",$this->_protocol);
+		foreach ($protocols as $protocol) {
+			$inbound = sprintf("ufw delete %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_inboundPolicy, $protocol, $this->_srcIP, $this->_srcPort, $this->_dstIP, $this->_dstPort);
+			$outbound = sprintf("ufw delete %s proto %s from %s port %s to %s port %s ", $this->_ruleID, $this->_outboundPolicy, $protocol, $this->_network, $this->_srcPort, $this->_dstIP, $this->_dstPort);
+			
+			echo $inbound."\n";
+			echo $outbound."\n";
+			
+			system($inbound);
+			system($outbound);
+		}
+	}
+		
+}
+
+?>

--
Gitblit v1.9.1