2013-05-15 23 views

Odpowiedz

24

App::setLocale() nie jest trwały - to znaczy, że nie będzie pamiętać, co między wniosków, które zostały zapisane. Zamiast tego możesz użyć sesji, aby zapamiętać wybrane ustawienia narodowe, i odczytać z sesji ustawienia regionalne dla każdego żądania. Możemy również odczytać domyślne locale (z config) na wypadek, gdyby w sesji nie było jednego zestawu.

// 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

cool. A co z ciasteczkami? Chciałbym ustawić plik cookie, który będzie trwał wiecznie. Próbowałem już z 'Cookie :: forever' i' Cookie :: get', ale to nie działa. Z sesjami to działa, jak pokazałeś. Próbowałem wydrukować plik cookie, ale jest pusty. Drukowanie sesji działa jednak. Kod jest podobny w obu przypadkach, zmieniłem go tylko na pliki cookie zamiast sesji. – MikkoP

1

I rozwiązać problem poprzez umieszczenie

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

w app/start/global.php