À des fins de test, j'essaie de localiser une application fictive, afin de voir ce qui correspond le mieux à nos besoins.Problème de localisation WPF
Je voulais essayer WPF Localization Extension.
Je:
- créé une nouvelle application WPF ensemble, a créé une fenêtre principale.
- Ajout des références à l'extension de localisation WPF via nugget.
- Créé un resx nommé
Localization.resx
et unLocalization.fr.resx
- I ajoutés dans les deux ResX un texte pour la touche « WelcomeText ».
Dans les fenêtres principales, je mets:
xmlns:lex="http://wpflocalizeextension.codeplex.com" lex:LocalizeDictionary.DesignCulture="en" lex:ResxLocalizationProvider.DefaultAssembly="LocalizedApplication" lex:ResxLocalizationProvider.DefaultDictionary="Localization"
Dans la déclaration de fenêtre
J'ai ajouté un
TextBlock
dans la grille:<TextBlock Text="{lex:Loc WelcomeText}" />
Si je lance l'application, J'ai le texte affiché en anglais.
Maintenant, j'ajouter ce qui suit dans le constructeur App.cs:
public App():base()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture;
CultureInfo.DefaultThreadCurrentCulture = Thread.CurrentThread.CurrentUICulture;
CultureInfo.DefaultThreadCurrentUICulture = Thread.CurrentThread.CurrentUICulture;
}
Pour tester l'application en FR. Je reconstruis et redémarre, mais je reçois toujours le message en anglais.
Alors d'abord: Qu'est-ce que j'ai fait de mal? Puis: Comment changer la culture actuelle au moment de l'exécution?