thinkphp6/tp6多语言配置的注意事项-踩坑

正文开始

中间件的文件一定是在app目录底下,而不是config里的。 注意官方的描述:

开启和加载语言包
默认系统会加载默认语言包,但如果需要多语言自动侦测及自动切换,
你需要在全局的中间件定义文件中添加中间件定义: 'think\middleware\LoadLangPack',

并没有详细说明具体的文件路径和代码实现。

找了半天Google,还是某博主写的清晰: https://www.icode9.com/content-1-674847.html

3.添加中间件定义(某应用下的middleware.php调用)
某应用app_name/middleware.php

<?php
// 这是系统自动生成的middleware定义文件
return [
    'think\middleware\LoadLangPack'
];

配置完 改app/lang.php的几个简单配置即可。 不需要配置的参数:accept_language 需要配置的参数: allow_lang_list [语言文件名的数组], detect_var[uri的get参数名] 地址启用:xxx.com?lang=en-us

手动更新语言:

app/controler/index.php
public function lang()
    {
        $lang = input('get.lang', '', 'trim');
        if(!in_array($lang, ['es', 'eng'])) {
            return 'Invalid parameter lan';
        }
        Lang::setLangSet($lang);
        print_r(Lang::getLangSet());
    }

正文结束

PHP接口(interface)和抽象类(abstract) thinkphp PHPEXCEL 扩展包下载和导入excel示例