Laravel 建立多國語言的網站
發表人:
Seachaos
積分: 2432
積分: 2432
Laravel 有支援多國語言,此範例以 Laravel 設定中文與英文為示範 (配合 Session )
要先在 lang 下建立 zh_tw 資料夾,然後在 en 與 zh_tw 中加入語言定義檔
( 此處可以參考 Laravel 官網的方式 )
再來就是本教學的重點,使用 Session 來記錄與切換使用者的 Locale (語言設定)
(有用到Session的部份記得 use Session; )
Controller:
function set_lang(Request $request, $lang){
switch($lang){
case 'zh_tw':
App::setLocale('zh_tw');
Session::put('locale', App::getLocale());
break;
default:
App::setLocale(config('app.fallback_locale'));
Session::put('locale', App::getLocale());
break;
}
return Redirect::back();
}
|
此 method 會設定語言在 Session 後回到前一頁
Router:
Route::get('/lang/set/{lang}', ‘ExampleController@set_lang');
|
建立Middleware:
php artisan make:middleware LangMiddleware
|
然後在Middleware中設定 Locale:
public function handle($request, Closure $next)
{
if(!Session::has('locale'))
{
Session::put('locale', config('app.fallback_locale'));
}
app()->setLocale(Session::get('locale'));
return $next($request);
}
|
(記得要設定其他 Middleware 配置)
View上就可以使用以下範例:
<li><a href="{{ url('/lang/set/eng') }}">English</a></li>
<li><a href="{{ url('/lang/set/zh_tw') }}">繁體中文</a></li>
|
這樣就可以設定使用者的語言了