Je continue, petit à petit, à essayer de créer un site dont l'interface
serait disponible en plusieurs langues.
J'ai compris comment définir un cookie et détecter la langue utilisée
par le navigateur, mais j'aimerais pouvoir ajouter une nouvelle
possibilité, en permettant au visiteur de changer la langue de
l'interface, au cas où il préfèrerait une autre langue (on ne sait
jamais...).
L'idée est donc la suivante : définir un cookie, soit à partir des
données du navigateur, soit à partir d'un menu qui permet de transférer
une variable.
Après de nombreuses visites ici et là, je pensais avoir trouver mon
bonheur en écrivant :
> if (isset ($_GET['langue'])) { $langue =
> htmlentities(strip_tags($_GET['langue'])) =="'langue"; }
>
> else if (isset($_COOKIE_['langue'])) { $langue = $_COOKIE['langue'];
> }
>
> else { $langue =
> substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2); }
> switch($langue){ case 'en': case 'es': case 'fr': case 'it': case
> 'pt': include($langue.'/index.php'); break; default:
> include('fr/index.php'); break; }
>
> $expire = 365*24*3600; setcookie("langue", $langue, time() +
> $expire);
Mais voilà, ça ne fonctionne pas. La partie basée sur la détection du
navigateur, pour sa part, fonctionne très bien, puisque quand je change
ma langue dans Firefox, le cookie est redéfini. En revanche, pas moyen
de réécrire le cookie quand je clique sur les petits boutons de mon menu
supplémentaire, que j'ai pourtant pris soin d'écrire ainsi, par exemple :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
CrazyCat
GizMecano wrote:
if (isset ($_GET['langue'])) { $langue >>htmlentities(strip_tags($_GET['langue'])) =="'langue"; }
else if (isset($_COOKIE_['langue'])) { $langue = $_COOKIE['langue']; }
Lorsue tu as ton $_GET, tu ne remplis pas ton cookie? Etrange non? Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me choque un peu, surtout le "'langue" sans fermer la simple quote (ou bien erreur de copie)
-- Tchattez en liberté: http://www.c-p-f.net Tout sur les eggdrops: http://www.c-p-f.org ML @
--
GizMecano wrote:
if (isset ($_GET['langue'])) { $langue >>htmlentities(strip_tags($_GET['langue'])) =="'langue"; }
else if (isset($_COOKIE_['langue'])) { $langue = $_COOKIE['langue'];
}
Lorsue tu as ton $_GET, tu ne remplis pas ton cookie?
Etrange non?
Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me
choque un peu, surtout le "'langue" sans fermer la simple quote (ou bien
erreur de copie)
--
Tchattez en liberté: http://www.c-p-f.net
Tout sur les eggdrops: http://www.c-p-f.org
ML @ eggdrop_fr@yahoogroupes.fr
if (isset ($_GET['langue'])) { $langue >>htmlentities(strip_tags($_GET['langue'])) =="'langue"; }
else if (isset($_COOKIE_['langue'])) { $langue = $_COOKIE['langue']; }
Lorsue tu as ton $_GET, tu ne remplis pas ton cookie? Etrange non? Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me choque un peu, surtout le "'langue" sans fermer la simple quote (ou bien erreur de copie)
-- Tchattez en liberté: http://www.c-p-f.net Tout sur les eggdrops: http://www.c-p-f.org ML @
--
GizMecano
Hello,
Lorsue tu as ton $_GET, tu ne remplis pas ton cookie? Etrange non?
J'ai essayé avec les deux solutions, mais aucune des deux ne fonctionnent correctement. En toute logique, effectivement, je pense que je devrais définir le cookie deux fois, puisque je veux switcher le cookie déjà en place...
Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me choque un peu, surtout le "'langue" sans fermer la simple quote (ou bien erreur de copie)
Erreur de copie, effectivement :-(
A force de glaner des bouts de codes un peu partout pour arriver à faire une sauce personnelle, j'avoue que je m'y perd un peu dans mes ctrl-v ;-)
Ceci dit, si quelqu'un ici à une combine pour arriver à réécrire un cookie déjà précédemment défini, à partir d'une nouvelle variable, j'avoue que ça m'aiderait beaucoup.
D'avance merci,
Ciao,
-- Which are the two basic principles of Windows system administration? For minor problems, reboot. For major ones, reinstall...
GizMecano Laboratory http://gizmecano.free.fr/
--
Hello,
Lorsue tu as ton $_GET, tu ne remplis pas ton cookie? Etrange non?
J'ai essayé avec les deux solutions, mais aucune des deux ne
fonctionnent correctement. En toute logique, effectivement, je pense que
je devrais définir le cookie deux fois, puisque je veux switcher le
cookie déjà en place...
Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me
choque un peu, surtout le "'langue" sans fermer la simple quote (ou
bien erreur de copie)
Erreur de copie, effectivement :-(
A force de glaner des bouts de codes un peu partout pour arriver à faire
une sauce personnelle, j'avoue que je m'y perd un peu dans mes ctrl-v ;-)
Ceci dit, si quelqu'un ici à une combine pour arriver à réécrire un
cookie déjà précédemment défini, à partir d'une nouvelle variable,
j'avoue que ça m'aiderait beaucoup.
D'avance merci,
Ciao,
--
Which are the two basic principles of Windows system administration?
For minor problems, reboot. For major ones, reinstall...
Lorsue tu as ton $_GET, tu ne remplis pas ton cookie? Etrange non?
J'ai essayé avec les deux solutions, mais aucune des deux ne fonctionnent correctement. En toute logique, effectivement, je pense que je devrais définir le cookie deux fois, puisque je veux switcher le cookie déjà en place...
Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me choque un peu, surtout le "'langue" sans fermer la simple quote (ou bien erreur de copie)
Erreur de copie, effectivement :-(
A force de glaner des bouts de codes un peu partout pour arriver à faire une sauce personnelle, j'avoue que je m'y perd un peu dans mes ctrl-v ;-)
Ceci dit, si quelqu'un ici à une combine pour arriver à réécrire un cookie déjà précédemment défini, à partir d'une nouvelle variable, j'avoue que ça m'aiderait beaucoup.
D'avance merci,
Ciao,
-- Which are the two basic principles of Windows system administration? For minor problems, reboot. For major ones, reinstall...