# HG changeset patch # User Tom Fredrik "BFG" Klaussen # Date 1349909836 -7200 # Node ID f938b292f046e66eb1ed45c2bde435e7d740d965 # Parent 2e6ba72592818882b31a02fb49c6b196e50b0b3d Something went wrong during last merge. Fix it now. diff -r 2e6ba7259281 -r f938b292f046 accept-language.inc --- a/accept-language.inc Thu Oct 11 00:54:54 2012 +0200 +++ b/accept-language.inc Thu Oct 11 00:57:16 2012 +0200 @@ -1,57 +1,55 @@ >>>>>> other - - if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - // break up string into pieces (languages and q factors) - 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'], $lang_parse); - - if (count($lang_parse[1])) { - // create a list like "en" => 0.8 - $langs = array_combine($lang_parse[1], $lang_parse[4]); + /** + * Extracts the accepted languages from the GET query, sorted by + * preference(q-value). + * + * @return associative array of language codes with q value + */ + function acceptedLanguages() { + $langs = array(); - // set default to 1 for any without q factor - foreach ($langs as $lang => $val) { - if ($val === '') $langs[$lang] = 1; - } + if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + // break up string into pieces (languages and q factors) + 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'], $lang_parse); + + if (count($lang_parse[1])) { + // create a list like "en" => 0.8 + $langs = array_combine($lang_parse[1], $lang_parse[4]); - // sort list based on value - arsort($langs, SORT_NUMERIC); - } - } - return $langs; - } + // set default to 1 for any without q factor + foreach ($langs as $lang => $val) { + if ($val === '') $langs[$lang] = 1; + } - function preferLanguage($prefer) - { - $language = $prefer; - $langs = acceptedLanguages(); - if ($langs) { - foreach ($langs as $l => $val) { - if (file_exists($l)) { - $language = $l; - break; + // sort list based on value + arsort($langs, SORT_NUMERIC); } } + return $langs; } - return $language; + + function preferLanguage($prefer) + { + $language = $prefer; + $langs = acceptedLanguages(); + if ($langs) { + foreach ($langs as $l => $val) { + if (file_exists($l)) { + $language = $l; + break; + } + } + } + return $language; + } } } ?> \ No newline at end of file