ホームページ > 記事 > PHPフレームワーク > Laravelでロケールを動的に変更する方法
Laravel アプリケーションでは、さまざまな言語や地域でのテキスト コンテンツの処理は非常に重要な機能です。デフォルトでは、Laravel は config/app.php 設定ファイルの locale オプションを使用してアプリケーションのデフォルトのロケールを指定します。ただし、場合によっては、実行時にアプリケーションのロケールを動的に変更する必要がある場合があります。この記事では、Laravel でアプリケーションのロケールを動的に変更する方法を説明します。
まず、ロケールの変更を処理するルートを作成する必要があります。 Laravel では、次のルーティング コード ブロックを使用してこれを実現できます。
Route::get('language/{locale}', function ($locale) { session(['locale' => $locale]); return redirect()->back(); });
上記のコード ブロックは、「locale」という名前のパラメータを含む「 language 」という名前のルートを作成します。ルートが一致すると、ユーザーが選択したロケールがセッションに保存され、ユーザーは前のページにリダイレクトされます。
次に、アプリケーションがさまざまなロケールで正しく実行されることを確認するためのミドルウェアを作成する必要があります。 Laravel では、次のコード ブロックを使用して、「LocaleMiddleware」というミドルウェアを作成できます。
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Session; class LocaleMiddleware { public function handle($request, Closure $next) { $locale = Session::get('locale', config('app.locale')); App::setLocale($locale); return $next($request); } }
上記のコード ブロックでは、ロケールが選択されていない場合は、セッション ファサードを使用してユーザーが選択したロケールを取得します。 session に設定すると、 config/app.php 設定ファイル内のデフォルトのロケールが使用されます。ロケールを決定したら、アプリケーションに現在のロケールを動的に設定します。
次に、ミドルウェアがリクエスト パイプラインで適切に使用されるように、Laravel アプリケーションにミドルウェアを追加する必要があります。次の手順を使用して、Laravel アプリケーションにミドルウェアを追加できます:
'locale' => \App\Http\Middleware\LocaleMiddleware::class,
Route::get('/', function () { return view('welcome'); })->middleware(['locale']);
これにより、このルートでは、実行時にロケールを設定するためにミドルウェアが使用されるようになります。
これで、ロケールの変更を処理するためのルートと、アプリケーション全体で正しいロケールが使用されることを確認するミドルウェアが設定されました。次に、応用?
この記事では、Laravel でアプリケーションのロケールを動的に変更する方法について説明しました。ロケールの変更を処理するルーティングとミドルウェアを設定することにより、選択したロケールがアプリケーション全体で正しく使用されるようになります。これは、特定のユーザー設定に基づいてサイトのローカリゼーションを自動化し、ユーザー エクスペリエンスを向上させるのに役立つ非常に便利な機能です。
以上がLaravelでロケールを動的に変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。