[SP-pm] Catalyst e I18N

breno breno at rio.pm.org
Mon May 3 14:41:16 PDT 2010


2010/5/3 eutsiv :: Geovanny Junio <geovanny em eutsiv.com.br>:

Oi Geovanny,

> Bem, escrevi isso tudo para perguntar: "Tem um tamanho limite para os textos
> nos arquivos .po? Textos muito grandes podem compromenter a performance?"
>

Arquivos .po são arquivos de texto comuns, com uma formatação
específica. Não imagino que haja qualquer tipo de restrição de tamanho
além dos limites nativos do seu sistema operacional e recursos de
hardware.

O mesmo vale para desempenho. Acesso a disco é custoso. Dependendo do
tamanho dos arquivos, do tipo de acesso e da quantidade de acessos,
você pode ter um problema. Vai depender muito do uso da sua aplicação.
Você pode, como alternativa, usar um banco de dados em vez de flat
files:

http://search.cpan.org/perldoc?Catalyst::Plugin::I18N::DBIC
http://search.cpan.org/perldoc?Catalyst::Plugin::I18N::DBI


> Outra coisa, na documentação, não vi nada relativo a interpolação de
> variáveis nos textos dos arquivos .po, é possível?
>

Os sistemas de tradução de strings trabalham com interpolação de
strings. O formato gettext usa strings de formatação tradicionais, que
podem ser interpoladas com um sprintf comum. O seu texto seria (por
exemplo):

msgid "Meu nome eh %s"
msgstr "My name is %s"

e, no código:

sprintf( Wx::gettext('Meu nome eh %s'), $nome );

O maketext, cujo formato é o padrão no plugin de I18n, trabalha com
tags numeradas, que facilita casos em que a tradução precisa trocar a
ordem de determinadas variáveis:

msgid "Meu nome eh [_1]"
msgstr "My name is [_1]"

$c->localize( 'Meu nome eh [_1]', [$nome] );

Para maiores informações, por favor veja a documentação do plugin:

http://search.cpan.org/perldoc?Catalyst::Plugin::I18N

e do sistema Maketext:

http://search.cpan.org/perldoc?Locale::Maketext::Simple


Boa sorte, qq coisa grita ;-)

[]s

-b


More information about the SaoPaulo-pm mailing list