0
我的本地化文件(的.po),如果我更改默认的语言工作,但我不能让路由的工作,这里就是我有个大气压:CakePHP的本土化路线
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
Router::connect('/login/*', array('controller' => 'users', 'action' => 'login'));
Router::connect('/logout/*', array('controller' => 'users', 'action' => 'logout'));
Router::connect('/register/*', array('controller' => 'users', 'action' => 'register'));
Router::connect('/:lang/:controller/:action/*', array('lang' => 'en'), array('lang' => 'en|fr'));
但是当我尝试:domain.com/fr/login
,蛋糕正在寻找“fr”控制器。
我使用的AppController的beforeFilter此功能,语言之间进行切换:
function setLanguage() {
if(!isset($this->params['lang']))
{
$this->params['lang'] = 'en';
}
$lang = $this->params['lang'];
App::import('Core', 'i18n');
$I18n =& I18n::getInstance();
$I18n->l10n->get($lang);
foreach (Configure::read('Config.languages') as $lang => $locale)
{
if($lang == $this->params['lang'])
{
$this->params['locale'] = $locale['locale'];
}
}
}
干杯,
尼古拉斯。
感谢您的解释。这是我添加的工作规则:'Router :: connect('/:lang/login/*',array(),array('lang'=>'en | fr','controller'=>'users' 'action'=>'login'));' – Nicolas 2010-07-02 09:09:56