Sunday, 31 May 2020
 
 
Como traduzir textos incluídos em um arquivo .js Print
Written by RodrigoBiker   
Saturday, 04 March 2006
Autor: Goofy / Tradução para português do Brasil: Rodrigo Bergmann Laurindo 

O problema é: algumas vezes as extensões têm a pasta "locale" com textos traduzidos, mas algumas poucas palavras e frases estão faltando, que você não pode transformar em entidadas normais, porque elas pertencem a um arquivo .js.

A solução existe, mas é um pouco longa, e às vezes é muito tempo gasto para traduzir apenas uma palavrinha...


Primeiramente, você tem que encontrar ou criar um arquivo .properties em sua pasta "locale". Depois você simplesmente escreve um nome de variável e a frase ou palavra em seu idioma que deverá ser exibida para o usuário final
Algo como:

WrongPassMessage=Senha inválida
(onde Senha inválida é o texto traduzido)
Nota:
1. Apenas um = é suficiente
2. Lembre-se de conventer os caracteres para utf-8 e caracteres acentuados em hexadecimal antes de salvar o arquivo.

Após isso você precisa "dizer" para a extensão que este arquivo properties é o local onde ele vai encontrar o texto se necessário. Para isso temos que adicionar linhas como a seguinte no arquivo xxxoverlay.xul da pasta "content":

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



O conjunto de linhas que você define (com seu id) é uma espécie de pacote contendo todos os textos que você tem que colocar no arquivo "properties". E, é claro, você adiciona a origem do arquivo, seu caminho na extensão.
E agora você pode ir para o arquivo .js, e descobrir onde os textos a serem traduzidos estão localizados. O ponto principal é simples:
 você tem que fazer uma substituição de variáveis.
A linha chave é parecida com a seguinte:


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


var declara a variável
wrongpassalert conterá o valor de WrongPassMessage da forma que foi definido no arquivo properties, e será exibido para o usuário final
document.getElementById é a indicação para o script procurar o conjunto especial de ítens identificado como "nomedaextensao-strings"
getString indica qual variável extrair do conjunto
Você agora pode utilizar a variável wrongpassalert no arquivo .js onde for necessário. Veja o exemplo abaixo


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

Last Updated ( Monday, 06 March 2006 )
 
 
Top! Top!