【问题标题】:php gettext returns msgid stringphp gettext 返回 msgid 字符串
【发布时间】:2017-08-23 10:14:17
【问题描述】:

我正在关注教程here,php 正在输出 msgid 而不是 msgstr。这是我所拥有的......

extension=php_gettext.dll 在php.ini 中未注释(这已在 xampp 中未注释)

php_gettext.dll in C:\xampp\php\ext(这已经在 xampp 中了)

在LC_MESSAGES 中创建messages.po 和messages.mo 文件的目录结构C:\xampp\htdocs\TestI18N\Locale\en_US\LC_MESSAGES。

C:\xampp\htdocs\TestI18N 中名为 test-locale.php 的文件具有以下内容

// I18N support information here
$language = "en_US";
putenv("LANG=" . $language); 
setlocale(LC_ALL, $language);

// Set the text domain as "messages"
$domain = "messages";
bindtextdomain($domain, "Locale"); 
bind_textdomain_codeset($domain, 'UTF-8');

textdomain($domain);

echo _("HELLO_WORLD");

我的messages.po 文件

msgid ""
msgstr ""
"Project-Id-Version: TestProject\n"
"POT-Creation-Date: 2017-08-22 23:42+0300\n"
"PO-Revision-Date: 2017-08-22 23:53+0300\n"
"Last-Translator: \n"
"Language-Team: English\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.3\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: en_US\n"
"X-Poedit-SourceCharset: UTF-8\n"

# Test token 1
msgid "HELLO_WORLD"
msgstr "Hello World!"

# Test token 2
msgid "TEST_TRANSLATION"
msgstr "Testing translation..."

输出为HELLO_WORLD。我究竟做错了什么?谢谢。

【问题讨论】:

    标签: php gettext


    【解决方案1】:

    我知道这个问题很老,但万一它对其他人有帮助;我的服务器上安装的语言环境是 en_US.utf8 而不是 en_US。

    【讨论】:

      猜你喜欢
      • 2014-01-30
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多