我想要实现的目标在这里描述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');
此代码有效且在控制器中使用时会更改网站的语言,但我需要根据网址进行操作
答案 0 :(得分:1)
网址www.example.com/registered/cze/packages
与路由/registered/:language/:controller/:action/*
不匹配,因为:action
段为空。因此,URL会进入标准路由,其中registered
被识别为前缀,cze
被识别为控制器。
您还需要创建一条“更短”的/registered/:language/:controller
路线来捕捉“缩写”网址。