/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->checkSettings($request); $forceLocale = SettingsFacade::getLocale(); if ($request->has(AppConfig::KEY_FORCE_LOCALE)) { $forceLocale = $request->input(AppConfig::KEY_FORCE_LOCALE); } setCurrentLocale($forceLocale); return $next($request); }
protected function checkForceLocale(Request $request) { $allSupportedLocaleCodes = allSupportedLocaleCodes(); $isDirectLocale = in_array($request->segment(1), $allSupportedLocaleCodes); $forceLocale = $isDirectLocale ? currentLocaleCode() : SettingsFacade::getLocale(); if ($request->has(AppConfig::KEY_FORCE_LOCALE)) { $forceLocale = $request->input(AppConfig::KEY_FORCE_LOCALE); } if (in_array($forceLocale, $allSupportedLocaleCodes)) { if ($forceLocale != SettingsFacade::getLocale()) { SettingsFacade::setLocale($forceLocale); SettingsFacade::storeSession(); SettingsFacade::storeUser(); } if ($forceLocale != currentLocaleCode()) { $rdr = redirect(currentURL($forceLocale)); return SettingsFacade::storeCookie($rdr); } } return false; }