2013-05-15 54 views

回答

24

App::setLocale()不是持久的 - 也就是說,它不會給存儲哪些請求之間記住。相反,您可以使用會話來記住所選的語言環境,並從會話中讀取每個請求的語言環境。如果會話中沒有設置,我們還可以讀取默認語言環境(來自配置)。

// app/routes.php 
Route::get('lang/{lang}', function($lang) 
{ 
    Session::put('my.locale', $lang); 
    return Redirect::to('/'); 
}); 

// app/start/global.php 
App::setLocale(Session::get('my.locale', Config::get('app.locale'))); 
+0

酷。怎麼樣用cookies?我想設置一個永久持續的cookie。我嘗試過'Cookie :: forever'和'Cookie :: get',但它不起作用。正如你所展示的那樣,會話是有效的。我嘗試過打印cookie,但它是空的。打印會話雖然工作。代碼在兩種情況下都是相似的,我只是將它更改爲使用Cookie而不是會話。 – MikkoP

1

我通過把

App::setLocale(Session::get('lang', 'en')); 

在應用程序解決了這個問題/開始/ global.php