0

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

'navigation' => array(
        'default' => array(
            array(
                'label' => 'About',
                'route' => 'about',
                'class' => 'top-level',
            ),
         ),

或者有没有更好的方法来处理这个问题,例如将语言添加到每个 url 像这样如何在 Zend Framework 中将语言添加到每个 url

4

1 回答 1

1

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

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

array(
    'label'  => 'Foo',
    'route'  => 'foo-bar',
    'params' => array('bar => 'baz'),
),

在您的翻译案例中,提供一个params名为的密钥lang,然后将使用一个。

但是,您可能希望对语言使用路由匹配参数。如果您在语言页面上,zh则参数为自动zh。然后你可以使用use_route_match.

array(
    'label' => 'About',
    'route' => 'about',
    'use_route_match' => true,
),
于 2013-06-17T07:14:11.720 回答