基本上,我希望能够将访问者重定向到与翻译后的URL等效的当前翻译页面。
我已经准备好了内容和url转换,并且我的所有路由都以:locale
参数开始。
如何翻译当前URL?
例如:在页面上http://domain.com/fr/actualites我想要一个指向http://domain.com/en/news.
我在提出这个问题后不久就找到了解决方案。
首先检索当前使用的路由名称:
<?php
$sm = $this->getHelperPluginManager()->getServiceLocator();
$route = $sm->get('Application')->getMvcEvent()->getRouteMatch()->getMatchedRouteName();
?>
然后显示更改了:locale
参数的URL,同时要求助手保留并翻译当前URL参数:
<?php echo $this->url($route, ['locale' => 'en'], ['force_canonical' => true, 'locale' => 'en_US'], true) ?>
- 第一个
'locale'
用于url中的/en
- 第二个
'locale'
是声明用于路由翻译器的语言 'force_canonical' => true
在此仅显示完整URL,而不是相对URL- 最后一个
true
是告诉URL助手使用当前请求参数来组装URL