Sto lavorando su un'applicazione SL5 con C# e sto cercando di internazionalizzare esso. Ho trovato il seguente per impostare la cultura dell'interfaccia utente:Come impostare Silverlight CurrentUICulture/CurrentCulture correttamente?
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Alcuni controlli come il DatePicker sembrano raccoglierlo. Se formatto qualsiasi datetime utilizzando la stringa di formato 'd', ho comunque il formato predefinito "M/gg/aaaa".
Esattamente come fa SL interpretare la cultura e come posso impostare correttamente per l'intera applicazione?
Grazie
UPDATE:
Trovato la risposta:
Innanzitutto, impostare le colture in Application_Startup:
var culture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
L'elemento chiave è comunque di aggiungere la seguente per forzare il RootVisual cultura/lingua:
0.123.var root = RootVisual as Page;
if (root != null)
{
root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
}
Prima di tutto, grazie per la risposta rapida. In SL5, sembra che non ci sia il metodo 'OverrideMetadata'. CurrentCulture inoltre non contiene una proprietà 'IetfLanguageTag' ... – rumblefx0
Mi hai impostato nella giusta direzione, grazie! – rumblefx0
Sembra che tu abbia risolto il problema. Ho aggiornato la mia risposta con le informazioni che hai trovato. – eandersson