getUser(); $userRoute = $user->getPreferenceValue('login.initial_view', InitialViewType::DEFAULT_VIEW); $userLanguage = $user->getLocale(); $requestLanguage = $request->getLocale(); if (empty($requestLanguage)) { $requestLanguage = User::DEFAULT_LANGUAGE; } if (empty($userLanguage)) { $userLanguage = $requestLanguage; } $routes = [ [$userRoute, $userLanguage], [$userRoute, $requestLanguage], [$userRoute, User::DEFAULT_LANGUAGE], [InitialViewType::DEFAULT_VIEW, $userLanguage], [InitialViewType::DEFAULT_VIEW, $requestLanguage], ]; foreach ($routes as $routeSettings) { $route = $routeSettings[0]; $language = $routeSettings[1]; try { return $this->redirectToRoute($route, ['_locale' => $language]); } catch (\Exception $exception) { // something is wrong with the url parameters ... } } return $this->redirectToRoute(InitialViewType::DEFAULT_VIEW, ['_locale' => User::DEFAULT_LANGUAGE]); } }