Como traduzir textos incluÃdos em um arquivo .js |
|
Written by RodrigoBiker
|
Saturday, 04 March 2006 |
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 )
|