400-800-9385
网站建设资讯详细

ThinkPHP6如何实现多语言网站搭建

发表日期:2022-09-05 18:38:28   作者来源:river   浏览:3924   标签:多语言网站搭建    
很多公司面向全球服务,网站多语言就成了必选项,那么如何实现网站多语言呢?

ThinkPHP作为国内非常流行的PHP网站开发框架,其实他已经内置集成了多语言的功能,只要我们按照要求配置就行了。

首先,在中间件配置文件middleware.php中启用,注意,如果是多应用模式,则需要使用的应用里加载。如下代码所示:

return [
    // 多语言加载
    \think\middleware\LoadLangPack::class,
];

其次,配置好多语言配置文件lang.php,如下代码所示

return [
    // 默认语言
    'default_lang'    => env('lang.default_lang', 'en-us'),
    // 允许的语言列表
    'allow_lang_list' => ['en-us','zh-cn','zh-hk'],
    // 多语言自动侦测变量名,可通过URL参数判断使用哪个语言
    'detect_var'      => 'lang',
    // 是否使用Cookie记录
    'use_cookie'      => true,
    // 多语言cookie变量,通过保存这个cookie记录用户选项
    'cookie_var'      => 'think_lang',
    // 多语言header变量
    'header_var'      => 'think-lang',
    // 扩展语言包,主要是分多个语言文件的时候使用
    'extend_list'     => [
        'en-us'    => [
            app()->getAppPath() . 'home\lang\en-us\common.php',
            app()->getAppPath() . 'home\lang\en-us\index.php'
        ],
        'zh-cn'    => [
            app()->getAppPath() . 'home\lang\zh-cn\common.php',
            app()->getAppPath() . 'home\lang\zh-cn\index.php'
        ],
        'zh-hk'    => [
            app()->getAppPath() . 'home\lang\zh-hk\common.php',
            app()->getAppPath() . 'home\lang\zh-hk\index.php'
        ],
    ],
    // Accept-Language转义为对应语言包名称
    'accept_language' => [
        'zh-hans-cn' => 'zh-cn',
    ],
    // 是否支持语言分组
    'allow_group'     => true
];

再次,编写多语言翻译文件。如下图所示,主要以PHP数组方式,可分组配置,每个语言版本变量一致。
 

多语言翻译文件

最后,绑定语言变量到模板,并通过URL切换语言

绑定变量如:{$Think.lang.site_menu_home}

切换语言只需要在URL后面加上参数lang,如:index.php?lang=zh-en


是不是很简单?如下所示可实现

多语言翻译1

多语言翻译2

多语言翻译3

方维网络专注于高端网站定制和小程序开发,为客户提供周到的网络服务,如有需求,欢迎咨询400-800-9385

如没特殊注明,文章均为方维网络原创,转载请注明来自https://www.szfangwei.cn/news/6532.html