Page 1 sur 1
Détection automatique de la langue du navigateur
Posté : 11 nov. 2010, 15:41
par laresistance2
Bonjour,
J'ai un site sur trois langues
monsite.com (version française), en.monsite.com et es.monsite.com
Je voudrais donc d'après la lange du navigateur il redirectionne l'internaute vers le site approprié.
Par exemple si la lange du navigateur est l'anglais le script redirectionne automatique l'internaute vers en.monsite.com
Avez-vous une idée commet puis-je faire ça en PHP ?
Merci
Re: Détection automatique de la langue du navigateur
Posté : 11 nov. 2010, 16:50
par Berzemus
Bien sur, il faut vérifier les entêtes envoyés par le navigateur. On y trouve les langues qu'il accepte.
Re: Détection automatique de la langue du navigateur
Posté : 11 nov. 2010, 17:10
par laresistance2
Oui merci,
La variable pour faire ça est
Mais concrètement je ne sais pas vraiment comment procéder
Pouvez-vous un peu m'aiguiller ?
Merci d'avance
Re: Détection automatique de la langue du navigateur
Posté : 11 nov. 2010, 17:16
par AB
$lang_navig = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang_navig = strtolower(substr(rtrim($lang_navig[0]),0,2));
echo $lang_navig;
Re: Détection automatique de la langue du navigateur
Posté : 20 nov. 2010, 07:32
par laresistance2
Merci j'ai inclus ce code dans ma page d'accueil (index)
Mais pouvez-vous me dire si mon code est correct
Code : Tout sélectionner
if (!isset($Language)) {
$Language = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$Language = strtolower(substr(chop($Langue[0]),0,2));
if ($Language == 'en') {
header("Location: http://en.monsite.com");
}
elseif ($Language == 'es') {
header("Location: http://es.monsite.com");
}
else {
}}
et est-ce correct de ne rien mettre entre les accolades de la dernière condition ?
Merci
Re: Détection automatique de la langue du navigateur
Posté : 21 nov. 2010, 20:40
par laresistance2
Pouvez-vous me répondre ?
Merci
Re: Détection automatique de la langue du navigateur
Posté : 21 nov. 2010, 20:50
par xTG
C'est synthaxiquement correct, pour le dernier else s'il est vide autant ne pas le mettre.

Re: Détection automatique de la langue du navigateur
Posté : 21 nov. 2010, 22:40
par stealth35
juste une info pour ceux que ca intéresse (tout le monde n'ayant pas pas encore php 5.3 et Intl)
y'a une fonction pour ca
locale_accept_from_http 
Re: Détection automatique de la langue du navigateur
Posté : 22 nov. 2010, 01:23
par moogli
Salut,
Pour le else, il signifie dans cette structure, le cas par defaut quand les deux premier n'existe. Dans ce cas ci pour moi je dirais le francais puisqu'il n'est pas dans les deux autres cas !
Je pense que le premier if est inutile si la variable n'est pas deja definies avant.
Un cookie peut etre une solution pour "garder" la langue du client couplé a un fomulaire pour laisser le choix ?
@+