X-Git-Url: https://git.rapsys.eu/.gitweb.cgi/airbundle/blobdiff_plain/2b20e23015b4b6a82ce6951179cd7308692f0134..c1e710382e855cc7f17dc3db46318a24a308c596:/EventSubscriber/LocaleSubscriber.php diff --git a/EventSubscriber/LocaleSubscriber.php b/EventSubscriber/LocaleSubscriber.php index 7941a80..2d25ba6 100644 --- a/EventSubscriber/LocaleSubscriber.php +++ b/EventSubscriber/LocaleSubscriber.php @@ -33,17 +33,23 @@ class LocaleSubscriber implements EventSubscriberInterface { //Save preferred locale in session $request->getSession()->set('_locale', $preferred); - //Generate current route with preferred language - //XXX: may trigger a Symfony\Component\Routing\Exception\RouteNotFoundException if route is not found for preferred locale - $uri = $this->router->generate( - //Current route - $request->get('_route'), - //Force preferred locale - ['_locale' => $preferred]+$request->get('_route_params') - ); - - //Regenerate route with preferred locale - $event->setResponse(new RedirectResponse($uri, 302)); + //Send vary header as current page locale depend on it + header('Vary: accept-language'); + + //Set locale + $request->setLocale($preferred); + + //Set default locale + $request->setDefaultLocale($preferred); + + //Get router context + $context = $this->router->getContext(); + + //Set context locale + $context->setParameter('_locale', $preferred); + + //Set back router context + $this->router->setContext($context); //End process return;