多语言网站,既是能够点击切换语言版本。实际是切换后台数据库里面的表:
在同一数据库中,新建两张新闻表,一张以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,到此为止,你已经能够通过后台选择不同的表。去添加不同的数据了!