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


相关推荐

  • appium使用教程python_Appium使用教程

    appium使用教程python_Appium使用教程一 Appium 介绍 Appium 是一个开源的自动化测试工具 其支持 iOS 和安卓平台上的原生的 基于移动浏览器的 混合的应用 1 Appium 理念 Appium 是基于以下的四个理念设计来满足移动平台测试自动化的要求的 1 您不应该因为需要自动化测试您的应用而不得不以任何形式去重新编译或者修改你的 app2 您不应该把自己固定在一门特定的语言和一个特定的框架上去实现和运行你的测试 3 当说到测试自动化 AP

    2026年3月17日
    2
  • 上下文无关文法、上下文有关文法

    上下文无关文法、上下文有关文法一直被这两个绕着 现在终于理解点了 从 0 型文法到 3 型文法 规则越来越严格了 nbsp 0 型文法 可由图灵机识别 关于图灵机 百度百科描述很详细了 nbsp 1 型文法 上下文有关文法 任何产生规则的左手端和右手端都可以被终结符和非终结符的上下文所围绕 乔姆斯基描述自然语言的一种方式介入的 在自然语言中一个单词是否可以出现在特定的位置要依赖于上下文 nbsp

    2026年3月19日
    2
  • 史上最全的正则表达式-匹配中英文、字母和数字

    史上最全的正则表达式-匹配中英文、字母和数字在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。1、匹配中文:[\u4e00-\u9fa5]2、英文字母:[a-zA-Z]3、数字:[0-9]4、匹配中文,英文字母和数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_…

    2026年3月9日
    7
  • 实例3、研究 ICMP 数据包

    实例3、研究 ICMP 数据包拓扑图如下 文件 pka rar 大小 34KB 下载 下载学习目标了解 ICMP 数据包的格式使用 PacketTracer 捕获并研究 ICMP 报文简介 Wireshark 可以捕获和显示通过网络接口进出其所在 PC 的所有网络通信 PacketTrace

    2026年3月16日
    2
  • CSDN积分获取(csdn怎么查看积分)

    下载积分攻略:个人设置里进行手机绑定CSDN账户奖励50分(右上角设置-账户安全-手机绑定)完成任务送若干分积分http://task.csdn.net/上传有效资源获取积分(上传非法,广告资源用户,将被扣除一定积分,严重者封号)。·上传自己设分资源被下载,下载量×资源分,100分封顶。·上传0分资源被下载,下载量×系统奖励1分,100封顶评论资源获取积分(所下载资源只可以…

    2022年4月12日
    75
  • php源码审计_代码审计入门cms

    php源码审计_代码审计入门cms目录一:代码审计的定义二:为什么选择PHP学习代码审计三:入门准备四:PHP常见的套路4.1 代码结构4.2 目录结构4.3参考项目五:如何调试代码六:代码审计的本质一:代码审计的定义通过阅读一些程序的源码去发现潜在的漏洞,比如代码不规范,算法性能不够,代码重用性不强以及其他的缺陷等等从安全人员的角度来看是:查找代码中是否存在安全问题,推断用户在操…

    2022年10月1日
    7

发表回复

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

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