我试图让我的头绕着i18n与催化剂。就我所了解的事情而言,有两种使用Perl进行翻译的方法:Maketext和Gettext。但是,我有要求支持gettext的.po格式,所以基本上我会用gettext。如何将Catalyst和ngettext结合起来?
现在,我已经找到了Catalyst :: Plugin :: I18n,因此Locale :: Maketext :: Lexicon,它可以做我想要的大部分时间。然而,它不会生成适当的复数形式,即正确地写入msgid_plural
和msgstr[x]
进入.pot文件。发生这种情况可能是因为Maketext依赖于它的括号符号[quant,_1...]
,因此必须在翻译中使用相同的符号。
另一种解决方案可能是使用一些直接的gettext端口,如Locale :: Messages,但是这意味着重写C :: P :: I18n。
除了重写几个模块之外,有没有人有解决这个问题的适当解决方案?任何将适当的gettext与其所有功能和Catalyst结合的东西都可以。
当然我读过,但它主要是谈论C :: P :: I18N,我提到过需要一些补丁...... – 2009-01-30 19:41:25