溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP 6.0 多語言優化擴展包的安裝方法

發布時間:2020-12-30 13:43:07 來源:億速云 閱讀:494 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關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

使用

基礎配置

請參照 官方文檔(https://www.kancloud.cn/manual/thinkphp6_0/1037637) 進行相關配置。同時注意如下與官方文檔的不同點。

開啟和加載語言包

中間件名稱為:

'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 多語言優化擴展包的安裝方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女