一、当然先看看文档配置【这是必须的】官方文档出出来也是有他的道理的
1.开启和加载语言包
\think\middleware\LoadLangPack,
文档说的开启其实就是让你去全局中间件middleware.php里把注释掉的多语言加载给打开
2.然后到你的应用目录里找到lang.php文件,添加下如图所示的东东,当然如果你想修改其它也行。
3.到extend文件配置一个类:
类代码为:
namespace langs;
class GetLang{
function get_lang(){
$lang=null;
if(input('?lang')){
$lang=input('lang');
}
if($lang==null){
if(\think\facade\Cookie::has('think_lang')){
$lang = \think\facade\Cookie::get('think_lang');
}else{
$lang = 'zh-cn';
}
}
$lang =lang($lang); //设定当前语言
\think\facade\Lang::load("app\你的应用\lang\\".$lang.'.php',$lang);//加载当前语言包
\think\facade\Cookie::set('think_lang',$lang);
return $lang;
}
}
4.然后到你想调用的类方法里建一个方法:
function set_lang()
{
$lang = new GetLang();
$now_lang = $lang->get_lang();//获取当前语言
if ($now_lang == 'zh-cn') {
$now_lang = 'en-us';
} elseif ($now_lang == 'en-us') {
$now_lang = 'zh-cn';
}
View::assign('set_lang', $now_lang);
}
然后个种调用这个方法就行了,这里我想大家应该会了吧。
5.在视图模板里这么调用就行了
{:lang('TITLE')}<a href="?lang={$set_lang}">{:lang('NOW_LANG')}</a>
代码随便怎么放,主要看你配置
6.还有设置两个文件,在应用目录里新建个lang文件夹,里面包含zh-cn.php和en-us.php两个文件。
zh-cn.php:
<?php
/**
* Created by PhpStorm.
* User: 764417604
* Date: 2020/3/26
* Time: 16:28
*/
return [
'TITLE'=>'语言切换',
'NOW_LANG'=>'切换',
];
en-us.php:
<?php
/**
* Created by PhpStorm.
* User: 764417604
* Date: 2020/3/26
* Time: 16:28
*/
return [
'TITLE'=>'Language switching',
'NOW_LANG'=>' Switch',
];
7.最终呈现的结果:
a图汉字:
b.图英文:
点击“切换”或“Switch”就会自动切换中英了。
本文由37°5【https://www.alvinxiao.com】原创,转载请注明来源。请尊重原创和营造和谐的网络环境,谢谢!