我正试图用催化剂来解决问题。据我所知,有两种方法可以使用Perl进行翻译: Maketext 和 Gettext 。但是,我需要支持gettext的 .po 格式,所以基本上我会使用gettext。
现在,我找到了Catalyst :: Plugin :: I18n,因此找到了Locale :: Maketext :: Lexicon,它可以完成我想要的大部分时间。但是,它不会生成正确的复数形式,即正确地将 msgid_plural
和 msgstr[x]
写入 .pot 文件。这可能是因为Maketext依赖于括号表示法[quant,_1...]
,因此在翻译中必须使用相同的符号。
另一个解决方案可能是使用一些像Locale :: Messages这样的直接gettext端口,但这意味着重写C :: P :: I18n。
除了重写几个模块之外,有没有人能解决这个问题?任何结合了正确的gettext及其所有功能和Catalyst的东西都可以。
答案 0 :(得分:2)