Friday, 10 April 2020
 
 
Cómo traducir las cadenas incluidas en los archivos .js Print
Written by Goofy   
Thursday, 29 September 2005
Autor: Goofy / Traducción española : chuzo

El problema es: en ocasiones algunas extensiones contienen la carpeta locale, con las traducciones de las cadenas, pero algunas cadenas siguen sin traducirse, al no poder transformarse en entidades normales, ya que se encuentran en un archivo .js.

Existe una solución, aunque el proceso es más largo y puede suponer demasiado tiempo para traducir una simple palabra ...


En primer lugar tenemos que encontrar o crear un archivo .properties en la carpeta locale. Tenemos que escribir en dicho archivo un nombre de variable y la frase o palabra traducida que queremos mostrar.
Por ejemplo:

WrongPassMessage=Contraseña incorrecta
(donde Contraseña incorrecta es la frase traducida)
A tener en cuenta:
1. Es suficiente un simple signo =
2. Es necesario convertir la cadena usando la codificación UTF-8 y los caracteres acentuados en hexadecimal antes de guardar el archivo.

El siguiente paso es "indicarle" a la extensión que busque la traducción en el archivo properties creado anteriormente. Para ello tenemos que añadir las siguiente líneas en el archivo xxxoverlay.xul de la carpeta locale:

<stringbundleset id="stringbundleset"> 
      <stringbundle id="nome estensione-strings" src="chrome://nome estensione/locale/nome estensione.properties"/>
</stringbundleset>


El conjunto de líneas definidas (indicando el id) es un tipo de paquete que contiene todas las cadenas que se hayan introducido en el archivo .properties. Además, añadimos la fuente del archivo, su ubicación en la extensión.
Ahora podemos ir al archivo .js , y localizamos las cadenas a traducir. El punto principal es simplemente:
tenemos que realizar una sustitución de variables
de la manera siguiente:

var wrongpassalert=document.getElementById('nome estensione-strings').getString("WrongPassMessage");

var corresponde a la variable;
wrongpassalert se corresponde al valor de WrongPassMessage definido en el archivo properties, y será el mostrado al usuario;
document.getElementById es la indicación al script para encontrar en el conjunto especial definido como "extensionname-strings";
getString indica qué variable queremos obtener del conjunto.
Por último ya podemos usar la variable wrongpassalert en el archivo .js cuando sea necesario: ver el ejemplo a continuación

if ( password == userPassword ) {
oPrefs.setBoolPref("access.authenticated", true);
}
else {
alert (wrongpassalert);
oPrefs.setBoolPref("access.authenticated", false)



Last Updated ( Sunday, 05 March 2006 )
 
 
Top! Top!