返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >thinkphp6配置多语言详细版
  • 312
分享到

thinkphp6配置多语言详细版

phpapache服务器 2023-09-01 22:09:35 312人浏览 泡泡鱼
摘要

一、项目架构 www  项目部署目录 │  ├─app  多应用目录 │  │  ├─api  应用目录 │  │  │  ├─config  应用配置目录 │  │  │  │  ├─lang.PHP  扩展多语言配置 │  │  │  

一、项目架构

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

--结束END--

本文标题: thinkphp6配置多语言详细版

本文链接: https://lsjlt.com/news/389734.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作