ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP 6.0 多言語最適化拡張パッケージのインストールと使用

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

藏色散人
藏色散人転載
2020-06-23 13:50:364142ブラウズ

以下は、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

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

ルーティング設定

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

強制ルーティング

モードをオンにすることをお勧めします。 <pre class="brush:php;toolbar:false">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');}</pre>書き換え

url

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

common.php

に追加されます。 <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 = '', 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)-&gt;suffix($suffix)-&gt;domain($domain); } $lang = Lang::getLangSet(); return Route::buildUrl('/' . $lang . $url, $vars)-&gt;suffix($suffix)-&gt;domain($domain);}</pre>公式ヘルパー関数と比較すると、

$lang

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

url('/welcome')

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

$replace

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

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

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

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。