老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
1,630

Piwigo 简体中文浏览器下默认显示繁体中文的解决方法

分类 网站技术/村民张先生 发布于 2020-02-22 07:52
0

打开 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 ,实现正常显示简体中文的功能。

欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/20202312.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截