2
CakePHP의 국제화에 관한 모든 게시물을 읽었으며 아무 것도 저에게 효과가없는 것 같습니다. CakePHP 2.5.1을 사용하고 있습니다. 설정에서CakePHP 국제화가 작동하지 않습니다.
/bootstrap.php :
컨트롤러에서//Default language
Configure::write('Config.language', 'spa');
/AppController.php :
이public $components = array('Session', 'DebugKit.Toolbar');
public function beforeFilter()
{
//Set the UI lang preference
if($this->Session->check('Config.language'))
{
Configure::write('Config.language', $this->Session->read('Config.language'));
}
}
내 파일 구조가 그래서입니다 :
/Locale/
- default.mo
- default.po
- default.pot
- eng/LC_MESSAGES/
- default.mo
- default.po
내가 가진 링크에 그러한 전망 :
내 사용자 컨트롤러는이와 함께 다음을 수행합니다
public function lang($which)
{
if($which == "en")
{
$this->Session->write('Config.language', 'eng');
} elseif($which == "es")
{
$this->Session->write('Config.language', 'spa');
} else
{
$this->Session->setFlash(_('Unknown language.'), 'flash_red');
}
$this->redirect('/');
}
내가 링크 (EN 또는 ES), 페이지를 다시로드의 클릭하지만 일반 텍스트를 표시합니다.
내가 누락 될 수있는 실마리가 있습니까? 또는 Cake 핵심 코드에서 디버깅을 시작할 위치에 대한 팁이 있습니까?
PD. 오류 로그에 아무 것도 표시되지 않습니다.
감사합니다.
첫 번째 단계에서 캐시 ('/ app/tmp/cache /')를 삭제하십시오. – ndm
1) 기본 언어에 대해 "Config.language"라는 구성 변수가 없도록 config/bootstrap.php를 변경하십시오. Configure :: write ('Config.defaultLanguage', 'spa'); 2) 컨트롤러/AppController.php 변경 if ($ this-> Session-> check ('Config.language')) {Configure :: write ('Config.language', $ this-> Session-> read/config/tmp/cache/config에서 모든 파일을 지우십시오. (config.language '))}}}} persistent /*.* 4) po 파일의 유효성을 확인하거나 poedit을 사용하십시오. 5) 디버그 키트를 사용하고 세션 값을 따릅니다. –
@ndm 캐시를 삭제하려고 시도했지만 수정되지 않았습니다. – Sandy