2017-03-02 73 views
1

IM學習的多語言環境客棧laravel 5.4 所以 我創建了兩個文件 第一個資源/郎/ ES/greeting.php語言環境laravel 5.4返回透水區域後刷新

<?php 

return [ 

    'hello' => 'hola', 

]; 

和第二資源/郎/ EN/greeting.php

<?php 

return [ 

    'hello' => 'hola', 

]; 

和我創建內部web.php這條路

Route::get('/{locale}', function ($locale) { 
    App::setLocale($locale); 
    return view('index'); 

}); 

所以,當我要求這個鏈接(本地主機:8000/ES) 它的工作原理 但是當我刷新頁面它返回到默認的語言環境是連接

,我希望它繼續留在新的語言環境 所以請幫助我

回答

2

如果要永久設置區域設置該會話,路由代碼更改爲:

Route::get('/{locale}', function ($locale) { 
    App::setLocale($locale); 
    Session::put('locale', $locale); 
    return view('index'); 
}); 

然後添加一箇中間件來檢查,如果會議有語言環境,如果是這樣設定的LOC強麥像這樣:

public function handle($request, Closure $next) { 
    if(Session::has('locale')) { 
     app()->setLocale(Session::get('locale')); 
    } 
    return $next($request); 
} 
+0

我沒有你所說的話,但我仍然有同樣的問題 –

+0

你能與kernel.php一起發表您的整個中間件的代碼?我假設你註冊的中間件和在你的路由 – Paras

+0

使用的中間件這個web.php 中間件('lang'); –