Localisation des StringFormat

Sur une application WPF, la culture de l’application s’aligne automatiquement sur celle de l’OS. Cependant, ce n’est pas le cas pour le paramètre StringFormat des Bindings. Pour palier le problème, il suffit surcharger la méthode OnStartup dans le fichier App.xaml.cs :
protected override void OnStartup(StartupEventArgs e)
{
 FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
 new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
 
 base.OnStartup(e);
}

De cette façon, la langue utilisée sera celle définie par la culture de l’application. Si vous souhaitez aussi forcer la culture de l’application, il faut modifier un peu la méthode précédente:
protected override void OnStartup(StartupEventArgs e)
{
 Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
 Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
 
 FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
 new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
 
 base.OnStartup(e);
}

Voila pour la localisation des StringFormat dans les fichiers .xaml.
A+ et bon code.

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :

Twitter Facebook Google Plus email

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *