我尝试编写简单的C#项目来测试本地化的工作方式。 我做了这里的写作。
我想我在问题/ 1142802中使用相同的内容。 但它在我的演示项目中不起作用。 我无法解释原因。 这就是我附上Demo项目的原因。
我有两个FRA和RUS语言的资源文件。
尝试使用下一个代码切换语言
private void rbFra_Click(object sender, EventArgs e)
{
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("fr-Fr");
Thread.CurrentThread.CurrentUICulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = cultureInfo;
textBox1.Text = Properties.Resources.String1;
}
private void rgEng_Click(object sender, EventArgs e)
{
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = cultureInfo;
textBox1.Text = Properties.Resources.String1;
}
private void rbRus_Click(object sender, EventArgs e)
{
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ru-RU");
Thread.CurrentThread.CurrentUICulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = cultureInfo;
textBox1.Text = Properties.Resources.String1;
}
但结果总是用英语。
我认为Thread.CurrentThread.CurrentUICulture = ...应强制重新加载资源文件,String1从加载的资源返回文本。
这是DemoProject How to use localization in C#