ThinkPHP 6.0 多言語最適化拡張パッケージのインストールと使用

藏色散人
リリース: 2020-06-23 13:52:18
転載
4110 人が閲覧しました

以下は、ThinkPHP 6.0 多言語最適化拡張パッケージを紹介する thinkphp フレームワーク チュートリアル コラムです。困っている友人のお役に立てば幸いです。

ThinkPHP 6.0 多言語最適化拡張パッケージのインストールと使用

think-lang

ThinkPHP 6.0 多言語最適化拡張パック

https://github.com/TLingC/think-lang
ログイン後にコピー

機能

    mywebsite.com/zh-hans/
  1. などのセカンダリ ディレクトリを介した対応する言語ページへのアクセスをサポートします。 各言語でサポートされている言語パックは個別のディレクトリに分かれており、そのディレクトリの下に 2 番目のディレクトリが存在する場合があります。
  2. インストール
composer require tlingc/think-lang
ログイン後にコピー

使用方法

基本構成

公式ドキュメント(https://www.kancloud.cn/manual)を参照してください。 /thinkphp6_0 /1037637) 関連する構成を実行します。

公式ドキュメントとの以下の相違点にも注意してください。

言語パックを開いてロードします

ミドルウェア名は次のとおりです:

'tlingc\lang\middleware\LoadLangPack',
ログイン後にコピー

複数の言語にはセカンダリ ディレクトリ経由でアクセスするため、

Cookie を使用して言語を保存します

関数が無効です。 言語ファイル定義

自動ロードされたアプリケーション言語ファイル:

// 单应用模式app\lang\当前语言.php
app\lang\当前语言\*.php
app\lang\当前语言\*\*.php// 多应用模式app\应用\lang\当前语言.php
app\应用\lang\当前语言\*.php
app\应用\lang\当前语言\*\*.php
ログイン後にコピー

この拡張パックは、言語パックの解析動作やファイル名を変更しないことに注意してください。言語ファイルは言語のグループ化には影響しないため、同じ定義が複数のファイルに存在する場合は上書きが発生します。

ルーティング設定

セカンダリ ディレクトリを使用して対応する言語ページにアクセスするには、ルーティング定義を使用する必要があり、

強制ルーティング

モードをオンにすることをお勧めします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use think\facade\Config;Route::view(&amp;#39;/&amp;#39;, &amp;#39;index/index&amp;#39;);$langs = Config::get(&amp;#39;lang.allow_lang_list&amp;#39;);foreach($langs as $lang){ Route::rule($lang . &amp;#39;/&amp;#39;, &amp;#39;index/index&amp;#39;); Route::rule($lang . &amp;#39;/welcome&amp;#39;, &amp;#39;index/welcome&amp;#39;);}</pre><div class="contentsignin">ログイン後にコピー</div></div>書き換え

url

ヘルパー関数 がアプリケーション公開ファイル

common.php

に追加されます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use think\facade\Request;use think\facade\Lang;use think\facade\Route;use think\route\Url as UrlBuild;function url(string $url = &amp;#39;&amp;#39;, array $vars = [], $suffix = true, $domain = false, $lang = true, $replace = false): UrlBuild{ if (!$lang) { if($replace) { $explode = explode(&amp;#39;/&amp;#39;, Request::url(), 3); $url = $url . $explode[2]; } return Route::buildUrl($url, $vars)-&gt;suffix($suffix)-&gt;domain($domain); } $lang = Lang::getLangSet(); return Route::buildUrl(&amp;#39;/&amp;#39; . $lang . $url, $vars)-&gt;suffix($suffix)-&gt;domain($domain);}</pre><div class="contentsignin">ログイン後にコピー</div></div>公式ヘルパー関数と比較すると、

$lang

$replace パラメータが追加されています。 通常のジャンプでは、URL の生成時に前述の言語名が自動的に含まれます。

url(&#39;/welcome&#39;)
ログイン後にコピー

URL 内の言語名のみを置換する必要がある場合 (言語セレクターで使用されている場合など)、

$replace

パラメーターを true に設定します。 TODO

    ルート定義メソッドを統合します。
  • url パラメータを統合して書き換えます。

以上がThinkPHP 6.0 多言語最適化拡張パッケージのインストールと使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート