切换语言包一定要用GET参数吗?

浏览:871 发布日期:2013/10/11 分类:求助交流 关键字: easyui thinkphp 语言包 多语言
我是用ThinkPHP3.1.3+easyui来开发的,最近需要用到多语言,就加入了ThinkPHP对多语言的支持,用url的l参数设置语言OK,但是我需要从jquery.cookie设置的一个参数来判断使用哪种语言,比如jquery.cookie设置了一个cookie['langType'],然后我在CheckLangBehavior.class.php中修改代码如下:if (C('LANG_AUTO_DETECT')){
            if(isset($_GET[C('VAR_LANGUAGE')])){
                $langSet = $_GET[C('VAR_LANGUAGE')];// url中设置了语言变量
                cookie('think_language',$langSet,3600);
            }elseif($_COOKIE['langType']){
                $langSet = $_COOKIE['langType'];// easyui中设置了语言变量
                cookie('think_language',$langSet,3600);
            }elseif(cookie('think_language')){// 获取上次用户的选择
                $langSet = cookie('think_language');
            }elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){// 自动侦测浏览器语言
                preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
                $langSet = $matches[1];
                cookie('think_language',$langSet,3600);
            }
            if(false === stripos(C('LANG_LIST'),$langSet)) { // 非法语言参数
                $langSet = C('DEFAULT_LANG');
            }
        }
结果无法实现切换,变成默认语言,但是我dump$_cookie['langType']是有值的。
求解,是哪里出问题了?
最佳答案
评论( 相关
后面还有条评论,点击查看>>