Ecshop他们主动双语版切换来推断个人的计划
个人思路是基于浏览器的语言来推断自己主动,假设中国的浏览器,对使用中国模板。将英语模板。于、英国的模板差值称为不同的产品类别、文章分类,的模板可设置为相同的固定的文本language,所以你不会有打造两个网站
:
1、PHP推断浏览器语言
2、将推断写入Cookie
3、同一时候改变_CFG['lang']的值
4、_CFG['template']=_CFG['lang']。便于模板自己主动切换
5、当用户人工选择? lang=cn/en时,进行切换
1、新建两个模板 zh_cn 和 en_us
2、includes\lib_common.php -> load_config()最后增加
$lang = array(
'cn'=>'zh_cn',
'en'=>'en_us'
);
if(isset($_REQUEST['lang']) && isset($lang[$_REQUEST['lang']])){
$arr['lang'] = $lang[$_REQUEST['lang']];
setcookie('ACCEPT_LANGUAGE', $arr['lang']);
}elseif(isset($_COOKIE['ACCEPT_LANGUAGE']) && in_array($_COOKIE['ACCEPT_LANGUAGE'], array('zh_cn', 'en_us'))){
$arr['lang'] = $_COOKIE['ACCEPT_LANGUAGE'];
}else{
$accept_language = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
if(strpos($accept_language, 'zh-c')!==false){
$arr['lang'] = 'zh_cn';
}else{
$arr['lang'] = 'en_us';
}
setcookie('ACCEPT_LANGUAGE', $arr['lang']);
}
$arr['template'] = $arr['lang']; return $arr;
3、includes\cls_template.php -> fetch()
//$cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;改动为
$cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id.'_'.$GLOBALS['_CFG']['template'<span style="font-family: Arial, Helvetica, sans-serif;">];</span>
4、includes\cls_template.php -> make_compiled()
//$name = $this->compile_dir . '/' . basename($filename) .'.php';改动为
$name = $this->compile_dir . '/' . basename($filename) .$GLOBALS['_CFG']['template'].'.php';
5、includes\cls_template.php -> is_cached()
//$cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id;改动为
$cachename = basename($filename, strrchr($filename, '.')) . '_' . $cache_id.'_'.$GLOBALS['_CFG']['template'];
改动模板解析类是为了保证不同的中、英模板之间的模板变异问没有冲突
6、在模板的任何位置加上
<a href="? lang=cn">Chinese</a><a href="? lang=en">English</a>
最后改动的是languages\zh_cn\common.php和languages\en_us\common.php,用{$lang.xx}
这种方法也适用于多语言设置
版权声明:本文博主原创文章,博客,未经同意不得转载。
Ecshop他们主动双语版切换来推断个人的计划的更多相关文章
- Java、C#双语版HttpHelper类
Java.C#双语版HttpHelper类(解决网页抓取乱码问题) 在做一些需要抓取网页的项目时,经常性的遇到乱码问题.最省事的做法是去需要抓取的网站看看具体是什么编码,然后采用正确的编码进行解码 ...
- [Python+Java双语版自动化测试(接口测试+Web+App+性能+CICD)
[Python+Java双语版自动化测试(接口测试+Web+App+性能+CICD)开学典礼](https://ke.qq.com/course/453802)**测试交流群:549376944**0 ...
- 易普优高级计划排程Light版助力中小企业实现精益化计划
易普优高级计划排程Light版助力中小企业实现精益化计划 一.业务与排产需求 根据统计,目前中小企业已经占到我国工业企业总数的95%以上,对中国GDP贡献超过60%,税收超过了50%,提供了70%的进 ...
- [转帖]ARM A77+G77最强公版架构:联发科5G SoC计划11月26日发布
ARM A77+G77最强公版架构:联发科5G SoC计划11月26日发布 https://www.cnbeta.com/articles/tech/909025.htm 主流的手机SoC厂商已经纷纷 ...
- Win10 VS2015 社区版切换到VS2013社区版 进行维护之前的项目
前提:当先在Win10 OS 安装了vs2015之后开发Win UAP,之后要维护之前的WP8 版本,安装了VS2013社区版 打开后 1问.Exception from HRESULT: 0x897 ...
- windows 7 旗舰版 切换 中英文 界面
http://jingyan.baidu.com/article/f7ff0bfc4963612e26bb131e.html 如果遇到:想下载英语语言包,但是出现代码80070643,windowsu ...
- slf自己主动绑定实现类过程推断
依照绑定实现类的方式是基于约定原则:推断分下面几个步骤 1.LoggerFactory扫描实现类路径有几个实现类,即在org/slf4j/impl/下有几个StaticLoggerBinder.cla ...
- Java、C#双语版配套AES加解密示例
这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...
- 转载:Java、C#双语版配套AES加解密示例
转载,原文出处 http://www.cnblogs.com/lzrabbit/p/3639503.html 这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己 ...
随机推荐
- MySQLdb 连接Mysql 数据库出错解决
#coding=utf-8 import MySQLdb if __name__ == "__main__": db = MySQLdb.connect(host=<sp ...
- 开放源代码的微微信.NET 0.8 版公布了
微微信.NET 0.8 版公布了 A.源代码应用范围: 未认证的和经过认证的微信订阅号.微信服务号均可使用,本源代码的每个模块都提供全然的 ASP.NET C#源代码,绝对不含 ...
- WP开发使用BingMaps地图服务
原文:WP开发使用BingMaps地图服务 WP8使用BingMaps地图在 SOAP服务如何计算路径 首先需要用到3个服务 1.GeoCode服务-转换地址到地理的经纬度(WebServices地址 ...
- Spring框架简单介绍
原文地址: http://my.oschina.net/myriads/blog/37922 1.使用框架的意义与Spring的主要内容 随着软件结构的日益庞大,软件模块化趋势出现,软件开发也须要多 ...
- 用bytecode来看try-catch-finally和return
之前看过一篇关于return和finally运行顺序的文章.仅在Java的语言层面做了分析.事实上我倒认为直接看bytecode可能来的更清晰一点. 近期一直在看Java虚拟机规范.发现直接分析byt ...
- WPF如何获得变量异步回调函数时产生的异步回调
有这样的问题,WPF当使用异步回调,需要使用产生的异步变量中的回调函数.数据库中查询诸如异步函数来获得一DataTable.怎样传递给回调函数呢? [方案一]使用全局变量 非常easy想到的是用全局变 ...
- Python学习入门基础教程(learning Python)--3.3.2 Python的关系运算
如果if的condition不用布尔表达式来做条件判断而采用关系表达式,实际上关系表达式运算的结果要么是True要么是False.下面我们先了解一些有关关系运算符的基础知识,如下表所示. 做个小程序测 ...
- 怎么样MyEclipse配置Tomcat?
1.下载tomcat免安装版.tomcat路径不包含空格 http://download.csdn.net/detail/u014112584/7549191 2.windows -preferenc ...
- hive的非交互模式
在linux的终端运行:$HIVE_HOME/bin/hive 会进入交互模式: $HIVE_HOME/bin/hive -e或者-f 是非交互模式 1.非交互模式运行HQL语句 $HIVE_HOM ...
- BootStrap布局案例
BootStrap布局 bootstrap 2.3版与3.0版的使用区别 http://www.weste.net/2013/8-20/93261.html 以一个博客系统的首页,来介绍如何布局 1, ...