thinkphp6进行多语言切换【这里只做中英文切换的介绍】

一、当然先看看文档配置【这是必须的】官方文档出出来也是有他的道理的

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】原创,转载请注明来源。请尊重原创和营造和谐的网络环境,谢谢!

分享到: