Saltar al contenido

La mejor manera de determinar la configuración regional del usuario dentro del navegador

Solución:

La forma correcta es mirar el encabezado HTTP Accept-Language enviado al servidor. Contiene la lista ordenada y ponderada de idiomas que el usuario ha configurado en su navegador para preferir.

Desafortunadamente, este encabezado no está disponible para leer dentro de JavaScript; todo lo que obtienes es navigator.language, que le indica qué versión localizada del navegador web se instaló. Esto no es necesariamente lo mismo que los idiomas preferidos del usuario. En IE, en cambio, obtienes systemLanguage (Idioma del sistema operativo instalado), browserLanguage (igual que language) y userLanguage (región del sistema operativo configurada por el usuario), que son igualmente inútiles.

Si tuviera que elegir entre esas propiedades, husmearía userLanguage primero, retrocediendo a language y solo después de eso (si no coinciden con ningún idioma disponible) mirando browserLanguage y finalmente systemLanguage.

Si puede poner un script del lado del servidor en otro lugar de la red que simplemente lea el encabezado Accept-Language y lo escupe como un archivo JavaScript con el valor del encabezado en la cadena, por ejemplo:

var acceptLanguage="en-gb,en;q=0.7,de;q=0.3";

entonces podrías incluir un

En Chrome y Firefox 32+, navigator.languages ​​contiene una variedad de configuraciones regionales en el orden de preferencia del usuario y es más preciso que navigator.language, sin embargo, para hacerlo compatible con versiones anteriores (Chrome / IE / Firefox / Safari probado), luego use esta:

function getLang()
{
 if (navigator.languages != undefined) 
 return navigator.languages[0]; 
 else 
 return navigator.language;
}

Este artículo sugiere las siguientes propiedades del navegador navegador objeto:

Incorpórelos a una función de JavaScript y debería poder adivinar el idioma correcto, en la mayoría de las circunstancias. Asegúrese de degradar con gracia, así que tenga un div que contenga los enlaces de su elección de idioma, de modo que si no hay javascript o el método no funciona, el usuario aún puede decidir. Si funciona, simplemente oculte el div.

El único problema de hacer esto en el lado del cliente es que usted sirve todos los idiomas al cliente, o debe esperar hasta que el script se haya ejecutado y haya detectado el idioma antes de solicitar la versión correcta. Quizás ofrecer la versión de idioma más popular como predeterminada irritaría a la menor cantidad de personas.

Editar: segundo la sugerencia de cookies de Ivan, pero me aseguro de que el usuario siempre pueda cambiar el idioma más tarde; no todo el mundo prefiere el idioma predeterminado de su navegador.

¡Haz clic para puntuar esta entrada!
(Votos: 3 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *