Das Folgende ist eine Einführung in das ThinkPHP 6.0-Erweiterungspaket für die mehrsprachige Optimierung aus der Tutorial-Kolumne thinkphp-Framework . Ich hoffe, es wird Freunden in Not hilfreich sein!
ThinkPHP 6.0 Multi-Language Optimization Extension Pack
https://github.com/TLingC/think-lang
mywebsite.com/zh-hans/
. composer require tlingc/think-lang
Bitte beachten Sie die offizielle Dokumentation (https://www.kancloud.cn/manual /thinkphp6_0 /1037637) Führen Sie entsprechende Konfigurationen durch. Beachten Sie außerdem die folgenden Unterschiede zu offiziellen Dokumenten.
Der Name der Middleware lautet:
'tlingc\lang\middleware\LoadLangPack',
Da auf mehrere Sprachen über das Sekundärverzeichnis zugegriffen wird, ist die Funktion 使用Cookie保存语言
ungültig.
Automatisch geladene Anwendungssprachendatei:
// 单应用模式app\lang\当前语言.php app\lang\当前语言\*.php app\lang\当前语言\*\*.php// 多应用模式app\应用\lang\当前语言.php app\应用\lang\当前语言\*.php app\应用\lang\当前语言\*\*.php
Bitte beachten Sie, dass dieses Erweiterungspaket das Analyseverhalten des Sprachpakets und den Dateinamen des nicht ändert Die Sprachdatei wirkt sich nicht auf die Sprachgruppierung aus und führt zum Überschreiben, wenn dieselbe Definition in mehreren Dateien vorhanden ist.
Um über das sekundäre Verzeichnis auf die entsprechende Sprachseite zuzugreifen, müssen Sie die Routendefinition verwenden. Es wird empfohlen, den 强制路由
-Modus zu aktivieren.
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
Hilfsfunktion neu und fügt sie der öffentlichen Anwendungsdatei common.php
hinzu.
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);}
Im Vergleich zur offiziellen Hilfsfunktion werden die Parameter $lang
und $replace
hinzugefügt.
Normaler Sprung, der vorangehende Sprachname wird beim Generieren der URL automatisch einbezogen.
url('/welcome')
Wenn Sie nur den Sprachnamen in der URL ersetzen müssen (z. B. bei Verwendung in einer Sprachauswahl), setzen Sie den Parameter $replace
auf true
.
url
Parameter integrieren. Das obige ist der detaillierte Inhalt vonInstallation und Verwendung des Erweiterungspakets zur mehrsprachigen Optimierung ThinkPHP 6.0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!