salut,
tu as, dans la variable $_SERVER (HTTP_ACCEPT_LANGUAGE), l'information langue du navigateur.
Aprèsil te faut stocker cela dans une variable de session (pour éviter les bétises) et utiliser la fonction header pour la redirection.
si tu est sur un sous domaine tu y reste, a partir du moment où tes liens ne référence pas autre chose. Pour cela utilise des liens relatif et on absolue.
si tu veux un system de drapeau c'est la même chose
par contre suivant le navigateur tu n'a pas la même chose
par exemple (pour français "france"
chrome : fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
safari : fr-FR
opera : fr-FR,fr;q=0.9,en;q=0.8
IE9 : fr-FR
ephiphany : fr-fr, fr;q=0.90
le français "belge" c'est fr-BE
je regardais rapidement pour le néerlandais la locale serait nl-NL ou nl-be (ce que tu cherche nan ?), par contre sur les navigateurs j'ai eu nl ou nl-be (le dernier étant a priori ton ton tu peux l'utiliser, si c'est la même chose, utilise nl)
normalement la première correspond à la locale par défaut.
donc par exemple, on vois que les locales sont séparée par des ; on peux utiliser
explode pour avoir un tableau et on regarde ce que contient le premier index du tableau.
Utilise
strpos pour cela (pas besoin de preg match). tu va chercher a savoir si la chaine contient fr-FR ou nl_be
un petit code de test
<?php
header('Content-type: text/html; charset=utf-8');
echo '<pre>';
var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo '</pre>';
$acceptLocal = explode(';',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
// français "français" c'est fr-FR, pour le français "belge" c'est fr-BE
if (stripos($acceptLocal[0], 'fr-BE')!== false){ // utilisation de str[b]i[/b]pos pour éviter les problème minuscule / majuscule entre le navigateur
echo 'on parle français';
}
if (strpos($acceptLocal[0], 'nl-be')!== false){
echo 'on parle néerlandais ';
}
je te laisse faire le reste
c'est améliorable bien entendu.
Il est doit aussi être possible le faire directement par le serveur. Avec apache, utilise un fichier .htaccess pour cela. un exemple (y en a surement des mieux)
http://www.apacheweek.com/features/negotiation
@+