Espace membres

Bonjour Anonyme

Inscription

Email :
Mot de passe :

Mot de passe oublié ?

Nos scripts

MySpeach

MySpeach est un chat php sans base de donnée, rapide, léger et facile à prendre en main. DEMO

MyPHPUpload

MyPHPUpload est un script d'upload sécurisé écrit en PHP. DEMO

GrapAgenda

Agenda PHP et MySQL avec comptes utilisateurs et administration. DEMO

Livre PHP

Déterminer la langue d'un visiteur en PHP

Cours / tutoriel écrit le 30-07-2010 par sky
Déterminer la langue d'un visiteur pour un site multilingue

Comment récupérer la langue d'un visiteur dans le contexte d'un site multilingue ?

La variable globale qui contient l'information est $_SERVER['HTTP_ACCEPT_LANGUAGE'].

Voici un exemple du contenu de cette variable de langue :
fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3


Ce qui nous interesse ici c'est le fr en tout début de ligne.
On récupère les deux premières lettres en utilisant une regex qui va en plus nous permettre d'utiliser les autres données si nescessaire grace à la fonction preg_split (php 5)
<?php
$tmp = preg_split('",|;"', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo '<pre>';
    print_r($tmp);
echo '</pre>';
?>

Le print_r($tmp); va donner quelque chose comme ceci :
Array
(
    [0] => fr
    [1] => fr-fr
    [2] => q=0.8
    [3] => en-us
    [4] => q=0.5
    [5] => en
    [6] => q=0.3
)


Voici un exemple de code PHP pour définir la langue du visiteur.
Nous aussi définir une liste de langue dans laquelle le site est traduit.
<?php
$langages_Accepted = array(
    'en' => 'English',
    'fr' => 'Français',
    'de' => 'Deutch'
);

$langue_Defaut = 'fr';
$langue_Selected = $langue_Defaut;

$tmp = preg_split('",|;"', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$langue_Client = $tmp[0];


if(in_array($langue_Client, $langages_Accepted))
{
    $langue_Selected = $langue_Client;
}

echo '<p>Langue du visiteur : '.$langue_Selected.'</p>';
?>

On peux très bien imaginer une redirection à la place du echo à la fin du script comme ceci :
header('location:http://'.$langue_Selected.'.domaine.com');
exit();

Commentaires

riri le 01-09-2010

je découvre votre site. Merci pour toutes ces aides !

Pseudo
Email
Commentaire

Merci d'écrire le code ici :