2017-04-23 7 views
0

이 gettext 기능을 사용하여 내 웹 사이트에 지역화 기능을 추가하려고했습니다. 제가 webdev가 아니라는 것을 명심하십시오.이 분야는 제게 알려지지 않았습니다. 몇 가지 자습서를 따른 후에 확장을 설치하고 php.ini에서 활성화했습니다. 또한 .po 파일을 만들 때 PoEdit을 사용하고 있습니다. 내 PHP 코드는 다음과 같습니다 PHP - Windows 10 및 xamp 서버에서 gettext() 사용

<?php 
$language = "en_US"; 
putenv("LC_ALL={$locale}"); 

$domain = 'messages'; 
bindtextdomain($domain, './locale'); 
bind_textdomain_codeset($domain, 'UTF-8'); 
textdomain($domain); 
?> 

그럼 내가 같이 호출 : 나의 이해로

<p class="welcome"><?=_('welcome');?></p> 

는 "_"는 gettext의 방법에 대한 alieas입니다 간다. 둘 다 작동하지 않는 것 같습니다. 메시지와 .po 파일은 다음과 같습니다 : 아무리 내가 표시되고있는 문자열이 열쇠가 될 것으로 보인다 및 않는 것을

enter image description here

을 :

msgid "" 
msgstr "" 
"Project-Id-Version: \n" 
"POT-Creation-Date: 2017-04-23 11:27+0300\n" 
"PO-Revision-Date: 2017-04-23 11:36+0300\n" 
"Language-Team: \n" 
"MIME-Version: 1.0\n" 
"Content-Type: text/plain; charset=UTF-8\n" 
"Content-Transfer-Encoding: 8bit\n" 
"X-Generator: Poedit 2.0.1\n" 
"X-Poedit-Basepath: ../../..\n" 
"Plural-Forms: nplurals=2; plural=(n != 1);\n" 
"Last-Translator: \n" 
"Language: en\n" 
"X-Poedit-SearchPath-0: index.php\n" 

#: index.php:63 
msgid "welcome" 
msgstr "Welcome" 

#: index.php:64 
msgid "to-leadersplay" 
msgstr "to Leadersplay" 

내 디렉토리 구조는 다음과 같습니다 없다 파일의 번역이 아닙니다. 나의 현재의 예에서 나는 환영받을 그러나 나는

답변

0

나는 문제가

$language = "en_US"; 
putenv("LC_ALL={$locale}"); 

대신

$locale = "en_US"; 
putenv("LC_ALL={$locale}"); 

해야한다고 생각합니다 (대문자 W로)에 오신 것을 환영받을 것으로 기대합니다.

이 변경 이후 스 니펫이 나를 위해 잘 작동하기 때문에.

+0

이것은 코드를 복사하는 실수였습니다. 나는 그것을 실제로 그렇게 시도했다. 내 호스팅 제공 업체에서 코드를 테스트하면 제대로 작동하는 것 같아서 IDE를 연결 했으므로 여기에 파일을 게시 할 것입니다. Cant는 localhost에서 작동하도록 만듭니다. –

+0

올바른 디렉토리를'bindtextdomain'에 넣었는지 확인하십시오. – akond