0

.NET WinFormプログラム(C#、. NET 4.5)のカルチャをプログラムで強制することに関する多くの投稿を見つけました。

コードなしで文化を強制する方法はありますか?

4

2 に答える 2

4

Windows 7 での手順 (ダイアログと名前は何度も変更されています):

  • スタート + コントロール パネル
  • 地域と言語をクリックします
  • 「管理」タブをクリックします
  • 「システム ロケールの変更」ボタンをクリックします。
  • 「英語」で始まり、顧客の居住地と一致するロケールの 1 つを選択します。

これ以降に開始するプログラムは、このダイアログで選択した既定のカルチャで初期化され、サテライト アセンブリが実行されます。

コメントで提案されているように、Thread.CurrentThread.CurrentCulture および CurrentUICulture プロパティを変更することは、真の代替ではないことに注意してください。スレッドプール スレッドは、引き続きシステム ロケールに初期化されます。CultureInfo.DefaultThreadCurrentCulture および DefaultThreadCurrentUICulture プロパティの追加により、最終的に .NET 4.5 で修正された非常に厄介な問題です。

多くのネイティブ Windows ダイアログ (MessageBox や OpenFileDialog など) では、オペレーティング システムの言語でテキストが表示されることに注意してください。これらを変更するには、Windows Ultimate のライセンスを購入し、言語パックをインストールする必要があります。MSDN サブスクリプションは、ユーザーが起動するのと同じ言語固有のオペレーティング システムを取得するための良い方法です。

于 2012-09-28T22:01:14.403 に答える
0

うまくいく可能性のあるもう 1 つの奇妙なオプションは、ボット カルチャ設定 (CurrentCulture と CurrentUICulture) を設定するブートストラップ exe を作成し、実際の exe をロードして正しいクラスの Main 関数を呼び出すことです。メインスレッドにカルチャを設定するだけのすべての欠点がありますが、応急処置としては問題ない場合があります。

于 2012-09-28T22:58:22.567 に答える