Http Accept язык неправильный вывод из Chrome, немецкий язык (де)
У меня есть мультиязычный сайт. Использование htaccess
# Another Languages
#RewriteCond %{HTTP:Accept-Language} ^en [NC]
#RewriteRule ^$ /en [R=301,L]
# German
#RewriteCond %{HTTP:Accept-Language} ^de [NC]
#RewriteRule ^$ /de [R=301,L]
Проблема:
Я использую немецкую версию новейшего браузера Chrome. По умолчанию он отправляет следующий языковой заголовок:
Chrome /de = string(71) "en-US,en;q=0.8,id;q=0.6,ms;q=0.4,fr;q=0.2,de;q=0.2,es;q=0.2,de-AT;q=0.2"
Chrome /en = string(71) "en-US,en;q=0.8,id;q=0.6,ms;q=0.4,fr;q=0.2,de;q=0.2,es;q=0.2,de-AT;q=0.2"
Но в Firefox и IE:
Firefox /de = string(53) "de,en;q=0.8,en-US;q=0.7,es;q=0.5,fr;q=0.3,de-AT;q=0.2"
Firefox /en = string(53) "en,en-US;q=0.8,de;q=0.7,es;q=0.5,fr;q=0.3,de-AT;q=0.2"
IE /de = string(74) "de,en-GB;q=0.9,de-AT;q=0.7,de-DE;q=0.6,de-LI;q=0.4,de-LU;q=0.3,de-CH;q=0.1"
IE /en = string(74) "en-GB,de;q=0.9,de-AT;q=0.7,de-DE;q=0.6,de-LI;q=0.4,de-LU;q=0.3,de-CH;q=0.1"
Как видите, английский имеет более высокий приоритет, чем немецкий. Так кто-нибудь тоже получил эту проблему?
2 ответа
Попробуйте перейти в "Настройки", "Языки и настройки ввода" в Chrome и добавить немецкий в качестве одного из языков браузера.
Различные браузеры используют разные алгоритмы для определения предпочитаемых пользователем языков, а затем заполняют ими заголовки Accept-Language.
Например, на вашем компьютере могут быть установлены английские и немецкие языковые стандарты, но пользователь склонен использовать английский интерфейс Chrome и посещать в основном английские веб-сайты - Chrome может отдавать больший приоритет английскому, даже если пользователь немецкий или компьютер находится в Германии.
Не существует 100% точного метода определения языка пользователя, но можно предположить, что если в заголовке Accept-Language перечислен английский в качестве одного из лучших языков - этот пользователь действительно знает язык на достаточно хорошем уровне, чтобы иметь возможность переключать язык позже., Короче говоря, у Chrome есть основания полагать, что вы понимаете en-US.
В Chrome, несмотря на нажатие "Показать Google Chrome на этом языке", также необходимо изменить порядок немецкого языка в верхнем порядке, поэтому Http:Accept-Language будет перенаправлять в /de