2012-04-10 4 views
3

cakePHP 2.0을 사용하고 콘솔 도구를 사용하여 .../app/locale/default.pot을 만듭니다. 이제 사이트를 여러 언어로 번역하고 싶습니다. cakephp 요리 책 (http://book.cakephp.org/1.2/en/view/162/Internationalizing-Your-Application)에서 국제화에 관한 단락을 읽었습니다..pot 파일을 .pot 파일에서 가져 오는 방법

나는

  • .../응용 프로그램/로케일/영어/LC_MESSAGES/default.pot
  • .../응용 프로그램/로케일/FRE/LC_MESSAGES/기본에 default.pot 파일을 복사합니다. 냄비
  • .../응용 프로그램/로케일/폴/LC_MESSAGES/default.pot
  • ...

그리고 (의 gedit 등) UTF-8 텍스트 편집기로 tranalations 문자열을 입력합니다. 그리고 ... 내 사이트는 전혀 번역되지 않습니다.

AppController는 Configure :: write ('Config.language', some_three_letters_language)를 변경하기위한 코드를 구현할 수 있습니다. 구성이 변경되지 않았으므로 몇 가지 간단한 코드를 구현했습니다.

// in AppController 
public function beforeFilter() { 
     Configure::write('Config.language', 'fre'); 
} 

이유는 번역 기능은 항상 (__ 뷰에 ('뭔가') -answers-> '뭔가')이 인수 및 .POT 파일하지 번역 된 문자열을 반환합니까?

.pot 파일이 .po 파일로 변환되지 않았습니다. REHL 또는 CentOS (이름에 po 또는 poeditor와 함께 적합한 패킷을 가져올 수 없음)와 함께 어떻게 .po 파일을 가져올 수 있습니까?

답변 해 주셔서 감사합니다.

답변

8

.pot 및 .po 파일은 동일한 파일 형식입니다. .pot는 "PO 템플릿"의 약자입니다. 차이점은이 템플릿 파일을 사용하여 번역자에게 제공해야하며, 번역자는 번역 된 .po 파일을 생성합니다. .pot 파일은 여러 현지화 된 .po 파일의 템플릿입니다. http://www.gnu.org/software/gettext/manual/gettext.html#Files을 참조하십시오.

즉, .po를 .po로 변경하면됩니다.
적절한 gettext 워크 플로에는이 작업을위한 msginit 도구가 있으며, 선택한 로케일의 올바른 값으로 헤더를 설정합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 fre/RC_MESSAGES/default.pot를 default.po로 이름을 바꿨다. 그러나 이것은 문제를 해결하지 못했다. –

+1

"RC_MESSAGES"? 'LC_MESSAGES' 여야합니다. – deceze

+0

예, 죄송합니다. 변경했습니다. .po 파일의 유효성을 검사하는 방법을 알고 있습니까? –