6

ローカリゼーションと言語のプロパティを使用して、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")));

何か案は?

4

1 に答える 1