Thinkphp多语言最佳解决方案

一、配置

创建 中英繁多语言切换   

简体中文  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')}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值