我正在使用C#在Windows上开发多语言程序
如何在某些操作上更改Windows编写语言...
例如在焦点事件上从英语变为阿拉伯语。
由于
答案 0 :(得分:13)
要选择全新的文化,请将CurrentThread.CurrentCulture
设置为新文化,例如设置为法语:
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("fr-FR");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
您可以找到预定义CultureInfo
个名称here和here的列表。
如果您想要更改默认文化的某些方面,您可以获取当前线程的文化,使用它的名称来创建一个新的CultureInfo实例,并通过一些更改设置线程的新文化,例如更改当前文化以使用“欧元”符号:
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo( System.Threading.Thread.CurrentThread.CurrentCulture.Name);
ci.NumberFormat.CurrencySymbol = "€";
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
答案 1 :(得分:3)
Thread.CurrentThread.CurrentCulture = yournewculture;
另请参阅CurrentUICulture
属性。
答案 2 :(得分:3)
在加载事件中插入以下代码:
InputLanguage.CurrentInputLanguage =
InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR"));
答案 3 :(得分:1)
此外,如果要在运行时刷新所有控件的资源,则需要使用以下内容:
private void RefreshResources(Control ctrl, ComponentResourceManager res)
{
ctrl.SuspendLayout();
res.ApplyResources(ctrl, ctrl.Name, CurrentLocale);
foreach (Control control in ctrl.Controls)
RefreshResources(control, res); // recursion
ctrl.ResumeLayout(false);
}
如果您想要更好的示例,请检查my blog。
答案 4 :(得分:1)
这句话对我有帮助:
string myLanguage = "HE-IL";
InputLanguage.CurrentInputLanguage =
InputLanguage.FromCulture(new System.Globalization.CultureInfo(myLanguage));