2016-07-04 2 views
0

의 MSGID을 보여주는 여기에 내가 PO 편집을 사용하여 모 파일로 컴파일이 PO 파일을 가져 내 messages.po 파일PHP는 gettext를은() 대신 msgstr

# 

msgid "_greet1" 
msgstr "Hello" 

msgid "_greet2" 
msgstr "Bye" 

이고, 나는 번역 코드 내부의 모 파일을 사용할 때 , 나는 msgstr 대신 문자열의 msgid를 보았습니다. gettext에 PHP 문서로 작성된 것과 똑같은 코드를 사용하고 있습니다.

제안 사항 ...

+0

은 gettext를 당신의 번역을 찾을 수 없습니다 것을 의미합니다. 이 디버깅을하면 더 많은 정보가 필요할 것입니다 ... – deceze

+0

파일 경로를 확인했는데 아무 것도 잘못되었습니다. –

+0

유용한 정보가 많지 않습니다. 아무 것도 잘못되지 않으면 "_greet1"대신 "Hello"가 표시됩니다. – deceze

답변

0

동일한 문제가 발생하여 폴더 경로가 잘못되었습니다. 문제의 이유는 'pl_PL.utf8' (소스 코드 및 폴더 이름) 대신 'pl_PL'을 로케일로 사용했기 때문입니다.

솔루션 - UTF-8에 대해 기억 : locale -a : 당신이 자신의 실제 이름은 무엇 무엇 로케일 콘솔

  1. 확인. 코드에서

  2. 를 사용하여 올바른 로케일 이름, 예를 들면 : setlocale(LC_ALL, 'pl_PL.utf8');

  3. 이 폴더의 이름을 변경 : (sudo apt-get install locales-all 경우 당신은 당신이 입력 할 수 있습니다에 관심이 로케일이 없다). *.mo*.po 파일 샘플 폴더에 대한 올바른 경로는 다음과 같습니다 /var/www/project/locale/pl_PL.utf8/LC_MESSAGES