Thinkphp多语言最佳解决方案
短信预约 -IT技能 免费直播动态提醒
一、配置
创建 中英繁多语言切换
简体中文 zh-cn
繁体中文 zh-hk
英语 en-us
文件配置和放置 以 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、在模块目录下创建语言文件
配置中间件 middleware.php 在模块主目录下创建以index为例 app/index/middleware.php
return [ // 多语言加载 \think\middleware\LoadLangPack::class,];
配置语言应用文件地址 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', ], ],];
二、应用
在接口中使用则调用接口时在header头参数加入 配置文件设置的字段
'header_var' => 'think-lang',
在MVC模式下调用则使用cookie 识别当前使用的语言
'cookie_var' => 'think_lang',
三、调用示例
thinkphp模板调用
{:lang('hello')}
来源地址:https://blog.csdn.net/weixin_38049705/article/details/127459789
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341