我在PHP中遇到gettext問題;我有兩臺服務器,一臺是本地(在我開發中)在Windows中(使用vsphp)和工程查找,另一臺在Amazon EC2中(Ubuntu 12.04更新),這是生產服務器,在這臺服務器中,找到了。php-gettext在生產服務器中不起作用。 (Ubuntu)
這是我的代碼:
我用這個初始化gettext。
function initialize_i18n($locale) {
$locales_root = "./librerias/noAuto/locale";
putenv('LANG='.$locale);
putenv("LC_ALL=" . $locale);
setlocale(LC_ALL,$locale);
$domains = glob($locales_root.'/'.$locale.'/LC_MESSAGES/messages*.mo');
if (count ($domains) > 0)
{
$current = basename($domains[0],'.mo');
$timestamp = preg_replace('{messages-}i','',$current);
bindtextdomain($current,$locales_root);
bind_textdomain_codeset($current, "UTF-8");
textdomain($current);
if ($locale == "en_US")
{
if(_("Modificar") === "Modify") {
$system->setDebug("Translated correctly");
} else {
$system->setDebug("Gettext don't working");
}
}
}
}
initialize_i18n("en_US");
所有文件在我的項目在UTF-8(在西班牙語)的編碼,而和的.mo的.po已與poEdit的產生。
我嘗試重新加載Apache服務,但沒有奏效。
有什麼想法?
拯救生命!我會花幾個小時甚至在這個方向思考:)謝謝! –