我正在與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