Piwigo 简体中文浏览器下默认显示繁体中文的解决方法
分类 网站技术/村民张先生 发布于 2020-02-22 07:52
打开 include/functions_user.inc.php 文件,查找:
function get_browser_language() { $browser_language = substr(@$_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2); foreach (get_languages() as $language_code => $language_name) { if (substr($language_code, 0, 2) == $browser_language) { return $language_code; } } return false; }
替换为:
function get_browser_language() { $browser_language = substr(@$_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2); if ($browser_language == 'zh' && preg_match("/zh(_|-)(Hans|CN|SG)/i", @$_SERVER["HTTP_ACCEPT_LANGUAGE"])) { return 'zh_CN'; } else { foreach (get_languages() as $language_code => $language_name) { if (substr($language_code, 0, 2) == $browser_language) { return $language_code; } } return false; } }
说明:
浏览器语言在 $_SERVER["HTTP_ACCEPT_LANGUAGE"] 变量中,Piwigo仅截取前两位与支持的语言比对,简体中文zh_CN截取后的zh与繁体中文zh_TW一致,且最终被匹配为繁体中文。
本文修复原理为,当语言代码为zh时,重新判断 $_SERVER["HTTP_ACCEPT_LANGUAGE"] 中是否存在 zh-Hans / zh-CN / zh-SG 语言代码,若存在则返回语言代码 zh_CN ,实现正常显示简体中文的功能。
欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截