New: Gestion du choix de langue "auto"

This commit is contained in:
Laurent Destailleur 2005-10-30 01:07:00 +00:00
parent dc74b45d2b
commit 61dfbf5764
14 changed files with 104 additions and 69 deletions

View File

@ -164,7 +164,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'edit')
// Liste des zone de recherche permanantes supportées
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td>'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td></tr>';
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td></tr>';
$var=True;
foreach ($searchform as $key => $value)
{
@ -265,7 +265,7 @@ else
// Liste des zone de recherche permanantes supportées
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td>'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td></tr>';
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("PermanentLeftSearchForm").'</td><td>'.$langs->trans("Activated").'</td></tr>';
$var=true;
foreach ($searchform as $key => $value) {
$var=!$var;

View File

@ -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 '<table width="100%" cellspacing="0" cellpadding="4" border="1">';
print '<table width="100%" cellspacing="1" cellpadding="4" border="1">';
print '<tr><td nowrap><b>'.$langs->trans("FreshInstall").'</b></td><td>';
print '<tr><td nowrap="nowrap"><b>'.$langs->trans("FreshInstall").'</b></td><td>';
print $langs->trans("FreshInstallDesc").'</td>';
print '<td align="center">';
if ($allowinstall)
@ -140,7 +141,7 @@ else
print '</td>';
print '</tr>';
print '<tr><td nowrap><b>'.$langs->trans("Upgrade").'</b></td><td>';
print '<tr><td nowrap="nowrap"><b>'.$langs->trans("Upgrade").'</b></td><td>';
print $langs->trans("UpgradeDesc").'</td>';
print '<td align="center">';
if ($allowupgrade)

View File

@ -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;
}

View File

@ -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 '</table>';
}
pFooter($error);
pFooter($error,$setuplang);
?>

View File

@ -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);
?>

View File

@ -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);
?>

View File

@ -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 '</table>';
@ -184,5 +191,6 @@ print $langs->trans("GoToSetupArea");
print '</a>';
pFooter(1);
pFooter(1,$setuplang);
?>

View File

@ -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
<?php
pFooter($err);
pFooter($err,$setuplang);
?>

View File

@ -32,18 +32,12 @@ $docurl = '<a href="doc/dolibarr-install.html">documentation</a>';
$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 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'."\n";
print '<html>';
print '<head>';
print '<meta http-equiv="content-type" content="text/html; charset='.$langs->trans("charset").'">';
@ -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 '</div></div>';
if (! $nonext)
{
{
print '<div class="barrebottom"><input type="submit" value="'.$langs->trans("NextStep").' ->"></div>';
}
if ($addlang) {
print '<input type="hidden" name="selectlang" value="'.$langs->defaultlang.'">';
}
if ($setuplang)
{
print '<input type="hidden" name="selectlang" value="'.$setuplang.'">';
}
print '</form>';
print '</body>';

View File

@ -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 '</tr></table>';
// Si pas d'erreur, on affiche le bouton pour passer à l'étape suivante
if ($err == 0) pFooter(0,0);
if ($err == 0) pFooter(0);
?>

View File

@ -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 '<pre>';
$langs->print_file("html/gpl.txt",1);
print "</pre>";
pFooter();
pFooter(0,$setuplang);
?>

View File

@ -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 '<div class="error">'.$langs->trans("ErrorWrongParameters").'</div>';
}
pFooter(! $ok);
pFooter(! $ok,$setuplang);
?>

View File

@ -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);

View File

@ -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;
}
}
?>