2016-12-21 1 views
2

Gretings, j'ai un problème avec le changement de langues du modèle de Twig. Mon but est de permettre à l'utilisateur de changer la langue de la page en fonction de ses besoins. J'ai fait tout selon l'instruction: Making the Locale "Sticky" during a User's SessionSymfony3 Commutateur de langue dans Twig

Ma question est, comment changer la langue, qui est stockée dans la session, de modèle Twig?

Ma meilleure estimation était:

{{ app.session.set('_lang', 'en') }} 

Mais résulta, cette page changement de langue nécessaire pour rafraîchir deux fois pour afficher les résultats, une pour définir des valeurs en session, seconde à charger la page langue en fonction stockée en session . S'il vous plaît donnez votre avis!

+0

Avez-vous essayé le jms/i18n-routage bundle? a bien fonctionné quand je l'ai essayé –

+0

Merci pour le conseil, mais je préfère ne pas l'utiliser. – JustinasT

+1

Vous devez obtenir l'itinéraire actuel avec les paramètres, modifier/ajouter le paramètre '_language' pour chaque langue, quelque chose comme:' {{path (app.request.attributes.get ('_ route'), app.request.query.all | merge ({'_ language': 'en'}))}} '. – malcolm

Répondre

1

Solution a été crée préfixes locale pour tous les contrôleurs et comme malcolm offert, en utilisant params itinéraire:

{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'_locale': 'en'})) }}