文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

thinkphp6配置多语言详细版

2023-09-01 22:53

关注

一、项目架构

www  项目部署目录
│  ├─app  多应用目录
│  │  ├─api  应用目录
│  │  │  ├─config  应用配置目录
│  │  │  │  ├─lang.php  扩展多语言配置
│  │  │  │  └─...
│  │  │  ├─controller  控制器目录
│  │  │  │  ├─Index.php  控制器
│  │  │  │  └─...
│  │  │  ├─lang  多语言包目录
│  │  │  │  ├─en-us  英文自定义语言包目录
│  │  │  │  │  ├─common.php  自定义语言包
│  │  │  │  │  ├─user.php  自定义语言包
│  │  │  │  │  └─...
│  │  │  │  ├─zh-cn  中文自定义语言包目录
│  │  │  │  │  ├─common.php  自定义语言包
│  │  │  │  │  ├─user.php  自定义语言包
│  │  │  │  │  └─...
│  │  │  │  ├─en-us.php  英文语言包  可选
│  │  │  │  └─zh-cn.php  中文语言包  可选
│  │  │  ├─middleware.php  中间件,加载多语言包,必须要有
│  │  │  └─...
│  │  ├─admin  应用目录
│  │  └─...
│  ├─config  全局配置目录
│  │  ├─lang.php  多语言配置
│  │  └─...
│  └─...
二、文件内容

www/app/api/config/lang.php

return [
    // 扩展语言包
    'extend_list' => [
        'zh-cn' => [
            app()->getAppPath() . 'lang\zh-cn\common.php', //注意如果是在某个应用目录底下,还需要跟上应用目录 例如    app()->getAppPath() . 'home\lang\zh-cn\common.php', 在home底下
            app()->getAppPath() . 'lang\zh-cn\index.php',
        ],
        'en-us' => [
            app()->getAppPath() . 'lang\en-us\common.php',
            app()->getAppPath() . 'lang\en-us\index.php',
        ],
    ],
];
2、www/app/api/lang/en-us.php

return [
    'welcome' => 'welcome to site',
];
3、www/app/api/lang/en-us/common.php

return array(
    'error_tips' => 'This is an error message',
    'form_cells' => array(
        'title' => 'Please enter the title of the article',
        'author' => 'Please enter the author of the article'
    ),
);
4、www/app/api/middleware.php

return [
    // 多语言加载
    \think\middleware\LoadLangPack::class,
];
5、www/app/config/lang.php

// +----------------------------------------------------------------------
// | 多语言设置
// +----------------------------------------------------------------------
 
return [
    // 默认语言
    'default_lang' => env('lang.default_lang', 'zh-cn'),
    // 允许的语言列表
    'allow_lang_list' => ['zh-cn', 'en-us'],
    // 多语言自动侦测变量名
    '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' => 'zh-cn',
    ],
    // 是否支持语言分组
    'allow_group' => true,
];

三、切换语言

//
// 自行补充Base基类
//
namespace app\api\controller;
 
use app\api\controller\Base;
use think\App;
 
class Index extends Base
{
    protected $app;
   
    public function __construct(App $app)
    {
        parent::__construct($app);
    }
   
    public function language()
    {
        $lang = input('get.lang');
        if (!in_array($lang, config('lang.allow_lang_list'))) {
            $lang = 'zh-cn';
        }
        cookie(config('lang.cookie_var'), $lang);
        return redirect(url('index/index'));
    }
   
    public function index()
    {
        echo lang('form_cells.title');  //会访问/ home\lang\en_us\common.php 底下的配置

        echo lang(''welcome)  //会访问home en_us.php 的配置。
    }

访问如同 /home/index/index?lang=en_us

来源地址:https://blog.csdn.net/f897907070/article/details/129384881

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯