この謎を解決するには助けが必要です: 私は Windows マシンで XAMPP を使用しており、"echo _("message")" 方法を使用してヘブライ語に翻訳しています。ロケール ディレクトリはオンですroot/locale/Hebrew_Israel.1255/LC_MESSAGES
翻訳は、サイトのルートにある index.php ファイルで正常に機能します。
ただし、/php ディレクトリにある別の php ファイルでは翻訳が機能しません。相対パスの問題が原因であると推測できますが、ルートに配置しても変換に失敗します。
Locale がどのように機能し、これらすべての行が何を意味するのかわかりません。適切なドキュメントが見つかりませんでした。PHPごとに実行するか、1回だけ実行する必要がありますか?
とにかく、これは各phpファイルの前に含める私の「config.php」ファイルです。パスは絶対パスです。
// language stuff:
$locale = "Hebrew_Israel.1255"; // this might change on server
$domain = "messages";
putenv("LANG=$locale");
putenv("LANGUAGE=$locale");
putenv("LC_ALL={$locale}"); // Returns TRUE
putenv("LC_MESSAGES=$locale");
setlocale(LC_ALL, $locale);
$path = $_SERVER['DOCUMENT_ROOT'] . "/locale";
bindtextdomain($domain, $path);
textdomain($domain);