Detectar idioma del navegador con Javascript

Antonio J. Galisteo

Muchos proyectos web están en múltiples idiomas. Para esto, es necesario obtener el idioma del navegador para ofrecerle al usuario su idioma por defecto. Entre otros lenguajes, lo podemos hacer con Javascript.

detectar idioma navegador javascript

 

Para obtener el idioma del navegador mediante javascript lo haremos de la siguiente forma. Primero creamos un archivo llamado idioma.js con el siguiente contenido: [función actualizada el 23-02-2015] (Código en GitHub)

function getLanguage() {
   
// Variable para guardar el idioma
var lang;
    
var nav = navigator.userAgent.toLowerCase();
if(nav.indexOf("msie") != -1 || nav.indexOf("rv") != -1){ // msi for IE and rv for IE11+
    var req = new XMLHttpRequest();
    req.open('GET', 'resources/inspect-headers.py?filter_name=accept-language', false);
    req.send(null);
    var headers = req.getAllResponseHeaders().toLowerCase();
    var contentLanguage = headers.match( /^content-language\:(.*)$/gm );
    if(contentLanguage[0]) {
	lang= contentLanguage[0].split(": ")[1];
    }
} else {		
    if (navigator.languages==undefined) {
	if (navigator.language==undefined) {
		// Internet Explorer Compatibility
		lang= navigator.userLanguage.slice(0,2);
	} else {
		// Old navigator compatibility
		lang= navigator.language.slice(0,2);
	}
    } else { 
	lang= navigator.languages[0].slice(0,2);				
    }
}

return lang;
}

Este archivo lo incluimos en el archivo html (o php o jsp…) donde queramos detectar el idioma.

<script src="idioma.js"></script>

Y lo usaremos como se ve a continuación:

<script type=" text/ javascript">
    alert ("El idioma del navegador es: " + getLanguage());
</script>

Con esto ya tenemos el idioma por defecto con el que está configurado nuestro navegador. Solo tenemos que tener en cuenta una observación. Con IE11 y superiores SOLO podemos tener configurado un único idioma. Si configuramos Español como primera opción e inglés como segunda, por ejemplo, IE11 y superiores devuelve el «primer elemento que él tenga» en su lista de vectores.

Esperamos que os haya sido de utilidad

Publicado el 01-07-2014

Donar

Si te ha sido de ayuda y quieres hacer una donación te lo agradeceremos :)

Compartelo!


Deja un comentario

Comentanos

*

Ir arriba de la pagina