我正在考虑为用Perl编写的成熟CGI应用程序引入多语言支持。我最初考虑使用Perl哈希(存储在磁盘上)来翻译我自己的解决方案,但后来我遇到了一个CPAN模块,它看起来像我想做的那样(i18n)。
有没有人在Perl中有国际化经验(特别是i18n CPAN模块)? i18n模块是多语言支持的首选方法还是我应该重新考虑自定义解决方案?
由于
答案 0 :(得分:16)
软件本地化有Perl Journal article。它将为您提供添加多语言支持时可以期待的内容。它写得很漂亮,很有幽默感。
具体来说,这篇文章是由编写和维护Locale::Maketext
的人写的,因此我建议该模块仅仅基于作者必须忍受的痛苦程度才能使其正常工作。
答案 1 :(得分:8)
有关现代GNU gettext,Locale :: Maketext和Locale :: TextDomain的比较,请参阅http://rassie.org/archives/247。
答案 2 :(得分:3)
在回复my question about this时,其中一条评论建议阅读this article有关本地化perl代码的信息。
答案 3 :(得分:3)
如果你有时间,那么请看看Jifty框架中I18N的完成方式 - 虽然最初很混乱,但它非常优雅和可用。
他们超载_
,以便您可以在代码中的任何位置使用_("text to translate")
。然后正常使用Locale::Maketext翻译这些字符串。
真正强大的是,他们将翻译推迟到需要使用Scalar::Defer的字符串,以便您可以随时开始添加字符串,甚至在您知道将翻译成哪种语言之前。例如在配置文件等中。这确实使I18N易于使用。