Bonjour ,
je veux mettre dans ma page deux drapeau de langues ,
Aprés des recherches :
j'ai ajouté une service : LocaleListener dont le code est le suivant , ensuite je l'ai declaré dans service.yml
Je sais plus quoi faire pour que je peux changer la locale sachant que j'ai ajouté les messages de translations et j'ai verifié la disponibilité manuellement .

Merci d'avance .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class LocaleListener implements EventSubscriberInterface
 {
    private $defaultLocale;
 
    public function __construct($defaultLocale = 'en')
    {
        $this->defaultLocale = $defaultLocale;
    }
 
    public function onKernelRequest(GetResponseEvent $event)
    {
        $request = $event->getRequest();
        if (!$request->hasPreviousSession()) {
            return;
        }
 
        if ($locale = $request->attributes->get('_locale')) {
            $request->getSession()->set('_locale', $locale);
        } else {
            $request->setLocale($request->getSession()->get('_locale', $this->defaultLocale));
        }
    }
 
    static public function getSubscribedEvents()
    {
        return array(
            // must be registered before the default Locale listener
            KernelEvents::REQUEST => array(array('onKernelRequest', 17)),
        );
    }
}