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框架编译完后覆盖语言检测和模板检测再进行一次自己定义的检测。
这是目前比较好的办法了吧~~