zoukankan      html  css  js  c++  java
  • Ecshop他们主动双语版切换来推断个人的计划

    个人思路是基于浏览器的语言来推断自己主动,假设中国的浏览器,对使用中国模板。将英语模板。于、英国的模板差值称为不同的产品类别、文章分类,的模板可设置为相同的固定的文本language,所以你不会有打造两个网站


    1、PHP推断浏览器语言
    2、将推断写入Cookie
    3、同一时候改变_CFG['lang']的值
    4、_CFG['template']=_CFG['lang']。便于模板自己主动切换
    5、当用户人工选择?

    lang=cn/en时,进行切换


    1、新建两个模板 zh_cn 和 en_us


    2、includeslib_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、includescls_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、includescls_template.php -> make_compiled()

    //$name = $this->compile_dir . '/' . basename($filename) .'.php';改动为
    $name = $this->compile_dir . '/' . basename($filename) .$GLOBALS['_CFG']['template'].'.php';

    5、includescls_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>


    最后改动的是languageszh_cncommon.php和languagesen_uscommon.php,用{$lang.xx}


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

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

  • 相关阅读:
    咖啡豆(JavaBean)•香
    SOC FPGA篇之 如何使用VNC 扩展桌面
    C指针地址运算
    nasm 指令学习
    CPL DPL RPL 及特权间的跳转
    ubuntu终端命令
    自动动手写操作系统 中 _disp_int 堆栈保护错误
    makefile 详解1
    [ 转载] Linux/Unix环境下的make和makefile详解2
    汇编指令: LGDT、LIDT、LLDT、LMSW、LOADALL、LOADALL286、LOCK、LODSB、LODSW、LODSD
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4826137.html
Copyright © 2011-2022 走看看