From ed631ba959ee0c33d6378420c5b4b635673be3a8 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 2 Oct 2016 09:26:35 +0200 Subject: [PATCH] fallback to generic language for specific (de-CH => de) --- include/pgettext.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/pgettext.php b/include/pgettext.php index 3c389ce2e5..ed924fa337 100644 --- a/include/pgettext.php +++ b/include/pgettext.php @@ -26,16 +26,29 @@ function get_browser_language() { $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse); if (count($lang_parse[1])) { + for ($i=0; $i2 ) { + if (! in_array(substr($lang_parse[1][$i], 0, 2), $lang_parse[1] ) ) { + array_push($lang_parse[1], substr($lang_parse[1][$i], 0, 2)); + if (floatval($lang_parse[4][$i])>0) + array_push($lang_parse[4], strval(floatval($lang_parse[4][$i])-0.0001)); + else + array_push($lang_parse[4], '0.9999'); + } + } + } // 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 === '0') $langs[$lang] = 1; } // sort list based on value arsort($langs, SORT_NUMERIC); + print_r($langs); } }