gettext가 작동하지 않는 것 같습니다.PHP : 문맥 문제
저는 MAMP Pro를 사용 중이며 phpinfo();
은 gettext가 활성화되었다고 말합니다.
- 내 문자열과 같은 내 코드에 선언이 :
_('test string');
가 그럼 난 내messages.po
파일을 생성xgettest -L PHP test.php
을 달렸다.- poedit에이 파일을 열고 내 문자열을 번역 한 다음
messages.mo
파일을 만든 파일을 저장했습니다.$lang = $_SESSION['lang']; // available to all views that include this file
:putenv('LC_ALL='.$lang);
- 내가 모두
.po
및.mo
파일을 가져다가 (이 경우, 내 번역 스페인어했다) 내 코드에서 [webroot]/locale/es/LC_MESSAGES/
로 이동, 나는 다음을 설정bindtextdomain('messages','./locale');
textdomain('messages');
...
$_SESSION['lang']
en
과es
사이를 쉽게 전환 할 수 있습니다.내 페이지를 새로 고침 한 다음
es
으로 전환하는 링크를 클릭합니다.하지만 내 문자열은 스페인어 버전이 아닌 영어 버전으로 표시됩니다.en
으로 전환하면 변경 사항이 표시되지 않습니다. 그것은 항상 영어 버전입니다.
어디서나 오류 메시지가 표시되지 않으므로이 문제가 발생하는 이유는 무엇인지 알 수 없습니다. 아무도 나에게 약간의 안내/도움을 줄 수 있습니까? 내가 뭐 놓친 거 없니?
"es"를 하드 코드하면 i18n 또는 세션 혼란에 문제가 있다는 것을 알 수 있습니다. –
또는 영어 번역을 수정하십시오. – erenon
"es"하드 코드 된 효과는 변경되지 않습니다. – neezer