Как сказал @Ramiz Kongulov, разные браузеры отправляют информацию заголовка по-разному. Я бы также добавил, что вы должны быть осторожны при доступе к элементам в массиве, поскольку PHP вызовет Undefined Index
ошибок, если они недоступны. Используйте оператор объединения null (??) и тернарный оператор (?:) , чтобы избежать таких ошибок в вашем приложении.
В вашем случае, онлайн 36, вы можете сделать что-то вроде этого
$lang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : 'en';
Вероятно, вы также получите сообщение об ошибке в строке 38.