Pracuję nad aplikacją SL5 z C# i zamierzam ją umiędzynarodowić. Znalazłem następujące ustawienia, aby ustawić kulturę interfejsu użytkownika:Jak poprawnie ustawić Silverlight CurrentUICulture/CurrentCulture?
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Niektóre kontrolki, takie jak DatePicker, wydają się to odbierać. Jeśli sformatuję dowolną datę i godzinę za pomocą ciągu formatu "d", nadal otrzymuję domyślny format "M/dd/rrrr".
Dokładnie, w jaki sposób SL interpretuje kulturę i jak ustawić ją poprawnie dla całej aplikacji?
Dzięki
UPDATE:
znalazł odpowiedź:
Przede wszystkim należy ustawić odpowiednie kultur w Application_Startup:
var culture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Kluczowym elementem jest jednak, aby Dodaj następujące elementy, aby wymusić kulturę/język programu RootVisual:
var root = RootVisual as Page;
if (root != null)
{
root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
}
Przede wszystkim, dzięki za szybką odpowiedź. W SL5 wydaje się, że nie ma metody "OverrideMetadata". CurrentCulture również nie zawiera własności 'IetfLanguageTag' ... – rumblefx0
Wyruszyłeś we właściwym kierunku, dzięki! – rumblefx0
Wygląda na to, że masz to posortowane. Zaktualizowałem swoją odpowiedź, podając znalezione informacje. – eandersson