From 61dfbf5764f7169cd73430d033fc8dc7bd498359 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 30 Oct 2005 01:07:00 +0000 Subject: [PATCH] New: Gestion du choix de langue "auto" --- htdocs/admin/ihm.php | 4 +-- htdocs/install/check.php | 9 ++++--- htdocs/install/default.css | 20 ++++++++------ htdocs/install/etape1.php | 7 ++--- htdocs/install/etape2.php | 6 +++-- htdocs/install/etape4.php | 9 ++++--- htdocs/install/etape5.php | 16 +++++++++--- htdocs/install/fileconf.php | 7 ++--- htdocs/install/inc.php | 22 +++++++--------- htdocs/install/index.php | 5 ++-- htdocs/install/licence.php | 6 +++-- htdocs/install/upgrade.php | 5 ++-- htdocs/install/upgrade2.php | 5 ++-- htdocs/translate.class.php | 52 +++++++++++++++++++++++++------------ 14 files changed, 104 insertions(+), 69 deletions(-) diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index 9fff1907739..348b5e54a38 100644 --- a/htdocs/admin/ihm.php +++ b/htdocs/admin/ihm.php @@ -164,7 +164,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'edit') // Liste des zone de recherche permanantes supportées print ''; - print ''; + print ''; $var=True; foreach ($searchform as $key => $value) { @@ -265,7 +265,7 @@ else // Liste des zone de recherche permanantes supportées print '
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'; - print ''; + print ''; $var=true; foreach ($searchform as $key => $value) { $var=!$var; diff --git a/htdocs/install/check.php b/htdocs/install/check.php index ca3d0fa58ff..de622e153c6 100644 --- a/htdocs/install/check.php +++ b/htdocs/install/check.php @@ -35,7 +35,8 @@ $allowupgrade = 0; include_once("./inc.php"); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("install"); @@ -124,9 +125,9 @@ else print $langs->trans("ChooseYourSetupMode"); - print '
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'.$langs->trans("PermanentLeftSearchForm").''.$langs->trans("Activated").'
'; + print '
'; - print ''; print ''; print ''; - print ''; print '
'.$langs->trans("FreshInstall").''; + print '
'.$langs->trans("FreshInstall").''; print $langs->trans("FreshInstallDesc").''; if ($allowinstall) @@ -140,7 +141,7 @@ else print '
'.$langs->trans("Upgrade").''; + print '
'.$langs->trans("Upgrade").''; print $langs->trans("UpgradeDesc").''; if ($allowupgrade) diff --git a/htdocs/install/default.css b/htdocs/install/default.css index ee630ac67de..d01d9b9b101 100644 --- a/htdocs/install/default.css +++ b/htdocs/install/default.css @@ -16,7 +16,6 @@ * * $Id$ * $Source$ - * */ body { @@ -56,20 +55,16 @@ border-right: 1px solid #8CACBB; text-align: right; } -table { -font-size: 13px; -} - div.main { background: #dcdcd3; text-align: left; -border: 1px solid #8CACBB; +border: 1px solid #8CACBB; } div.main-inside { padding-left: 20px; -padding-right: 50px; -margin-bottom: 50px; +padding-right: 20px; +margin-bottom: 40px; margin-top: 10px; } @@ -166,3 +161,12 @@ font-size: 13px; border-bottom: 1px solid #8CACBB; } +table { +font-size: 13px; +} + +.install +{ +border: 1px solid #8CACBB; +padding: 4px 4px 4px 4px; +} \ No newline at end of file diff --git a/htdocs/install/etape1.php b/htdocs/install/etape1.php index fd1b9e6f08b..bac76428950 100644 --- a/htdocs/install/etape1.php +++ b/htdocs/install/etape1.php @@ -20,7 +20,6 @@ * * $Id$ * $Source$ - * */ /** @@ -32,10 +31,12 @@ include_once("./inc.php"); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("admin"); $langs->load("install"); + pHeader($langs->trans("ConfigurationFile"),"etape2"); @@ -505,6 +506,6 @@ if ($_POST["action"] == "set") print '
'; } -pFooter($error); +pFooter($error,$setuplang); ?> diff --git a/htdocs/install/etape2.php b/htdocs/install/etape2.php index 527b00091fe..98ef64fa994 100644 --- a/htdocs/install/etape2.php +++ b/htdocs/install/etape2.php @@ -41,7 +41,8 @@ set_time_limit(60); error_reporting($err); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("admin"); $langs->load("install"); @@ -443,5 +444,6 @@ if ($_POST["action"] == "set") $db->close(); } -pFooter(!$ok); +pFooter(!$ok,$setuplang); + ?> diff --git a/htdocs/install/etape4.php b/htdocs/install/etape4.php index a9bcbff1694..27643534444 100644 --- a/htdocs/install/etape4.php +++ b/htdocs/install/etape4.php @@ -20,7 +20,6 @@ * * $Id$ * $Source$ - * */ /** @@ -33,15 +32,17 @@ include_once("./inc.php"); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("admin"); $langs->load("install"); + pHeader($langs->trans("AdminAccountCreation"),"etape5"); if (file_exists($conffile)) { - include_once($conffile); + include_once($conffile); } if($dolibarr_main_db_type == "mysql") @@ -101,6 +102,6 @@ if ($db->ok == 1) $db->close(); -pFooter($err); +pFooter($err,$setuplang); ?> diff --git a/htdocs/install/etape5.php b/htdocs/install/etape5.php index 29431ad4989..df18d21b767 100644 --- a/htdocs/install/etape5.php +++ b/htdocs/install/etape5.php @@ -31,7 +31,8 @@ include_once("./inc.php"); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("admin"); $langs->load("install"); @@ -142,11 +143,17 @@ if ($_POST["action"] == "set" || $_POST["action"] == "upgrade") // Si install non Français, on configure pour fonctionner en mode internationnal if ($langs->defaultlang != "fr_FR") { - $db->query("UPDATE llx_const set value='eldy.php' WHERE name='MAIN_MENU_BARRETOP';"); - $db->query("UPDATE llx_const set value='eldy.php' WHERE name='MAIN_MENU_BARRELEFT';"); + $db->query("UPDATE llx_const set value='eldy_backoffice.php' WHERE name='MAIN_MENU_BARRETOP';"); + $db->query("UPDATE llx_const set value='eldy_backoffice.php' WHERE name='MAIN_MENU_BARRELEFT';"); + + $db->query("UPDATE llx_const set value='eldy_frontoffice.php' WHERE name='MAIN_MENUFRONT_BARRETOP';"); + $db->query("UPDATE llx_const set value='eldy_frontoffice.php' WHERE name='MAIN_MENUFRONT_BARRELEFT';"); } + } } + + $db->query("UPDATE llx_const set value='".$setuplang."' WHERE name='MAIN_LANG_DEFAULT';"); print ''; @@ -184,5 +191,6 @@ print $langs->trans("GoToSetupArea"); print ''; -pFooter(1); +pFooter(1,$setuplang); + ?> diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index 2ffa6dc8b76..5c348ae4777 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -21,7 +21,6 @@ * * $Id$ * $Source$ - * */ /** @@ -36,9 +35,11 @@ include_once("./inc.php"); $err=0; $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("install"); + pHeader($langs->trans("ConfigurationFile"),"etape1"); // Ici, le fichier conf.php existe et est forcément editable car le test a été fait précédemment. @@ -268,6 +269,6 @@ Nom ou adresse ip du serveur de base de donn diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index 9d5cc7b5293..35562bf9b9f 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -32,18 +32,12 @@ $docurl = 'documentation'; $conffile = "../conf/conf.php"; -// Récupère langues du navigateur et defini langcode -$langpref=$_SERVER['HTTP_ACCEPT_LANGUAGE']; -$langpref=eregi_replace(";[^,]*","",$langpref); -$langpref=eregi_replace("-","_",$langpref); -$langlist=split("[;,]",$langpref); -$langpart=split("_",$langlist[0]); -if ($langpart[1]) $langcode=$langpart[0]."_".strtoupper($langpart[1]); -else $langcode=$langpart[0]."_".strtoupper($langpart[0]); // Defini objet langs require_once("../translate.class.php"); +$langcode='auto'; $langs = new Translate("../langs", $langcode); + $tab[0]=' class="bg1"'; $tab[1]=' class="bg2"'; @@ -53,6 +47,7 @@ function pHeader($soutitre,$next,$action='set') $langs->load("main"); $langs->load("admin"); + print ''."\n"; print ''; print ''; print ''; @@ -73,7 +68,7 @@ function pHeader($soutitre,$next,$action='set') } -function pFooter($nonext=0,$addlang=1) +function pFooter($nonext=0,$setuplang='') { global $langs; $langs->load("main"); @@ -81,11 +76,12 @@ function pFooter($nonext=0,$addlang=1) print ''; if (! $nonext) - { + { print '
">
'; - } - if ($addlang) { - print ''; + } + if ($setuplang) + { + print ''; } print ''; print ''; diff --git a/htdocs/install/index.php b/htdocs/install/index.php index 89590a6d7f5..174ff3b2440 100644 --- a/htdocs/install/index.php +++ b/htdocs/install/index.php @@ -18,7 +18,6 @@ * * $Id$ * $Source$ - * */ /** @@ -36,7 +35,7 @@ $err = 0; // Si fichier conf existe deja, on est pas sur une premiere install, // on ne passe donc pas par la page de choix de langue -if (file_exists($conffile)) +if (!file_exists($conffile)) { header("Location: check.php"); exit; @@ -65,6 +64,6 @@ print ''; // Si pas d'erreur, on affiche le bouton pour passer à l'étape suivante -if ($err == 0) pFooter(0,0); +if ($err == 0) pFooter(0); ?> diff --git a/htdocs/install/licence.php b/htdocs/install/licence.php index fae2be77835..09595e72c67 100644 --- a/htdocs/install/licence.php +++ b/htdocs/install/licence.php @@ -31,15 +31,17 @@ include_once("./inc.php"); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("install"); + pHeader($langs->trans("License"),"fileconf"); print '
';
 $langs->print_file("html/gpl.txt",1);
 print "
"; -pFooter(); +pFooter(0,$setuplang); ?> diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index 2b2f037009a..1926dea5966 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -41,7 +41,8 @@ set_time_limit(60); error_reporting($err); $setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load("admin"); $langs->load("install"); @@ -213,6 +214,6 @@ else print '
'.$langs->trans("ErrorWrongParameters").'
'; } -pFooter(! $ok); +pFooter(! $ok,$setuplang); ?> diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 90489189a90..c528130961c 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -40,7 +40,8 @@ set_time_limit(60); error_reporting($err); $setuplang=isset($_POST['selectlang'])?$_POST['selectlang']:(isset($_GET['selectlang'])?$_GET['selectlang']:$langcode); -$langs->defaultlang=$setuplang; +$langs->setDefaultLang($setuplang); + $langs->load('admin'); $langs->load('install'); $langs->load("bills"); @@ -151,7 +152,7 @@ else } -pFooter($error); +pFooter($error,$setuplang); diff --git a/htdocs/translate.class.php b/htdocs/translate.class.php index 3f833916daa..c9d59356dca 100644 --- a/htdocs/translate.class.php +++ b/htdocs/translate.class.php @@ -48,15 +48,30 @@ class Translate { function Translate($dir = "", $defaultlang = "") { $this->dir=$dir; + $this->setDefaultLang($defaultlang); + } + + + /** + * \brief Accesseur de this->defaultlang + * \param defaultlang Langue par defaut à utiliser + */ + function setDefaultLang($defaultlang) + { if ($defaultlang == 'auto') { - $listlang=split('[,;]',$_SERVER["HTTP_ACCEPT_LANGUAGE"]); - $defaultlang=ereg_replace('-','_',$listlang[0]); + $langpref=$_SERVER['HTTP_ACCEPT_LANGUAGE']; + $langpref=eregi_replace(";[^,]*","",$langpref); + $langpref=eregi_replace("-","_",$langpref); + $listlang=split('[,;]',$langpref); + $defaultlang=$listlang[0]; } if (strlen($defaultlang) <= 3) $defaultlang=$defaultlang."_".$defaultlang; + $this->defaultlang=strtolower($defaultlang); } + /** * \brief Charge en mémoire le tableau de traduction pour un domaine particulier * Si le domaine est deja chargé, la fonction ne fait rien @@ -108,7 +123,8 @@ class Translate { $this->tab_loaded[$domain]=1; // Marque ce fichier comme chargé } } - } + } + /** * \brief Retourne la liste des domaines chargées en memoire @@ -135,6 +151,7 @@ class Translate { return $this->transnoentities($str,htmlentities($param1),htmlentities($param2),htmlentities($param3)); } + /** * \brief Retourne la version traduite du texte passé en paramètre * Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif @@ -145,23 +162,25 @@ class Translate { * \param param3 chaine de param1 * \return string chaine traduite */ - - function transnoentities($str, $param1='', $param2='', $param3='') { - if (isset($this->tab_translate[$str]) && $this->tab_translate[$str]) { + function transnoentities($str, $param1='', $param2='', $param3='') + { + if (isset($this->tab_translate[$str]) && $this->tab_translate[$str]) + { // Si la traduction est disponible return sprintf($this->tab_translate[$str],$param1,$param2,$param3); } return $str; } + /** * \brief Retourne la version traduite du texte passé en paramètre complété du code pays * \param str chaine a traduire * \param countrycode code pays (FR, ...) * \return string chaine traduite */ - - function transcountry($str, $countrycode) { + function transcountry($str, $countrycode) + { if ($this->tab_translate["$str$countrycode"]) return $this->trans("$str$countrycode"); else return $this->trans("$str"); } @@ -171,7 +190,6 @@ class Translate { * \brief Retourne la liste des langues disponibles * \return array list of languages */ - function get_available_languages($langdir=DOL_DOCUMENT_ROOT) { // On parcour le répertoire langs pour détecter les langues disponibles @@ -211,8 +229,8 @@ class Translate { * \return boolean true si existe, false sinon */ - function file_exists($filename,$searchalt=0) { - + function file_exists($filename,$searchalt=0) + { // Test si fichier dans répertoire de la langue $htmlfile=$this->dir."/".$this->defaultlang."/".$filename; if (is_readable($htmlfile)) return true; @@ -233,12 +251,12 @@ class Translate { * \param filename nom du fichier à rechercher * \param searchalt cherche aussi dans langue alternative */ - - function print_file($filename,$searchalt=0) { - + function print_file($filename,$searchalt=0) + { // Test si fichier dans répertoire de la langue $htmlfile=$this->dir."/".$this->defaultlang."/".$filename; - if (is_readable($htmlfile)) { + if (is_readable($htmlfile)) + { include $htmlfile; return true; } @@ -247,7 +265,8 @@ class Translate { // Test si fichier dans répertoire de la langue alternative if ($this->defaultlang != "en_US") $htmlfilealt = $this->dir."/en_US/".$filename; else $htmlfilealt = $this->dir."/fr_FR/".$filename; - if (is_readable($htmlfilealt)) { + if (is_readable($htmlfilealt)) + { include $htmlfilealt; return true; } @@ -256,7 +275,6 @@ class Translate { return false; } - } ?>