ローカリゼーションと言語のプロパティを使用して、Form1 を翻訳しました。
Form1_Load イベント内で、ラベル、ボタンなどのテキストを設定したい...
private void Form1_Load(object sender, EventArgs e)
{
SetLanguage();
}
SetLanguage メソッド:
private void SetLanguage()
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("de");
System.Resources.ResourceManager rm = new System.Resources.ResourceManager(typeof(Form1));
button1.Text = rm.GetString("button1.Text");
linkLabel1.Text = rm.GetString("linkLabel1.Text");
checkBox1.Text = rm.GetString("checkBox1.Text");
}
しかし、それは機能していません。常に「デフォルト/フォールバック」の英語の文字列を選択しています(ただし、de CultureInfo が設定されています)。何が悪いのかまったくわかりません...新しいサンプルアプリケーションで同じコードを使用しましたが、この小さなサンプルアプリケーション内で機能しました。しかし、私の実際のアプリケーションでは機能しません。
また、ressourcemanager に、使用する Culture を明示的に伝えると、ドイツ語ではなく英語の文字列が返されます。
MessageBox.Show(rm.GetString("button1.Text", new System.Globalization.CultureInfo("de")));
何か案は?