尝试使用gettext来使php网站国际化

问题描述

|| 好的,我有以下PHP代码
<?PHP
$locale = \"es\";
//$locale = $_SERVER[\"HTTP_ACCEPT_LANGUAGE\"];
//if (isSet($_GET[\"locale\"])) $locale = $_GET[\"locale\"];
putenv(\"LC_ALL=$locale\");
putenv(\"LANGUAGE=$locale\");
setlocale(LC_ALL,$locale);
bindtextdomain(\"messages\",\"./locale\");
bind_textdomain_codeset(\"messages\",\'UTF-8\');
textdomain(\"messages\");

echo(getenv(\"LC_ALL\"));
echo(\"<br>\");
echo gettext(\"Hello World!\");
?>
我已经创建了西班牙文messages.po和messages.mo文件,并将它们存储在上述代码所在目录的子目录中。所述目录的路径为: 语言环境/ es / LC_MESSAGES 根据PHPinfo,gettext在我所在的Web服务器上启用(由A Small Orange托管)。 调用页面显示getenv调用返回\'es \',但是原始的英语字符串出来了,而不是预期的西班牙语。我也尝试过_(\“ Hello World!\”),也无济于事。 我没有警告,没有错误,什么都没有。因此,我完全不知道如何解决可能失败的地方。 任何指导将不胜感激。     

解决方法

我可能是错的,但是尝试更改...
putenv(\"LC_ALL=$locale\");
putenv(\"LANGUAGE=$locale\");
putenv(\"LC_ALL=\".$locale);
putenv(\"LANGUAGE=\".$locale);