2KB项目,专业的源码交易网站 帮助 收藏 每日签到

Ecshop中英双语自动切换判断的方案

  • 时间:2019-01-31 02:15 编辑:2KB 来源:2KB.COM 阅读:315
  • 扫一扫,手机访问
  • 分享
摘要: 个人思路是根据浏览器语言自动判断,如果是中文浏览器,就使用中文模板,英文的就使用英文模板。中、英模板的区别是调用了不同的产品分类、文章分类,而模板中相同的固定文字可以设定language,这样就不用去建立两个网站了
个人思路是根据浏览器语言自动判断,如果是中文浏览器,就使用中文模板,英文的就使用英文模板。中、英模板的区别是调用了不同的产品分类、文章分类,而模板中相同的固定文字可以设定language,这样就不用去建立两个网站了   整个逻辑流程如下:   1、PHP判断浏览器语言 2、将判断写入COOKIE 3、同时改变_CFG[&#39;lang&#39;]的值 4、_CFG[&#39;template&#39;]=_CFG[&#39;lang&#39;],便于模板自动切换 5、当用户人工选择?lang=cn/en时,进行切换 1、新建两个模板 zh_cn 和 en_us   2、includeslib_common.php -> load_config()最后加入   $lang = array(     &#39;cn&#39;=>&#39;zh_cn&#39;,     &#39;en&#39;=>&#39;en_us&#39;   );   if(isset($_REQUEST[&#39;lang&#39;]) && isset($lang[$_REQUEST[&#39;lang&#39;]])){     $arr[&#39;lang&#39;] = $lang[$_REQUEST[&#39;lang&#39;]];     setCOOKIE(&#39;ACCEPT_LANGUAGE&#39;, $arr[&#39;lang&#39;]);   }elseif(isset($_COOKIE[&#39;ACCEPT_LANGUAGE&#39;]) && in_array($_COOKIE[&#39;ACCEPT_LANGUAGE&#39;], array(&#39;zh_cn&#39;, &#39;en_us&#39;))){     $arr[&#39;lang&#39;] = $_COOKIE[&#39;ACCEPT_LANGUAGE&#39;];   }else{     $accept_language = strtolower($_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;]);     if(strpos($accept_language, &#39;zh-c&#39;)!==false){       $arr[&#39;lang&#39;] = &#39;zh_cn&#39;;     }else{       $arr[&#39;lang&#39;] = &#39;en_us&#39;;     }     setCOOKIE(&#39;ACCEPT_LANGUAGE&#39;, $arr[&#39;lang&#39;]);   }   $arr[&#39;template&#39;] = $arr[&#39;lang&#39;];     return $arr; 3、includescls_template.php -> fetch()   //$cachename = basename($filename, strrchr($filename, &#39;.&#39;)) . &#39;_&#39; . $cache_id;修改为 $cachename = basename($filename, strrchr($filename, &#39;.&#39;)) . &#39;_&#39; . $cache_id.&#39;_&#39;.$GLOBALS[&#39;_CFG&#39;][&#39;template&#39;<span style="font-family: Arial, Helvetica, sans-serif;">];</span> 4、includescls_template.php -> make_compiled()   //$name = $this->compile_dir . &#39;/&#39; . basename($filename) .&#39;.php&#39;;修改为 $name = $this->compile_dir . &#39;/&#39; . basename($filename) .$GLOBALS[&#39;_CFG&#39;][&#39;template&#39;].&#39;.php&#39;; 5、includescls_template.php -> is_cached()   //$cachename = basename($filename, strrchr($filename, &#39;.&#39;)) . &#39;_&#39; . $cache_id;修改为 $cachename = basename($filename, strrchr($filename, &#39;.&#39;)) . &#39;_&#39; . $cache_id.&#39;_&#39;.$GLOBALS[&#39;_CFG&#39;][&#39;template&#39;]; 修改模板解析类是为了保证不同的中、英模板之间的模板变异问没有冲突   6、在模板的任意位置加上   <a href="?lang=cn">Chinese</a><a href="?lang=en">English</a> 最后修改的是languageszh_cncommon.php和languagesen_uscommon.php,用{$lang.xx}   这个方法也适用多语言的设定


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部