2009-10-28 3 views
1

다음 코드를 사용하여 .mo 번역을로드하려고하는데 작동하지 않습니다. 나는 PHP gettext ext 있습니다. 내 phpinfo()에서 사용 가능하며 필요한 모든 로케일이 설치됩니다. 나는 무엇이 있 었는가? 아파치 스레드가 재생 될 때까지Gettext, not displayed

$locale = "en_US"; 

putenv("LC_ALL=$locale"); 

setlocale(LC_ALL, $locale); 

bindtextdomain("messages", "./locale"); 
textdomain("messages"); 

내 .mo 파일이

답변

2

아파치 스레드가 .mo 파일을로드 ./locale/en_US/messages.mo에 위치하고 있으며, 그것을 다시로드하지 않습니다. 따라서 .mo 파일을 업데이트하고 php가 새로운 .mo 파일을 사용하는지 확인하려면 실제로 apache를 다시 시작하거나 mo 파일에 다른 이름을 사용해야합니다.

어쨌든 LANG 환경 변수를 설정합니다.

+0

그게 무슨 뜻 이니? : $ language = 'en US.UTF-8'; putenv ("LANG = $ language"); sudo /etc/init.d/apache2 reload로 아파치를 다시로드하려고 시도했지만 해결하지 못했습니다. – Roch

+0

@mnml : 다시로드하지는 않지만 아파치를 다시 시작하십시오. 즉, sudo /etc/init.d/apache2 restart – Residuum

+0

@Residuum : 방금 시도했으나 아직 수행하지 않습니다. – Roch

0

상대 경로 대신 절대 경로가되도록 경로를 변경해야 할 수도 있습니다.