Mercurial > SimpleWebPresenter
diff accept-language.inc @ 52:3898353ed1d8
Include fixes.
sitemap don't print before everything has been processed.
Make a class of accept-language.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 11 Oct 2012 00:48:46 +0200 |
| parents | 5c4d7c758fda |
| children | 2e6ba7259281 |
line wrap: on
line diff
--- a/accept-language.inc Tue Oct 09 20:15:20 2012 +0200 +++ b/accept-language.inc Thu Oct 11 00:48:46 2012 +0200 @@ -1,39 +1,41 @@ <?php -function acceptedLanguages() { - $langs = array(); +class Language { + function acceptedLanguages() { + $langs = array(); - 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 (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])) { + if (count($lang_parse[1])) { // create a list like "en" => 0.8 $langs = array_combine($lang_parse[1], $lang_parse[4]); // set default to 1 for any without q factor foreach ($langs as $lang => $val) { - if ($val === '') $langs[$lang] = 1; + if ($val === '') $langs[$lang] = 1; } // sort list based on value arsort($langs, SORT_NUMERIC); - } - } - return $langs; -} - -function preferLanguage($prefer) -{ - $language = $prefer; - $langs = acceptedLanguages(); - if ($langs) { - foreach ($langs as $l => $val) { - if (file_exists($l)) { - $language = $l; - break; } } + 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
