2016-12-21 8 views
2

Gretings, у меня проблема с изменением языков из шаблона Twig. Моя цель - предоставить пользователю возможность переключаться на язык страницы в соответствии с его потребностями. Я сделал все по инструкции: Making the Locale "Sticky" during a User's SessionSymfony3 Языковой переключатель в Twig

Мой вопрос: Как сменить язык, который хранится в сессии, от шаблона Twig?

Моя лучшая догадка:

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

Но результат был, что необходимо изменить язык страница будет обновляться два раза, чтобы показать результаты, один для установки значений в сессии, второй для загрузки страницы в соответствии языке хранится в сессии , Пожалуйста, порекомендуйте!

+0

вы пробовали JMS/i18n-маршрутизацию-пакет? хорошо работал, когда я попробовал его –

+0

Спасибо за консультацию, но я предпочитаю не использовать его. – JustinasT

+1

Вы должны получить текущий маршрут с параметрами, изменить/добавить параметр '_language' для каждого языка, например:' {{path (app.request.attributes.get ('_ route'), app.request.query.all | merge ({'_ language': 'en'}))}} '. – malcolm

ответ

1

Решения было создание локалей префиксов для всех контроллеров и, как Малкольм предложил, используя маршрут Params:

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