我正在使用C#开发SL5应用程序,希望对其进行国际化。我找到了以下内容来设置UI区域设置:
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
一些控件,例如DatePicker似乎能够识别此设置。然而,如果我使用“d”格式字符串格式化任何日期时间,仍会得到默认格式“M/dd/yyyy”。
Silverlight如何解释区域性,如何为整个应用程序正确设置它呢?
谢谢。
更新:
找到答案:
首先,在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);
}
OverrideMetadata
方法。CurrentCulture也不包含IetfLanguageTag
属性... - rumblefx0