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 !
ThinkPHP 6.0 Multi-lingual Optimization Extension Pack
https://github.com/TLingC/think-lang
mywebsite.com/zh-hans/
. composer require tlingc/think-lang
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.
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.
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.
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');}
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
.
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!