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

藏色散人
藏色散人avant
2020-06-23 13:50:364162parcourir

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

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

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',

É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

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

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

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer