• 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}


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

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

  • 相关阅读:
    另一种保证单次插入回文自动机复杂度的做法
    loj #6070. 「2017 山东一轮集训 Day4」基因
    求第一类斯特林数的一行
    NOIP2018游记
    HDU3377 Plan
    【BZOJ】1830: [AHOI2008]Y型项链
    【BZOJ】1832: [AHOI2008]聚会
    【BZOJ】1831: [AHOI2008]逆序对
    【BZOJ】1085: [SCOI2005]骑士精神
    【BZOJ】1798: [Ahoi2009]Seq 维护序列seq
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4826137.html
Copyright © 2020-2023  润新知