ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 で多言語 Web サイトを実装するにはどうすればよいですか?

ThinkPHP6 で多言語 Web サイトを実装するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-06-12 09:01:281442ブラウズ

ThinkPHP6 は、非常に優れたコード管理とスケーラビリティを提供する優れた PHP 開発フレームワークです。実際の開発では、グローバル化の傾向に伴い、多言語サポートを必要とする Web サイトがますます増えています。では、ThinkPHP6 で多言語 Web サイトを実装するにはどうすればよいでしょうか?この記事では以下の4つの観点から解説していきます。

1. 設定ファイルで多言語変数を定義する

ThinkPHP6 では、設定ファイルを通じて多言語変数を定義することを強くお勧めします。まず、config ディレクトリに lang.php ファイルを作成し、その中に多言語配列を定義する必要があります。たとえば、次のようになります。

<?php
return [
    'welcome' => '欢迎',
    'hello' => '你好',
    'bye' => '再见',
    ...
];

その後、次のように渡します。 # コントローラー内の ##lang ヘルパー関数を使用して、これらの多言語変数を取得します。例:

echo lang('welcome');

この方法では、Web サイトでさまざまな言語をサポートする必要がある場合、# を変更するだけで済みます。 ##lang.php

ファイル の対応する多言語変数値。 2. ミドルウェアを使用して言語に応じてセッションを設定する

別の言語を切り替えることができるようにするには、Web サイトで言語セッションを設定する必要があります。この言語セッションは、フロント デスクから渡されたパラメーターまたはブラウザーの設定に基づいて自動的に認識できます。

ThinkPHP6 では、ミドルウェアを通じてこの機能を実装できます。

app/middleware

ディレクトリに Language.php ミドルウェア ファイルを作成します。コードは次のとおりです: <pre class='brush:php;toolbar:false;'>&lt;?php namespace appmiddleware; use think acadeSession; use thinkRequest; class Language { public function handle(Request $request, Closure $next) { $lang = $request-&gt;param('lang'); if(!in_array($lang, ['zh-cn', 'en-us'])){ $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE']; } Session::set('lang', $lang); return $next($request); } }</pre> その中で、渡された言語パラメータが正当であるかどうかを確認しますそうでない場合、ルールはブラウザ設定の言語パラメータを使用します。

このミドルウェアを

app/middleware.php

に導入し、複数の言語をサポートする必要があるコントローラーで使用します。例: <pre class='brush:php;toolbar:false;'>&lt;?php namespace appcontroller; use think acadeSession; class Index { public function index() { $lang = Session::get('lang'); return lang('welcome'); } }</pre> 3. 複数の言語のルーティングを使用する

多言語ルーティングをサポートする必要がある一部のニーズに対して、ThinkPHP6 は非常に便利な方法を提供します。たとえば、次の 2 つのルートを定義できます:

Route::get(':lang/index', 'index/index');
Route::get(':lang/about', 'index/about');

これにより、

https://example.com/zh-cn/index

https://example にアクセスします。 .com /zh-cn/about は対応するコントローラーに入ります。フロント デスクは言語パラメーターを個別に渡す必要はありません。 4. テンプレート タグを使用して多言語コンテンツを出力する

最後に、フォアグラウンドで多言語変数を出力する必要があります。このとき、ThinkPHP6 が提供する「テンプレートタグ」機能を使用できます。たとえば、

{: lang('welcome') }

もちろん、次の方法を使用することをお勧めします。

{lang name="welcome"}

このように、対応する多言語変数を出力でき、いくつかのデフォルト値とパラメータを追加することもできます。

概要

上記は、ThinkPHP6 で多言語 Web サイトを実装する方法です。多言語変数を定義し、ミドルウェアを使用してセッションを設定し、多言語ルーティングとテンプレート タグを使用して多言語コンテンツを出力することで、完全な多言語 Web サイトを簡単に構築できます。もちろん、実際の開発ではいくつかの詳細を考慮する必要がありますが、上記の方法は ThinkPHP6 での多言語開発に非常に優れた基盤を提供します。

以上がThinkPHP6 で多言語 Web サイトを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。