lang) { //Set cookie Cookie::queue(Cookie::forever('language', $request->lang)); //set session $request->session()->put('lang',strtolower($request->lang)); //bonus remove lang parameter from query return redirect()->to($request->fullUrlWithoutQuery('lang')); } else { //do we have session ? if(!$request->session()->has('lang')) { $fromC = Cookie::get('language'); if (is_null($fromC) || empty($fromC)) { //pas de cookie, recherche sur le navigateur $fromC = substr(Request::server('HTTP_ACCEPT_LANGUAGE'), 0, 2); if (!in_array($fromC, ['fr', 'en', 'es'])) { //default other languages to en $fromC = 'en'; } } //set session $request->session()->put('lang',strtolower($fromC)); } } $sess_lang = $request->session()->get('lang', config('app.locale')); app()->setLocale($sess_lang); return $next($request); } }