2014-04-01 51 views
0

使用Zend框架,我有一个动作叫my_action和两种语言,中文和德,所以调用是这样的:Zend的重定向不同的语言

  • /EN/my_action/my_english_parameteres
  • /德/ mein_handeln/mein_deutsch_parameter

我怎样才能改变routes.ini所以,每当有人在浏览:

  • /德/ mein_handeln/mein_deutsch_parameter

在这个自动重定向:

  • /EN/my_action/my_english_parameteres

可这在routes.ini或使用完成一些preDispatch()动作?

预先感谢您!

回答

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那么地址将保持不变)