本文目录一览:
- 1、thinkphp5.0实现网站英文切换 --- 2020-08-26
- 2、在Thinkphp 中怎么实现中英文切换啊?
- 3、thinkphp5多语言切换,大神们帮帮忙!
- 4、thinkphp实现多语言切换时,数据库数据如何也实现多语言?
thinkphp5.0实现网站英文切换 --- 2020-08-26
首先来看下它的配置:
// 是否开启多语言
'lang_switch_on' = true,
//语音列表
'lang_list' = ['zh-cn','en-us'],
// 获取当前选择语言的方法类
GetLang.php
?php
namespace app\index\controller;
use think\Cookie;
use think\Lang;
use think\Request;
class GetLang{
public function get_lang(){
lang = input('lang');
}
if( lang = Cookie::get('think_var');
}else{
lang = Lang::range( lang.EXT, lang);
return $lang;
}
}
?
// 显示效果的控制器类
Index.php
?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index(){
now_lang = now_lang=='zh-cn'){
now_lang=='en-us'){
this-assign('set_lang', this-fetch();
}
}
?
// 视图页
index.html
html
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title{:lang('TITLE')}/title
/head
body
a href="?lang={$set_lang}"{:lang('NOW_LANG')}/a
/body
/html
//语言包文件
zh-cn.php
?php
return [
'TITLE'='语言切换',
'NOW_LANG'='切换',
]
?
en-us.php
?php
return [
'TITLE'='Language switching',
'NOW_LANG'='Switch',
];
?
在Thinkphp 中怎么实现中英文切换啊?
我用一维数组写个实例,看懂了再自己去改:
//数组
$info = array(
'id' = '1',
'content' = '你好',
'en_content' = 'welcome'
);
//循环对比
foreach($info as $key = $value){
if ( ereg('['.chr(0xa1).'-'.chr(0xff).']', $value) ){ //判断是不是纯中文,是为 true
//是纯中文时,去相应的语言包中做对比,查找当前的中文 $value 对应的英文是什么,并把找到的英文替换掉当前这个中文
$info[$key] = '匹配成功后的英文';
}elseif ( ereg('[a-zA-Z]', $value) ){ //判断是不是纯英文,是为true
//是纯英文时,去相应的语言包中做对比,查找当前的英文 $value 对应的中文是什么,并把找到的中文替换掉当前这个英文
$info[$key] = '匹配成功后的中文';
}else{
// echo '既不是纯中文,也不是纯英文,可能有数字混在其中,或者是id 值';
}
}
return $info; //最后直接返回$info 即为中英文互换后的数组
thinkphp5多语言切换,大神们帮帮忙!
tp自带配置里面有设置语言,
所以你这个应该是单独为某个页面设置语言
应该是在控制器下,为当前页面做修改语言
thinkphp实现多语言切换时,数据库数据如何也实现多语言?
有两种情况,分析如下:
1、需要中英文切换内容较少
假设我们现在正在操作的是文章表,需要根据用户的语言环境输出中文或英文的文章内容。
在文章表中多添加一个字段用于存储英文的内容,发布文章的页面,同时上传中英文内容即可,然后服务端通过thinkphp的多语言标识来决定读取中文内容或者英文内容。也可以在前端模板中进行识别。
2、需要中英文切换内容较多
如果某个数据表的多个字段或者多个数据表都需要做中英文切换,显然在数据表里添加多个字段的方式就不太合适了,那将导致数据表字段太多,不方便管理,可以采用多数据表的方式,将内容完整的分为两份。就是把涉及到中英文切换的数据表多拷贝一份而已,里面的数据是英文的-thinkphp5语言切换
。管理员后台,可以同时存储中英文内容,也可以分开存储,你自己决定就好,读取时同样使用thinkphp的多语言标识判断用户的语言环境,来决定查询中文表还是英文表。
另外,如果整站都需要中英文切换,也可以做分布式数据库!
一切根据实际需求决定!