thinkphp 语言包加载失败的解决办法

在浏览器未设置默认语言的时候,thinkphp便检测不到语言,导致语言包加载失败直接输出。

thinkphp2.0语言检测和模板检测是在ThinkPHP\Lib\Think\Core的App.class.php的239行开始,查看代码便可知,当未检测到语言的时候,无法加载语言包。

我的解决办法是,在项目公共部分从配置表中读取站点要设置的语言和模板,代码只有三句话


cookie('think_language','en-us',3600);

cookie('think_template','default',3600);

App::init();

原理就是在thinkphp框架编译完后覆盖语言检测和模板检测再进行一次自己定义的检测。

这是目前比较好的办法了吧~~