切换语言不生效,有以下情况及解决方法:

一、前端ajax请求语言包没有携带语言标识,最终还是全局的zh-cn语言包。

二、左侧菜单没有附加 lang 参数请求 导致点击 所切换的语言就没了。

三、目前在TP5.0.10版本仍然有无法从Cookie中读取语言标识,在5.0.7之前的版本没这个问题,这里需要修复到TP5中Lang.php的代码,具体文件位于thinkphp/library/think/Lang.php,修改detect()方法。

原文件为:

if (isset($_GET[self::$langDetectVar])) {
  // url 中设置了语言变量
  $langSet = strtolower($_GET[self::$langDetectVar]);
}

修改为:

if (isset($_GET[self::$langDetectVar])) {
  // url 中设置了语言变量
  $langSet = strtolower($_GET[self::$langDetectVar]);
  Cookie::set(self::$langCookieVar, $langSet, self::$langCookieExpire);
}

四、其次FastAdmin中左侧的菜单读取的是数据库中的数据,需要修改数据库中的文字才可以生效,这个后期有待优化读取方式。

最后修改日期:2019年8月15日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。