From 3980f5daa68fdceb3f8cb514bff0551fccedfba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Sajdl?= Date: Fri, 13 Apr 2018 22:00:02 +0200 Subject: [PATCH] Make locale negotiator respect HTTP Accept-Language format --- classes/locale-negotiator.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/locale-negotiator.php b/classes/locale-negotiator.php index bcd1ccb..fff83d1 100644 --- a/classes/locale-negotiator.php +++ b/classes/locale-negotiator.php @@ -253,7 +253,8 @@ class LocaleNegotiator $langs = []; if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - 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); + $http_accept_language = str_replace("-", "_", $_SERVER['HTTP_ACCEPT_LANGUAGE']); + preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $http_accept_language, $lang_parse); if (count($lang_parse[1])) { $langs = array_combine($lang_parse[1], $lang_parse[4]);