/**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $params = explode('/', $request->path());
     $locale = $request->cookie('locale', false);
     if (count($params) > 0 && app('laravellocalization')->checkLocaleInSupportedLocales($params[0])) {
         return $next($request)->withCookie(cookie()->forever('locale', $params[0]));
     }
     if ($locale && app('laravellocalization')->checkLocaleInSupportedLocales($locale) && !(app('laravellocalization')->getDefaultLocale() === $locale && app('laravellocalization')->hideDefaultLocaleInURL())) {
         $redirection = app('laravellocalization')->getLocalizedURL($locale);
         $redirectResponse = new RedirectResponse($redirection, 302, ['Vary' => 'Accept-Language']);
         return $redirectResponse->withCookie(cookie()->forever('locale', $params[0]));
     }
     return $next($request);
 }
Ejemplo n.º 2
0
 /**
  * @param \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse $response
  * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
  */
 public function storeCookie($response)
 {
     if (count($this->changingDataStore) > 0) {
         foreach ($this->changingDataStore as $key => $value) {
             $response->withCookie(cookie()->forever('settings_' . $key, $value));
         }
     }
     return $response;
 }