Internationalization 如果不存在,则CakePhp将语言附加到Url

Internationalization 如果不存在,则CakePhp将语言附加到Url,internationalization,routing,Internationalization,Routing,我是CakePHP的新手 我正在尝试将语言附加到URL,以防用户类型: mydomain(点)com/用户 然后Url必须更改为 我正在使用Translate behavior,在我的routes.php文件中,我有: Router::connect('/:lang/:controller/*', array(), array('lang' => '[a-z]{3}')); Router::connect('/:lang/:controller/:action/*', array()

我是CakePHP的新手 我正在尝试将语言附加到URL,以防用户类型: mydomain(点)com/用户

然后Url必须更改为

我正在使用Translate behavior,在我的routes.php文件中,我有:

Router::connect('/:lang/:controller/*', array(), array('lang' => '[a-z]{3}'));   
Router::connect('/:lang/:controller/:action/*', array(), array('lang' => '[a-z]{3}')); 
好的,到目前为止一切都很好。 但是当我在contorllers/AppController.php中尝试附加url时,我得到了一个错误

这就是我的后滤器功能:

if (empty($this->params['lang']) ){
  //Redirect to a language url 
  $this->redirect(array(
  'lang'=> 'eng', 
  'controller' => $this->params['controller'], 
  'action' => $this->params['action'])
); 


}
这是可行的,但当我尝试转到http:/mydomain.com/users/View/4时 在url中,我可以看到http:/mydomain(dot)com/eng/users/View/4 但我在浏览器中看到的是http:/mydomain(dot)com/users/View/

我的问题是:实现我所需要的最好的方法是什么?
有这样做的插件吗?或者我如何在CakePHP中处理这个问题?

问题出在我的router.php中

我有--> 路由器::连接('/:lang/:controller/',array(),array('lang'=>'[a-z]{3}'); 路由器::连接('/:lang/:controller/:action/',array(),array('lang'=>'[a-z]{3}')

正确的方法是------> 路由器::连接('/:lang/:controller/:action/',array(),array('lang'=>'[a-z]{3}');路由器::连接('/:lang/:controller/',array(),array('lang'=>'[a-z]{3}')