Bonjour,
Je tiens tout d'abord à prevenir que je suis vraiment debutant en php.
Je cherche a mettre en place un site multi langage, mais cela me pose pas mal de probleme et j'arrive pas à trouver de solution.
J'ai donc une page php decide-lang.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?php
if(isset($HTTP_COOKIE_VARS['lang'])) {
$lang = $HTTP_COOKIE_VARS['lang'];
} else {
// si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur
$lang = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
}
//script d'origine
if ($lang=='fr') { // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
include('lang/french.php');
} elseif ($lang=='en') { // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
include('lang/english.php');
}
//fin du script d'origine
//définition de la durée du cookie (1 an)
$expire = 365*24*3600;
//enregistrement du cookie au nom de lang
setcookie("lang", $lang, time() + $expire);
?> |
Puis j'appel cette page dans mes autres pages par
require("decide-lang.php");
J'ai aussi des pages french.php et english.php dans lesquelles je defini la valeur de mes variables, par ex :
et
J'ai donc mon petit drapeau pour changer de langue
(au passage voici le code que j'ai utiliser pour changer la valeur de $lang)
<a href="monsite?lang=en"><img src="www/themes/images/gb.png" alt="english" /></a>
Si je lance tout ça sans la creation du cookie, cela fonctionne correctement dans la page actuelle.
Le probleme ce pose sur la creation du cookies, alors la plus rien ne marche, ni la page actuel subi de changement et à plus forte raison ni les autres pages.
Auriez vous une solution pour qu'une fois que j'ai appuyer sur mon drapeau , tout le site utilise les valeurs anglaise ?
Merci
Je vois pas d'ou viens le probleme, j'ai vraiment suivi à la lettre les indication du tuto
Merci beaucoup
Partager