1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| function commencePar($texte, $prefixe) {
return (substr($texte, 0, strlen($prefixe)) === $prefixe);
}
// liste des langues disponibles sur le site
$configLingvo = array(
'fr' => array(
'prefixe' => 'fr',
'nom' => 'Français',
),
'en' => array(
'prefixe' => 'en-gb',
'nom' => 'Anglais',
),
);
// recherche automatique
$codeLangue = NULL;
$liste = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$listeLangues = array();
foreach ($liste as $langue) {
$separ = explode(';q=', $langue);
if (isset($separ[1])) {
$valeur = $separ[1];
} else {
$valeur = 1;
}
$listeLangues[$valeur][] = $separ[0];
}
krsort($listeLangues);
foreach ($listeLangues as $poids => $liste) {
foreach ($liste as $langue) {
foreach ($configLingvo as $codeLangueDispo => $langueDispo) {
if (commencePar($langue, $langueDispo['prefixe'])) {
$codeLangue = $codeLangueDispo;
break 3;
}
}
}
}
// la langue à afficher se trouve dans la variable $codeLangue |
Partager