public static function resolveLanguageFromBrowser()
{
$ret = false;
if (isset($_SERVER[’HTTP_ACCEPT_LANGUAGE’])) {
$env = $_SERVER[’HTTP_ACCEPT_LANGUAGE’];
$aLangs = preg_split(
’;[\s,]+;’,
substr($env, 0, strpos($env . ‘;’, ‘;’)), -1,
PREG_SPLIT_NO_EMPTY
);
foreach ($aLangs as $langCode) {
// don’t take care of locale for now, only main language
$langCode = substr($langCode, 0, 2);
$langCodeCharset = $langCode . ‘-’ . self::getDefaultCharset
();
if (self::isAllowedLangCodeCharset($langCodeCharset)) {
$ret = $langCodeCharset;
break;
}
}
}
return $ret;
}
瀏覽器語言若是設為”中文(台灣)[zh-tw]“,則$_SERVER[’HTTP_ACCEPT_LANGUAGE’]值為”zh-tw“,
resolveLanguageFromBrowser()返回值必須轉成”zhtw-utf-8“才符合$GLOBALS[’_SGL’]
[’LANGUAGE’]繁體中文的鍵值,因此必須修正第398行:
$langCode = ($langCode == ‘zh-tw’) ? ‘zhtw’ : substr($langCode, 0,
2);