ThinkPHP多语言中的cookie('think_langu
2017-02-25 本文已影响0人
issac_宝华
在我的blog的另外一篇文章:ThinkPHP-多语言支持功能使用 功能如题,里面有说到一个ThinkPHP内置类:ThinkPHP\Extend\Behavior\CheckLangBehavior.class.php。这个类是ThinkPHP的“行为类”,使用多语言就要加载这个行为类,它会每次在你编写的代码运行前先运行。查看这个类你还可以找到这么一段代码:

显然,这个类是会每次新建一个cookie('think_language'),我们可以利用这个cookie做一些扩展。比如,html页面可以根据不同的语言使用不同的样式:

这样用是有兼容性坑的,ThinkPHP它返回的cookie('think_language')对于每个浏览器,不是返回都是zh-cn或者en-us,至少现在我发现他不会一直返回小写的,今天就发现,它有时候在chrome、Opera、Firefox中返回的是:zh-CN,只有在Safari中返回的是zh-cn。目前还不清楚会不会返回cn或者en这样的关键字,目前该做的兼容措施就是转换为小写:
