我正在与C#开发SL5应用程序,我正在寻求国际化。我发现以下设置UI文化:如何正确设置Silverlight CurrentUICulture/CurrentCulture?
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
像DatePicker这样的一些控件似乎会选择它。如果我使用'd'格式字符串格式化任何日期时间,我仍然会得到默认格式“M/dd/yyyy”。
SL究竟如何解释文化,以及如何为整个应用程序正确设置?
感谢
UPDATE:
找到了答案:
首先,设置相应的文化在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);
}
首先,感谢您的快速答复。在SL5中,似乎没有'OverrideMetadata'方法。 CurrentCulture也不包含'IetfLanguageTag'属性... – rumblefx0 2012-02-06 15:18:15
你让我走向正确的方向,谢谢! – rumblefx0 2012-02-06 15:37:48
看起来你已经排序。我用你找到的信息更新了我的答案。 – eandersson 2012-02-06 16:05:13