FrancaisAdobe Flex Tutorial
jeux flash gratuit

[Web] - Rediriger un visiteur selon sa langue pour un site multi-langues


Tutorial - Comment créer une redirection automatique pour un site multilingue suivant la langue de l'utilisateur
rediriger langue 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.




Créer un pop-up accessible en CSS sans Javascript >

< Créer une image de vérification anti-spam pour formulaire




Commentaires

  • Le 25.03.2007, par ankhnaos

    Bonjour,


    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.
  • Le 25.03.2007, par ninou

    salut,

    tu peux inscrire ce code sur chaque page que tu as besoin de rediriger (en changeant les "Location:" en correspondance bien sur).
    Si ton site n'est fait que d'un index qui 'include' dynamiquement les autres pages, alors tu n'aura besoin de le mettre que dans l'index.
    Si la page index n'est pas activée, tu peux inscrire le code sur la page d'accueil de ton site (celle où on arrive quand on tape "www.si...te.com").
  • Le 05.02.2008, par VH911

    Bonjour,
    Super ce script!
    Par contre, est-ce que ça bloque le référencement des pages par Google?
    Merci
  • Le 05.02.2008, par ninou

    Non, la preuve ce site est indéxé ;)
  • Le 09.08.2008, par ptiteuf

    bonjour j'ai copier ton code et modivier par mon domaine et j'ai une erreur Warning: Unexpected character in input: '\' (ASCII=92) state=1 in
    Parse error: syntax error, unexpected T_STRING in

    voici les deux ligne
    if (!isset($langue_user) && !isset($_SESSION["ch_langue"])){
    $langue_user=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
Vous devez être inscrit pour pouvoir ajouter un commentaire
bouton inscription jeux
Aide | Contact | Règlement | Plan du Site | tutorial illustrator flash css php