Redirection selon la langue du visiteur
Résolu
guifson
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
Aurèli1s Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
Aurèli1s Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
Bonjous a tous.
J'aimerai savoir comment on peut adapter un cookie ou bien une fonction php, de telle facon qu'une page precise du site d'affiche selon la langue du visiteur.
En fait, mon site est en trois langues, Anglais, francais et Espagnol.
https://www.afribaba.com (l'index principale est en Anglais )
https://www.afribaba.com (est la partie en francais)
https://www.afribaba.com (est la partie en Espagnol)
Mon probleme concret, est de savoir s'avoir comment adapter peut-etre un cookie ou bien une fonction php:
-->qui redirige un visiteur sur https://www.afribaba.com si sa langue est le francais
-->qui redirige un visiteur sur https://www.afribaba.com si sa langue est l'espagnol
-->qui redirige un visteur sur https://www.afribaba.com si sa langue est l'anglais et/ou bien une langue qui n'est ni le francais, ni l'espagnol
Ok Merci a vous
J'aimerai savoir comment on peut adapter un cookie ou bien une fonction php, de telle facon qu'une page precise du site d'affiche selon la langue du visiteur.
En fait, mon site est en trois langues, Anglais, francais et Espagnol.
https://www.afribaba.com (l'index principale est en Anglais )
https://www.afribaba.com (est la partie en francais)
https://www.afribaba.com (est la partie en Espagnol)
Mon probleme concret, est de savoir s'avoir comment adapter peut-etre un cookie ou bien une fonction php:
-->qui redirige un visiteur sur https://www.afribaba.com si sa langue est le francais
-->qui redirige un visiteur sur https://www.afribaba.com si sa langue est l'espagnol
-->qui redirige un visteur sur https://www.afribaba.com si sa langue est l'anglais et/ou bien une langue qui n'est ni le francais, ni l'espagnol
Ok Merci a vous
A voir également:
- Http_accept_language
- Changer langue windows 10 - Guide
- Telecharger langue arabe - Télécharger - Bureautique
- Comment changer la langue sur facebook - Guide
- Telecharger la langue arabe sur le clavier - Télécharger - Divers Web & Internet
- Voir son profil facebook comme un visiteur - Guide
12 réponses
Salut,
Je viens de lire la FAQ indiquée par Ssylvainsab, et il me semble que c'est exactement la réponse à ta question. Relis bien cette FAQ et surtout essaye de bien comprendre ce qui est écrit. Il faut juste que tu l'adaptes un peu à ton site. Par exemple, dans ton cas, à la place de
La ligne
Si tu veux comprendre ce que contient la variable $HTTP_ACCEPT_LANGUAGE, il te suffit d'écrire dans ton fichier index.php
Je viens de lire la FAQ indiquée par Ssylvainsab, et il me semble que c'est exactement la réponse à ta question. Relis bien cette FAQ et surtout essaye de bien comprendre ce qui est écrit. Il faut juste que tu l'adaptes un peu à ton site. Par exemple, dans ton cas, à la place de
header("Location: /index.php?Langue=fr");il faudra que tu écrives
header("Location: /fr/index.php");puisque ton site fonctionne comme ça (c'est cette ligne qui permet de faire la redirection).
La ligne
$Langue = explode(",",$HTTP_ACCEPT_LANGUAGE);permet de savoir quelle langue utilise la personne qui surf sur ton site. En effet, $HTTP_ACCEPT_LANGUAGE est renvoyé par le navigateur (Internet Explorer, Firefox, etc.) que la personne utilise pour surfer et c'est dans cette variable qu'on peut extraire la langue.
Si tu veux comprendre ce que contient la variable $HTTP_ACCEPT_LANGUAGE, il te suffit d'écrire dans ton fichier index.php
echo $HTTP_ACCEPT_LANGUAGE;Ensuite, si tu veux comprendre ce que fait
$Langue = explode(",",$HTTP_ACCEPT_LANGUAGE);il te suffit de faire
echo explode(",",$HTTP_ACCEPT_LANGUAGE);etc.
Salut.
La réponse à ta question est dans la FAQ : php rediriger en fonction de la langue du visiteur
La réponse à ta question est dans la FAQ : php rediriger en fonction de la langue du visiteur
Merci zefoots.
Je n'ai fait que donner un lien, c'est toi qui a expliqué !
Par contre, il vaut mieux utiliser les variables superglobales : $_SERVER['HTTP_ACCEPT_LANGUAGE'].
J'ai changé ça dans l'astuce.
Je n'ai fait que donner un lien, c'est toi qui a expliqué !
Par contre, il vaut mieux utiliser les variables superglobales : $_SERVER['HTTP_ACCEPT_LANGUAGE'].
J'ai changé ça dans l'astuce.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mais justement le probleme est que je n'ai pas $langue dans mon site.
En fait je peux dire que j'ai reunit trois sites entier en un seul, car https://www.afribaba.com , https://www.afribaba.com et https://www.afribaba.com sont presque fait differamment , ce qui fait que il n'y'a aucun dossier lang qui relie les 2 sous-domaines et l'index principale.
Merci a vous
En fait je peux dire que j'ai reunit trois sites entier en un seul, car https://www.afribaba.com , https://www.afribaba.com et https://www.afribaba.com sont presque fait differamment , ce qui fait que il n'y'a aucun dossier lang qui relie les 2 sous-domaines et l'index principale.
Merci a vous
Salut tt le monde
je me retrouve a avoir les meme besoin, j'ai suivi le faq et voila le code que j'ai rajoute :
if (!isset($Langue)) {
$Langue = explode(',',$_server['HTTP_ACCEPT_LANGUAGE']);
$Langue = strtolower(substr(chop($Langue[0]),0,2)); }
else
$Langue="fr";
}
{
header("Location: /index.php/$Langue");
}
?>
pour mon blog :
http://zeb.3dvf.com/blog/
le probleme etant que la redirection ne marche pas et la page devient inatteignable.
a savoir en rentrant http://zeb.3dvf.com/blog/ je suis redirige vers : http://zeb.3dvf.com/index.php/fr
help :)
je me retrouve a avoir les meme besoin, j'ai suivi le faq et voila le code que j'ai rajoute :
if (!isset($Langue)) {
$Langue = explode(',',$_server['HTTP_ACCEPT_LANGUAGE']);
$Langue = strtolower(substr(chop($Langue[0]),0,2)); }
else
$Langue="fr";
}
{
header("Location: /index.php/$Langue");
}
?>
pour mon blog :
http://zeb.3dvf.com/blog/
le probleme etant que la redirection ne marche pas et la page devient inatteignable.
a savoir en rentrant http://zeb.3dvf.com/blog/ je suis redirige vers : http://zeb.3dvf.com/index.php/fr
help :)
Tu ne peux pas envoyer un header après avoir affiché quoi que ce soit.
Est-ce que ton problème ne viendrait pas de là ?
--
Sylvain
Est-ce que ton problème ne viendrait pas de là ?
--
Sylvain
mmm je suis pas trop sur de ce que tu veux dire par afficher quoi que ce soit ?
tu veux dire par la que cette partie de l'index .php doit figurer en debut de code ?
tu veux dire par la que cette partie de l'index .php doit figurer en debut de code ?
Par "affiches quoi que ce soit", j'entends "envoyer quelquechose au client". Si tu envoies quelque chose au client, les headers seront envoyés avec, donc tu ne peux pas en envoyer d'autre.
--
Sylvain
--
Sylvain
Concretement j'ai installe le script en debut du fichier index.php ( qui contient en plus les informations de base pour les blog gere par dotclear) , donc il ne me semble pas que j'envoies quelquechose au client avant le header lui meme.
Actuellement le script evidemment n'est pas present sur le blog.
Je crois surtout que ce qui pose probleme c que l'index.php est dans le repertoire blog. Peut etre utiliser une redirection pour faire sauter le index.php aiderait ? je sais pas, je sais plus :)....
Actuellement le script evidemment n'est pas present sur le blog.
Je crois surtout que ce qui pose probleme c que l'index.php est dans le repertoire blog. Peut etre utiliser une redirection pour faire sauter le index.php aiderait ? je sais pas, je sais plus :)....
remplacer
header("Location: /index.php/$Langue");
par
header("Location: /index.php?Langue=$Langue");
header("Location: /index.php/$Langue");
par
header("Location: /index.php?Langue=$Langue");
Moi sa ne marche pas, j'ai ajouté:
<?php
if (!isset($langue_user) && !isset($_SESSION["ch_langue"])){
$langue_user=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
switch($langue_user){
case"fr":
$_SESSION["ch_langue"] = "fr";
header("Location: /fr/index.php");
break;
case "en":
$_SESSION["ch_langue"] = "en";
header("Location: /fr/index.php");
break;
}
}
?>
Mais rien ne change....
<?php
if (!isset($langue_user) && !isset($_SESSION["ch_langue"])){
$langue_user=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
switch($langue_user){
case"fr":
$_SESSION["ch_langue"] = "fr";
header("Location: /fr/index.php");
break;
case "en":
$_SESSION["ch_langue"] = "en";
header("Location: /fr/index.php");
break;
}
}
?>
Mais rien ne change....
Cà marche
Merci a vous