HTTP_ACCEPT_LANGUAGE всегда показывает английский

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

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

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

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

0

Решение

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

1

Другие решения

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

0

По вопросам рекламы [email protected]