Maison > cadre php > PensezPHP > Installation et utilisation du package d'extension d'optimisation multilingue ThinkPHP 6.0

Installation et utilisation du package d'extension d'optimisation multilingue ThinkPHP 6.0

藏色散人
Libérer: 2020-06-23 13:52:18
avant
4144 Les gens l'ont consulté

Ce qui suit est une introduction au package d'extension d'optimisation multilingue ThinkPHP 6.0 de la colonne du didacticiel thinkphp framework J'espère que cela sera utile aux amis dans le besoin !

Installation et utilisation du package d'extension d'optimisation multilingue ThinkPHP 6.0

think-lang

ThinkPHP 6.0 Multi-lingual Optimization Extension Pack

https://github.com/TLingC/think-lang
Copier après la connexion

Fonctionnalités

  1. prend en charge l'accès à la page de langue correspondante via un répertoire secondaire tel que mywebsite.com/zh-hans/.
  2. Prend en charge les modules linguistiques pour que chaque langue soit séparée dans des répertoires distincts, et il peut y avoir des répertoires secondaires sous les répertoires.

Installer

composer require tlingc/think-lang
Copier après la connexion

Utiliser

configuration de base

Veuillez vous référer à la documentation officielle (https://www.kancloud.cn/manual /thinkphp6_0 /1037637) Effectuer les configurations associées. Notez également les différences suivantes par rapport aux documents officiels.

Ouvrir et charger le pack de langue

Le nom du middleware est :

'tlingc\lang\middleware\LoadLangPack',
Copier après la connexion

Étant donné que plusieurs langues sont accessibles via le répertoire secondaire, la fonction 使用Cookie保存语言 est invalide.

Définition du fichier de langue

Fichier de langue de l'application chargé automatiquement :

// 单应用模式app\lang\当前语言.php
app\lang\当前语言\*.php
app\lang\当前语言\*\*.php// 多应用模式app\应用\lang\当前语言.php
app\应用\lang\当前语言\*.php
app\应用\lang\当前语言\*\*.php
Copier après la connexion

Veuillez noter que ce pack d'extension ne modifie pas le comportement d'analyse du pack de langue, ni le nom de fichier du Le fichier de langue n'affectera pas le regroupement de langues, provoquant un écrasement lorsque la même définition existe dans plusieurs fichiers.

Paramètres de routage

Pour utiliser le répertoire secondaire pour accéder à la page de langue correspondante, vous devez utiliser la définition de routage, et il est recommandé d'activer le mode 强制路由.

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');}
Copier après la connexion

réécrit la url fonction d'assistance

et l'ajoute au fichier public de l'application 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);}
Copier après la connexion

Par rapport à la fonction d'assistance officielle, les paramètres $lang et $replace sont ajoutés.

Saut normal, le nom de la langue précédente sera automatiquement inclus lors de la génération de l'URL.

url('/welcome')
Copier après la connexion

Si vous devez remplacer uniquement le nom de la langue dans l'URL (par exemple lorsqu'il est utilisé dans un sélecteur de langue), définissez le paramètre $replace sur true.

TODO

  • Intégrer la méthode de définition d'itinéraire.
  • Intégrer les paramètres url prioritaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal