defaultLocale = $params->get('kernel.default_locale'); $this->requestStack = $requestStack; } public function onKernelRequest(RequestEvent $event) { $request = $event->getRequest(); if (!$request->hasPreviousSession()) { return; } $request->setLocale($request->getSession()->get('_locale', $this->defaultLocale)); } public function onInteractiveLogin(InteractiveLoginEvent $event) { /** * @var user $user */ $user = $event->getAuthenticationToken()->getUser(); if (null !== $user->getLocale()) { $this->requestStack->getSession()->set('_locale', $user->getLocale()); } } public static function getSubscribedEvents() { return [ KernelEvents::REQUEST => [['onKernelRequest', 20]], SecurityEvents::INTERACTIVE_LOGIN => 'onInteractiveLogin', ]; } }