以下は、ThinkPHP 6.0 多言語最適化拡張パッケージを紹介するthinkphp フレームワークチュートリアル コラムです。困っている友人のお役に立てば幸いです。
think-lang
https://github.com/TLingC/think-lang
機能
各言語でサポートされている言語パックは個別のディレクトリに分かれており、そのディレクトリの下に 2 番目のディレクトリが存在する場合があります。composer require tlingc/think-lang
言語パックを開いてロードします
'tlingc\lang\middleware\LoadLangPack',
複数の言語にはセカンダリ ディレクトリ経由でアクセスするため、
Cookie を使用して言語を保存します関数が無効です。言語ファイル定義
// 单应用模式app\lang\当前语言.php app\lang\当前语言\*.php app\lang\当前语言\*\*.php// 多应用模式app\应用\lang\当前语言.php app\应用\lang\当前语言\*.php app\应用\lang\当前语言\*\*.php
この拡張パックは、言語パックの解析動作やファイル名を変更しないことに注意してください。言語ファイルは言語のグループ化には影響しないため、同じ定義が複数のファイルに存在する場合は上書きが発生します。
ルーティング設定
モードをオンにすることをお勧めします。
書き換え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');}
がアプリケーション公開ファイルに追加されます。
公式ヘルパー関数と比較すると、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);}
と$replace
パラメータが追加されています。通常のジャンプでは、URL の生成時に前述の言語名が自動的に含まれます。
url('/welcome')
URL 内の言語名のみを置換する必要がある場合 (言語セレクターで使用されている場合など)、
$replaceパラメーターをtrue
に設定します。TODO
以上がThinkPHP 6.0 多言語最適化拡張パッケージのインストールと使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。