2010-07-02 5 views
0

내 현지화 파일 (와 .po) 나는 기본 언어를 변경하면 작동하지만 나는 경로가 작동 할 수 없습니다, 여기에 내가 기압있어 무엇 : domain.com/fr/login, 케이크가 "fr"컨트롤러를 찾고 있습니다. 나는 언어 사이를 전환 할 수의 AppController으로, beforeFilter에서이 기능을 사용하고CakePHP의 현지화 노선

:

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']; 
      } 
     } 
    } 

건배,
니콜라스.

답변

3

로그인 컨트롤러가 없습니다. 따라서 하단 경로가 일치하지 않으므로 Cake는 fr 컨트롤러를 찾아 기본값을 시도합니다. 마지막 경로를 일치합니다 - 두 번째 경로

/FR/사용자/로그인을 일치합니다 -

/로그인 : 당신이 그들을 예상대로

경로는 상호 작용하지 않습니다.

/fr/login - 지능적으로 두 경로를 "병합"하지 않습니다. 이러한 경로를 명시 적으로 만들어야합니다.

+0

설명해 주셔서 감사합니다. 다음은 내가 추가 한 작업 규칙입니다 :'Router :: connect ('/ : lang/login/*', array(), array ('lang'=> 'en | fr', 'controller'=> 'users' 'action'=> 'login'));' – Nicolas