src/EventListener/VchfyLocaleListener.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\User\User;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\Security\Core\Security;
  6. use Symfony\Contracts\Translation\TranslatorInterface;
  7. class VchfyLocaleListener
  8. {
  9.     public function __construct(
  10.         private Security            $security,
  11.         private TranslatorInterface $translator
  12.     ) {
  13.     }
  14.     public function onKernelRequest(RequestEvent $event) {
  15.         $request $event->getRequest();
  16.         /** @var User $user */
  17.         $user $this->security->getUser();
  18.         if ($user?->getUserSetting()) {
  19.             $locale $user->getUserSetting()->getLanguage()->getLocale();
  20.             $request->setLocale($locale);
  21.             $this->translator->setLocale($locale);
  22.         }
  23.     }
  24. }