[Catalyst] I18N with variables

Ton Voon ton.voon at opsera.com
Wed Aug 4 08:04:41 GMT 2010


On 2 Aug 2010, at 06:08, Julien Sobrier wrote:

> Hello,
> I've started to translate my website using Catalyst::Plugin::I18N. It
> works fine for static text. Bu I can't make it work for variables. For
> example, I need to a translation for [% foo %] where for can take a
> set of values defined in a database.
>
> I'm sot sure what is the best way to translate such variables, and
> what is possible:
> * add a msgid for each possible value in messages.po => those gets
> removed every time I run xgettext.pl
> * Make the translation in my Database layer => unfortunately I use the
> old Class::DBI, and could not find a plugin for it
> * any other option?

What I do is use the variable to work out the dynamic name, and then  
in a dummy template file, have the possible options. Eg:

[% menu_name="Configuration"; c.loc(menu_name) %]

Then in a dummy template file, have:

[% c.loc("Configuration") %]

This way xgettext.pl will always find it to put into messages.po. It  
means having to write in the dummy template all the possibilities, but  
it would have to be captured somewhere, so it might as well be in  
something that xgettext.pl can process.

Ton




More information about the Catalyst mailing list