PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

无法关闭语言包切换

管理员 2024-12-14
Fastadmin
4

TP5中的多语言,我们可以通过lang_switch_on这个来配置是否开启语言包切换,如果设置成false,按官方的意思是不启用语言包自动检测,加载配置文件中设置的默认语言包,不过最近在使用fastadmin时发现即便关闭了语言包切换检测,系统仍然会去检测语言包,直接导致的后果就是,如果浏览器的语言是英文,你的FA系统中默认语言是中文,就会出现无法正常读取语言包的问题,如果浏览器是中文,而默认语言设置成英文,则也会出现同样的问题。百思不得其解,首先我就去看了下是不是我的fa版本太低的问题,于是又去下载了一个新版本的fa,发现也存在这个问题。

后来我就找到了:thinkphplibrarythinkLang.php 这个文件 看了一下detect()这个方法。

发现detect方法中似乎没有对配置文件中的lang_switch_on开关做判断,然后尝试加了一个上去,问题就解决了。下面贴下代码,希望能帮助有这个需求的童鞋少走弯路。

    public static function detect()    {        // 自动侦测设置获取语言选择        $langSet = '';        //语言切换开关没有打开时,不自动进行语言检测        if(Config::get('lang_switch_on') === true)        {            if (isset($_GET[self::$langDetectVar])) {                // url中设置了语言变量                $langSet = strtolower($_GET[self::$langDetectVar]);                Cookie::set(self::$langCookieVar, $langSet, self::$langCookieExpire);            } elseif (isset($_COOKIE[self::$langCookieVar])) {                // Cookie中设置了语言变量                $langSet = strtolower($_COOKIE[self::$langCookieVar]);            } elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {                // 自动侦测浏览器语言                preg_match('/^([a-zd-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);                $langSet     = strtolower($matches[1]);                $acceptLangs = Config::get('header_accept_lang');                if (isset($acceptLangs[$langSet])) {                    $langSet = $acceptLangs[$langSet];                } elseif (isset(self::$acceptLanguage[$langSet])) {                    $langSet = self::$acceptLanguage[$langSet];                }            }            if (empty(self::$allowLangList) || in_array($langSet, self::$allowLangList)) {                // 合法的语言                self::$range = $langSet ?: self::$range;            }                }else{            // 合法的语言            self::$range = Config::get('default_lang');        }        return self::$range;    }

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部