переключение языка без изменения текущей страницы - PullRequest
12 голосов
/ 13 марта 2012

Я использую веточку для создания шаблонов в многоязычном проекте Symfony2.В layout.html.twig

есть переключатель языка. Я хочу, чтобы пользователь мог переключать языки без изменения текущей страницы, щелкнув ссылку на язык.Я написал следующий код, который просто выполняет обязанности для статических страниц.Поскольку языковые ссылки просто передают locale на маршрут, в случае использования дополнительных обязательных параметров, он, очевидно, выдает исключение: route has some missing mandatory parameters

<ul id="lang">
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'az'}) }}">AZ</a></li>
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'en'}) }}">EN</a></li>
</ul>

1 Ответ

35 голосов
/ 10 декабря 2012

Вы можете получить параметры маршрута с помощью .get('_route_params') и , объединить их с желаемой локалью:

<ul class="lang-menu">
  <li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'ca'})) }}">Català</a></li>
  <li><a href="{{  path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'}))}}">English</a></li>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...