在Laravel 中建立多語言翻譯路由
本指南提供了在Laravel 中建立多語言翻譯路由的全面解決方案,確保當前語言是僅由URL 決定,而不依賴cookie 或會話。
實作:
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。路由:
編輯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); });
以上是如何在 Laravel 中建立多語言、翻譯的路線而不依賴 cookie 或會話?的詳細內容。更多資訊請關注PHP中文網其他相關文章!