Итак, в верхней панели навигации пользователь может выбрать язык. Оно работает. Это код: routing.ymlSymfony2 обновляет ту же страницу с другой локалью
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.
Я получаю URL вроде этого:
{% set currentPath = path(app.request.attributes.get('_route'),
app.request.attributes.get('_route_params')) %}
Но как я могу добавить/ан участие в веточке?
Вы проверили эту ссылку http://stackoverflow.com/questions/22086755/symfony2-use-default-locale-in-routing-one-url-for-one-language? – Robert
Это не то, что я ищу. – Dominykas55