0
我一直在尝试使用gettext功能将本地化功能添加到我的网站。请记住,我不是一个webdev,而且这个领域对我来说是相当陌生的。在遵循几个教程之后,我安装了扩展,并在php.ini中启用了它。我也使用PoEdit来创建.po文件。我的PHP代码如下所示:PHP - 在Windows 10和xamp服务器上使用gettext()
<?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>
至于我的理解去 “_” 是gettext的方法的alieas。两者似乎都不起作用。 这些消息.po文件看起来是这样的:
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)
这是我在复制代码时犯的一个错误。我其实就是这样试过的。测试我的托管服务提供商的代码似乎工作,所以我只是将我的IDE连接到那里,我将在那里发布文件。似乎无法让它在本地主机上工作。 –
确保你把正确的目录放到'bindtextdomain'中。 – akond