Zend framework2 ZF2-带语言的导航路由

Zend framework2 ZF2-带语言的导航路由,zend-framework2,zend-navigation,zend-translate,Zend Framework2,Zend Navigation,Zend Translate,在ZF2中,我有两种语言:英语和汉语。每一条路线都从以下语言开始: 'about' => array( 'type' => 'Zend\Mvc\Router\Http\Segment', 'options' => array( 'route' => '/[:lang]/about', 'constraints' => array( 'lang'

在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翻译了标签,但我不知道如何向路由添加语言参数。在我看来,这似乎是个问题


或者是否有更好的方法来处理此问题,例如,向每个url添加前置语言,就像这样

一般来说,导航中有一个
params
键来提供路由参数。它必须包含路由中使用的所有值的数组

例如,对于路线
foo[/:bar]
,您可以使用以下导航配置:

array(
    'label'  => 'Foo',
    'route'  => 'foo-bar',
    'params' => array('bar => 'baz'),
),
在翻译案例中,提供一个名为
lang
params
键,将使用多个键

但是,您可能希望使用语言的route match参数。如果您在language
zh
页面上,则参数自动为
zh
。然后您可以使用
使用路径匹配

array(
    'label' => 'About',
    'route' => 'about',
    'use_route_match' => true,
),
array(
    'label' => 'About',
    'route' => 'about',
    'use_route_match' => true,
),