[SP-pm] Catalyst e I18N

breno breno at rio.pm.org
Mon May 3 15:02:06 PDT 2010


Opa,

isso aqui me passou despercebido:

> 2010/5/3 eutsiv :: Geovanny Junio <geovanny em eutsiv.com.br>:
>
> Até ai tudo bem, mas vou precisar enviar e-mails para os usuários
> confirmando a inscrição, contendo textos relativamente grandes, ai
> eu não teria a opção de ter templates diferentes, pois ainda vou estar
> no controller na hora de enviar o e-mail.

Isso simplesmente não é verdade.

---------8<---------
use Email::Sender::Simple qw(sendmail);
use Email::Simple;
use Email::Simple::Creator;

# ...dentro de uma action qualquer de seu controller...

 my $email = Email::Simple->create(
    header => [
      To      => $destinaratio,
      From    => $remetente,
      Subject => $assunto,
    ],
    # monta corpo do email a partir de template
    body => $c->view('TT')->render( $c, 'caminho/para/template_do_email.tt',
                { var1 => $foo, var2 => $bar }),
    );

    # envia o email
    sendmail($email);
--------->8---------

[]s

-b

2010/5/3 breno <breno em rio.pm.org>:
> 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