我正在尝试使用 Catalyst 解决 i18n 问题。据我了解,有两种方法可以用 Perl 进行翻译:Maketext 和 Gettext。但是,我需要支持 gettext 的 .po 格式,所以基本上我会使用 gettext。
现在,我找到了 Catalyst::Plugin::I18n 和 Locale::Maketext::Lexicon,它在大部分时间都能满足我的需求。但是,它不会生成正确的复数形式,即将 msgid_plural
和 msgstr[x]
正确写入.pot 文件。发生这种情况可能是因为 Maketext 依赖于其括号符号 [quant,_1...]
,因此在翻译中必须具有相同的符号。
另一种解决方案可能是使用一些直接的 gettext 端口,如 Locale::Messages,但这意味着重写 C::P::I18n。
除了重写几个模块之外,是否有人对这个问题有合适的解决方案?任何将适当的 gettext 与其所有功能和 Catalyst 相结合的东西都可以。
最佳答案
关于perl - 我如何结合 Catalyst 和 ngettext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493935/