グローバル化のプロセスに伴い、多国籍のユーザーや顧客を引き付けるために、ますます多くの Web サイトやアプリケーションが複数の言語をサポートする必要があります。 ThinkPHP6 は強力な国際化機能を提供し、開発者が多言語サポートを簡単に実装できるようにします。この記事では、ThinkPHP6 で国際化を使用する手順とテクニックを紹介します。
ThinkPHP6 では、言語パッケージはアプリケーション内で翻訳する必要があるすべてのテキストを分類し、特定のファイルに保存します。私たちのアプリは言語バージョンを簡単に切り替えることができます。 config ディレクトリの下の app.php ファイルには、「lang_switch_on」オプションがあります。これを true に設定して、言語パック機能を有効にします。
'lang_switch_on' => true,
次に、言語パックを構成するために、config ディレクトリに lang.php ファイルを作成する必要があります。サンプルの内容は次のとおりです。
return [
'zh-cn' => [ 'name' => '姓名', 'age' => '年龄', 'email' => '邮箱' ], 'en-us' => [ 'name' => 'Name', 'age' => 'Age', 'email' => 'Email' ]
];
上記のコードでは、言語パック配列に 2 つの言語バージョンを設定しています。簡体字中国語 (' zh-cn') と英語 ('en-us') の場合、各言語バージョンには名前 ('name')、年齢 ('age')、電子メール アドレス ('email') などの独自の翻訳テキストがあります。
言語パッケージを構成したら、Lang ヘルパー関数を使用して、アプリケーション内の翻訳されたテキストを参照できます。 Lang ヘルパー関数は、言語パッケージのキー名、置換変数、および言語バージョンの 3 つのパラメーターを提供します。サンプル コードは次のとおりです。
//現在の言語バージョンを取得します。
$lang = Lang::getLangSet();
//Lang ヘルパー関数を使用して、翻訳された言語を取得します。 text
echo Lang::get('name', [], $lang);
上記のコードでは、まず Lang::getLangSet() 関数を使用して現在の言語バージョンを取得します。次に、Lang::get() 関数を呼び出して、対応する言語バージョンで翻訳された名前のテキストを取得します。置換変数がないため、2 番目のパラメーターは空の配列になります。
ビュー ファイルで Lang ヘルパー関数を使用したい場合は、次の構文を使用できます:
{{$lang = Lang::getLangSet()}}
{ {$name = Lang::get('name', [], $lang)}}
{{$age = Lang::get('age', [], $lang)}}
{ {$email = Lang::get('email', [], $lang)}}
Lang の使用に加えて、参照するヘルパー関数 テキストを翻訳するために、ルーティングを通じて多言語サポートを実現することもできます。多言語ルーティングを実装するには、対応するルーティング ルールを構成する必要があります。
プレフィックスとして「/lang/:lang」を付けたルーティング グループ (Route::group) を使用します。「:lang」は言語バージョンを表します。サンプル コードは次のとおりです。
Route::group(':lang', function () {
//这里写你的路由规则
})->ext('html')->pattern( 'lang' , '^[a-z]{2}-(?:[A-Z]{2})?$');
上記のコードでは、プレフィックスとして ':lang' を使用し、言語バージョンに一致する正規表現を定義します。最後に、「ext」オプションを設定してルートが自動サフィックス解析をサポートできるようにし、「pattern」オプションを設定して言語バージョンの形式を制限します。
ユーザーが「/」にアクセスすると、「/zh-cn/home」などのルートのデフォルト言語バージョンにリダイレクトできます。多言語サポートを向上させるために、ルーティング ルールにパラメータを設定することもできます。サンプル コードは次のとおりです。
Route::get(':lang/home', 'home/index');
上記のコードでは、':lang/ home」ルーティング ルールを作成し、それを「home/index」コントローラとアクションにマッピングします。このようにして、ユーザーが「zh-cn/home」および「en-us/home」にアクセスすると、対応するコントローラー操作に自動的にルーティングされます。
結論
ThinkPHP6 の国際化を使用すると、複数言語のサポートを簡単に実現できます。言語パックを構成し、Lang ヘルパー関数を使用し、多言語ルーティングを実装することで、さまざまな国や地域からより多くのユーザーを引き付ける真のグローバル アプリケーションを作成できます。
以上がThinkPHP6 での国際化の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。