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

Rod Za rodzadra em yahoo.com
Terça Novembro 22 15:20:51 PST 2005


--- "Alceu Rodrigues de Freitas Jr." <glasswalk3r em yahoo.com.br> wrote:
> Eu pesquisei sobre o assunto e vou tentar usar o 
> Locale::Maketext::Lexicon também. Para traduzir os arquivos eu recomendo 
> usar o PoEdit também (hospedado no Sourceforge). Eu usei ele para 
> traduzir as mensagens do PVoice em português.

Eu achei mais interessante o uso do Locale::gettext pela simplicidade :) Pesquisei inclusive mais
uns 2 ou 3 módulos do CPAN e gostei mais deste. :)

Eu já conhecia o PoEdit, mas sabe aquela mania de usar o 'vi' até para editar planilha do excel!
:) hehehehe

> > 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 :)
> 
> Isso parece útil se você alterar a página de acordo com a linguagem que 
> o browser do cliente acessa o servidor. Mas não vejo muita utilidade 
> nisso, dependendo da sua aplicação. Por exemplo, se ela vai ser acessada 
> via intranet, dificilmente uma empresa vai ter funcionários querendo 
> fazer acesso com browser em francês, português e inglês, por exemplo.
> 
> O Apache mesmo possui uma facilidade dessas (redirecionar para páginas 
> com a língua utilizada pelo browser). Você poderia criar os diversos 
> templates e deixar o Apache cuidar do resto.

Ai é que está, eu estou trabalhando num projeto open-source - que está sendo desenvolvido em
português (brasileiro) - e estou *supondo* que este projeto vai ser utilizado por cidadãos de
outros países (pelo menos assim espero). Portanto o meio mais fácil que achei para a tradução era
usar o gettext, mas dando uma passada de olho no OpenWebMail (www.openwebmail.org) atrás de alguns
módulos de autenticação, eu vi q eles utilizavam os templates em diversas líguas e acabei ficando
na dúvida no que era melhor.

> Eu ainda acho que não estamos pensando da mesma forma com relação ao 
> templates. Me diga depois se estamos alinhados!
> 
> Você tem um arquivo de mensagens em várias línguas, por exemplo:
> 
> -- inglês --
> title = Uma página de teste
> hello = Oi
> general_msg = Você está acessando uma página de teste
> goodbye = Adeus!
> 
> -- português --
> title = A test page
> hello = Hello
> general_msg = You are accessing a test page
> goodbye = See you!
> 
> Agora o template
> 
> -- template.tmp --
> 
> <html>
> <head>
> <title><TMPL_VAR NAME="title"></title>
> </head>
> <body>
> <h1><TMPL_VAR NAME="hello"></h1>
> <p><TMPL_VAR NAME="general_msg"></p>
> <p><TMPL_VAR NAME="goodbye"></p>
> </body>
> </html>
> 
> Agora o que seu sistema tem que fazer é preencher o template com o 
> arquivo de texto que quiser usar. Você vai ter um template só e as 
> mensagens estão separadas do template num arquivo próprio.
> Como isso fica mais lento, você deve usar cache para minimizar a demora. 
> Isso deve reduzir o tempo de espera depois da primeira chamada ao template.

Estamos completamente alinhados! :) É isso mesmo! Só que os arquivos .PO são compilados para um
formato específico e binário o que dá um maior performance em relação a um arquivo texto (acho q
vc já sabe disso! :) )

Para tradução para o inglês eu já tenho 2 colaboradores e não vai ser problema, para a tradução do
espanhol tenho 1 colaborador e para o francês tenho um fututo-possível-colaborador. Sendo assim
acho q dá para abocanhar quase metada do mundo com essas 4 línguas (português, inglês, espanhol e
francês) :)

O projeto em questão tem uma parte que roda como uma aplicação localmente, faz um processamento e
guarda os resultados num banco de dados (aqui a quantidade de coisas que precisam ser traduzidas
são muito pequenas). Existe também um área para o usuário fazer uma consulta via web (estou usando
basicamente CGI::Application, HTML::Template e Class::DBI) e a área administrativa que também é
feita via web utilizando os mesmos módulos.

E a área mais pesada da tradução está justamente ligada a área administrativa.

Em relação à velocidade/desempenho logicamente que é muito bom se ter isto, mas a aplicação não
necessita de exibir nada em "real-time", mesmo porq depende do processamento local de alguns
arquivos que podem ter algums milhares de KBytes. Mas mesmo assim vou tentar utilizar o cache como
vc me sugeriu :).


[]'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