【发布时间】:2012-02-06 14:58:36
【问题描述】:
我正在使用 C# 开发一个 SL5 应用程序,并且希望将其国际化。我发现以下设置 UI 文化:
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
像 DatePicker 这样的一些控件似乎可以解决这个问题。如果我使用“d”格式字符串格式化任何日期时间,我仍然会得到默认格式“M/dd/yyyy”。
SL 究竟如何解释文化以及如何为整个应用程序正确设置它?
谢谢
更新:
找到答案:
首先,在 Application_Startup 中设置适当的文化:
var culture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
然而,关键元素是添加以下内容以强制 RootVisual 的文化/语言:
var root = RootVisual as Page;
if (root != null)
{
root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
}
【问题讨论】:
标签: c# .net silverlight localization cultureinfo