diff --git a/htdocs/about.php b/htdocs/about.php index b77895543432b00f09f9c06698c58ba8f79c3a21..590431fcf5b835f856c4764e46d0096b80d61e99 100644 --- a/htdocs/about.php +++ b/htdocs/about.php @@ -81,7 +81,7 @@ print '</ul>'; // \todo Faut-il inviter l'utilisateur � aller sur le site en fran�ais si sa langue n'est pas le fran�ais ? -//if (eregi('^fr_',$conf->langage) +//if (eregi('^fr_',$langs->getDefaultLang()) //{ print '<p>'; print 'Vente / Support'; diff --git a/htdocs/admin/system/dolibarr.php b/htdocs/admin/system/dolibarr.php index dbec3def1c6abe64b8ea724b01abd37dea1bebb7..00cb21cebc10ba34c073b5f67c1874a428368029 100644 --- a/htdocs/admin/system/dolibarr.php +++ b/htdocs/admin/system/dolibarr.php @@ -44,12 +44,21 @@ print "<tr $bc[0]><td width=\"240\">".$langs->trans("Version")."</td><td>".DOL_V print '</table>'; print '<br>'; +$var=true; print '<table class="noborder" width="100%">'; -print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>'."\n"; -print "<tr $bc[0]><td width=\"240\">".$langs->trans("Language")." (LC_ALL)</td><td>".setlocale(LC_ALL,0)."</td></tr>\n"; -print "<tr $bc[1]><td width=\"240\">".$langs->trans("Language")." (LC_NUMERIC)</td><td>".setlocale(LC_NUMERIC,0)."</td></tr>\n"; -print "<tr $bc[0]><td width=\"240\">".$langs->trans("Language")." (LC_TIME)</td><td>".setlocale(LC_TIME,0)."</td></tr>\n"; -print "<tr $bc[1]><td width=\"240\">".$langs->trans("Language")." (LC_MONETARY)</td><td>".setlocale(LC_MONETARY,0)."</td></tr>\n"; +print '<tr class="liste_titre"><td>'.$langs->trans("LanguageDolibarrParameter").'</td><td>'.$langs->trans("Value").'</td></tr>'."\n"; +$var=!$var; +print "<tr ".$bc[$var]."><td width=\"240\">".$langs->trans("LanguageBrowserParameter","HTTP_ACCEPT_LANGUAGE")."</td><td>".$_SERVER["HTTP_ACCEPT_LANGUAGE"]."</td></tr>\n"; +$var=!$var; +print "<tr ".$bc[$var]."><td width=\"240\">".$langs->trans("LanguageParameter","PHP LC_ALL")."</td><td>".setlocale(LC_ALL,0)."</td></tr>\n"; +$var=!$var; +print "<tr ".$bc[$var]."><td width=\"240\">".$langs->trans("LanguageParameter","PHP LC_NUMERIC")."</td><td>".setlocale(LC_NUMERIC,0)."</td></tr>\n"; +$var=!$var; +print "<tr ".$bc[$var]."><td width=\"240\">".$langs->trans("LanguageParameter","PHP LC_TIME")."</td><td>".setlocale(LC_TIME,0)."</td></tr>\n"; +$var=!$var; +print "<tr ".$bc[$var]."><td width=\"240\">".$langs->trans("LanguageParameter","PHP LC_MONETARY")."</td><td>".setlocale(LC_MONETARY,0)."</td></tr>\n"; +$var=!$var; +print "<tr ".$bc[$var]."><td width=\"240\">".$langs->trans("CurrentDolibarrLanguage")."</td><td>".$langs->getDefaultLang()."</td></tr>\n"; print '</table>'; print '<br>'; diff --git a/htdocs/compta/dons/formulaire/fsfe.fr.php b/htdocs/compta/dons/formulaire/fsfe.fr.php index da3b7c88218c0ba04b83a9372684b518bc569947..d9fe5fab6a405904fc2f91a55172c1e80869b24e 100644 --- a/htdocs/compta/dons/formulaire/fsfe.fr.php +++ b/htdocs/compta/dons/formulaire/fsfe.fr.php @@ -17,17 +17,19 @@ * * $Id$ * $Source$ - * */ -/*! +/** \file htdocs/compta/dons/formulaire/fsfe.fr.php \ingroup don \brief Formulaire de don \version $Revision$ */ -require("../../../main.inc.php"); +require("../../../master.inc.php"); +require("../../../projetdon.class.php"); +require("../../../don.class.php"); + echo ' <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> @@ -41,12 +43,6 @@ echo ' '; - -require("../../../projetdon.class.php"); -require("../../../don.class.php"); - -setlocale(LC_ALL,$conf->langage); - $don = new Don($db); $don->id = $_GET["rowid"]; $don->fetch($_GET["rowid"]); diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index 35562bf9b9fc4ac95911203195d42635f4b65087..7ed9f65e7c710debef007ba84542a6218a613317 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -33,9 +33,10 @@ $conffile = "../conf/conf.php"; // Defini objet langs -require_once("../translate.class.php"); -$langcode='auto'; -$langs = new Translate("../langs", $langcode); +require_once('../translate.class.php'); +$langs = new Translate('../langs'); +$langs->setDefaultLang('auto'); +$langs->setPhpLang(); $tab[0]=' class="bg1"'; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 07f0d5c8d94b71c18c3818d86932fcd8aa8458bc..4aef4b841138350fa1c5404d17dc0d0a891ff624 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -24,6 +24,11 @@ OtherSetup=Other setup Modules=Modules ModulesCommon=Common modules ModulesSpecial=Special modules +ParameterInDolibarr=Parameter %s +LanguageParameter=Language parameter %s +LanguageBrowserParameter=Parameter %s +LanguageDolibarrParameter=Language Dolibarr parameter +CurrentDolibarrLanguage=Dolibarr current language OSEnv=OS Environment Box=Box Boxes=Boxes diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 2ea1ccfd3a3a25b48772100388c25a375a4abdb5..b43916af6f64573a6c978e1aaa7a247d9244edd7 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -24,6 +24,11 @@ OtherSetup=Divers Modules=Modules ModulesCommon=Modules standards ModulesSpecial=Modules sp�ciaux +ParameterInDolibarr=Variable %s +LanguageParameter=Variable langue %s +LanguageBrowserParameter=Variable %s +LanguageDolibarrParameter=Param�tre de langue Dolibarr +CurrentDolibarrLanguage=Langue Dolibarr courante OSEnv=Environnement OS Box=Bo�te Boxes=Bo�tes diff --git a/htdocs/lib/functions.inc.php b/htdocs/lib/functions.inc.php index cb792938895b9ceebad3e24bae0e9514ceddc4c9..a2151a905a22df6745b53f7c994eedb87293a4d1 100644 --- a/htdocs/lib/functions.inc.php +++ b/htdocs/lib/functions.inc.php @@ -281,34 +281,6 @@ function dolibarr_get_const($db, $name) } -/** - \brief Positionne environnement PHP en fonction du langage - \param code_lang Code langue concern� (fr_FR, en_US, ...) - \return string Code langue valid� -*/ -function dolibarr_set_php_lang($code_lang) -{ - $code_lang_tiret=ereg_replace('_','-',$code_lang); - - //dolibarr_syslog("dolibarr_set_php_lang: code_lang=$code_lang code_lang_tirer=$code_lang_tiret"); - - setlocale(LC_ALL, $code_lang); // Compenser pb de locale avec windows - setlocale(LC_ALL, $code_lang_tiret); - if (defined("MAIN_FORCE_SETLOCALE_LC_ALL") && MAIN_FORCE_SETLOCALE_LC_ALL) setlocale(LC_ALL, MAIN_FORCE_SETLOCALE_LC_ALL); - if (defined("MAIN_FORCE_SETLOCALE_LC_TIME") && MAIN_FORCE_SETLOCALE_LC_TIME) setlocale(LC_TIME, MAIN_FORCE_SETLOCALE_LC_TIME); - if (defined("MAIN_FORCE_SETLOCALE_LC_NUMERIC") && MAIN_FORCE_SETLOCALE_LC_NUMERIC) setlocale(LC_NUMERIC, MAIN_FORCE_SETLOCALE_LC_NUMERIC); - if (defined("MAIN_FORCE_SETLOCALE_LC_MONETARY") && MAIN_FORCE_SETLOCALE_LC_MONETARY) setlocale(LC_MONETARY, MAIN_FORCE_SETLOCALE_LC_MONETARY); - - // On corrige $code_lang si il ne vaut pas le code long: fr -> fr_FR par exemple - if (strlen($code_lang) <= 3) - { - $code_lang = strtolower($code_lang)."_".strtoupper($code_lang); - } - - return $code_lang; -} - - /** \brief Insertion d'une constante dans la base de donn�es. \see dolibarr_del_const, dolibarr_get_const diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index ccd782e21357617a746d75f6a79c8c5f660b1f51..cf521fed76922ba38454e689d044cdf0ccb08cd0 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -29,7 +29,7 @@ \version $Revision$ */ -require("master.inc.php"); +require_once("master.inc.php"); // Verification du login. @@ -135,12 +135,11 @@ if (isset($user->conf->PRODUIT_LIMIT_SIZE)) } if (isset($user->conf->MAIN_LANG_DEFAULT) && $user->conf->MAIN_LANG_DEFAULT) { - if ($conf->langage != $user->conf->MAIN_LANG_DEFAULT) + if ($langs->getDefaultLang() != $user->conf->MAIN_LANG_DEFAULT) { - // Si on a un langage perso diff�rent du langage global - $conf->langage=dolibarr_set_php_lang($user->conf->MAIN_LANG_DEFAULT); - - $langs = new Translate(DOL_DOCUMENT_ROOT ."/langs", $conf->langage); + // Si on a un langage perso diff�rent du langage courant global + $langs->setDefaultLang($user->conf->MAIN_LANG_DEFAULT); + $langs->setPhpLang($user->conf->MAIN_LANG_DEFAULT); } } diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php index afae9e0cfc4ab34aa6e011a820115b1f83eb71b2..4060255b7a4d3ad55fcfa1bbbffbe871295da063 100644 --- a/htdocs/master.inc.php +++ b/htdocs/master.inc.php @@ -5,7 +5,7 @@ * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * Copyright (C) 2005 Regis Houssin <regis.houssin@cap-networks.com> - * Copyright (C) 2005 Simon Tosser <simon@kornog-computing.com> + * Copyright (C) 2005 Simon Tosser <simon@kornog-computing.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -158,14 +158,14 @@ if (! $conf->global->MAIN_MENU_BARRELEFT) $conf->global->MAIN_MENU_BARRELEFT="de if (! $conf->global->MAIN_MENUFRONT_BARRELEFT) $conf->global->MAIN_MENUFRONT_BARRELEFT="default.php"; /* - * Positionne le langage global et localisation dans $conf->langage - * et charge l'objet de traduction + * Charge l'objet de traduction et positionne langage courant global */ if (! $conf->global->MAIN_LANG_DEFAULT) $conf->global->MAIN_LANG_DEFAULT="fr_FR"; -$conf->langage=dolibarr_set_php_lang($conf->global->MAIN_LANG_DEFAULT); require_once(DOL_DOCUMENT_ROOT ."/translate.class.php"); -$langs = new Translate(DOL_DOCUMENT_ROOT ."/langs", $conf->langage); +$langs = new Translate(DOL_DOCUMENT_ROOT ."/langs"); +$langs->setDefaultLang($conf->global->MAIN_LANG_DEFAULT); +$langs->setPhpLang($conf->global->MAIN_LANG_DEFAULT); /* diff --git a/htdocs/translate.class.php b/htdocs/translate.class.php index c43bdc77c1130069613d38ab459f02fa20495467..2ac86d77fbe7d5ea10837b7c46f225011b0e3828 100644 --- a/htdocs/translate.class.php +++ b/htdocs/translate.class.php @@ -43,12 +43,10 @@ class Translate { /** * \brief Constructeur de la classe * \param dir Repertoire racine des fichiers de traduction - * \param defaultlang Langue par defaut � utiliser */ - function Translate($dir = "", $defaultlang = "") + function Translate($dir = "") { $this->dir=$dir; - $this->setDefaultLang($defaultlang); } @@ -68,14 +66,45 @@ class Translate { $langpart=split("_",$langlist[0]); - if (isset($langpart[1])) $defaultlang=$langpart[0]."_".strtoupper($langpart[1]); - else $defaultlang=$langpart[0]."_".strtoupper($langpart[0]); + if (isset($langpart[1])) $defaultlang=strtolower($langpart[0])."_".strtoupper($langpart[1]); + else $defaultlang=strtolower($langpart[0])."_".strtoupper($langpart[0]); } $this->defaultlang=$defaultlang; } + /** + * \brief Accesseur de this->defaultlang + * \return string Langue utilis�e + */ + function getDefaultLang() + { + return $this->defaultlang; + } + + + /** + \brief Positionne environnement PHP en fonction du langage + \remarks Le code langue long (fr_FR, en_US, ...) doit �tre positionn� + \return int >0 si ok, <0 so ko + */ + function setPhpLang() + { + //dolibarr_syslog("Translate::set_php_lang: code_lang=$code_lang code_lang_tirer=$code_lang_tiret"); + + $code_lang_tiret=ereg_replace('_','-',$this->defaultlang); + setlocale(LC_ALL, $this->defaultlang); // Compenser pb de locale avec windows + setlocale(LC_ALL, $code_lang_tiret); + if (defined("MAIN_FORCE_SETLOCALE_LC_ALL") && MAIN_FORCE_SETLOCALE_LC_ALL) setlocale(LC_ALL, MAIN_FORCE_SETLOCALE_LC_ALL); + if (defined("MAIN_FORCE_SETLOCALE_LC_TIME") && MAIN_FORCE_SETLOCALE_LC_TIME) setlocale(LC_TIME, MAIN_FORCE_SETLOCALE_LC_TIME); + if (defined("MAIN_FORCE_SETLOCALE_LC_NUMERIC") && MAIN_FORCE_SETLOCALE_LC_NUMERIC) setlocale(LC_NUMERIC, MAIN_FORCE_SETLOCALE_LC_NUMERIC); + if (defined("MAIN_FORCE_SETLOCALE_LC_MONETARY") && MAIN_FORCE_SETLOCALE_LC_MONETARY) setlocale(LC_MONETARY, MAIN_FORCE_SETLOCALE_LC_MONETARY); + + return 1; + } + + /** * \brief Charge en m�moire le tableau de traduction pour un domaine particulier * Si le domaine est deja charg�, la fonction ne fait rien