vendor/symfony/http-kernel/EventListener/LocaleAwareListener.php line 45
<?php/** This file is part of the Symfony package.** (c) Fabien Potencier <fabien@symfony.com>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/namespace Symfony\Component\HttpKernel\EventListener;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\HttpKernel\Event\FinishRequestEvent;use Symfony\Component\HttpKernel\Event\RequestEvent;use Symfony\Component\HttpKernel\KernelEvents;use Symfony\Contracts\Translation\LocaleAwareInterface;/*** Pass the current locale to the provided services.** @author Pierre Bobiet <pierrebobiet@gmail.com>*/class LocaleAwareListener implements EventSubscriberInterface{private iterable $localeAwareServices;private RequestStack $requestStack;/*** @param iterable<mixed, LocaleAwareInterface> $localeAwareServices*/public function __construct(iterable $localeAwareServices, RequestStack $requestStack){$this->localeAwareServices = $localeAwareServices;$this->requestStack = $requestStack;}public function onKernelRequest(RequestEvent $event): void{$this->setLocale($event->getRequest()->getLocale(), $event->getRequest()->getDefaultLocale());}public function onKernelFinishRequest(FinishRequestEvent $event): void{if (null === $parentRequest = $this->requestStack->getParentRequest()) {foreach ($this->localeAwareServices as $service) {$service->setLocale($event->getRequest()->getDefaultLocale());}return;}$this->setLocale($parentRequest->getLocale(), $parentRequest->getDefaultLocale());}public static function getSubscribedEvents(): array{return [// must be registered after the Locale listenerKernelEvents::REQUEST => [['onKernelRequest', 15]],KernelEvents::FINISH_REQUEST => [['onKernelFinishRequest', -15]],];}private function setLocale(string $locale, string $defaultLocale): void{foreach ($this->localeAwareServices as $service) {try {$service->setLocale($locale);} catch (\InvalidArgumentException) {$service->setLocale($defaultLocale);}}}}