【问题标题】:Using gettext in PHP在 PHP 中使用 gettext
【发布时间】:2010-11-10 10:00:08
【问题描述】:

我正在开发开源软件,并考虑使用 gettext 来本地化界面。问题是:有没有办法不添加 gettext 模块依赖项?

由于 gettext 支持是作为一个 PHP 模块提供的,我需要让所有用户都安装它。有没有替代方案?

【问题讨论】:

    标签: php internationalization gettext


    【解决方案1】:

    认为 gettext 编译在绝大多数 PHP 安装中。我从来没有见过没有它的人。

    也就是说,Zend Framework 的 Zend_Translate 真正独立于包,并且比 gettext 强大得多。它可以处理多种字典格式,包括 gettext。它可以用作独立组件。如果您是从本地化开始的,那绝对值得一看。

    【讨论】:

    • Zend_Translate 并不是真正的包独立,它依赖于整个 Zend_Framework。 :-)
    • @MarcoDemaio 实际上我已经成功地将 Zend_Translate 从 Zend_Framework 中剥离出来。它实际上只依赖于自动加载器、异常和语言环境类。
    【解决方案2】:

    gettext 视为旧版扩展。 PHP 现在支持新的 ICU 库。查找以下类:IntlLocaleMessageFormatter

    【讨论】:

    • 对于 INTL 类,您必须具有 php > 5.3(或将 intl 安装为 php pecl 扩展)。 ... 共享主机用户很可能必须使用 gettext。
    • 是什么让你说 gettext 是一个遗留的分机?你从哪里得到的?
    • 嗯。我正在浏览 Intl 文档,但不知道如何进行简单的翻译:英文字符串到外国字符串.... 使用 gettext 很容易。
    • gettext 不是旧版扩展。 INTL 用于 L10N,gettext 用于 I18N。不同的目的。
    【解决方案3】:

    实际上有两种选择。 php-gettextgettext.php,都在 PHP 用户空间中实现,因此如果未编译 PHP 本机 gettext 扩展,您可以将它们用作后备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多