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
Navegadores | Evento | Ejemplo |
---|
Nombre | Version |
---|
Mozilla FireFox | 2.0 | navigator.language | es-ES |
Mozilla FireFox | 3.0 | navigator.language | es-ES |
Opera | 9.5 | navigator.language | es-LA |
Safari | 3.1 | navigator.language | es-ES |
Internet Explorer | 6.0 | navigator.browserLanguage | es |
Internet Explorer | 8.0 | navigator.browserLanguage | es |
Google Chrome | 0.2 | navigator.language | es-ES |
SpaceTime3D | 1.0 | navigator.browserLanguage | es |
Konqueror | 4.0 | navigator.language | es |