Windows で WAMP サーバーを使用し、テスト プロジェクトを作成します。これらのファイルが Web サイト フォルダーにあります。
C:\wamp\www\project\locale\ar_EG\LC_MESSAGES\messages.po C:\wamp\www\project\locale\en_US\LC_MESSAGES\messages.po
以下はPHPコードです:
$language="en_US";
$encoding = "UTF-8";
putenv("LANG=".$language);
setlocale(LC_ALL,$language);
$domain="messages"; // name of PO file
bindtextdomain($domain,"Locale");
bind_textdomain_codeset($domain, $encoding);
textdomain($domain);
echo gettext("name");
上記のコードは正常に動作しています。に置き換えようとするとen_US、ar_EGの翻訳も表示され、フォルダーen_USを削除して再試行すると、 notが表示されます。en_USmsgidmsgstr
setlocale検索したところ、Windows プラットフォームに問題があることがわかりましたが、Windows で実行するには解決策が必要です。