PHP GetText命令无法在命令行上运行

时间:2015-04-14 11:25:41

标签: php gettext

我正在尝试在网站上使用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配置文件中启用。

1 个答案:

答案 0 :(得分:3)

我找到了解决方案! 尝试添加此行

putenv("LANGUAGE=$language"); 

根据Ubuntu wiki

  

(注意以前Ubuntu使用LANG变量进行翻译   语言。现在使用LANGUAGE,LANG用于指定   其他类型的区域设置信息,例如日期格式,编号   格式等。)