0

VB.NET プロジェクトに "strings.resx" という文字列リソース ファイルがあり、埋め込みリソースとして定義されています。と呼ばれる別のファイルがstrings.es.resxあり、スペイン語の同じ文字列がすべて含まれています。次のコードを使用して、実行時にリソースをロードしています。

MyStrings = New ResourceManager("myprog.strings", GetType(MainForm).Assembly)

Windows で言語ロケールを Espanol に設定して再度ログインしましたが、上記を実行すると英語の文字列リソースが読み込まれます。Windows ロケールが ES の場合、スペイン語のリソースをロードするにはどうすればよいですか? 私はそれが自動的に処理されることを期待していました。

4

2 に答える 2

1

プロパティを見てみましょSystem.Threading.Thread.CurrentThread.CurrentUICultureう。en-US に固定される傾向があります。

である場合は、 と同じに設定してみてくださいCurrentCulture

アップデート

それがうまくいかなかったので、アプリケーションの出力フォルダーにフォルダーがありes、その中にstrings.resources.dllというdllがあることを確認してください。そうでない場合、基本的に、リソース マネージャーはカルチャ固有の文字列リソースを見つけていません。そこにないためです。その場合、それらをコピーすると機能するはずです。

于 2011-02-11T13:25:50.780 に答える
0

免責事項-これはすべてメモリからのものであり、100%正確ではない可能性があります:-)

.NETリソースは、を使用してロードされThread.CurrentUICultureます(コードでリソースをロードするときに明示的にオーバーライドしない限り)。Thread.CurrentUICultureWindowsのインストールで使用されるUI言語によって設定され、変更することはできません。これは、コントロールパネルで設定されていると同じではなく、Thread.CurrentCultureいつでも変更できます。

たとえば、私のPCでは、それが私がいる場所であるためにCurrentCulture戻りますが、MicrosoftがWindowsの英語バージョンを1つしか提供していないために戻ります。"en-GB"CurrentUICulture"en-US"

于 2011-02-11T13:35:56.250 に答える