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}

这种方法也适用于多语言设置

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-04 21:11:05

Ecshop他们主动双语版切换来推断个人的计划的相关文章

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

个人思路是根据浏览器语言自动判断,如果是中文浏览器,就使用中文模板,英文的就使用英文模板.中.英模板的区别是调用了不同的产品分类.文章分类,而模板中相同的固定文字可以设定language,这样就不用去建立两个网站了 整个逻辑流程如下: 1.PHP判断浏览器语言 2.将判断写入Cookie 3.同时改变_CFG['lang']的值 4._CFG['template']=_CFG['lang'],便于模板自动切换 5.当用户人工选择?lang=cn/en时,进行切换 1.新建两个模板 zh_cn 和

DeepFaceLab中英双语版,熟肉来了!

我一向都很喜欢看好莱坞大片,但是由于听力水平有限,所以必须等“熟肉”,最喜欢的字幕当然是中英双语版咯.同理,不少人想要使用换脸软件,但是苦于英语不好,迟迟没有上手.好吧,那我就出个双语版吧! ? 根目录下的脚本文件全部翻译成中文了,同时在保留了英文版,方便对照. ? 除了脚本之外命令行也做了汉化,重点翻译了训练参数和合成参数,保留原内容的基础上加入了中文内容.有些参数因为本身专业性比较强,即便翻译了不太好理解,所以基于使用经验,描述上做了一些小的修改.因为时间,精力,能力有限,未必完美,但是总比

你的网站适合做双语版的吗?

在网站建设中我们发现,有些客户喜欢把网站做成中文版与英文版的,但是英文版的却没有机会用上过.或许双语版看起来比较洋气,但是其实并非什么网站都适合.何苦花钱做无用功呢?那么什么样的网站适宜做成双语版的呢? 首先需要做双语版的应该是外贸易类网站,外贸网站采用双语版,利于多方面沟通,相信大家都能想到这一点. 其次需要做双语网站的应该是大型的知名度高的企业,这样的企业有望拓展海外业务,并且双语版网站也符合他们的形象. 一件漂亮的衣服,要有其他很多东西来陪衬才高贵好看,不然只能看起来不伦不类,双语网站也是

[转帖]ARM A77+G77最强公版架构:联发科5G SoC计划11月26日发布

ARM A77+G77最强公版架构:联发科5G SoC计划11月26日发布 https://www.cnbeta.com/articles/tech/909025.htm 主流的手机SoC厂商已经纷纷宣布或者发布了旗下集成5G基带的芯片,包括高通的骁龙7系.华为麒麟990 5G.三星Exynos 980.联发科5G SoC等.据外媒报道,联发科定于11月26日举办MTK技术峰会,正式推出旗下首款5G SoC芯片,型号MT6885Z. MT6885基于台积电7nm工艺,CPU和GPU均用上了最新最

删除ecshop手机网页WAP版的方法分享

删除ecshop自带的WAP版.用手机打开ECSHOP,就会跳转到mobile文件夹,如果打开wap功能,就能看到wap版得网站,且有BUG,难看.但目前智能手机.PAD.IPhone.Android可以跟电脑一样浏览和购物.实在不行,就下载个uc浏览器.所以这个wap功能实在无用武之地,可以彻底删除,且提高安全性.1.删除/wap和/mobile目录和目录下的所有文件2.删除根目录index.php中的 3.删除相关数据库(在SQL执行以下代码)DELETE FROM ecs_shop_con

ecshop怎么以幻灯版调用首页主广告显示

今天在做一个商品网站我使用的是一套现成的ecshop模板了,这套模板下载下来多半是可以使用的,但是我发现第一屏的首页广告一直是不显示我想了很多办法都不显示了,后来一站长告诉我如何解决,下面我就来介绍ecshop调用flash广告的实现方法. 我的默认的是index_ad.lbi模板有一个$flash变量了,但在搜索搜索没发现 <!--{foreach from=$flash name=no item=flash}--> <li class="li{$smarty.foreach

Java、C#双语版配套AES加解密示例

这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解密使用base64转码方法,ECB模式,PKCS5Padding填充,密码必须是16位,否则会报错哈 模式:Java的ECB对应C#的System.Security.Cryptography.CipherMode.ECB 填充方法:Java的PKCS5Padding对应C#System.Security

Win10 VS2015 社区版切换到VS2013社区版 进行维护之前的项目

前提:当先在Win10 OS 安装了vs2015之后开发Win UAP,之后要维护之前的WP8 版本,安装了VS2013社区版 打开后 1问.Exception from HRESULT: 0x89721800 when deploying Windows Phone in Visual Studio 2012 1答:https://social.msdn.microsoft.com/Forums/windowsapps/en-US/796ea925-c1bf-4fb3-bc67-4967823

linux 最小功能版 切换yum源

虚拟机网络配置为桥接 ip addr 查看网卡信息 vi /etc/sysconfig /network-scripts/ifcfg-网卡名 编辑ONBOOT=yes,激活网卡 重启网络服务 service network restart 安装net-tools,以便使用ifconfig命令 yum install net-tools 替换默认源使用说明 http://mirrors.163.com/.help/centos.html 查看当前版本命令 cat /etc/redhat-relea