ahier
des charges
Dans notre exemple, notre site sera séparé en deux
répertoires au niveau du serveur (1 répertoire pour
la langue Française et 1 pour l'Anglais).
Pour
exploiter correctement la détection de la langue de préférence
de l'utilisateur, il faudra tester si celui-ci n'a pas choisi
la langue qu'il désire utiliser. Il nous faudra également
choisir une langue par défaut.
Une fois la langue detectée, il suffira de rediriger le
visiteurs en fonction de celle-ci.
Detection
de la langue utilisée
Pour detecter la langue de préférence de l'utilisateur,
on utilisera la variable système $HTTP_ACCEPT_LANGUAGE.
Dans cette variable sera donc stocké le réglage
de la langue par défaut tel qu'il a été défini
dans le navigateur du visiteur. On définira une variable
$langue comme ceci :
$langue=substr($HTTP_ACCEPT_LANGUAGE,
0, 2);
On conservera, grâce à l'utilisation de la fonction
SUBSTR, uniquement les 2 premiers caractères. Pour plus
d'informations sur cette fonction, consultez le manuel du PHP
disponible également en Français sur le site Nexen.net.
Il faudra également envisager de définir une langue
par défaut au cas où, le visiteur utilise une ancienne
version de navigateur qui ne dispose pas des options de réglage
de la langue préférée.
Exploitation
Pour exploiter ces données, il faut d'abord vérifier,
comme décrit dans le cahier des charges, si l'utilisateur
n'a pas choisi la langue qu'il désir utiliser. A cet effet,
nous utiliserons l'instruction ISSET qui retourne la valeur 1
si une variable est définie et 0 si elle ne l'est pas.
if (isset($langue)==0)
{
$langue=substr($HTTP_ACCEPT_LANGUAGE, 0, 2);
}
Il
faudra ensuite rediriger le visiteur vers la langue détecté.
if ($langue="en")
{
Header ("Location : http://www.monserveur.com/en/");
}
else
{
Header ("Location : http://www.monserveur.com/page.php3");
}
exit;
Ainsi, si la langue detecté est l'Anglais (en), l'utilisateur
sera redirigé vers la page index du répertoire "en".
En utilisant les instructions IF......ELSE, on a également
défini la langue par défaut qui sera, dans ce cas,
le Français.
Programme
Nous avons ainsi rempli toutes les conditions de notre cahier
des charges. Il suffira d'ajouter les deux portions de code à
notre page index par défaut pour pouvoir gérer un
site en deux langues. Voici donc votre page "index.php3"
:
if (isset($langue)==0)
{
$langue=substr($HTTP_ACCEPT_LANGUAGE, 0, 2);
}
if ($langue="en")
{
Header ("Location : http://www.monserveur.com/en/");
}
else
{
Header ("Location : http://www.monserveur.com/page.php3");
}
exit;
Nous verrons une prochaine fois, comment améliorer ce programme
pour déboucher sur un programme de gestion multilingue
universel.
Alain
Metzger.
Responsable Technique.
http://www.atouts-malin.com
Tous
droits réservés - Reproduction même partielle interdite sans
autorisation préalable
|