项目中使用到了thinkphp2.0的多语言功能,发现一些bug
语言配置如下:
[code]
'LANG_SWITCH_ON' => true,
'DEFAULT_LANG' => 'en-us',
'LANG_AUTO_DETECT' => true,
[/code]
在Lang目录下创建en-us,zh-cn,zh-tw目录
ThinkPHP使用$_SERVER['HTTP_ACCEPT_LANGUAGE']来自动检测浏览器支持语言,
然后保存到cookie中,并读取相应的语言包。
这里有两个问题:
1. 浏览器的返回值的大小写不同, 如Firefox:en-us, 谷歌chrome:en-US
返回值是小写的时候没有问题,大写的时候(chrome)就会产生找不到语言包的情况。
2. 浏览器的支持语言不存在的时候,也会产生找不到语言包的情况。
比如说有的浏览器返回值是 en-gb
解决办法如下,
打开/ThinkPHP/Lib/Think/Core...