Heim >PHP-Framework >Denken Sie an PHP >Installation und Verwendung des Erweiterungspakets zur mehrsprachigen Optimierung ThinkPHP 6.0

Installation und Verwendung des Erweiterungspakets zur mehrsprachigen Optimierung ThinkPHP 6.0

藏色散人
藏色散人nach vorne
2020-06-23 13:50:364163Durchsuche

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!

Installation und Verwendung des Erweiterungspakets zur mehrsprachigen Optimierung ThinkPHP 6.0

think-lang

ThinkPHP 6.0 Multi-Language Optimization Extension Pack

https://github.com/TLingC/think-lang

Funktionen

  1. unterstützt den Zugriff auf die entsprechende Sprachseite über ein sekundäres Verzeichnis wie mywebsite.com/zh-hans/.
  2. Unterstützt die Aufteilung der Sprachpakete für jede Sprache in separate Verzeichnisse, und es können sekundäre Verzeichnisse unter den Verzeichnissen vorhanden sein.

Installieren

composer require tlingc/think-lang

Verwenden

Grundkonfiguration

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.

Sprachpaket öffnen und laden

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.

Sprachdateidefinition

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.

Routing-Einstellungen

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');}

schreibt die 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.

TODO

  • Routendefinitionsmethode integrieren.
  • Überschreibende 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen