perl - 我如何结合 Catalyst 和 ngettext?

标签 perl internationalization gettext catalyst

我正在尝试使用 Catalyst 解决 i18n 问题。据我了解,有两种方法可以用 Perl 进行翻译:MaketextGettext。但是,我需要支持 gettext 的 .po 格式,所以基本上我会使用 gettext。

现在,我找到了 Catalyst::Plugin::I18n 和 Locale::Maketext::Lexicon,它在大部分时间都能满足我的需求。但是,它不会生成正确的复数形式,即将 msgid_pluralmsgstr[x] 正确写入.pot 文件。发生这种情况可能是因为 Maketext 依赖于其括号符号 [quant,_1...],因此在翻译中必须具有相同的符号。

另一种解决方案可能是使用一些直接的 gettext 端口,如 Locale::Messages,但这意味着重写 C::P::I18n。

除了重写几个模块之外,是否有人对这个问题有合适的解决方案?任何将适当的 gettext 与其所有功能和 Catalyst 相结合的东西都可以。

最佳答案

您可能会在邮件列表中得到更好的答案:

http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst

我想你也读过这个:

http://www.catalystframework.org/calendar/2006/18

关于perl - 我如何结合 Catalyst 和 ngettext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493935/

相关文章:

arrays - 如何在数组元素之间打印 'AND'?

perl - 为什么这会打印 12 次?

django - Perl 有类似于 Django 自动管理员界面的东西吗?

java - 如何在服务器端转义非英文字符

c++ - CMenu::ModifyMenu 的问题

android - 尝试将编辑文本转换为字符串, "name".getText().toString() 行出错

perl - CPAN 中最长的字符串?

javascript - I18N 在 Next.JS 中更改语言

internationalization - 用两个复数词国际化句子

c - 如何在 C 中使用 gettext() 并以动态消息 id 作为参数