2011-11-03 2 views
1

gettext를 사용하는 웹 사이트를 개발하고 있습니다. 모든 것은 지역에서 훌륭하게 작동합니다. 하지만 오늘은 프로덕션 서버에 내 웹 사이트를 업로드했으며 gettext는 더 이상 작동하지 않습니다. 사용하려는 언어는 fr_FR 및 en_US입니다. gettext 번역 할 일 내 웹 사이트를 프랑스어로 표시하지만 영어는 아무 것도 아닙니다. 내 데비안 서버에 -a 로케일을 실행하면get text PHP5가 데비안에서 작동하지 않습니다.

, 내가 얻을 :

C 
fr_FR.utf8 
POSIX 

나는 프랑스어 해요 그래서 모든 것을 정상이라고 생각합니다. 하지만 내가 할 때 : locale-gen en_US 또는 locale-gen en_US.UTF-8 그리고 locale -a 다시 변경 사항이 없습니다. ! 그게 정상인가요?

다음은 PHP 코드 샘플입니다. 그러나 gettext 이후 프랑스어 언어에 대한 작동, 나는 문제가 여기에 없다고 생각합니다.

$langage = 'en_US.utf8'; 
putenv("LC_ALL=$langage"); 
setlocale(LC_ALL, $langage); 

$languageFileName = "default"; // locale/en_US/LC_MESSAGES/default.mo 
bindtextdomain($languageFileName, PATH.'/locale'); 
bind_textdomain_codeset($languageFileName, 'UTF-8'); 
textdomain($languageFileName); 

미리 도움을 청하십시오.

답변

4

글쎄, 내 문제에 대한 해결책을 찾았습니다. /etc/locale.gen 파일을 편집하고 gettext와 함께 사용하고자하는 언어의 주석 처리를 제거합니다. 그런 다음 로켈-을 실행했습니다. 그게 다야!

아직 이해가 안되는 이유 locale-gen en_US.UTF-8 같은 일을하지 않았습니다. debian 6 Squeeze를 사용하고 있습니다.

+0

정확히 같은 문제가 발생했습니다 :'en_US' 로켈이 빠졌고'locale-gen en_US.UTF-8'이 저에게 잘 돌아갔습니다. – Tim

0

PHP 확장 프로그램 php_gettext에 필요합니다.

+0

자세히 설명해 주시겠습니까? 내 phpinfo 있음, 내가 가지고 : GetText 지원 - "사용. 이게 네가 말하는거야 ? –

+0

예. 그것이 해결책이 될지도 모른다. –

관련 문제