如何将国际化添加到Perl脚本中?
我正在考虑向用Perl编写的成熟CGI应用程序引入多语言支持。我最初考虑使用Perl散列(存储在磁盘上)来滚动我自己的解决方案来转换文件,但后来我遇到了一个CPAN模块,它似乎正是我想要的() 有没有人有过Perl国际化(特别是i18n CPAN模块)的经验?i18n模块是多语言支持的首选方法还是我应该重新考虑定制解决方案 感谢您回复建议阅读的关于perl代码本地化的评论。这里有一个关于软件本地化的主题。它将为您提供在添加多语言支持时所能期望的好主意。它写得很漂亮,很幽默如何将国际化添加到Perl脚本中?,perl,localization,internationalization,cgi,Perl,Localization,Internationalization,Cgi,我正在考虑向用Perl编写的成熟CGI应用程序引入多语言支持。我最初考虑使用Perl散列(存储在磁盘上)来滚动我自己的解决方案来转换文件,但后来我遇到了一个CPAN模块,它似乎正是我想要的() 有没有人有过Perl国际化(特别是i18n CPAN模块)的经验?i18n模块是多语言支持的首选方法还是我应该重新考虑定制解决方案 感谢您回复建议阅读的关于perl代码本地化的评论。这里有一个关于软件本地化的主题。它将为您提供在添加多语言支持时所能期望的好主意。它写得很漂亮,很幽默 具体来说,这篇文章是由
具体来说,这篇文章是由撰写和维护,因此,我建议只根据作者为使其正常工作所承受的痛苦程度来设计该模块。如果您有时间,请查看一下I18N在框架中的实现方式——尽管最初相当混乱,但它非常优雅且可用 它们重载
\uu
,以便您可以在代码中的任何位置使用\u(“文本翻译”)
。然后将这些字符串转换为正常值
它真正强大的地方在于,它们将翻译推迟到需要使用字符串时,这样您就可以随时开始添加字符串,甚至在您知道它们将被翻译成哪种语言之前。例如,在配置文件等中。这确实使I18N易于使用。有关现代GNU gettext、Locale::Maketext和Locale::TextDomain的比较,请参阅。在Perl中使用单下划线快捷方式是一个糟糕的设计选择,因为它是自动全局的。这就是为什么Perl的标准l10n框架使用双下划线的原因。