Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::handle PHP Method

handle() public method

Handle an incoming request.
public handle ( Illuminate\Http\Request $request, Closure $next ) : mixed
$request Illuminate\Http\Request
$next Closure
return mixed
    public function handle($request, Closure $next)
    {
        $currentLocale = app('laravellocalization')->getCurrentLocale();
        $defaultLocale = app('laravellocalization')->getDefaultLocale();
        $params = explode('/', $request->path());
        if (count($params) > 0) {
            $localeCode = $params[0];
            $locales = app('laravellocalization')->getSupportedLocales();
            $hideDefaultLocale = app('laravellocalization')->hideDefaultLocaleInURL();
            $redirection = false;
            if (!empty($locales[$localeCode])) {
                if ($localeCode === $defaultLocale && $hideDefaultLocale) {
                    $redirection = app('laravellocalization')->getNonLocalizedURL();
                }
            } else {
                if ($currentLocale !== $defaultLocale || !$hideDefaultLocale) {
                    // If the current url does not contain any locale
                    // The system redirect the user to the very same url "localized"
                    // we use the current locale to redirect him
                    $redirection = app('laravellocalization')->getLocalizedURL(session('locale'), $request->fullUrl());
                }
            }
            if ($redirection) {
                // Save any flashed data for redirect
                app('session')->reflash();
                return new RedirectResponse($redirection, 302, ['Vary' => 'Accept-Language']);
            }
        }
        return $next($request);
    }
LaravelLocalizationRedirectFilter