src/EventSubscriber/LocaleSubscriber.php line 15
<?phpnamespace App\EventSubscriber;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpKernel\Event\RequestEvent;use Symfony\Component\HttpKernel\KernelEvents;class LocaleSubscriber implements EventSubscriberInterface{public function __construct(private string $defaultLocale = 'en'){}public function onKernelRequest(RequestEvent $event){$request = $event->getRequest();if (!$request->hasPreviousSession()) {return;}$session = $request->getSession();$sessionLocale = $session->get('_locale');if ($sessionLocale) {$request->setLocale($sessionLocale);$request->attributes->set('_locale', $sessionLocale);return;}if ($routeLocale = $request->attributes->get('_locale')) {$session->set('_locale', $routeLocale);$request->setLocale($routeLocale);return;}$request->setLocale($this->defaultLocale);}public static function getSubscribedEvents(): array{return [// must be registered before (i.e. with a higher priority than) the default Locale listenerKernelEvents::REQUEST => [['onKernelRequest', 20]],];}}