【发布时间】:2011-07-21 02:28:59
【问题描述】:
我有英文 Windows 版本,目前无法调试,但我正在本地化俄语和英语两种语言的应用程序。
据我了解,App 构造函数中的以下代码应该足够了:
if (Language == Language.Russian) {
Thread.CurrentThread.CurrentCulture = RUSSIAN_CULTURE;
Thread.CurrentThread.CurrentUICulture = RUSSIAN_CULTURE;
}
else {
Thread.CurrentThread.CurrentCulture = ENGLISH_CULTURE;
Thread.CurrentThread.CurrentUICulture = ENGLISH_CULTURE;
}
Cultures 对象是正确的文化(ru-RU,en-US)。
但是,当应用程序在俄语窗口上运行时,if 会被忽略,并且只使用俄语字符串。
请注意,语言更改在我的机器上完全正确(在 windows 中)
【问题讨论】:
-
有时仅在当前线程上设置语言是不够的,导致某些控件(又名 DataGrid)不尊重此值。您还应该像这样设置 UserControls 的 Language 属性 this.Language = System.Windows.Markup.XmlLanguage.GetLanguage(System.Threading.Thread.CurrentThread.CurrentCulture.Name);
-
如果应用程序的某些部分是 rus,其他 eng。这可能是问题所在。但我相信像 TextBlock 这样简单的控件尊重应该尊重 Thread.CultureInfo 吗?当应用程序在 ru windows 上运行时,没有显示任何英文内容的控件示例..
标签: .net wpf silverlight silverlight-4.0 localization