PHP アプリケーションでは、翻訳に gettext を使用しています。次のように初期化されます。
<?php
setlocale(LC_MESSAGES, $locale);
putenv("LANG=$locale");
putenv("LANGUAGE=$locale");
bindtextdomain($domain, $pathToLocales);
textdomain($domain);
これは正常に機能しますが、OS からのエラー メッセージも変換します。ドイツのサイトのエラー ログにName or service not known
表示される代わりに、DNS 解決の失敗を例に挙げます。Der Name oder der Dienst ist nicht bekannt
私はテストケースを要約しました。スクリプトは文字列を変換し、エラーを引き起こしNo such file or directory
ます。このエラーを翻訳したくありません。
オペレーティング システムからのエラー メッセージを変更せずに gettext ロケールを構成する方法はありますか? gettext を他の変換メカニズム (配列、xliff など) に変更したくありません。Windows と mod_php は気にしませんが、ソリューションは php-fpm 5.4 と cli で機能する必要があります。