2012-07-24 2 views
0

제대로 현지화해야하지만 항상 휴대용 객체 템플릿을 수동으로 만드는 행위는 지루합니다.PHP에서 초기 .pot 파일 만들기를 어떻게 실행합니까?

<?php 
exec("xgettext -d templates/base -s -j -o default.pot templates/base/view.php", $output); 
?> 

아무것도하지 않고, 내가 명령 줄에서 실제로 항목과 default.pot 파일을 채우는 실행할 때 발견 :

이 코드 조각이 왜 는

사람은 말해 줄 수 있습니까?

답변

3

이 같은 문제는 대부분 경로로 인한 것입니다. 사용자 php/apache가 시스템에서 실행될 때 (일반적으로 'nobody'또는 'www-data') PATH 환경 변수가 설정되어 있지 않을 가능성이 높습니다. 그렇다면 xgettext이 포함 된 경로가 없을 것입니다. 그 변수가 설정되어 있지 않으면 그 명령을 실행할 때 bash (그 사용자로서)는 바이너리를 찾을 수 없습니다.

이 문제를 확인하는 가장 좋은 방법은 xgettext의 전체 경로에 넣는 것입니다.이 경우 경로를 얻고 하드 코드를 작성하기 위해 which xgettext을 bash에서 실행할 수 있다는 것을 모릅니다. 작동하는 경우 경로를 그대로 두거나 코드를 이식 할 수 있어야하는 경우 apache 사용자의 PATH 환경 변수에 경로를 추가하는 등의 다른 해결책을 찾아야합니다.

+0

감사합니다. 해결했습니다. –