PHP-在windows 10和xamp服务器上使用gettext()

PHP-在windows 10和xamp服务器上使用gettext(),php,localization,xampp,gettext,Php,Localization,Xampp,Gettext,我一直在尝试使用此gettext功能向我的网站添加本地化功能。请记住,我不是一个网络开发者,这个领域对我来说相当陌生。在完成了几个教程之后,我安装了扩展,并在php.ini中启用了它。我还使用PoEdit创建.po文件。我的php代码如下所示: <?php $language = "en_US"; putenv("LC_ALL={$locale}"); $domain = 'messages'; bindtextdomain($domain, './locale'); bind_tex

我一直在尝试使用此gettext功能向我的网站添加本地化功能。请记住,我不是一个网络开发者,这个领域对我来说相当陌生。在完成了几个教程之后,我安装了扩展,并在php.ini中启用了它。我还使用PoEdit创建.po文件。我的php代码如下所示:

<?php
$language = "en_US";
putenv("LC_ALL={$locale}");

$domain = 'messages';
bindtextdomain($domain, './locale'); 
bind_textdomain_codeset($domain, 'UTF-8'); 
textdomain($domain); 
?>
<p class="welcome"><?=_('welcome');?></p>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-04-23 11:27+0300\n"
"PO-Revision-Date: 2017-04-23 11:36+0300\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.1\n"
"X-Poedit-Basepath: ../../..\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Last-Translator: \n"
"Language: en\n"
"X-Poedit-SearchPath-0: index.php\n"

#: index.php:63
msgid "welcome"
msgstr "Welcome"

#: index.php:64
msgid "to-leadersplay"
msgstr "to Leadersplay"
我的目录结构如下所示:

<?php
$language = "en_US";
putenv("LC_ALL={$locale}");

$domain = 'messages';
bindtextdomain($domain, './locale'); 
bind_textdomain_codeset($domain, 'UTF-8'); 
textdomain($domain); 
?>
<p class="welcome"><?=_('welcome');?></p>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-04-23 11:27+0300\n"
"PO-Revision-Date: 2017-04-23 11:36+0300\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.1\n"
"X-Poedit-Basepath: ../../..\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Last-Translator: \n"
"Language: en\n"
"X-Poedit-SearchPath-0: index.php\n"

#: index.php:63
msgid "welcome"
msgstr "Welcome"

#: index.php:64
msgid "to-leadersplay"
msgstr "to Leadersplay"


无论我做什么,显示的字符串似乎是键,而不是文件中的翻译。在我当前的示例中,我受到欢迎,但我希望受到欢迎(大写字母为W)

我认为问题在于

$language = "en_US";
putenv("LC_ALL={$locale}");
应该是

$locale = "en_US";
putenv("LC_ALL={$locale}");
相反

因为在这一更改之后,代码片段对我来说很好。

请参阅我的答案@

在Windows中,gettext查看在Apache启动之前必须设置的“LANG”变量

set LANG=nl_NL
xampp-control

这是我复制代码的一个错误。我真的试过了。在我的主机提供商上测试代码似乎是可行的,所以我只是将我的IDE连接到那里,然后我将在那里发布文件。似乎无法在本地主机上运行。请确保将适当的目录放入
bindtextdomain