Wie setzt Silverlight CurrentUICulture/CurrentCulture richtig?
Arbeite ich an einem SL5-app mit C# und ich bin auf der Suche internationalisieren es. Ich fand Folgendes ein, um die UI-Kultur:
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Einige Steuerelemente, wie Datumsauswahl scheinen für das abholen. Wenn ich das format datetime mit dem 'd' format-string, bekomme ich noch das Standard-format "M/dd/yyyy" allerdings.
Genau wie funktioniert SL interpret Kultur, und wie kann ich einstellen, dass es korrekt für die gesamte Anwendung?
Dank
UPDATE:
Fand die Antwort:
Zuerst, legen Sie die entsprechenden Kulturen in die Application_Startup:
var culture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Das zentrale element aber ist es, fügen Sie den folgenden zu zwingen, die RootVisual Kultur/Sprache:
var root = RootVisual as Page;
if (root != null)
{
root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit: Aktualisiert mit der information, dass @Rumble gefunden.
Müssen Sie es tun, wie dieses anwenden, um Ihre UI-Objekte.
Stellen Sie zuerst den entsprechenden Kulturen, wenn Ihre Anwendung laden.
Nächstes müssen Sie die XML-Sprache-Eigenschaft.
Für Silverlight
Für WPF
Finden Sie eine Erklärung für WPF hier.
OverrideMetadata
Methode. CurrentCulture auch nicht enthaltenIetfLanguageTag
Eigenschaft...Dank eandersson
Ich kam mit dieser Erweiterung für bestimmte Steuerelemente.
Ich hatte ein problem mit meinem dezimal-Eingabe, - Analyse und-Validierung. Irgendwo in der Art gab es diese InvariantCulture mit '.' als Trennzeichen anstelle von ','.
Es kann leicht modifiziert, um spezifische Kultur.
In Xaml: