php - Twig do not set the locale in Symfony 3 -


i created eventlistener set locale based on user preferences, set langage in listener:

$request->setlocale($user->getlanguage());  $request->getsession()->set('_locale',$user->getlanguage()); 

i tried both..

i register listener in service.yml:

 app.event_listener.locale:         class: 'appbundle\eventlistener\localelistener'         arguments:             - '@security.token_storage'         tags:             - {name: 'kernel.event_listener', event: 'kernel.request', method: 'onkernelrequest'} 

i tried add priority: 17 service not change anything...

the listener seems works, can locale in controller $request->getlocale()(or session).

but twig still in default language defined in config.yml:

parameters:     locale: fr 

i'm pretty lost now, tips ?

i tried lot of stuff (change priority, check if locale passed front etc...) forced translator in eventlistener:

public function onkernelrequest(getresponseevent $event) {     $request = $event->getrequest();      if ($this->tokenstorage->gettoken()) {         $user = $this->tokenstorage->gettoken()->getuser();         if ($user && $user instanceof user) {             $request->setlocale($user->getlanguage());         } elseif ($request->query->has('locale')) {             $request->setlocale($request->query->get('locale'));         } else {             $request->setlocale($request->getpreferredlanguage());         }     }     $this->translator->setlocale($request->getlocale()); } 

i don't understand why, should done in symfony translator, works...


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -