私たちはサイトを3言語に翻訳することに決めました。私は今日、Googleと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");
が "iArbete" msgid "Menu"
に変換されますが何が起こっているか "Meny"
に翻訳されていませんか?それは最初の言葉だけが翻訳されるようにとても奇妙に感じます。だから私はpoの単語を再配置し、再コンパイルしましたが、まだ "workIng"は翻訳された唯一の単語ですか?
Googleドライブhereにファイルをアップロードしましたが、誰かが見たいと思っています。
あなたの質問は何ですか? – Juned
なぜ機能しないのですか? – Cirshiss
'bindtextdomain'の直前に' var_dump(__ DIR __) 'を実行すると、' locale'サブディレクトリを含むディレクトリが表示されますか? 'messages.mo'ファイルへの完全なパスは何ですか? – lxg