Php: detect della lingua del browser
06/06/2012Sito multilingue con necessità di reindirizzamento automatico a seconda della lingua del browser utilizzato dall'utente?
Con Php è facile, basta attraversare con destrezza la variabile $_SERVER[HTTP_ACCEPT_LANGUAGE] e il gioco è fatto, ecco uno script di esempio:
function trovaLingua() {
$lingue = array();
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lingua_parse);
if (count($lingua_parse[1])) {
$lingue = array_combine($lingua_parse[1], $lingua_parse[4]);
foreach ($lingue as $lingua => $valore) {
if ($valore === '') $lingue[$lingua] = 1;
}
arsort($lingue, SORT_NUMERIC);
}
}
foreach ($lingue as $lingua => $valore) { break; }
if (stristr($lingua,"-")) {$tmp = explode("-",$lingua); $lingua = $tmp[0]; }
return $lingua;
}
echo trovaLingua();