【问题标题】:Gettext, not displaying获取文本,不显示
【发布时间】:2009-10-28 16:09:10
【问题描述】:

我正在尝试使用以下代码加载我的 .mo 翻译,但它不起作用。我有 php gettext 分机。在我的 phpinfo() 中启用并安装了所有必需的语言环境。 我错过了什么吗?

$locale = "en_US";

putenv("LC_ALL=$locale");

setlocale(LC_ALL, $locale);

bindtextdomain("messages", "./locale");
textdomain("messages");

我的.mo文件位于./locale/en_US/messages.mo

【问题讨论】:

    标签: php apache2 internationalization gettext


    【解决方案1】:

    当一个 apache 线程加载一个 .mo 文件时,它不会重新加载它,直到 apache 线程被回收。因此,如果您更新 .mo 文件,并希望确保您的 php 正在使用该新的 .mo 文件,您实际上需要重新启动 apache 或为 mo 文件使用不同的名称。

    无论如何,我会设置 LANG 环境变量。

    【讨论】:

    • 这是你的意思吗?:$language = 'en US.UTF-8'; putenv("LANG=$language");我曾尝试使用 sudo /etc/init.d/apache2 reload 重新加载 apache,但没有解决。
    • @mnml: 不重新加载,而是重启apache,即sudo /etc/init.d/apache2 restart
    【解决方案2】:

    您可能需要更改路径,使其成为绝对路径,而不是相对路径。

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 2012-07-01
      • 2016-05-28
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 2010-11-12
      相关资源
      最近更新 更多