1

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 で機能する必要があります。

4

1 に答える 1

-1

「システム応答用 (PHP が libintl でコンパイルされている場合に使用可能)」という手段を使用しています。LC_MESSAGESたとえば、このオプションを無視しようとしますsetlocale(LC_ALL ^ LC_MESSAGES, $locale)

http://www.php.net/manual/en/function.setlocale.php

于 2013-06-18T13:18:54.827 に答える