一、当然先看看文档配置【这是必须的】官方文档出出来也是有他的道理的
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】原创,转载请注明来源。请尊重原创和营造和谐的网络环境,谢谢!