因此,在顶部导航栏中,用户可以选择一种语言。有用。这是代码: routing.yml中
homepage:
path: /{_locale}
defaults: { _controller: MpShopBundle:Homepage:index, "_locale": "es"}
requirements:
_locale: es|en
树枝:
<li><a href="{{ path('homepage', {'_locale':'en'}) }}">EN</a></li>
<li><a href="{{ path('homepage', {'_locale':'es'}) }}">ES</a></li>
现在出现问题。假设用户将一些产品添加到购物车并访问购物车页面www.domain.com/cart/shopping-cart
。如果他按下其中一个链接,他将被重定向到主索引页面并更改其语言。
如何更改我的代码,以便当用户选择一种语言时,他不会被重定向到新页面,但同一页面会刷新新的语言环境。
例如:
当前页面:www.domain.com/cart/shopping-cart
:www.domain.com/cart/shopping-cart/en
而不是:www.domain.com/en
我的所有网页都在扩展导航栏。所以我需要以某种方式获取当前的URL并将/ en添加到它。
我得到这样的网址:
{% set currentPath = path(app.request.attributes.get('_route'),
app.request.attributes.get('_route_params')) %}
但是如何在树枝中添加/ en部分呢?
答案 0 :(得分:1)
我认为此代码块可以回答您的问题:
<a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}">English</a>