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

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

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

个人思路是基于浏览器的语言来推断自己主动,假设中国的浏览器,对使用中国模板。将英语模板。于、英国的模板差值称为不同的产品类别、文章分类,的模板可设置为相同的固定的文本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}

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116965.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月12日 下午7:00
下一篇 2022年1月12日 下午8:00


相关推荐

  • Nano-Banana软萌拆拆屋部署教程:/root/ai-models路径配置详解

    Nano-Banana软萌拆拆屋部署教程:/root/ai-models路径配置详解

    2026年3月13日
    1
  • 电力系统分析matlab仿真_电力系统稳定性分析

    电力系统分析matlab仿真_电力系统稳定性分析基于Wirtinger不等式的时滞电力系统稳定性判定方法【专利摘要】本发明公开了一种基于Wirtinger不等式的时滞电力系统稳定性判定方法,用于分析电力系统所能承受的最大时滞稳定裕度。该方法的具体步骤如下:首先,建立考虑时滞影响的电力系统模型。然后,针对所建模型构建Lyapunov泛函,在泛函的求导过程中通过采用Wirtinger不等式进行放缩,以减少判据的保守性。最后将所得判据用一组线性矩阵不…

    2022年10月1日
    7
  • 关于部分动态爬虫「建议收藏」

    关于部分动态爬虫「建议收藏」前言爬虫的动态处理方法(我用较为简单的一些网址举例比如豆瓣的热门电影)一、动态爬虫动态爬虫与静态爬虫的最大区别就是源代码与网页内容不同,动态爬虫可以通过抓包(就是直接利用浏览器的F12进行network抓包,获取相关对应的文件)二、使用步骤1.先通过网址找到需要的东西截图如下(示例):按F12进入开发者模式,第二步点击左上角刷新重新加载一下内容,第三步在红框里选取需要的内容,可以通过“预览”来查看是否对应查找正确之后然后在“标头”里找到“请求URL”以及“User-Agent”,把这些找到

    2022年7月26日
    13
  • GTA5快速进入线上模式

    GTA5快速进入线上模式话不多说,上资源:链接:https://pan.baidu.com/s/1oWE6L0J1s33R_2zfcxiG_A提取码:b9tf解压后,先启动GTA5,进入游戏菜单界面然后打开Xenos(32位)或者Xenos64(64位)将文件夹下的GTAO_Booster.dll拖动进列表框内Process选择GTAV.exe(每次启动游戏进程ID会有所不同)最后点击Add将加速模块注入近gtaji…

    2022年6月14日
    110
  • Python数字型整理(整型、布尔型、浮点型、复数、操作符、内建函数与工厂函数、控制数字精度)

    Python数字型整理(整型、布尔型、浮点型、复数、操作符、内建函数与工厂函数、控制数字精度)数字提供了标量贮存和直接访问 它是不可更改类型 也就是说变更数字的值会生成新的对象 这个过程对程序员和用户是透明的 Python 支持多种数字类型 整型 布尔型 双精度浮点型和复数 整型 Python 里面的整型默认就能表示很大的整型 可以是十进制 八进制 十六进制 八进制以 0o 开头 第一个字符是数字 0 第二个字符是字母 o 或 O 十六进制以 0x 开头 第一个字符是数字 0 第二个字符是字母 x 或 X 十进制在 Python3 x 版本中不支持后面加 l 或 L print print 0

    2025年9月25日
    4
  • webstorm2021 激活码 online【2021免费激活】

    (webstorm2021 激活码 online)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1…

    2022年3月27日
    80

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号