Zend framework2 ZF2-带语言的导航路由
在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'
'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参数。如果您在languagezh
页面上,则参数自动为zh
。然后您可以使用使用路径匹配
array(
'label' => 'About',
'route' => 'about',
'use_route_match' => true,
),
array(
'label' => 'About',
'route' => 'about',
'use_route_match' => true,
),