traduction , Changer locale Symfony2.36
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:
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)),
);
}
} |