P5多语言默认语言不生效BUG的解决办法

下面代码覆盖 thinkPhp/library/think/Lang.php 里面的detect()自动检测语言方法

 /**
     * 自动侦测设置获取语言选择
     * @access public
     * @return string
     */
    public static function detect() {
// 自动侦测设置获取语言选择
        $langSet = Config::get(‘default_lang‘);
        if (isset($_GET[self::$langDetectVar])) {
// url中设置了语言变量
            $langSet = strtolower($_GET[self::$langDetectVar]);
            Cookie::set(self::$langCookieVar, $langSet, 3600);
        } elseif (Cookie::get(self::$langCookieVar)) {
// 获取上次用户的选择
            $langSet = strtolower(Cookie::get(self::$langCookieVar));
        } elseif ($langSet) {
// 获取默认语言
            Cookie::set(self::$langCookieVar, $langSet, 3600);
        } elseif (isset($_SERVER[‘HTTP_ACCEPT_LANGUAGE‘])) {
// 自动侦测浏览器语言
            preg_match(‘/^([a-z\d\-]+)/i‘, $_SERVER[‘HTTP_ACCEPT_LANGUAGE‘], $matches);
            $langSet = strtolower($matches[1]);
            Cookie::set(self::$langCookieVar, $langSet, 3600);
        }
        if (empty(self::$allowLangList) || in_array($langSet, self::$allowLangList)) {
// 合法的语言
            self::$range = $langSet;
        }
        return self::$range;
    }

原文地址:https://www.cnblogs.com/zhangyouwu/p/11597790.html

时间: 2024-10-10 04:06:08

P5多语言默认语言不生效BUG的解决办法的相关文章

【转载】IE浏览器常见的9个css Bug以及解决办法

IE浏览器常见的9个css Bug以及解决办法 我们在浏览网页的时候经常看见这样的现象:某个网页在IE6浏览器中打开很正常,但是在IE8里面打开可能完全变形了.或者也有可能出现完全相反的现象.这让Web程序员及设计师往往为了其CSS在各个IE版本下表现怪异而痛苦不已,有时候需要通过专为IE6或者IE8设计单独的定义.IE浏览器则因此被公认为Web程序员的毒药,虽然在微软官网上并没有提供相关的解决方案,但是IE浏览器的兼容性存在的问题却是Web程序员必须熟练掌握的.本文总结了9个IE浏览器上最常见

vcffilter 工具bug以及解决办法

1,使用说明: usage: vcffilter [options] <vcf file> options: -f, --info-filter     specifies a filter to apply to the info fields of records, removes alleles which do not pass the filter -g, --genotype-filter specifies a filter to apply to the genotype fi

IE6绝对定位的bug及其解决办法

IE6绝对定位的bug及其解决办法.position:absolute定位在IE6下存在left和bottom的定位错误问题: Example Source Code IE6下的left定位错误–> <!–IE6下的left定位错误–> 上面这段代码在IE6中定位错误. 解决办法有两种: 1.给父层设置zoom:1触发layout. 2.给父层设置宽度(width). Example Source Code –解决方法1 zoom:1–> –解决方法2 设置width–> 下

E浏览器常见的9个css Bug以及解决办法

我们在浏览网页的时候经常看见这样的现象:某个网页在IE6浏览器中打开很正常,但是在IE8里面打开可能完全变形了.或者也有可能出现完全相反的现象.这让Web程序员及设计师往往为了其CSS在各个IE版本下表现怪异而痛苦不已,有时候需要通过专为IE6或者IE8设计单独的定义.IE浏览器则因此被公认为Web程序员的毒药,虽然在微软官网上并没有提供相关的解决方案,但是IE浏览器的兼容性存在的问题却是Web程序员必须熟练掌握的.本文总结了9个IE浏览器上最常见的Bug,以及它们的解决方案. 在IE上开发时间

坑爹的IE6 bug以及解决办法

1.强制浏览器是用Web标准解析(网上全是解析成4.01的不知道有没有5的..)HTML的写法<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”“http://www.w3.org/TR/html4/strict.dtd”>或者XHTML的写法<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-stri

JS浮点数运算Bug的解决办法【转】

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎么可能多出这么小数点出来. 我Google了一下,发现原来这是JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 网上找到了一些解决办法,就是重新写了一些浮点运算的函数或直接扩大倍数运算. 下面就把这

IE6双边距bug及其解决办法

<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <style type="text/css"> body,div{ margin:0; padding:0; } #div1{ width:200p

unity, StopAllCoroutines导致bug的解决办法

StopAllCoroutines有时候不用不行. 但只要一用,就可能导致无穷无尽的bug. 原因是StopAllCoroutines会将当前脚本中所有coroutines都停掉,而没法做到只停掉我们想停的那一部分coroutines. 解决办法是:用多个脚本. 把一组想一停全停的一组coroutines放在一个脚本里,把另一组想一停全停的一组coroutines放在另一个脚本里...

asp.net开发中遇到的奇葩bug及解决办法(会持续更新。。。)

1,不知道你们遇没遇到过,在vs2010或更高版本上运行程序的时候,完全没问题,放在IIS中出现了问题,就比如左侧是菜单项,点击菜单右边显示,如果菜单链接是这样:content.aspx,而另一个链接是这样:manager/manager_list.aspx,在IIS中就会出现Session过期的问题,content.aspx页面根本无法接收到传过来的session值,因此会报session相关的错. 解决办法:把链接路径改成一致就能解决,改成这样:manager/content.aspx.暂时