Skip to content

Instantly share code, notes, and snippets.

@SBoudrias
Created January 19, 2012 16:18
Show Gist options
  • Save SBoudrias/1640930 to your computer and use it in GitHub Desktop.
Save SBoudrias/1640930 to your computer and use it in GitHub Desktop.
Script to detect user language
function getDefaultLanguage() {
if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
return parseDefaultLanguage($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
else
return parseDefaultLanguage(NULL);
}
function parseDefaultLanguage($http_accept, $deflang = "fr") {
if( isset($http_accept) && strlen($http_accept) > 1 ) {
// Split possible languages into array
$x = explode(",",$http_accept);
foreach ( $x as $val ) {
//check for q-value and create associative array. No q-value means 1 by rule
if( preg_match("/(.*);q=([0-1]{0,1}\.\d{0,4})/i",$val,$matches) ) {
$lang[$matches[1]] = (float)$matches[2];
} else {
$lang[$val] = 1.0;
}
}
//return default language (highest q-value)
$qval = 0.0;
foreach ($lang as $key => $value) {
if ($value > $qval) {
$qval = (float)$value;
$deflang = $key;
}
}
}
return strtolower($deflang);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment