簡體   English   中英

Symfony2使用不同的語言環境刷新同一頁面

[英]Symfony2 refreshing the same page with a different locale

因此,用戶可以在頂部導航欄中選擇一種語言。 有用。 這是代碼: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

我所有的頁面都在擴展導航欄。 因此,我需要以某種方式獲取當前網址並將/ en添加到其中。

我得到這樣的網址:

{% set currentPath = path(app.request.attributes.get('_route'),
                     app.request.attributes.get('_route_params')) %}

但是,如何在樹枝中添加/ en部分?

我認為此代碼塊可以回答您的問題:

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

取自這個StackOverflow問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM