New: Gestion du choix de langue "auto"
This commit is contained in:
parent
f9f88769d0
commit
dc74b45d2b
@ -96,7 +96,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'edit')
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
|
||||
$html=new Form($db);
|
||||
$html->select_lang($conf->global->MAIN_LANG_DEFAULT,'main_lang_default');
|
||||
$html->select_lang($conf->global->MAIN_LANG_DEFAULT,'main_lang_default',1);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
@ -200,7 +200,7 @@ else
|
||||
print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>' . $conf->global->MAIN_LANG_DEFAULT . '</td></tr>';
|
||||
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>' . ($conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$conf->global->MAIN_LANG_DEFAULT) . '</td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMaxSizeList").'</td><td>' . $conf->global->SIZE_LISTE_LIMIT . '</td></tr>';
|
||||
@ -279,7 +279,7 @@ else
|
||||
print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("MessageOfDay").'</td><td>' . stripslashes(nl2br($conf->global->MAIN_MOTD)) . '</td></tr>';
|
||||
print '</table><br>';
|
||||
print '</table>';
|
||||
|
||||
print '<div class="tabsAction">';
|
||||
print '<a class="tabAction" href="ihm.php?action=edit">'.$langs->trans("Edit").'</a>';
|
||||
|
||||
@ -240,37 +240,44 @@ class Form
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Retourne la liste déroulante des langues disponibles
|
||||
* \param selected Langue présélectionnée
|
||||
* \param htmlname Nom de la zone select
|
||||
*/
|
||||
function select_lang($selected='',$htmlname='lang_id')
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$langs_available=$langs->get_available_languages();
|
||||
/**
|
||||
* \brief Retourne la liste déroulante des langues disponibles
|
||||
* \param selected Langue présélectionnée
|
||||
* \param htmlname Nom de la zone select
|
||||
* \param showauto Affiche choix auto
|
||||
*/
|
||||
function select_lang($selected='',$htmlname='lang_id',$showauto=0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
print '<select class="flat" name="'.$htmlname.'">';
|
||||
$num = count($langs_available);
|
||||
$i = 0;
|
||||
if ($num)
|
||||
{
|
||||
while ($i < $num)
|
||||
{
|
||||
if ($selected == $langs_available[$i])
|
||||
{
|
||||
print '<option value="'.$langs_available[$i].'" selected="true">'.$langs_available[$i].'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<option value="'.$langs_available[$i].'">'.$langs_available[$i].'</option>';
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
print '</select>';
|
||||
}
|
||||
$langs_available=$langs->get_available_languages();
|
||||
|
||||
print '<select class="flat" name="'.$htmlname.'">';
|
||||
if ($showauto)
|
||||
{
|
||||
print '<option value="auto"';
|
||||
if ($selected == 'auto') print ' selected="true"';
|
||||
print '>'.$langs->trans("AutoDetectLang").'</option>';
|
||||
}
|
||||
$num = count($langs_available);
|
||||
$i = 0;
|
||||
if ($num)
|
||||
{
|
||||
while ($i < $num)
|
||||
{
|
||||
if ($selected == $langs_available[$i])
|
||||
{
|
||||
print '<option value="'.$langs_available[$i].'" selected="true">'.$langs_available[$i].'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<option value="'.$langs_available[$i].'">'.$langs_available[$i].'</option>';
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
print '</select>';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@ -29,6 +29,7 @@
|
||||
*/
|
||||
|
||||
include_once("./inc.php");
|
||||
include_once("../html.form.class.php");
|
||||
|
||||
|
||||
$err = 0;
|
||||
@ -38,6 +39,7 @@ $err = 0;
|
||||
if (file_exists($conffile))
|
||||
{
|
||||
header("Location: check.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
@ -51,28 +53,14 @@ $langs->load("admin");
|
||||
$langs_available=$langs->get_available_languages("..");
|
||||
$selected=$langs->defaultlang;
|
||||
|
||||
define('DOL_DOCUMENT_ROOT','..');
|
||||
|
||||
print '<br><br>';
|
||||
print '<table><tr>';
|
||||
print '<td>'.$langs->trans("DefaultLanguage").' : </td><td align="left"> ';
|
||||
print '<select name="selectlang">';
|
||||
$num = count($langs_available);
|
||||
$i = 0;
|
||||
if ($num)
|
||||
{
|
||||
while ($i < $num)
|
||||
{
|
||||
if ($selected == $langs_available[$i])
|
||||
{
|
||||
print '<option value="'.$langs_available[$i].'" selected="true">'.$langs_available[$i].'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<option value="'.$langs_available[$i].'">'.$langs_available[$i].'</option>';
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
print '</select></td>';
|
||||
print '<td>'.$langs->trans("DefaultLanguage").' : </td><td align="left">';
|
||||
$html=new Form('');
|
||||
$html->select_lang($selected,'selectlang',1);
|
||||
print '</td>';
|
||||
print '</tr></table>';
|
||||
|
||||
|
||||
|
||||
@ -31,6 +31,7 @@ System=System
|
||||
SystemInfo=System informations
|
||||
Yes=Yes
|
||||
No=No
|
||||
AutoDetectLang=Autodetect (browser language)
|
||||
Rights=Permissions
|
||||
BoxesDesc=Boxes are screen area that show some informations on some pages. You can choose between showing or not a such box by selecting target page en clicking 'Activate', or by clicking the dustbin to disable it. Only boxes about enabled <a href="modules.php">modules</a> are shown.
|
||||
ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module.
|
||||
|
||||
@ -31,6 +31,7 @@ System=Syst
|
||||
SystemInfo=Infos Système
|
||||
Yes=Oui
|
||||
No=Non
|
||||
AutoDetectLang=Detection auto (langue navigateur)
|
||||
Rights=Permissions
|
||||
BoxesDesc=Les boîtes sont des zones d'information réduites qui s'affichent sur certaines pages. Vous pouvez choisir ou non d'activer une boîte en sélectionnant la page cible et en cliquant sur 'Activer', ou en cliquant sur la poubelle pour la désactiver. Seules les boîtes en rapport avec un <a href="modules.php">module</a> actif sont présentées.
|
||||
ModulesDesc=Les modules Dolibarr définissent les fonctionnalités disponibles dans l'application. Certains modules nécessitent des droits qu'il vous faudra affecter aux utilisateurs pour qu'ils puissent accéder à leurs fonctionnalités.
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
* Copyright (C) 2003 Xavier Dutoit <doli@sydesy.com>
|
||||
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||
*
|
||||
* 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
|
||||
|
||||
@ -42,22 +42,27 @@ class Translate {
|
||||
|
||||
/**
|
||||
* \brief Constructeur de la classe
|
||||
* \param dir repertoire racine des fichiers de traduction
|
||||
* \param defaultlang langue par defaut à utiliser
|
||||
* \param dir Repertoire racine des fichiers de traduction
|
||||
* \param defaultlang Langue par defaut à utiliser
|
||||
*/
|
||||
|
||||
function Translate($dir = "", $defaultlang = "") {
|
||||
function Translate($dir = "", $defaultlang = "")
|
||||
{
|
||||
$this->dir=$dir;
|
||||
$this->defaultlang=$defaultlang;
|
||||
if ($defaultlang == 'auto')
|
||||
{
|
||||
$listlang=split('[,;]',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
|
||||
$defaultlang=ereg_replace('-','_',$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
|
||||
* \param domain Nom du domain (fichier lang) à charger
|
||||
* \param alt Charge le fichier alternatif meme si fichier dans la langue est trouvé
|
||||
* \param alt Utilise le fichier alternatif meme si fichier dans la langue est trouvée
|
||||
*/
|
||||
|
||||
function Load($domain,$alt=0)
|
||||
{
|
||||
if (isset($this->tab_loaded[$domain]) && $this->tab_loaded[$domain]) { return; } // Le fichier de ce domaine est deja chargé
|
||||
@ -65,47 +70,52 @@ class Translate {
|
||||
// Repertoire de traduction
|
||||
$scandir = $this->dir."/".$this->defaultlang;
|
||||
$file_lang = $scandir . "/$domain.lang";
|
||||
$filelangexists=is_file($file_lang);
|
||||
|
||||
if ($alt || ! is_file($file_lang)) {
|
||||
if ($alt || ! $filelangexists)
|
||||
{
|
||||
// Repertoire de la langue alternative
|
||||
if ($this->defaultlang != "en_US") $scandiralt = $this->dir."/en_US";
|
||||
else $scandiralt = $this->dir."/fr_FR";
|
||||
$file_lang = $scandiralt . "/$domain.lang";
|
||||
$filelangexists=is_file($file_lang);
|
||||
$alt=1;
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
if(is_file($file_lang)) {
|
||||
if($fp = @fopen($file_lang,"rt")){
|
||||
if ($filelangexists)
|
||||
{
|
||||
if($fp = @fopen($file_lang,"rt"))
|
||||
{
|
||||
$finded = 0;
|
||||
while (($ligne = fgets($fp,4096)) && ($finded == 0)){
|
||||
if ($ligne[0] != "\n" && $ligne[0] != " " && $ligne[0] != "#") {
|
||||
while (($ligne = fgets($fp,4096)) && ($finded == 0))
|
||||
{
|
||||
if ($ligne[0] != "\n" && $ligne[0] != " " && $ligne[0] != "#")
|
||||
{
|
||||
$tab=split('=',$ligne,2);
|
||||
//print "Domain=$domain, found a string for $tab[0] with value $tab[1]<br>";
|
||||
if (! isset($this->tab_translate[$tab[0]])) $this->tab_translate[$tab[0]]=trim($tab[1]);
|
||||
if (! isset($this->tab_translate[$tab[0]])) $this->tab_translate[$tab[0]]=trim(isset($tab[1])?$tab[1]:'');
|
||||
}
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
// Pour les langues aux fichiers parfois incomplets, on charge la langue alternative
|
||||
if (! $alt && $this->defaultlang != "fr_FR" && $this->defaultlang != "en_US") {
|
||||
if (! $alt && $this->defaultlang != "fr_FR" && $this->defaultlang != "en_US")
|
||||
{
|
||||
dolibarr_syslog("translate::load loading alternate translation file");
|
||||
$this->load($domain,1);
|
||||
}
|
||||
|
||||
$this->tab_loaded[$domain]=1; // Marque ce fichier comme chargé
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Retourne la liste des domaines chargées en memoire
|
||||
* \return array Tableau des domaines chargées
|
||||
*/
|
||||
|
||||
function list_domainloaded() {
|
||||
function list_domainloaded()
|
||||
{
|
||||
return join(",",array_keys($this->tab_loaded));
|
||||
}
|
||||
|
||||
@ -120,8 +130,8 @@ class Translate {
|
||||
* \param param3 chaine de param1
|
||||
* \return string chaine traduite
|
||||
*/
|
||||
|
||||
function trans($str, $param1='', $param2='', $param3='') {
|
||||
function trans($str, $param1='', $param2='', $param3='')
|
||||
{
|
||||
return $this->transnoentities($str,htmlentities($param1),htmlentities($param2),htmlentities($param3));
|
||||
}
|
||||
|
||||
|
||||
@ -142,23 +142,23 @@ if ($_GET["action"] == 'edit')
|
||||
$var=true;
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameter").'</td><td width="25%">'.$langs->trans("DefaultValue").'</td><td> </td><td>'.$langs->trans("PersonalValue").'</td></tr>';
|
||||
print '<tr class="liste_titre"><td width="25%">'.$langs->trans("Parameter").'</td><td width="25%">'.$langs->trans("DefaultValue").'</td><td> </td><td>'.$langs->trans("PersonalValue").'</td></tr>';
|
||||
|
||||
// Langue par defaut
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("Language").'</td>';
|
||||
print '<td>'.$conf->global->MAIN_LANG_DEFAULT.'</td>';
|
||||
print '<td align="left"><input name="check_MAIN_LANG_DEFAULT" type="checkbox" '.($fuser->conf->MAIN_LANG_DEFAULT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td>'.($conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$conf->global->MAIN_LANG_DEFAULT).'</td>';
|
||||
print '<td align="left" nowrap="nowrap" width="20%"><input name="check_MAIN_LANG_DEFAULT" type="checkbox" '.($fuser->conf->MAIN_LANG_DEFAULT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td>';
|
||||
$html=new Form($db);
|
||||
$html->select_lang($fuser->conf->MAIN_LANG_DEFAULT,'main_lang_default');
|
||||
$html->select_lang($fuser->conf->MAIN_LANG_DEFAULT,'main_lang_default',1);
|
||||
print '</td></tr>';
|
||||
|
||||
// Taille max des listes
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("MaxSizeList").'</td>';
|
||||
print '<td>'.$conf->global->SIZE_LISTE_LIMIT.'</td>';
|
||||
print '<td align="left"><input name="check_SIZE_LISTE_LIMIT" type="checkbox" '.($fuser->conf->SIZE_LISTE_LIMIT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td align="left" nowrap="nowrap" width="20%"><input name="check_SIZE_LISTE_LIMIT" type="checkbox" '.($fuser->conf->SIZE_LISTE_LIMIT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td><input class="flat" name="size_liste_limit" size="4" value="' . $fuser->conf->SIZE_LISTE_LIMIT . '"></td></tr>';
|
||||
|
||||
print '</table><br>';
|
||||
@ -182,18 +182,18 @@ else
|
||||
$var=true;
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameter").'</td><td width="25%">'.$langs->trans("DefaultValue").'</td><td> </td><td>'.$langs->trans("PersonalValue").'</td></tr>';
|
||||
print '<tr class="liste_titre"><td width="25%">'.$langs->trans("Parameter").'</td><td width="25%">'.$langs->trans("DefaultValue").'</td><td> </td><td>'.$langs->trans("PersonalValue").'</td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("Language").'</td>';
|
||||
print '<td>'.$conf->global->MAIN_LANG_DEFAULT.'</td>';
|
||||
print '<td align="left"><input type="checkbox" disabled '.($fuser->conf->MAIN_LANG_DEFAULT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td>' . $fuser->conf->MAIN_LANG_DEFAULT . '</td></tr>';
|
||||
print '<td>'.($conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$conf->global->MAIN_LANG_DEFAULT).'</td>';
|
||||
print '<td align="left" nowrap="nowrap" width="20%"><input type="checkbox" disabled '.($fuser->conf->MAIN_LANG_DEFAULT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td>'.($fuser->conf->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$fuser->conf->MAIN_LANG_DEFAULT).'</td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("MaxSizeList").'</td>';
|
||||
print '<td>'.$conf->global->SIZE_LISTE_LIMIT.'</td>';
|
||||
print '<td align="left"><input type="checkbox" disabled '.($fuser->conf->SIZE_LISTE_LIMIT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td align="left" nowrap="nowrap" width="20%"><input type="checkbox" disabled '.($fuser->conf->SIZE_LISTE_LIMIT?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td>' . $fuser->conf->SIZE_LISTE_LIMIT . '</td></tr>';
|
||||
|
||||
print '</table><br>';
|
||||
@ -225,13 +225,13 @@ function show_theme($fuser,$edit=0)
|
||||
$thumbsbyrow=6;
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameter").'</td><td width="25%">'.$langs->trans("DefaultValue").'</td><td colspan="2"> </td></tr>';
|
||||
print '<tr class="liste_titre"><td width="25%">'.$langs->trans("Parameter").'</td><td width="25%">'.$langs->trans("DefaultValue").'</td><td colspan="2"> </td></tr>';
|
||||
|
||||
$var=false;
|
||||
|
||||
print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultSkin").'</td>';
|
||||
print '<td>'.$conf->global->MAIN_THEME.'</td>';
|
||||
print '<td '.$bc[$var].' align="left"><input name="check_MAIN_THEME"'.($edit?'':' disabled').' type="checkbox" '.($fuser->conf->MAIN_THEME?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td '.$bc[$var].' align="left" nowrap="nowrap" width="20%"><input name="check_MAIN_THEME"'.($edit?'':' disabled').' type="checkbox" '.($fuser->conf->MAIN_THEME?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
|
||||
print '<td '.$bc[$var].'> </td></tr>';
|
||||
|
||||
$var=!$var;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user