From 14dc261510c4e01f45e021fa21b654eceebd1f4d Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Thu, 2 Jun 2022 11:35:51 +0200 Subject: [PATCH] ENHANCEMENT: fixing the locale --- src/EventSubscriber/LocaleSubscriber.php | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/EventSubscriber/LocaleSubscriber.php diff --git a/src/EventSubscriber/LocaleSubscriber.php b/src/EventSubscriber/LocaleSubscriber.php new file mode 100644 index 0000000..9b72e5e --- /dev/null +++ b/src/EventSubscriber/LocaleSubscriber.php @@ -0,0 +1,42 @@ +defaultLocale = $defaultLocale; + } + + public function onKernelRequest(RequestEvent $event) + { + $request = $event->getRequest(); + if (!$request->hasPreviousSession()) { + return; + } + + // try to see if the locale has been set as a _locale routing parameter + if ($locale = $request->attributes->get('_locale')) { + $request->getSession()->set('_locale', $locale); + } else { + // if no explicit locale has been set on this request, use one from the session + $request->setLocale($request->getSession()->get('_locale', $this->defaultLocale)); + } + } + + public static function getSubscribedEvents() + { + return [ + // must be registered before (i.e. with a higher priority than) the default Locale listener + KernelEvents::REQUEST => [['onKernelRequest', 20]], + ]; + } +} \ No newline at end of file