Tutorial - Comment créer une redirection automatique pour un site multilingue suivant la langue de l'utilisateur
Dans ce tutorial, je vais expliquer comment
rediriger simplement le visiteur de votre site internet suivant sa langue.
De façon
automatique et transparente, on va
détecter sa langue et le visiteur sera renvoyé vers la page correspondant à sa langue préférée.
Il faut savoir que la langue récupérée avec le script PHP est celle
fixée par l'utilisateur dans les préférences de son navigateur
et pas celle de son système d'exploitation.
Le script utilise ainsi la variable
$HTTP_ACCEPT_LANGUAGE et renvoie le header correspondant de manière automatique.
Le script PHP qui agit en fonction de la langue du visiteur
<?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";
break;
case "en":
$_SESSION["ch_langue"] = "en";
header ("Location: http://www.pixtiz.com/en/presentation-free-flash-games");
break;
case "it":
$_SESSION["ch_langue"] = "it";
header ("Location: http://www.pixtiz.com/it/presentazione-giochi-gratis-flash");
break;
case "nl":
$_SESSION["ch_langue"] = "nl";
header ("Location: http://www.pixtiz.com/nl/presentatie-gratis-flash-spelen");
break;
case "es":
$_SESSION["ch_langue"] = "es";
header ("Location: http://www.pixtiz.com/es/presentacion-juegos-gratis-flash");
break;
default:
$_SESSION["ch_langue"] = "en";
header ("Location: http://www.pixtiz.com/en/presentation-free-flash-games");
break;
}
}
?>
Comment le script PHP redirige automatiquement le visiteur
Si c'est le premier passage du visiteur dans la boucle, le script agit pour
récupérer sa langue préférée dans la variable PHP $langue_user.
La ligne, substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2), prend les deux premiers caractères de la variable serveur
HTTP_ACCEPT_LANGUAGE,
qui correspondront à sa langue préférée ("fr", "en", "es", "it", "nl" ...).
Une
variable de session ($_SESSION["ch_langue"]) est ajoutée pour éviter au script de repasser dans le switch, si votre site fonctionne
avec une page unique qui include les autres pages en fonction de l'URL.
C'est la manière la plus simple pour
détecter la langue du visiteur.
Suivant la variable $langue_user, on stocke une variable de session correspondante et l'on
redirige l'utilisateur vers la bonne page
avec un
header("Location: ") PHP.
Le case "default" indique la marche à suivre dans le cas où l'utilisateur utiliserai une langue pas prévue dans les case, c'est à dire
une
langue par défaut (ici, l'anglais).
Si vous avez des problèmes avec la
redirection de vos visiteurs suivant leur langue pour votre site multi-langue, laissez un commentaire sur cet article.
je viens de lire votre article sur la redirection selon la langue d'un visiteur.
Mais encore une question : doit-on inscrire ce code sur cheque page? sur la page d'accueil ou bien sur la page index?
Si la page index existe mais qu'elle est n'est pas active ou s'inscrit le code?
Encore merci.