【问题标题】:zend redirect in different language不同语言的zend重定向
【发布时间】:2014-05-12 07:49:14
【问题描述】:
使用 Zend Framework,我有一个名为 my_action 的动作和两种语言 en 和 de,所以调用是这样的:
- /en/my_action/my_english_parameteres
- /de/mein_handeln/mein_deutsch_parameter
我怎样才能更改 routes.ini,所以,每当有人浏览时:
- /de/mein_handeln/mein_deutsch_parameter
自动重定向:
- /en/my_action/my_english_parameteres
这可以在 routes.ini 中或使用一些 preDispatch() 操作来完成吗?
提前谢谢你!
【问题讨论】:
标签:
php
zend-framework
routing
【解决方案1】:
如果您使用 Zend_Translate 和自定义路由,那么路由器可以为您翻译路由。
$router = Zend_Controller_Front::getInstance()->getRouter();
$routes['account'] = new Zend_Controller_Router_Route(
'/@myaccount/@settings',
array(
'module' => 'user',
'controller' => 'index',
'action' => 'account',
));
$router->addRoutes($routes);
在路径中的名称前使用“@”会导致路由器搜索转换。现在您可以创建类似$this->url(array(), 'account') 的链接,它会将其翻译成正确的语言(如果找不到myaccount/settings,则地址将保持不变)