Como detectar el idioma del navegador con PHP


Si estás pensando en crear una aplicación multi idioma y necesitas saber qué idioma prefiere el usuario, una buena forma es detectando el idioma de su navegador.

Para conocer el idioma puedes hacer uso de la cabecera HTTP HTTP_ACCEPT_LANGUAGE, aquí hay un ejemplo de cómo puedes hacerlo:

<?php

if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    $localeToUse = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
}
else {
    $localeToUse = Locale::getDefault();
}

echo 'El idioma preferido es: ' . $localeToUse;
 ?>

¿Como es que esto funciona?

Cuando un navegador solicita una página web, este envía información hacia el servidor, a esta información se le llama cabeceras HTTP. Entre esta información se envía el idioma que prefiere el usuario.