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
    评论
ThinkPHP 6.1中多应用多模块路由最佳实践案例: 1. 创建应用和模块 首先,我们需要创建两个应用和两个模块。在ThinkPHP 6.1中,应用和模块的创建非常简单,只需使用命令行工具即可完成。 ``` php think build --app app1 php think build --app app2 ``` 以上命令将创建两个名为“app1”和“app2”的应用。我们还需要在每个应用中创建一个模块: ``` php think build --module index --app app1 php think build --module admin --app app2 ``` 以上命令将在应用“app1”中创建一个名为“index”的模块,在应用“app2”中创建一个名为“admin”的模块。 2. 配置路由 接下来,我们需要在应用的配置文件中配置路由。在ThinkPHP 6.1中,路由配置文件位于“config”目录下的“route”文件夹中。 我们可以在应用的路由配置文件中定义路由规则,例如: ``` use think\facade\Route; Route::group('index', function () { Route::get('/', 'index/index'); Route::get('hello/:name', 'index/hello'); }); Route::group('admin', function () { Route::get('/', 'index/index'); Route::get('login', 'index/login'); }); ``` 以上代码定义了两个路由分组,“index”和“admin”。在“index”路由分组中,我们定义了两个路由规则,一个是“/”路由,指向“index/index”控制器和方法,另一个是“/hello/:name”路由,指向“index/hello”控制器和方法。在“admin”路由分组中,我们定义了两个路由规则,一个是“/”路由,指向“index/index”控制器和方法,另一个是“/login”路由,指向“index/login”控制器和方法。 3. 访问路由 现在我们可以访问我们定义的路由规则了。例如,我们可以通过以下URL访问“index/index”控制器和方法: ``` http://localhost/index/ ``` 我们也可以通过以下URL访问“index/hello”控制器和方法: ``` http://localhost/index/hello/thinkphp ``` 同样,我们可以通过以下URL访问“admin/index”控制器和方法: ``` http://localhost/admin/ ``` 我们也可以通过以下URL访问“admin/login”控制器和方法: ``` http://localhost/admin/login ``` 总结 通过以上步骤,我们成功地创建了两个应用和两个模块,并在应用的路由配置文件中定义了路由规则。这是ThinkPHP 6.1中多应用多模块路由最佳实践案例的基本步骤。在实际应用中,我们可以根据需要进行更多的配置和定制化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值