Redirection selon la langue du visiteur
Résolu/Fermé
guifson
Messages postés
10
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
2 novembre 2011
-
27 juil. 2007 à 15:29
Aurèli1s Messages postés 136 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 14 octobre 2013 - 18 sept. 2011 à 19:55
Aurèli1s Messages postés 136 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 14 octobre 2013 - 18 sept. 2011 à 19:55
A voir également:
- Http_accept_language
- Telecharger langue arabe - Télécharger - Bureautique
- Changer langue facebook - Guide
- Changer langue windows 10 - Guide
- Visiteur facebook - Guide
- Telecharger la langue arabe sur le clavier - Télécharger - Divers Web & Internet
12 réponses
zefoots
Messages postés
146
Date d'inscription
samedi 9 juin 2007
Statut
Membre
Dernière intervention
11 septembre 2007
62
28 juil. 2007 à 20:24
28 juil. 2007 à 20:24
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.
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
27 juil. 2007 à 15:51
27 juil. 2007 à 15:51
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
zefoots
Messages postés
146
Date d'inscription
samedi 9 juin 2007
Statut
Membre
Dernière intervention
11 septembre 2007
62
29 juil. 2007 à 00:41
29 juil. 2007 à 00:41
Pas de quoi, c'est Ssylvainsab qui a fait tout le boulot ;-)
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
29 juil. 2007 à 23:39
29 juil. 2007 à 23:39
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
guifson
Messages postés
10
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
2 novembre 2011
27 juil. 2007 à 16:45
27 juil. 2007 à 16:45
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 :)
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
24 déc. 2007 à 22:44
24 déc. 2007 à 22:44
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 ?
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
26 déc. 2007 à 11:18
26 déc. 2007 à 11:18
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");
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
>
jnfritz
5 déc. 2008 à 17:03
5 déc. 2008 à 17:03
Pas besoin, c'est entre double quotes.
Aurèli1s
Messages postés
136
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
14 octobre 2013
4
18 sept. 2011 à 19:55
18 sept. 2011 à 19:55
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....
28 juil. 2007 à 23:42
Cà marche
Merci a vous