语言切换而不改变当前页面

sef*_*rov 12 symfony

我在一个多语言的Symfony2项目中使用twig进行模板化.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>
Run Code Online (Sandbox Code Playgroud)

Wai*_*... 35

你可以用路由参数.get('_route_params')合并你想要的locale他们:

<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>
Run Code Online (Sandbox Code Playgroud)