public function onRequest(GetResponseEvent $event) { $request = $event->getRequest(); /* * Check URL _locale * default to -> Session _locale * default to -> browser locale * default to -> translation.defaultLocale */ $locales = [$request->attributes->get(RouteAttribute::LOCALE, null), $request->getSession()->get(RouteAttribute::LOCALE, null), $request->getLocale()]; $locale = $this->defaultLocale; foreach ($locales as $item) { if (in_array($item, $this->availableLocales)) { $locale = $item; break; } } if ($this->config->get('tranalstion.persistInSession', false) === true) { $request->getSession()->set(RouteAttribute::LOCALE, $locale); } $request->attributes->set(RouteAttribute::LOCALE, $locale); $event->getContainer()->setScalar(RouteAttribute::LOCALE, $locale); }