【发布时间】:2013-09-09 09:05:29
【问题描述】:
我正在尝试让我的程序以不同的语言使用。 我有一个名为 language_en 的资源文件。
在运行时,我想更改 language_en 中每个字符串的值。
我创建了 .ini 文件,其中包含 language_en 中的所有字符串以及表单上的控件。在加载过程中使用该文件,我可以轻松更改控件的文本。如:Button1 的文本从“是”到“Ja”。
我不能对资源文件做同样的事情,因为它是只读的。我知道我可以做的一种方法是为每种语言创建多个资源文件。但是,我希望能够在 .ini 文件中完成所有操作。
我正在尝试这样的事情:
ResourceSet RSet = English.ResourceManager.GetResourceSet(
CultureInfo.CurrentCulture, true, true);
foreach (DictionaryEntry Entry in RSet)
{
Entry.Value = ?
}
但显然它不起作用,不仅因为我试图在迭代期间修改集合,而且因为该值是只读的。
有人知道我可以采取什么方法吗?
附:我应该在哪里定义我的 Application.CultureInfo?在 InitializeComponent() 之前?
【问题讨论】:
-
只为每种语言提供不同的资源文件有什么问题?
-
我创建了一个程序,可以让用户将英语翻译成他们自己的母语。该程序以 .ini 格式生成所有内容。我只想使用该文件,而不必创建不同的资源文件。我有 70 多个字符串。
标签: c# winforms visual-studio-2010 multilingual