Thinkphp 6.0多语言

本节课我们来学习一下如何配置的多语言功能,并实现调用方法。

一.多语言

1. 如果要开启多语言切换功能,中间件定义文件 middleware.php 开启;
// 多语言加载
\think\middleware\LoadLangPack::class,

2. 配置文件在 config/lang.php 文件,默认设置的是 zh-cn 中文语言;
'zh-hans-cn' => 'zh-cn',
'detect_var'
=> 'lang',
//自动监测的变量为 lang

3. 默认应用目录会调用 app\lang 目录下的语言包,我们创建三个;
//错误信息,zh-cn.php
return [
'require_name' => '用户名不得为空!',
'email_error'
=> '邮箱地址不正确!',
];
//error message,en-us.php
return [
'require_name' => 'The user name cannot be empty!',
'email_error'
=> 'Incorrect email address!',
];
//エラーメッセージ, ja-jp.php
return [
'require_name' => 'ユーザ名は空ではいけません!',
'email_error'
=> 'メールアドレスが間違っています!',
];

4. 系统默认会指定: zh-cn 这个语言包,我们通过 ::get() 来输出错误信息;
Lang::get('require_name');
lang('require_name');
//助手函数

5. 通过 URL 方式来切换语言, ?lang=en-us 即可, cookie 自动生成;
6. 而下一次就算不带 ?lang=en-us ,默认就会执行 cookie 的语言包;
7. 也可以在配置文件中,设置允许的语言包,默认为空,具体如下:
// 允许的语言列表
'allow_lang_list' => ['zh-cn','en-us','ja-jp'],

8. 在模版中调用语言信息,可以用 {$Think.lang.xxx}
{$Think.lang.require_name}
{:lang('email_error')}

9. 可以在配置文件中开启多语言分组,运行使用二维数组来实现语言包定义;
// 是否支持语言分组
'allow_group'
=> true,
'user' => [
'welcome'
=> '欢迎光临!',
'login'
=> '登入成功!',
'logout'
=> '退出成功!',
]
Lang::get('user.login');

猜你喜欢

转载自blog.csdn.net/qq_34820433/article/details/130039704