PHP Gettext不起作用

时间:2018-06-18 17:17:13

标签: php gettext

我无法使用PHP gettext翻译。

这是我的测试代码:

<?php 

$locale="en_US";
var_dump(putenv("LC_ALL=$locale"));
echo "<br>";
var_dump(putenv("LC_LANG=$locale"));
echo "<br>";
var_dump(putenv("LC_LANGUAGE=$locale"));
echo "<br>";
var_dump(setlocale(LC_ALL, $locale));
echo "<br>";
var_dump(putenv("LANG=".$locale));
echo "<br>";
var_dump(putenv("LANGUAGE=".$locale));
echo "<br>";
var_dump(bindtextdomain("guest","locale"));
echo "<br>";
var_dump(bind_textdomain_codeset("guest", 'UTF-8'));
echo "<br>";
var_dump(textdomain("guest"));
echo "<br>";
echo gettext("Nome");

我将guest.po和guest.mo文件放在./locale/en_US/LC_MESSAGES/路径

这是我的guest.po:

msgid ""
msgstr ""
"Project-Id-Version: guest\n"
"POT-Creation-Date: 2018-06-18 17:44+0200\n"
"PO-Revision-Date: 2018-06-18 19:11+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.8\n"
"X-Poedit-Basepath: ..\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SearchPath-0: .\n"

msgid "Nome"
msgstr "Name"

这是我的输出:

bool(true)
bool(true)
bool(true)
string(5) "en_US"
bool(true)
bool(true)
string(35) "D:\www\apptest\locale"
string(5) "UTF-8"
string(5) "guest"
Nome

我指出 Nome 没有使用名称进行转换!

我在Windows 10下使用Apache / 2.4.25(Win32)PHP / 7.0.18。

修改

我发现如果我将我的MO文件移到it_IT / LC_MESSAGES下面就可以了! it_IT是我的操作系统的默认语言,但不是选定的语言。

0 个答案:

没有答案