ThinkPHP6 での国際化の使用

PHPz
リリース: 2023-06-20 13:11:26
オリジナル
1156 人が閲覧しました

グローバル化のプロセスに伴い、多国籍のユーザーや顧客を引き付けるために、ますます多くの Web サイトやアプリケーションが複数の言語をサポートする必要があります。 ThinkPHP6 は強力な国際化機能を提供し、開発者が多言語サポートを簡単に実装できるようにします。この記事では、ThinkPHP6 で国際化を使用する手順とテクニックを紹介します。

  1. 言語パッケージの構成

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') などの独自の翻訳テキストがあります。

  1. Lang ヘルパー関数の使用

言語パッケージを構成したら、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)}}

  1. 多言語ルーティングの実装

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 サイトの他の関連記事を参照してください。

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