2013-05-15 20 views

risposta

24

App::setLocale() non è persistente - vale a dire che non si ricorderà tra le richieste ciò che avete memorizzato. Invece è possibile utilizzare la sessione per ricordare le impostazioni locali prescelte e leggere dalla sessione le impostazioni locali su ciascuna richiesta. Possiamo anche leggere le impostazioni locali predefinite (da config) nel caso in cui non ci sia un set nella sessione.

// 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. Che dire dei biscotti? Mi piacerebbe impostare un cookie che duri per sempre. Ho provato con 'Cookie :: forever' e' Cookie :: get' ma non funziona. Con le sessioni funziona, come hai mostrato. Ho provato a stampare il cookie ma è vuoto. Tuttavia, la stampa della sessione funziona. Il codice è simile in entrambi i casi, l'ho modificato solo per usare i cookie invece delle sessioni. – MikkoP

1

ho risolto il problema mettendo

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

in app/Start/global.php