用不同的语言重定向

时间:2014-04-01 13:34:45

标签: php zend-framework routing

使用 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()动作?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果您正在使用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,则地址将保持不变)