<?php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
class LoginLocaleSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
InteractiveLoginEvent::class => 'onLogin',
];
}
public function onLogin(InteractiveLoginEvent $event)
{
$request = $event->getRequest();
$session = $request->getSession();
// si l'utilisateur a choisi une langue avant login, on la réapplique
if ($session->has('_locale')) {
$request->setLocale($session->get('_locale'));
}
}
}