プログラムを別の言語で使用できるようにしようとしています。language_en という名前のリソース ファイルがあります。
実行時に、language_en の各文字列の値を変更したいと考えています。
language_en のすべての文字列とフォーム上のコントロールを保持する .ini ファイルを作成しました。ロード中にそのファイルを使用すると、コントロールのテキストを簡単に変更できます。例: 「Yes」から「Ja」までの Button1 のテキスト。
リソースファイルは読み取り専用であるため、同じことはできません。私ができる 1 つの方法は、言語ごとに複数のリソース ファイルを作成することです。ただし、.ini ファイル内ですべて実行できるようにしたいと考えています。
私はこのようなことを試みていました:
ResourceSet RSet = English.ResourceManager.GetResourceSet(
CultureInfo.CurrentCulture, true, true);
foreach (DictionaryEntry Entry in RSet)
{
Entry.Value = ?
}
しかし、反復中にコレクションを変更しようとしているだけでなく、値が読み取り専用であるため、明らかに機能しません。
誰でも私が取ることができるアプローチを知っていますか?
PS Application.CultureInfo はどこで定義すればよいですか? InitializeComponent()の前?