HTTP_ACCEPT_LANGUAGE всегда показывает английский - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь получить настройки языка текущего пользователя, используя:

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

Когда я подключаюсь к VPN в другой стране или даже использую geopeeker.com, я все равно получаю «en» при выводе $ lang.

Разве этот метод не лучший способ добиться этого? Или мой метод тестирования некорректен?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Это зависит от настроек вашего браузера и отправляется в заголовках запросов.См. Как добавить пользовательские Accept-Languages ​​в Chrome для проверки псевдолокализации? для изменения настроек браузера или рассмотреть возможность использования чего-то вроде curl для их ручного указания.

0 голосов
/ 14 ноября 2018

Заголовок Accept-Language не установлен страной, которую вы посещаете, он устанавливается вашим браузером . Если вы , с тем же браузером, VPN для другой страны, ваш браузер все равно отправит тот же заголовок. Это либо настройка в настройках вашего браузера, либо браузер берет ее из системных настроек системы.

...