latham
2011-06-30 181529089411d6f55333b22d169e87d3f5137eb5
Remove Microsoft Line endings. Some files have mixed line endings that make Subverison unhappy

http://lathama.net/Recursively_deleting_Microsoft_end_of_line_characters


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