Вот что я сделал в своем приложении, не стесняйтесь адаптировать его к вашим потребностям. Он создает раскрывающийся список с двумя ссылками, которые перенаправляют на одну и ту же страницу, но изменяют параметр _locale
. Если в запросе нет маршрута, он создает две ссылки, которые перенаправляют на домашнюю страницу.
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% if app.request.locale == 'ru' %}Russian{% else %}English{% endif %} <span class="caret"></span></a>
<ul class="dropdown-menu">
{# Check if there is a route and some parameters in the request #}
{% if app.request.get('_route') is not empty and app.request.get('_route_params') is not null %}
{# English #}
<a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}">English</a>
{# Russian #}
<a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'ru'})) }}">Russian</a>
{# If there is no route in the request, redirect to the homepage #}
{% else %}
{# English #}
<a href="{{ path('homepage', {'_locale': 'en'}) }}">English</a>
{# Russian #}
<a href="{{ path('homepage', {'_locale': 'ru'}) }}">Russian</a>
{% endif %}
</ul>
</li>