zoukankan      html  css  js  c++  java
  • TP5开发多语言切换网站

    多语言网站,既是能够点击切换语言版本。实际是切换后台数据库里面的表:

    在同一数据库中,新建两张新闻表,一张以us_news_article开头,另外一张以en_news_article开头;

     这两张表中,en_存储中文数据,us_存储英文数据;

    在tp5的database.php数据库配置文件中。加上以下代码:

    <?php
    // +----------------------------------------------------------------------
    // | ThinkPHP [ WE CAN DO IT JUST THINK ]
    // +----------------------------------------------------------------------
    // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
    // +----------------------------------------------------------------------
    // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
    // +----------------------------------------------------------------------
    // | Author: liu21st <liu21st@gmail.com>
    // +----------------------------------------------------------------------
    //引入think框加的Lang类
    use thinkLang;
    //获取当前语言
    $lang=Lang::detect();
    //定义`prefix`变量来记录表前辍,并将其赋初始值
    $prefix="wz_";
    //根据当前语言类型,设置不同的表前轰
    switch ($lang){
        case "zh-cn":
            $prefix="wz_";
            break;
        case "en-us":
            $prefix="en_";
            break;
        default:
            $prefix="wz_";
            break;
    }
    return [
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'wwww',
        // 用户名
        'username'        => 'wwww',
        // 密码
        'password'        => 'wwww',
        // 端口
        'hostport'        => '3306',
        // 连接dsn
        'dsn'             => '',
        // 数据库连接参数
        'params'          => [],
        // 数据库编码默认采用utf8
        'charset'         => 'utf8',
        // 数据库表前缀
        'prefix'          => $prefix,
        // 数据库调试模式
        'debug'           => true,
        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        'deploy'          => 0,
        // 数据库读写是否分离 主从式有效
        'rw_separate'     => false,
        // 读写分离后 主服务器数量
        'master_num'      => 1,
        // 指定从服务器序号
        'slave_no'        => '',
        // 自动读取主库数据
        'read_master'     => false,
        // 是否严格检查字段是否存在
        'fields_strict'   => true,
        // 数据集返回类型
        'resultset_type'  => 'array',
        // 自动写入时间戳字段
        'auto_timestamp'  => false,
        // 时间字段取出后的默认时间格式
        'datetime_format' => 'Y-m-d H:i:s',
        // 是否需要进行SQL性能分析
        'sql_explain'     => false,
    ];
    

      在database.php中一定要引入类:

     然后在,后台模块启用这个database.php模块的代码:后台调用代码:

     <a href="javascript:;" onclick="setlang('zh-cn')" data-title="中文简体" data-icon="fa fa-gears">{:lang('zh-cn')}<span class="layui-badge-dot"></span></a>
    
    <a href="javascript:;" onclick="setlang('en-us')" data-title="英文" data-icon="fa fa-gears">{:lang('en-us')}</a>
    

      还需要一段,ajax提交代码:

               <script>
    
                    function setlang(lang) {
                    $.ajax({
                    type:'get',
                    url:"{:url('index.php/base/setlang/set')}?lang="+lang,
                    success:function(data){
                    if(data==1){
                    window.location.reload();
                    }
                    }
                    })
                    }
                    </script>
    

      在tp5app目录下新建模块base:

     然后在setlang.php添加以下代码:

    <?php
    
    namespace appasecontroller;
    
    
    use thinkController;
    use thinkLang;
    class Setlang extends Controller
    {
    //    缓存当前语言
        public function set(){
            if(request()->isAjax()){
                $lang=Lang::detect();
                cookie('think_var',$lang);
                return json(1);
            }
        }
    }
    

      

     ok,到此为止,你已经能够通过后台选择不同的表。去添加不同的数据了!

  • 相关阅读:
    给我30000出租车,还你一个不堵车的北京
    使用vim代替IDE
    (转)声明,函数与函数指针
    想恶作剧的请看过来
    bash命令提示符的更改
    (转)微软面试
    140个Google面试问题
    UTF8 GBK UTF8 GB2312 之间的区别和关系(转)
    MyBooksReadingStatic
    让SlickEdit 自动编译Keil C51工程
  • 原文地址:https://www.cnblogs.com/web928943/p/13704042.html
Copyright © 2011-2022 走看看