viernes, 12 de septiembre de 2008

JavaScript - Detectar idioma del navegador


Una de las cosas que estoy aprendiendo en la realización de la nueva versión del traductor (¡espero tenerlo listo pronto!), es el lenguaje de programación JavaScript. Ya había realizado algún curso on-line y también había leído algo de documentación sobre JavaScript pero ahora estoy profundizando más en este lenguaje y debo decir que tiene mucha potencia y da bastante juego para hacer cosas.


Una de las cosas que he aprendido (en la red) y gracias a un par de buenas páginas Quirks Mode | Javascript - Object detection y How To Create | W3C DOM introduction, es la técnica del 'Object Detection' (Detección del Objeto). Esta técnica permite realizar diferentes acciones indistintamente del navegador y versión que se esté utilizando al visitar una página web.


En la red he visto distintas técnicas y códigos, y debo decir que la que realmente funciona para detectar el idioma del navegador, es la utilización de las propiedades 'navigator.language' y 'navigator.browserLanguage' de los navegadores.


El código sería el siguiente ...


var idiomaNavegador = new String;
if (navigator.language){
idiomaNavegador = navigator.language;
} else {
idiomaNavegador = navigator.browserLanguage;
}


Si queremos podemos crear una Función JavaScript que devuelva el idioma del navegador ...


function skDeterminarIdiomaNaveg() {
var idiomaNavegador = new String;

if (navigator.language){
idiomaNavegador = navigator.language;

// En este caso, el idioma devuelto puede contener el
// subcódigo de idioma (p.ej. "es-ES").
} else {
idiomaNavegador = navigator.browserLanguage;

// En este caso, el idioma devuelto solo conteniene el
// código de idioma (p.ej. "es")
}
return idiomaNavegador;
}

... y por ejemplo podríamos hacer que se muestre un mensaje con el idioma del navegador ...


var i = skDeterminarIdiomaNaveg();
alert('El idioma del navegador es \'' + i + '\'');


Es importante mencionar que los Códigos de Idioma están definidos bajo el ISO639, por lo que todos los navegadores deberían cumplir dicho estándar. Para más información sobre los Códigos y Subcódigos de Idioma, visitar la siguiente página W3C - Language codes

















JavaScript probado con los siguiente navegadores
NavegadoresEventoEjemplo
NombreVersion
Mozilla FireFox2.0navigator.languagees-ES
Mozilla FireFox3.0navigator.languagees-ES
Opera9.5navigator.languagees-LA
Safari3.1navigator.languagees-ES
Internet Explorer6.0navigator.browserLanguagees
Internet Explorer8.0navigator.browserLanguagees
Google Chrome0.2navigator.languagees-ES
SpaceTime3D1.0navigator.browserLanguagees
Konqueror4.0navigator.languagees


5 comentarios:

Meninheira dijo...

Impaciente estamos los que escribimos en gallego ;)

solrac dijo...

:) ... no creas que se me ha olvidado.

Es que no encuentro muchos traductores del Gallego al Castellano (a otros idiomas no encuentro ninguno) y el que me dijiste el otro día no veo la forma de poder utilizarlo, aunque sigo investigando ;)

Meninheira dijo...

El de Cervantes me decepcionó cuando lo probé comparado con el OpenTrad (que es una iniciativa de la Xunta), a ver este: http://www.xunta.es/tradutor/ que es de la Xunta.

Un besito y un millón de gracias. Con tu permiso seguiré "presionándote" de vez en cuando :)

Meninheira dijo...

Hola :)

Espero no resultar pesada (si es así te ruego me lo comuniques ;)).
He encontrado varias herramientas que quizás (no tengo ni idea de cómo lo haces así que igual no te sirvan para nada) te ayuden a desenvolver el traductor del gallego.

- http://sli.uvigo.es/tradutor/
Ahí tienes una cosa para "dowloadear" ;)

- http://www.realacademiagalega.org/galicianvocabulary/GalicianVocabulary.jsp

- http://www.digalego.com/diccionario/html/index.php

- http://www.traducindote.com/

Espero ayudar en algo

Saluditosssss :)

Anónimo dijo...

Es al reves, IE devuelve es-ES y Chrome devuelve es a secas.