【发布时间】:2009-10-25 11:30:13
【问题描述】:
我正在寻找一种符合标准的方式来存储 Web 应用程序的多语言内容。到目前为止,我使用了自己的“translate()”函数从文件或数据库中的字典表中读取数据。但是,如果您使用 Web 应用程序的不同副本,那么在数据库表中保持字典是最新的会非常麻烦。
我喜欢 gettext,因为有很多工具可供它使用。但是,我为不同平台开发应用程序。我绝对不愿意处理 setlocale() 和 consorts 的糟糕方式 - 即您需要提供的数十种不同的语言环境字符串变体,这些变体因系统而异。永远不能。我有一组语言——比如 de、en 和 es——我想加载适当的字典并使用 _() 而无需触及 setlocale() 或 bindtexdomain() 一次。
这是否可以使用 gettext 实现?或者有人知道另一种简单、小巧、快速 (!) i18n 的 PHP 解决方案,它可以处理 .po/.mo 文件,最好不需要 PHP 扩展?
【问题讨论】:
-
不使用 gettext 扩展在 PHP 中使用 gettext 实际上是不可能的,但不要担心这是 PHP 的一个非常常见/标准的扩展,并且大多数安装确实已经激活了它。
-
@Sorin:有可能,有一个原生 PHP 实现,其中包含大多数(如果不是全部)gettext 函数。
-
@votingmeisfree wordpress 和 cakephp,仅举几例,使用 po 和 mo 文件而不使用 gettext 实现。他们直接打开文件。
标签: php internationalization translation gettext