[Cascavel-pm] Suporte a "internacionaliza??o".

Rod Za rodzadra em yahoo.com
Sexta Novembro 18 02:44:59 PST 2005


--- "Alceu Rodrigues de Freitas Jr." <glasswalk3r em yahoo.com.br> wrote:
> > Sim, as mensagens/textos serão escritos provavelmente utilizando unicode - que é o método de
> > "codificar" os caracteres.
> 
> Como você vai fazer se quiser exibir mensagens em kanji, por exemplo?

As mensagens são traduzidas na própria língua, utilizando-se os próprios caractes (neste caso
específico deve-se utilizar o UTF16).

Primeiro vc deve crirar um arquivo texto com um cabeçalho específico, onde entre outras
informações contém também a línguagem referente a tradução e o charset utilizado. Depois faz-se a
tradução - que é relativamente simples existe dois campos msgid e msgstr onde o primeiro é a
palavra/frase original (que será traduzida) e o segundo a palavra/chave já traduzida

Eis um exemplo de um arquivo (que para o gettext se chama catálogo):

<exemplo>
white-space
#  translator-comments
#. automatic-comments
#: reference...
#, flag...
msgid untranslated-string
msgstr translated-string
</exemplo> 


> > Pois então, o gettext faz justamente isto. Ele utiliza um arquivo (em formato binário)  
> >para cada linguagem traduzida. 
> 
> Vou dar uma olhada nesse módulo Locale::gettext... parece ser bom! Valeu 
> a dica.

Cara, toda a tradução dos *nixes utiliza o gettext. Quando vc muda sua linguagem é o gettext
fazendo o serviço por traz. :)


> > A respeito da otimização eu me referia ao modo de gerar as mensagens para o usuário em outras
> > línguas em conjunto com o HTML::Template.
> > 
> > Eu tenho 2 opções: a primeira seria gerar uma cópia de cada página html em diversas língua e
> > através da opção tmpl_path modifica o path de onde se encontram essas páginas e a outra é essa
> que
> > eu venho utilizando.
> > 
> > Realmente estou na dúvida. 
> 
> Eu acho a primeira opção melhor. Mas fiquei em dúvida sobre o que você 
> quiser dizer "gerar uma cópia de cada página HTML".
> 
> Até aonde eu entendo, o que você tem que ter é apenas "um" modelo: todas 
> as mensagens (com diversas traduções) devem ser preenchidas em tempo de 
> execução. O que você deveria guardar em diferentes diretórios é o cache 
> para cada língua.

Eu estive pensando em fazer as páginas HTML (modelos) e manipular as mansagens utilizando as tags
<TMPL_UNLESS> do HTML::Template. Desta forma todas as mensagens ficariam dentro do próprio
template, mas em compensação iria ter um "trabalhão danado" para manipular isto.

Com relação ao uso do gettext, eu teria um pouco menos de trabalho, mas deveria passar muitas
variáveis para o template e é justamente nessa parte que fiquei na dúvida quanto o desempenho.

Mas, pelo que estou vendo o melhor será mesmo manter o gettext :)


[]'s

Rodrigo Zadra Armond.




		
__________________________________ 
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com


Mais detalhes sobre a lista de discussão Cascavel-pm