我正在尝试在网站上使用gettext,为此我正在关注O'Reilly Media tutorial。在第一页的末尾,它说我需要使用命令xgettext -n *.php
,但我的命令行返回以下内容:'xgettext' is not recognized as an internal or external command, operable program or batch file.
我在XAMPP上运行我的网站,所以我的整个目录是这样的:
xampp/htdocs/gettext/locale/en/lc_messages/
我在gettext文件夹中有test.php,在en
文件夹中有messages.po。即使我尝试使用poedit,它也行不通。这是我的test.php代码:
<?php
// I18N support information here
$language = 'en';
putenv("LANG=$language");
setlocale(LC_ALL, $language);
// Set the text domain as 'messages'
$domain = 'messages';
bindtextdomain($domain, "localhost/gettext/locale");
textdomain($domain);
echo "<br>";
echo gettext("A string to be translated would go here");
?>
我不确定bindtextdomain函数中的字符串是否正确。 有人有任何线索吗?
编辑:我忘了提到我在使用Windows。我已经检查了php目录,gettext扩展名就在那里,并在php.ini配置文件中启用。答案 0 :(得分:3)
我找到了解决方案! 尝试添加此行
putenv("LANGUAGE=$language");
根据Ubuntu wiki:
(注意以前Ubuntu使用LANG变量进行翻译 语言。现在使用LANGUAGE,LANG用于指定 其他类型的区域设置信息,例如日期格式,编号 格式等。)