【问题标题】:Symfony2 refreshing the same page with a different localeSymfony2 用不同的语言环境刷新同一页面
【发布时间】:2015-07-09 12:19:46
【问题描述】:

因此,用户可以在顶部导航栏中选择一种语言。有用。这是代码: 路由.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')) %}

但是如何在 twig 中添加 /en 部分?

【问题讨论】:

标签: php jquery symfony


【解决方案1】:

我认为这个代码块回答了你的问题:

&lt;a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}"&gt;English&lt;/a&gt;

取自this StackOverflow question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    相关资源
    最近更新 更多