J'essaie de traduire site web avec la langue de l'utilisateur.Symfony traduction seulement afficher en anglais
dans mon config.yml:
parameters:
locale: en
framework:
#esi: ~
translator: { fallbacks: [en] }
I ajouté messges.en.yml et messages.it.yml sous app/ressources/traductions.
Quand je visite la page avec le navigateur italien je vois des traductions anglaises.
Après le livre Symfony i ajouté cet abonné événement:
namespace AppBundle\Service;
use AppBundle\Controller\TokenAuthenticatedController;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\KernelEvents;
class LanguageListener implements EventSubscriberInterface
{
public function onKernelController(FilterControllerEvent $event)
{
$request = $event->getRequest();
$user_lang = $request->getPreferredLanguage();
$request->setLocale($user_lang);
}
public static function getSubscribedEvents()
{
return array(
KernelEvents::CONTROLLER => 'onKernelController',
);
}
}
, mais je continue à ne voir que l'anglais ...
un pourboire?
Nettoyé le cache? 'rm -rf app/cache/*' – ste
Êtes-vous sûr que '$ user_lang' a la bonne valeur? Peut-être que 'getPrefferedLanguage' ne fonctionne pas comme prévu et que vous utilisez votre logique de 'repli'? –