Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

StringFormat se joue de votre culture !

[new:30/03/2011]Silverlight 4 a introduit le paramètre StringFormat dans la syntaxe du Binding. C’est une excellente chose et supprime le besoin de développer un convertisseur pour la moindre mise en forme de données. Toutefois il y a un petit bug... StringFormat ignore la culture de l’utilisateur et en bon ricain qu’il est, il considère que tout le monde parle la langue des cowboys...

On aime bien les cowboys

On les aime bien, c’est un fait, sinon leurs films, leurs musiques et même leur hamburgers ne se vendraient pas comme des ... petits pains dans notre joli pays à la culture millénaire...

L’utilisateur cette bête étrange

Mais l’utilisateur, cette animal étrange que certains disent avoir déjà vu (info ou intox ? légendes urbaines ? Les témoignages sont-ils fiables ?) semble avoir des gouts pour le moins paradoxaux... S’il se jette sur le premier IPhone venu, s’il déjeune le midi en se “régalant” d’un big Mac (il y a une astuce ou pas ?), s’il se gave de streaming d’Avatar en écoutant le top 50 chanté en langue Hollywood (pour le chewing-gum qu’ils ont dans la bouche en parlant certainement), l’utilisateur, entité pourtant pensante (mais aucun article là dessus n’a été publié dans une revue scientifique à comité de lecture, restons méfiant donc) ne supporte pas un seul instant que ne serait-ce qu’un bout de texte apparaisse en anglais sur son écran !

Il est soudain pris de convulsions, on parle même d’une forme d’œdème du visage entrainant, certainement par mauvaise oxygénation du cerveau, l’émission non contrôlée de quelques jurons gaulois. “Fascinating” aurait dit M. Spock en prenant connaissance de ce comportement terrien.

Drôle de bestiaux quand même... Certainement qu’il est plus facile de se gaver de hamburgers et de musique made in USA que d’apprendre la langue. Le français a une réputation de feignant peut-être méritée, allez savoir...

L’informaticien ce coupable !

Forcément coupable puisque complice de l’anti-France, la fameuse sous-culture-américaine-qui ne-vaut-rien, disent-ils la bouche pleine de Cheeseburger et les oreillettes de leur IPod crachant à fond la rétrospective de Mickael Jackson...

C’est donc forcément lui, en bout de course, qui se fera remonter les bretelles (expression idiote, puisqu’à part Harold Hyman sur BFM TV, personne ne porte plus de bretelles depuis la dernière guerre – remarquons qu’il est américain le bougre, si c’est pas une preuve !).

La solution !

Bon, je vais vous la donner, mais lorsque vous allez voir la longueur de la chose vous allez comprendre pourquoi j’ai un peu brodé autour du sujet !

Le plus simple pour régler la question est ainsi d’ajouter dans le constructeur de toutes les Vues d’une application (on ne sait jamais où on utilisera un StringFormat en Xaml) :

this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);

Voilà... A noter que XmlLanguage se trouve dans le namespace System.Windows.Markup qu’il faut ajouter (soit en using, soit avec un point devant XmlLanguage...).

Conclusion

Il fallait un peu d’humour pour habiller cette “ruse” qui permet de contourner ce léger bug de StringFormat tant le sujet est peu passionnant en lui-même et la solution d’une brièveté déconcertante.

J’ai encore sauvé quelques informaticiens de la fusillades... Mais ne me remerciez pas, les utilisateurs trouveront bien d’autres raisons pour vous maudire ! Sourire

blog comments powered by Disqus