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}

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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JSP简单练习-获取表单数据

    JSP简单练习-获取表单数据

  • JWT单点登录 看这一篇就够了!

    JWT单点登录 看这一篇就够了!JWT单点登录前言两种登录状态有状态登录无状态登录无状态登录流程整个登录过程中,最关键的点是什么?jwt实现无状态登录数据格式JWT交互流程非对称加密代码实现核心依赖核心工具类JWT工具类RSA工具类测试前言本编在某度上看到了很多关于JWT的实现,但是由于里面讲的太过详细和繁琐,所以打算自己出一篇,有什么不足之处,还希望多多提出来,觉得好的可以点个关注,不喜勿喷,祝猿们天天开心O(∩_∩)O~两种登录状态有状态登录为了保证客户端cookie的安全性,服务端需要记录每次会话的客户端信息,从而识别客户

  • poc测试环境准备_什么是poc测试?

    poc测试环境准备_什么是poc测试?PoC(ProofofConcept),即概念验证。通常是企业进行产品选型时或开展外部实施项目前,进行的一种产品或供应商能力验证工作。验证内容1、产品的功能。产品功能由企业提供,企业可以根据自己的需求提供功能清单,也可以通过与多家供应商交流后,列出自己所需要的功能;2、产品的性能。性能指标也是由企业提供,并建议提供具体性能指标所应用的环境及硬件设备等测试环境要求;3、产品的API适用性;4、产…

    2022年10月24日
  • neokylin操作系统_kinit命令

    neokylin操作系统_kinit命令基础命令进入根目录cd/新建用户useraddname切换用户suname设置用户密码passwdname创建目录mkdirdirname目录删除(强制)rm(-rf)dirname文件创建touchfilename查看当前目录下的文件ll(-a查看隐藏文件)pwd查看当前目录或文件位置创建文件Touchaa.dataVimaaa.dataechomljs>data.log文件查看catfilename仅查看vimf

  • 嵌套查询效率_sql嵌套查询例子

    嵌套查询效率_sql嵌套查询例子嵌套查询的查询优化TableofContents1.嵌套查询的分类和优化概述2.Kim:OnOptimizinganSQL-likeNestedQuery2.1.嵌套查询的分类2.1.1.A类2.1.2.N类2.1.3.J类2.1.4.JA类2.1.5.D类2.2.嵌套查询的优化3.Kiessling,SQ

  • xampp的安装教程

    xampp的安装教程1、准备xampp安装包并新建一个空文件夹如:xampp2、启动xampp,开始安装,安装过程如下图所示:点击yes,后如下图点击next,进行下一步,将软件安装到刚刚新建的空文件夹xampp中,接下,疯狂点击next,在该界面稍等一会,正在安装安装完成后,打开安装的xampp文件夹,内容如下:3、运行xampp.exe,界面如下XAMPP安装完毕后如图,Apache和Mysql勾选,发现运行正常即可。(注意:首次启动前要将Apache和MySQL前面的ModulesS

发表回复

您的电子邮箱地址不会被公开。

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