我在这里陷入了困境。浏览我的本地化网站的翻译版本时,翻译随机停止,我不知道为什么;我不确定这是否与我设置区域设置的方式有关,但它会随机停止翻译并恢复为英语。完成此操作后,唯一的取回方法是转到主页,在地址栏中突出显示 URL,然后按 Enter。
我希望有人可以看看我在 PHP 中设置语言环境的方式,看看是否有我遗漏或搞砸的东西。
<?php
explode(";", setlocale(LC_ALL, 0));
$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
if (strpos($pageURL,'es.') !== false) {
$language = 'es_ES.utf8';
}
elseif (strpos($pageURL,'it.') == true) {
explode(";", setlocale(LC_ALL, 0));
$language = 'it_IT.utf8';
}
elseif (strpos($pageURL,'de.') == true) {
explode(";", setlocale(LC_ALL, 0));
$language = 'de_DE.utf8';
}
elseif (strpos($pageURL,'pt.') == true) {
explode(";", setlocale(LC_ALL, 0));
$language = 'pt_PT.utf8';
}
elseif (strpos($pageURL,'fr.') == true) {
explode(";", setlocale(LC_ALL, 0));
$language = 'fr_FR.utf8';
}
else {
explode(";", setlocale(LC_ALL, 0));
$language = 'en_US.utf8';
}
putenv("LANG=" . $language);
explode(";", setlocale(LC_ALL, 0));
setlocale(LC_ALL, $language);
// Set the text domain as "messages"
$domain = "messages";
bindtextdomain($domain, "Locale");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
?>
如果你们中的任何人对为什么 gettext 随机停止工作有任何想法,请告诉我。另外,如果您需要查看其他地方的代码片段以解决该问题,请告诉我。对此,我真的非常感激!