34

win32/.net 例外メッセージを表示するときに、アプリケーションで常に英語を使用するにはどうすればよいですか?

次のメッセージが表示されました。誰かがこれを翻訳するために babelfish を使用したようです (スウェーデン語です)。

非常に役に立たず、Google にはなんと 4 件のヒットがありましたが、どれも役に立ちませんでした。そのため、元のメッセージが何であるかを推測し、それをグーグルで検索する必要があります。(それは、「サイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。」)

今回は、元のエラー メッセージが何であるかを見つけるのは非常に簡単でした。最初から英語のメッセージがあれば、もちろん時間を節約できます。

では、どうすればいいですか?

4

5 に答える 5

10

Thread.CurrentThread.CurrentUICultureおよび/または.CurrentCultureを設定してみてくださいCultureInfo("en-US")

于 2008-10-13T09:50:22.113 に答える
5

例外が翻訳されるべきではない理由はなおさらです (ひどく)。例外をログに記録するときは、単一​​の言語で行う方がはるかに理にかなっています。MicrosoftがUICulture以外にこれを行う方法を考えていなかったとは信じられません.UICultureは基本的にオプションではありません:(

于 2008-12-18T08:15:58.797 に答える
2

ASP.NETアプリケーションの場合は、web.config(*)でUI言語を設定できます。

<system.web>
    <globalization ... uiCulture="en-US" ... />
</system.web>

他のアプリケーションの場合、現在のユーザーの地域設定がデフォルトで使用され、明示的にオーバーライドする必要があります(例:Thread.CurrentUICulture = new CultureInfo( "en-US"))。

(*)警告-構成ファイルのエラーにより、要素が処理される前に例外がスローされる場合は、デフォルトのuiCultureを取得します。

于 2008-10-13T11:06:19.883 に答える
2

例外を強制的に別の言語で表示するのは、ユーザーにとっては少し厳しいように思えます... メッセージと共にエラー コードを表示できますか? その後、ユーザーは理解できるものを取得し、翻訳されたバージョンのエラー コードを調べることができます。

私は.netの人ではないので、これが可能かどうかはわかりません。単なるアイデアです。

于 2008-10-13T11:50:15.380 に答える
0

win32/.net 例外メッセージを表示するときに、アプリケーションで常に英語を使用するにはどうすればよいですか?

まず、win32/.net 例外メッセージをユーザーに表示しないでください。例外をユーザーに表示するのではなく、例外を処理する必要があります。

デフォルトでは、例外メッセージは現在の UI 言語で表示されます (適切な言語パックがインストールされている場合、それ以外の場合は英語にフォールバックします)。Thread.CurrentThread.CurrentUICultureプロパティを変更して例外メッセージを変更できますが、アプリの GUI 全体に影響します。

于 2008-10-13T12:39:15.220 に答える