站长图库

ThinkPHP 6.0 多语言优化扩展包的安装与使用

 发布时间 2020-06-23 14:36:11 热度 107

 Tag标签:  ThinkPHP多语言扩展包

下面由thinkphp框架教程栏目给大家介绍ThinkPHP 6.0 多语言优化扩展包,希望对需要的朋友有所帮助!


ThinkPHP 6.0 多语言优化扩展包的安装与使用


think-lang

ThinkPHP 6.0 多语言优化扩展包

https://github.com/TLingC/think-lang
特色
  1. 支持通过如 mywebsite.com/zh-hans/ 的二级目录访问对应语言页面。

  2. 支持每种语言的语言包单独成目录,目录下可设有二级目录。

安装

composer require tlingc/think-lang

使用

基础配置

请参照 官方文档 进行相关配置。同时注意如下与官方文档的不同点。

开启和加载语言包

中间件名称为:

'tlingc\lang\middleware\LoadLangPack',

由于多语言通过二级目录访问,使用Cookie保存语言 功能无效。

语言文件定义

自动加载的应用语言文件:

// 单应用模式app\lang\当前语言.php
app\lang\当前语言\*.php
app\lang\当前语言\*\*.php// 多应用模式app\应用\lang\当前语言.php
app\应用\lang\当前语言\*.php
app\应用\lang\当前语言\*\*.php

请注意此扩展包没有对语言包解析行为进行修改,语言文件的文件名不会影响语言分组,在多个文件中存在相同定义时会导致被覆盖。

路由设置

使用二级目录访问对应语言页面,必须使用路由定义,同时建议开启 强制路由 模式。

use think\facade\Config;Route::view('/', 'index/index');
$langs = Config::get('lang.allow_lang_list');
foreach($langs as $lang){
    Route::rule($lang . '/', 'index/index');
    Route::rule($lang . '/welcome', 'index/welcome');
}

重写 url 助手函数

在应用公共文件 common.php 中加入。

use think\facade\Request;use think\facade\Lang;use think\facade\Route;use think\route\Url as UrlBuild;function url(string $url = '', array $vars = [], $suffix = true, $domain = false, $lang = true, $replace = false): UrlBuild{
    if (!$lang) {
        if($replace) {
            $explode = explode('/', Request::url(), 3);
            $url = $url . $explode[2];
        }
        return Route::buildUrl($url, $vars)->suffix($suffix)->domain($domain);
    }
    $lang = Lang::getLangSet();
    return Route::buildUrl('/' . $lang . $url, $vars)->suffix($suffix)->domain($domain);
}

对比官方提供的助手函数,增加了 $lang 及 $replace 参数。

普通跳转,生成url时会自动带上前方的语言名称。

url('/welcome')

如需仅替换url中的语言名称(如在语言选择器中使用),把 $replace 参数置为 true 即可。

TODO

整合路由定义方法。

整合重写url参数。


以上就是ThinkPHP 6.0 多语言优化扩展包的安装与使用的详细内容


评论(0)条

    站长图库

    站长素材 - 建站资源分享平台

    猜你喜欢
    分享一款Admin后台管理系统网站模板源码

    分享一款Admin后台管理系统网站模板源码

    其他系统 920 2019-05-08

    模板介绍:Admin后台管理系统网站模板是一款网站系统后台管理模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开...

    卡通风格儿童玩具公司响应式模板

    卡通风格儿童玩具公司响应式模板

    HTML模版 187 2020-03-23

    卡通风格儿童玩具公司响应式模板基于Bootstrap3.3.7制作,兼容PC端和移动端,全套模板,包括首页、注册、登录、...

    可爱卡通的背景设计矢量素材下载

    可爱卡通的背景设计矢量素材下载

    背景素材 107 2020-02-21

    可爱卡通的背景设计矢量素材,适用于儿童、幼儿园卡通风格设计背景使用。

    2019最新修复版飞猫云影视系统 5.2.3源码 附带支付和代理功能

    2019最新修复版飞猫云影视系统 5.2.3源码 附带支付和代理功能

    其他源码 658 2019-05-06

    2019最新修复版飞猫云影视系统5.2.3源码 附带支付和代理功能功能:1、优化资源采集网播放bug,增加米酷黑金模板2...