cakepp由网址选择语言

时间:2010-12-29 00:35:51

标签: php cakephp localization cakephp-1.3

我想要实现的目标在这里描述http://nuts-and-bolts-of-cakephp.com/2008/11/28/cakephp-url-based-language-switching-for-i18n-and-l10n-internationalization-and-localization/ 但是我无法让它发挥作用。

路由器配置如下所示:

Router::connect('/registered/:language/:controller/:action/*',
 array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'),
 array('language' => '[a-z]{3}'));

但是当我尝试去www.example.com/registered/cze/packages时,我得到了:

Error: CzeController could not be found.

我使用的是蛋糕1.3,而不是作为作者的1.2,这可能是问题所在,但是我需要更改什么才能使其工作?

编辑:

$this->Session->write('Config.language','cze');

此代码有效且在控制器中使用时会更改网站的语言,但我需要根据网址进行操作

1 个答案:

答案 0 :(得分:1)

网址www.example.com/registered/cze/packages与路由/registered/:language/:controller/:action/*不匹配,因为:action段为空。因此,URL会进入标准路由,其中​​registered被识别为前缀,cze被识别为控制器。

您还需要创建一条“更短”的/registered/:language/:controller路线来捕捉“缩写”网址。