在ZF2中,我有两种语言英语和中文。每条路线都以以下语言开头:
'about' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => array(
'route' => '/[:lang]/about',
'constraints' => array(
'lang' => '(en|zh)?',
),
'defaults' => array(
'controller' => 'Application\Controller\About',
'action' => 'index',
'lang' => 'en',
),
),
),
我已经使用setTranslator翻译了标签,但我不知道如何在路线中添加语言参数。在我看来,这个问题Translation of URI segments in ZF2
'navigation' => array(
'default' => array(
array(
'label' => 'About',
'route' => 'about',
'class' => 'top-level',
),
),
或者是否有更好的方法来处理此问题,例如将语言预先添加到每个网址How to prepend language to every url in Zend Framework
答案 0 :(得分:1)
通常,导航中有一个params
键来提供路径参数。它必须包含路径中使用的所有值的数组。
例如,对于路线foo[/:bar]
,您可以使用此导航配置:
array(
'label' => 'Foo',
'route' => 'foo-bar',
'params' => array('bar => 'baz'),
),
在您的翻译案例中,提供一个名为params
的{{1}}密钥,而不是一个密钥。
但是,您可能希望使用该语言的route match参数。如果您在语言lang
的页面上,则参数自动为zh
。然后,您可以使用zh
。
use_route_match