第一,配置文件中开启多语言
// 是否开启多语言
'lang_switch_on' => true,
// 默认语言
'default_lang' => 'zh-cn',
复制代码
如果有必要可以使用的Lang下的静态方法setAllowList(['zh-cn','en-us']))设置多语言列表
第二,编写多语言文件
参考官方文档
框架语言包: thinkphp\lang\当前语言.php
应用语言包: application\lang\当前语言.php
模块语言包: application\模块\lang\当前语言.php
复制代码
举例模块语言包,你有一个index模块,那么你的语言包就放在index模块下的lang文件夹,语言文件命名为,zh-cn.php ,en-us.php
其中zh-cn.php内容为
<?php
return [
// 注册页面
'reg_title' => '注册',
'reg_small_title'=>'创建一个账户',
'reg_email'=>'请输入你的邮箱',
'reg_code'=>'请输入验证码',
'reg_pwd'=>'请输入密码',
'reg_submit'=>'创建账户',
'reg_get_code'=>'获取验证码',
'reg_opt_too_fast'=>'操作太频繁,请稍后再试',
'reg_success'=>'注册成功',
'reg_fail'=>'请求失败,请重试',
'reg_email_exist'=>'邮箱已被使用',
'reg_fail_email'=>'邮件发送失败',
'reg_fail_code'=>'验证码错误',
'reg_code_send'=>'发送成功,请留意您的邮箱',
'reg_msg_code'=>'验证码是:',
'reg_msg_wel'=>'欢迎注册u18会员,',
'reg_code_time'=>'验证码半个小时后将失效',
'reg_msg_title'=>'【u18】注册验证码'
];
复制代码
en-us.php内容为
<?php
return [
// page register
'reg_title' => 'Register',
'reg_small_title'=>'Create your account',
'reg_email'=>'Please input your email address',
'reg_code'=>'Please input your verify code',
'reg_pwd'=>'Please input your password',
'reg_submit'=>'Create your account',
'reg_get_code'=>'Get verfiy code',
'reg_opt_too_fast'=>'Operation too fast ,Please try again later',
'reg_success'=>'Register success!',
'reg_fail'=>'Require unsuccess! Please try again',
'reg_fail_email'=>'Email send fail',
'reg_email_exist'=>'Email is exist',
'reg_fail_code'=>'verify code err',
'reg_code_send'=>'We have sent you an email.',
'reg_msg_code'=>'Verfiy code:',
'reg_msg_wel'=>'Welcome to register on u18,',
'reg_code_time'=>'Verfiy will be destory after thirty minutes',
'reg_msg_title'=>'[u18]Register verify code'
];
复制代码
写好语言文件后就可以用了
在模板文件中可以使用如下方式使用
{:lang('reg_title')}// 会输出语言文件中对应的值
复制代码
在控制器中可以使用
Lang::get('reg_title');
//或者
lang('reg_title');
复制代码
另外关于切换语言,默认情况下,会自动切换语言
如果想手动切换,有一下几种方式不等,
1,?lang=zh-cn,可以切换
2,使用cookie('think_var','zh-cn') 切换
这就是多语言的内容了