bonjour,
j'essaye de rendre un service windows (écrit en C# 2.0) multi langue. J'y arrive très bien avec une application web ou winform, mais pas du tout avec un service windows. J'utilise des fichiers .resx bien entendu, avec un resource manager.
Par exemple j'ai ma classe Toto.cs qui a des ressources incorporés toto.en.resx, toto.fr.resx, et toto.resx.
Quoique je fasse, seul toto.resx est utilisé. (alors qu'en winform classique, le meme code marche parfaitement et appelle le bon fichier .resx)
c'est normal ou j'ai oublié un truc ?
Dans le OnStart du service, je force la culture :
et ensuite soit j'appelle directement la ressource :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CultureInfo v_currentCulture = new CultureInfo("fr-FR"); if (v_currentCulture != null) { System.Threading.Thread.CurrentThread.CurrentUICulture = v_currentCulture; if (!v_currentCulture.IsNeutralCulture) System.Threading.Thread.CurrentThread.CurrentCulture = v_currentCulture; }
soit je laisse l'appli trouver tout seul.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RscManager.GetString("MonTexteLocalise", CurrentCulture);
edit : sous le debuggeur, je confirme que la culture du thread est celle que je veux. Je ne comprends pas qu'il aille toujours chercher dans le .resx et pas le .fr.resx ou .en.resx![]()
Partager