一、配置
创建 中英繁多语言切换
简体中文 zh-cn
繁体中文 zh-hk
英语 en-us
1、文件配置和放置 以 index模块为例
第一步 配置语言文件 文件地址 config/lang.php
use think\facade\Env;
return [
'lang_switch_on' => true,
// 默认语言
'default_lang' => 'en-us',
// 允许的语言列表
'allow_lang_list' => ['zh-cn', 'en-us',"zh-hk"],
// 多语言自动侦测变量名
'detect_var' => 'lang',
// 是否使用Cookie记录
'use_cookie' => true,
// 多语言cookie变量
'cookie_var' => 'think_lang',
// 多语言header变量
'header_var' => 'think-lang',
// 扩展语言包
'extend_list' => [],
// Accept-Language转义为对应语言包名称
'accept_language' => [
'zh-hans-cn' => 'en-us',
],
// 是否支持语言分组
'allow_group' => true,
];
2、在模块目录下创建语言文件
3、配置中间件 middleware.php 在模块主目录下创建以index为例 app/index/middleware.php
return [
// 多语言加载
\think\middleware\LoadLangPack::class,
];
4、配置语言应用文件地址 app/index/config/lang.php
return [
'default_lang' => 'en-us',
// 扩展语言包
'extend_list' => [
'zh-cn' => [
app()->getAppPath() . 'lang/zh-cn/api.php',
app()->getAppPath() . 'lang/zh-cn/common.php',
app()->getAppPath() . 'lang/zh-cn/index.php',
app()->getAppPath() . 'lang/zh-cn/zh-cn.php',
],
'en-us' => [
app()->getAppPath() . 'lang/en-us/api.php',
app()->getAppPath() . 'lang/en-us/common.php',
app()->getAppPath() . 'lang/en-us/index.php',
app()->getAppPath() . 'lang/en-us.php',
],
'zh-hk' => [
app()->getAppPath() . 'lang/zh-hk/api.php',
app()->getAppPath() . 'lang/zh-hk/common.php',
app()->getAppPath() . 'lang/zh-hk/index.php',
app()->getAppPath() . 'lang/zh-hk.php',
],
],
];
二、应用
1、在接口中使用则调用接口时在header头参数加入 配置文件设置的字段
'header_var' => 'think-lang',
2、在MVC模式下调用则使用cookie 识别当前使用的语言
'cookie_var' => 'think_lang',
三、调用示例
thinkphp模板调用
{:lang('hello')}