Mercurial > SimpleWebPresenter
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 50:2d0cda52f43f | 52:3898353ed1d8 |
|---|---|
| 1 <?php | 1 <?php |
| 2 function acceptedLanguages() { | 2 class Language { |
| 3 $langs = array(); | 3 function acceptedLanguages() { |
| 4 $langs = array(); | |
| 4 | 5 |
| 5 if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { | 6 if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { |
| 6 // break up string into pieces (languages and q factors) | 7 // break up string into pieces (languages and q factors) |
| 7 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); | 8 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); |
| 8 | 9 |
| 9 if (count($lang_parse[1])) { | 10 if (count($lang_parse[1])) { |
| 10 // create a list like "en" => 0.8 | 11 // create a list like "en" => 0.8 |
| 11 $langs = array_combine($lang_parse[1], $lang_parse[4]); | 12 $langs = array_combine($lang_parse[1], $lang_parse[4]); |
| 12 | 13 |
| 13 // set default to 1 for any without q factor | 14 // set default to 1 for any without q factor |
| 14 foreach ($langs as $lang => $val) { | 15 foreach ($langs as $lang => $val) { |
| 15 if ($val === '') $langs[$lang] = 1; | 16 if ($val === '') $langs[$lang] = 1; |
| 16 } | 17 } |
| 17 | 18 |
| 18 // sort list based on value | 19 // sort list based on value |
| 19 arsort($langs, SORT_NUMERIC); | 20 arsort($langs, SORT_NUMERIC); |
| 20 } | |
| 21 } | |
| 22 return $langs; | |
| 23 } | |
| 24 | |
| 25 function preferLanguage($prefer) | |
| 26 { | |
| 27 $language = $prefer; | |
| 28 $langs = acceptedLanguages(); | |
| 29 if ($langs) { | |
| 30 foreach ($langs as $l => $val) { | |
| 31 if (file_exists($l)) { | |
| 32 $language = $l; | |
| 33 break; | |
| 34 } | 21 } |
| 35 } | 22 } |
| 23 return $langs; | |
| 36 } | 24 } |
| 37 return $language; | 25 |
| 26 function preferLanguage($prefer) | |
| 27 { | |
| 28 $language = $prefer; | |
| 29 $langs = acceptedLanguages(); | |
| 30 if ($langs) { | |
| 31 foreach ($langs as $l => $val) { | |
| 32 if (file_exists($l)) { | |
| 33 $language = $l; | |
| 34 break; | |
| 35 } | |
| 36 } | |
| 37 } | |
| 38 return $language; | |
| 39 } | |
| 38 } | 40 } |
| 39 ?> | 41 ?> |
