×

thinkphp5语言切换

thinkphp5语言切换(thinkphp语言包)

admin admin 发表于2023-03-27 08:41:09 浏览62 评论0

抢沙发发表评论

本文目录一览:

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的多语言标识判断用户的语言环境,来决定查询中文表还是英文表。

另外,如果整站都需要中英文切换,也可以做分布式数据库!

一切根据实际需求决定!