2011-11-20 5 views
1

모든 _('gettext') 함수 호출에 대한 스크립트를 새 PoEdit 카탈로그로 스캔하려고 시도했습니다.PoEdit .PO 생성 오류

Filename.class.php:11: warning: Although being used in a format string position, the msgid is not a valid PHP format string. Reason: In the directive number 1, the character '"' is not a valid conversion specifier.

Filename.class.php는, 라인 (11)은 다음과 같습니다 : 파일을 구문 분석 후에이 오류가 표시

throw new fatalException(sprintf(_('The chosen directory "%" does not exist.'), $dir));

.MO 파일이 아직 생성하지만 번역 된 텍스트 사이트에 나타납니다. 대신 _('gettext')에 대한 호출 안의 원본 텍스트가 표시됩니다. 이 문제가 될 가능성이 있습니까? 아니면 번역이 작동하지 않는 또 다른 이유 (예 : setlocale() 정보가 잘못 되었습니까?)가 있습니까? 아무도 위의 오류 메시지가 의미하는 것을 말해 줄 수 있습니까?

PHP 5.3.8 및 Apache 2.2.17을 사용하여 내 localhost의 WAMP Server 2.1에서 Windows를 실행 중입니다.

감사합니다. 예외 메시지가 % 다음은 s이 없었다

답변

1
나는이를 그리워 않았다 어떻게

는 ... 그래서

가의 라인 (11)을 교체 ... 대신 변환 지정자로 이중 인용했다 아래의 코드가있는 문제가있는 파일이 문제를 해결했습니다.

throw new fatalException(sprintf(_('The chosen directory "%s" does not exist.'), $dir));

나는 아직 번역 된 텍스트 문제가 다른 곳에 보인다 그렇게 표시 얻을 수 없습니다. 나중에 다른 질문을 게시 할 수 있습니다 ...

+0

이제 msgid가 변경되었으므로 .po, .mo를 업데이트하고 웹 서버를 다시 시작 했습니까? – dsas

+0

@dsas 예, 모두 완료되었습니다. 파일을 생성 할 때/Apache를 다시 시작할 때 오류가보고되지 않습니다. – Pete171

+0

또한'setlocale()'함수를 검사했는데 false를 반환하지 않습니다. Gettext 확장 기능이 활성화되었습니다 ... – Pete171

1

또한 인용 부호를 백 슬래시 앞에 붙여서 이스케이프해야합니까?