C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

多言語化でリソース切り替え

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■92918 / inTopicNo.1)  多言語化でリソース切り替え
  
□投稿者/ じょこびっち (20回)-(2019/11/08(Fri) 13:53:18)

分類:[C#] 

2019/11/08(Fri) 14:01:32 編集(投稿者)

ToolStripMenuItem内で英語の項目をクリックすると言語が切り替えるようにしたいです。
FormのLanguageを英語にしてリソースを作りましたがクリックしてもフォームが切り替わりません。下記だけじゃダメなのでしょうか?
private void 英語ToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
}

よろしくお願いします。
引用返信 編集キー/
■92920 / inTopicNo.2)  Re[1]: 多言語化でリソース切り替え
□投稿者/ 774RR (747回)-(2019/11/08(Fri) 15:39:20)
CurrentCulture と CurrentUICulture は別物っす。
CurrentCulture は金とか日付とかの変更で、
Form のテキストなどを切り替えるのは CurrentUICulture のほう。
でも既に作られ済み Form (= 各種 Control) が自動で勝手に作り変えられることはないっす。

オイラは実行中に動的に切り替えるのはやったことないっす。
実行中に全コントロールを再ロードとか怖くてできない。
起動時に英語を指定とか日本語を指定とかなら多国語対応のデバッグ目的でいつもやってるけど。


引用返信 編集キー/
■92922 / inTopicNo.3)  Re[2]: 多言語化でリソース切り替え
□投稿者/ じょこびっち (21回)-(2019/11/08(Fri) 16:10:37)
No92920 (774RR さん) に返信
> CurrentCulture と CurrentUICulture は別物っす。
> CurrentCulture は金とか日付とかの変更で、
> Form のテキストなどを切り替えるのは CurrentUICulture のほう。
> でも既に作られ済み Form (= 各種 Control) が自動で勝手に作り変えられることはないっす。

なるほど!
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
に変更してForm起動時に入れてみたらちゃんと英語になりました。
起動時に言語選択の方が安全そうですね。
774RRさんありがとうございました。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ