Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonjour a tous,
Besoin : Laisser la possibilité aux invités du forum mais également aux utilisateurs connectés de basculer dans une autre langue via des drapeaux
Ouvrir include/functions.php
Trouver dans la function check_cookie :
$pun_user['language'] = $pun_config['o_default_lang'];
Remplacer par :
// Changement de langue par cookies
if($_GET['lang']) {
if (file_exists('lang/'.$_GET['lang'].'/common.php')) {
setcookie('langue_defaut', $_GET['lang'], time()+3600);
$langue_defaut = $_GET['lang'];
} else {
$langue_defaut = $pun_config['o_default_lang'];
}
} else {
if(isset($_COOKIE['langue_defaut'])) {
$langue_defaut = $_COOKIE['langue_defaut'];
} else {
$langue_defaut = $pun_config['o_default_lang'];
}
}
$pun_user['language'] = $langue_defaut;
// Fin Changement de langue par cookies
Trouver dans la function set_default_user :
$pun_user['language'] = $pun_config['o_default_lang'];
Remplacer par :
// Changement de langue par cookies
if($_GET['lang']) {
if (file_exists('lang/'.$_GET['lang'].'/common.php')) {
setcookie('langue_defaut', $_GET['lang'], time()+3600);
$langue_defaut = $_GET['lang'];
} else {
$langue_defaut = $pun_config['o_default_lang'];
}
} else {
if(isset($_COOKIE['langue_defaut'])) {
$langue_defaut = $_COOKIE['langue_defaut'];
} else {
$langue_defaut = $pun_config['o_default_lang'];
}
}
$pun_user['language'] = $langue_defaut;
// Fin Changement de langue par cookies
Enfin ajouter ou vous le voulez les liens pour le choix de la langue par exemple dans /include/template/main.tpl :
<div id="langues">
<ul>
<li><a href="?lang=French"><img src="./img/flag_fr.png"></a></li>
<li><a href="?lang=English"><img src="./img/flag_en.png"></a></li>
</ul>
</div>
En espérant que cela puisse vous aider
Dernière modification par cmoirness (08-03-2012 12:38:44)
Hors ligne
Petite amélioration sur le code des drapeaux afin que le changement de langue se fasse également lorsque des variables sont déjà passés dans l'URL, par exemple pour la page profil et celle des forums ?id=XX
<div id="langues">
<ul>
<?php
$this_page = basename($_SERVER['REQUEST_URI']);
if (strpos($this_page, "?") !== false)
{
echo '<li><a href="'.$_SERVER['REQUEST_URI'].'&lang=French"><img src="./img/fr.png"/></a></li>';
echo '<li><a href="'.$_SERVER['REQUEST_URI'].'&lang=English"><img src="./img/en.png"/></a></li>';
}
else
{
echo '<li><a href="'.$_SERVER['REQUEST_URI'].'?lang=French"><img src="./img/fr.png"/></a></li>';
echo '<li><a href="'.$_SERVER['REQUEST_URI'].'?lang=English"><img src="./img/en.png"/></a></li>';
}
?>
</ul>
</div>
Dernière modification par cmoirness (08-03-2012 13:40:36)
Hors ligne
Bonjour,
Ton ajout est curieux car les deux assertions if et else contiennent exactement la même chose...
Hors ligne
Alors en fait il y a une légère différence, je suis pas super bon en développement donc il y a peut etre une autre technique mais en gros si l'url contient une variable ?XX=YY alors je passe la variable de langue avec un &lang= et si l'URL ne contient pas de parametre alors je met un ?lang=
Hors ligne
Exact, je n'avais pas assez bien regardé... DSL du dérangement.
Hors ligne