직장에서 우리 사이트를 3 개의 추가 언어로 번역하기로 결정했으며이를 수행하는 방법을 조사했습니다. 나는 하루의 더 나은 부분을 구글과 stackoverflow 검색, 모든 다른 솔루션을 시도했지만 내가 그것을 작동하게 만들 수 없습니다 보냈습니다.Windows 7 홈 및 PHP 7.0.8에서 gettext를 사용한 국제화 실패
Windows 7 Home edition (내 개발 컴퓨터)에서는 불가능하다고 두려워하기 시작합니다.
// C:\Apache24\htdocs\locale\en_GB\LC_MESSAGES\messages.mo
// C:\Apache24\htdocs\locale\en_GB\LC_MESSAGES\messages.po
msgid ""
msgstr ""
"Project-Id-Version: iArbete 1.0.0\n"
"Report-Msgid-Bugs-To: ******** \n"
"Last-Translator: ********\n"
"Language: en_GB\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "iArbete"
msgstr "workIng"
// C:\Apache24\htdocs\index.php
if(isset($_GET["locale"]))
{
$locale = $_GET["locale"];
}
else
{
$locale = 'en_GB';
}
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
echo getenv("LC_ALL");
$domain = 'messages';
bindtextdomain($domain, './locale');
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
echo _("iArbete");
echo _("iArbete");
"workIng"으로 번역해야하지만 그렇지 않습니다. 또는 나는 개념을 얻지 않고 있냐?
--- 추가 정보 ----------------------------------------- ---------------
mo 파일을 약간 변경하고 다시 컴파일 했으므로 이제 어떻게 보입니까?
// C:\Apache24\htdocs\locale\en_GB\LC_MESSAGES\messages.mo
// C:\Apache24\htdocs\locale\en_GB\LC_MESSAGES\messages.po
msgid ""
msgstr ""
"Project-Id-Version: iArbete 1.0.0\n"
"Report-Msgid-Bugs-To: ******** \n"
"Last-Translator: ********\n"
"Language: en_GB\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "workIng"
msgstr "iArbete"
msgid "Menu"
msgstr "Meny"
// C:\Apache24\htdocs\index.php
if(isset($_GET["locale"]))
{
$locale = $_GET["locale"];
}
else
{
$locale = 'sv_SE';
$locale = 'en_GB';
// $locale = 'ar_AE';
}
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
// echo getenv("LC_ALL");
$domain = 'messages';
bindtextdomain($domain, './locale');
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
echo _("workIng");
echo _("Menu");
msgid "workIng"
은 msgid "Menu"
는 "Meny"로 변환되지 않습니다 "iArbete" 로 번역
무슨 일입니까? 첫 번째 단어 만 번역 될 정도로 이상하게 느껴집니다. 그래서 나는 po에있는 단어를 재정렬하고 다시 컴파일했지만 여전히 "workIng"은 번역 된 유일한 단어입니까 ??
Google 드라이브 here에 누군가 내 파일을 업로드하고 싶습니다.
질문은 무엇입니까 sections 1.4 and 1.5? – Juned
왜 작동하지 않습니까? – Cirshiss
'bindtextdomain' 바로 전에'var_dump (__ DIR __)'을 수행하면,'locale' 서브 디렉토리가있는 디렉토리가 보여 집니까? 'messages.mo' 파일의 전체 경로는 무엇입니까? – lxg