【问题标题】:How can I implement a language translation module in php如何在 php 中实现语言翻译模块
【发布时间】:2009-07-20 17:10:59
【问题描述】:

为 mutli -lang 网站实施语言翻译的最佳方式是什么。 我有两种方法,即

1) 只需将页面中的所有静态文本内容放入数据库,即数据库驱动的编程风格

$translation('register_form');
<form >
 <input name="search" >
</form>

某种翻译。

2) 类似于 wordpress .mo 文件方法。

我想了解更多关于这种翻译的信息,它如何与 .mo 类似的文件一起工作......

或任何其他更好的方式来制作翻译模块。

【问题讨论】:

    标签: translation multilingual


    【解决方案1】:

    对于 .mo 文件支持,请查看 gettext 函数,并查看原始 GNU gettext documentation

    简而言之,无论何时使用自然语言,都需要调用 _()(gettext 的别名)

    echo _("Hello world");
    

    一旦您的所有来源都这样做了,运行 GNU Xgettext 工具到build a .pot file,它构成了您的语言翻译的“模板”。对于每种所需的语言,您可以merge this .pot file into an individual .po file for each language。再次由 xgettext 提供的合并操作可确保您使用新字符串更新文件,而不会丢失任何现有的翻译。

    这些 .po 文件会发送给您的翻译人员,他们可能会使用 poedit 之类的工具来提供翻译。当 .po 文件返回时,您可以生成 gettext 使用的二进制 .mo 文件。

    还有classes in the Zend Framework 也提供了更多的设施,例如。更多文件格式,以及在 HTTP 标头中检测和选择用户首选语言。

    【讨论】:

      【解决方案2】:

      查看gettext - 这不是解决每个人问题的完美解决方案,但它可能适合您。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-07
        • 1970-01-01
        • 1970-01-01
        • 2018-06-25
        • 2018-12-23
        • 2011-01-11
        • 2011-11-20
        • 1970-01-01
        相关资源
        最近更新 更多