Laravel での多言語翻訳ルートの作成
このガイドは、Laravel で多言語翻訳ルートを作成するための包括的なソリューションを提供し、現在の言語がCookie やセッションに依存するのではなく、URL によってのみ決定されます。
実装:
1.翻訳ファイル:
app/lang/[LANGUAGE]/routes.php ディレクトリに目的のルートの翻訳ファイルを作成します。たとえば、ポーランド語 (pl)、英語 (en)、およびフランス語 (fr) の場合:
app/lang/pl/routes.php:
return array( 'contact' => 'kontakt', 'about' => 'o-nas' );
app/lang/en/routes.php:
return array( 'contact' => 'contact', 'about' => 'about-us' );
2.設定:
app/config/app.php の更新:
デフォルト言語の設定 (ポーランド語など):
'locale' => 'pl',
代替言語 (英語とフランス語) をリストします:
'alt_langs' => array ('en', 'fr'),
ロケール接頭辞を定義します:
'locale_prefix' => '', // Will be dynamically updated at runtime
3. Routes:
Edit app/routes.php:
... // Set locale and locale_prefix if an alternative language is selected if (in_array(Request::segment(1), Config::get('app.alt_langs'))) { App::setLocale(Request::segment(1)); Config::set('app.locale_prefix', Request::segment(1)); } // Set route patterns based on the translated routes foreach(Lang::get('routes') as $k => $v) { Route::pattern($k, $v); } Route::group(array('prefix' => Config::get('app.locale_prefix')), function() { Route::get( '/', function () { return "main page - ".App::getLocale(); } ); Route::get( '/{contact}/', function () { return "contact page ".App::getLocale(); } ); Route::get( '/{about}/', function () { return "about page ".App::getLocale(); } ); }); ...
この構成は、最初の URL セグメントに基づいてロケールとロケール プレフィックスを動的に更新します (代替言語と一致する場合)。変換されたルートに従ってルート パターンを設定します。
4.リダイレクト (オプション):
不明な URL の場合、デフォルト言語 (/) ではなく現在の言語プレフィックス (/en など) にリダイレクトします:
// app/start/global.php App::missing(function() { return Redirect::to(Config::get('app.locale_prefix'),301); });
以上がCookie やセッションに依存せずに、Laravel で多言語の翻訳されたルートを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。