2015-11-23 2 views
0

В принципе, я хочу, чтобы иметь возможность перенаправить посетителя на текущий эквивалент переведенной страницы с переведенным URL-адресом.Изменить параметр локали в текущем URL-адресе в приложении ZF2

У меня есть как контент, так и перевод url на месте, и все мои маршруты начинаются с параметра :locale.

Как я могу перевести текущий URL?

ex: На странице http://domain.com/fr/actualites Я хочу иметь ссылку, указывающую на http://domain.com/en/news.

ответ

1

Я нашел решение вскоре после того, как задал этот вопрос.

Сначала извлечь текущее название маршрута используется:

<?php 
$sm = $this->getHelperPluginManager()->getServiceLocator(); 
$route = $sm->get('Application')->getMvcEvent()->getRouteMatch()->getMatchedRouteName(); 
?> 

, а затем отобразить URL с :locale паров изменился, прося помощником, чтобы сохранить и перевести текущий Params URL:

<?php echo $this->url($route, ['locale' => 'en'], ['force_canonical' => true, 'locale' => 'en_US'], true) ?> 
  • сначала 'locale' для /en в адресе
  • Второй 'locale' - объявить язык для переводчика маршрута
  • 'force_canonical' => true только здесь, чтобы отобразить полный URL вместо относительного URL.
  • Последний true должен сказать помощник URL, чтобы использовать текущие Params запрос, чтобы собрать URL-адрес
Смежные вопросы