6

我正在寻找一种符合标准的方式来存储 Web 应用程序的多语言内容。到目前为止,我使用了自己的“translate()”函数从文件或数据库中的字典表中读取数据。但是,如果您使用 Web 应用程序的不同副本,则使数据库表中的字典保持最新是非常麻烦的。

我喜欢 gettext,因为有很多工具可供它使用。但是,我为不同平台开发应用程序。我绝对不愿意处理 setlocale() 和 consorts 的蹩脚方式 - 即几十种不同的语言环境字符串变体,这些变体因系统而异,您需要提供这些变体才能使其正常工作。永远不能。我有一组语言——比如 de、en 和 es——我想加载适当的字典并使用 _() 而不接触 setlocale() 或 bindtexdomain() 一次。

使用 gettext 有可能吗?或者有人知道另一种简单、小巧、快速(!)i18n 的 PHP 解决方案,它可以处理 .po/.mo 文件,最好不需要 PHP 扩展?

4

2 回答 2

3

此方法甚至适用于非标准语言环境:

$locale = 'someWeirdLocale';

putenv('LC_MESSAGES=' . $locale);
bindtextdomain('domain', './locale');
textdomain('domain');

享受!

于 2009-10-25T19:30:17.177 回答
2

Zend_Translate 与它一起工作

http://framework.zend.com/manual/en/zend.translate.adapter.html#zend.translate.adapter.gettext

于 2009-10-25T11:52:30.577 回答