首頁 > php框架 > ThinkPHP > 主體

ThinkPHP 6.0 多語言最佳化擴充套件的安裝與使用

藏色散人
發布: 2020-06-23 13:52:18
轉載
4111 人瀏覽過

下面由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
登入後複製

使用

基礎設定

請參考官方文件(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 多語言最佳化擴充套件的安裝與使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板