2009-07-11 7 views
1

MessageBoxの表示に関する問題が(私にとっては)存在します。多言語の.Netアプリケーションのテキストとボタンの間の言語の混在

私のアプリは多言語(英語/ドイツ語)です。

言語が英語のウィンドウでテストしています。 アプリをドイツ語に設定するとうまくいきますが、MessageBoxを表示すると複数の言語が混在して表示されます。メッセージはドイツ語(リソースファイル経由)で、メッセージボックスのボタンの言語は英語(Ja Neinの代わりにYes No)です。私のクライアントは、ドイツ語版のWindows版のみを使用し、ドイツ語では反対の問題 - >ボタンを、英語では(メッセージボックス)のテキストを英語で使用したい場合は英語で表示できます。

.NET言語パックはこれらの競合を解決できますか?手段 - >この言語混在を避けるために.NET言語パックをインストールする。

message box http://img401.imageshack.us/img401/1914/dlglang.jpg

答えて

4

.NET言語はパックは、OS要素(当然!)のテキストには影響しません。 Win32 MessageBox関数を使用するため、WinFormsメッセージボックスのボタンのテキストには影響しません。つまり、クライアントにドイツ語版のWindowsがある場合、そのボタンなどのすべてのストックUI要素は、ドイツ語版になります。彼がVistaを持っていれば、余分な言語パックを買うことができますが、その時でさえ、いつでもただ1人だけが(特定のアプリケーションではなく)ユーザーのためにアクティブになることができます。

あなたのクライアントは、彼が英語のWindowsバージョンを使用している、またはあなたがボタンのラベルを自分で定義し、独自のメッセージボックスをコーディングする必要があるのいずれか、その後、英語のみでアプリケーションを使用したい場合。

0

この問題は現在、私にとっては低い優先度です。 別の試みは次のようになります。

http://www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx

をSystem.Windows.Forms.MessageBox.Showの使用の代わりSystem.Windows.MessageBox.Show

誰かがすでにCodeProjectのから、このプロジェクトで発生している場合:返信してください:)