【发布时间】:2017-11-26 19:13:25
【问题描述】:
我尝试编写简单的 C# 项目来测试本地化的工作方式。 我做了这里是怎么写的。
我想我在问题/1142802 中使用了相同的方法。 但它在我的演示项目中不起作用。 我无法解释为什么。 这就是我附上演示项目的原因。
我有两个 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 从加载的资源返回文本。
【问题讨论】:
-
我会在单个资源中添加字符串并以这种方式索引它们 Resource.String1...String3 试试看..
-
不完全清楚为什么。如果有一个处理资源本地化的标准机制,那么为什么不使用它。 2. 一个文件对于想要添加新语言的开发者来说并不方便。
-
那么你需要弄清楚如何访问 3 个不同资源文件中的 1 个。然后做一个简单的谷歌搜索
-
没有代码 自动执行?
-
它如何知道您尝试引用的资源文件...?问问自己..
标签: c# .net winforms localization