リソースもカルチャー設定を。


 .NET Frameworkで多言語対応にしているのだが、フォームやリソースがうまく切り替わらなかったり、ニュートラルカルチャーがうまく機能しなかったり、特定カルチャーを作ったが切り替わらずコピーしたらうまく動作したり、うまくいく時といかない時の違いがよくわからなかったりするのだが、その話はおいといて。

 強制的にカルチャーを変えたりする場合、

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("なんか");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

 とかしたりするのだが、その時忘れがちなのがリソースのカルチャー。
 これも発生する要因がよくわからないのだが、リソースが「既定値」とかで出たりする時がある。
 そのようなことがないように、最初に、

Properties.Resources.Culture = Thread.CurrentThread.CurrentCulture;

 を入れておくと良い。とりあえず現在のスレッドと同じにするということだ。

 本当はOSの設定できちんと切り替われば良いのだが、うまくいかない場合があったのでメモ。

 カルチャーを表示させたらちゃんとOSの設定通りなのに、実際の表示は「既定値」になることがある。

 わからない。

 これって、.NET Framework 4にでも全面的に移行すれば解決するのだろうか?
 今は、.NET Framework 2.0で作成できるコードしか書いていないが。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック