Olá!

Esta pergunta TLDR vai na esteira das demais não relacionadas exclusivamente ao Perl.

Tenho trabalhado como uma coleção de steps de gherkin (chamada Barbor) e pretendo internacionalizá-la.

Este é um exemplo de step, em sua forma .feature:

Quando é definido para o campo <Label do Campo> o valor <Conteúdo a ser preenchido>

Esses steps são feitos para Cucumber. Portanto, no código em Ruby, temos:

Quando /^é definido para o campo '(.+)' o valor '(.+)'$/ do |field_label, 
field_value|
  visit ArborFieldPage do |page| page.set_field field_label, field_value end
end

Conheço os arquivos .po, .mo apenas do ponto de vista do usuário tradutor. Mas, do pouco que sei sobre gettext, tenho a impressão de que ele não satisfaz o que pretendo por dois motivos:

1. Pressupõe que o texto original esteja em inglês (?)
2. Pressupõe a adição de um marcador sintático que deve encapsular o texto traduzível.

Seria asim o .po para esse step (suponto que o step estaria sozinho no arquivo):

# English translation of Arbor Field
#
msgid ""
msgstr ""
"Project-Id-Version: Arbor Field\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "é definido para o campo"
msgstr "it is set for the field"
msgid "o valor "
msgstr "the value"

Queria poder gerar os .po dessa forma, sem precisar alterar o código dos steps. Ou seja, todo o texto em língua humana dos steps será considerado traduzível por padrão.

Minha pergunta finalmente é: devo fazer o parsing e um mecanimo de substituição por conta própria,
ou devo utilizar algum toolkit para isso?

Abraço,

Rodrigo Panchiniak Fernandes
http://toetec.com.br
http://panchiniak.toetec.com.br

=begin disclaimer
  Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a