<?php
namespace App\EventListener;
use App\Entity\User\User;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\Security\Core\Security;
use Symfony\Contracts\Translation\TranslatorInterface;
class VchfyLocaleListener
{
public function __construct(
private Security $security,
private TranslatorInterface $translator
) {
}
public function onKernelRequest(RequestEvent $event) {
$request = $event->getRequest();
/** @var User $user */
$user = $this->security->getUser();
if ($user?->getUserSetting()) {
$locale = $user->getUserSetting()->getLanguage()->getLocale();
$request->setLocale($locale);
$this->translator->setLocale($locale);
}
}
}