Gestion du multilingue ? [C#.NET] - C#/.NET managed - Programmation
Marsh Posté le 05-10-2006 à 20:23:41
ParadoX a écrit : |
il ne suffit pas de définir la culture courante du thread, il faut aussi mettre les textes à jour via la méthode GetString() de ton ResourceManager.
voici ce qui se passe quand je définis la langue de mon plugin en anglais par exemple :
Code :
|
edit: d'ailleurs je viens de me rendre compte que le paramètre culture de ma fonction UpdateLabels est inutile, il suffirait juste que je définisse la culture du thread dans le handler.
Marsh Posté le 05-10-2006 à 20:39:16
Hm d'après le tuto, j'avais compris ça, mais ... ma question était plutot orientée vers les Textes des Menus. Avec VS2005, on peut renommer les menus avec la GUI (en changeant la prop Language de la form). En faisant ça, il écrit automatiquement le texte en fonction de la langue dans le fichier de ressources.
Maintenant à quoi ça sert si je dois quand meme redéfinir à la main la propriété .Text ? (seulement pour les menus, hein )
Marsh Posté le 05-10-2006 à 20:45:23
faut pas oublié que la propriété "LOCALISABLE" doit etre à true de la fenêtre concerné.
Sinon, je peux te filer une fonction demain qui te traduira tout cela... faut juste que je la retrouve au boulot demain.
Marsh Posté le 05-10-2006 à 20:49:25
moi23372 a écrit : faut pas oublié que la propriété "LOCALISABLE" doit etre à true de la fenêtre concerné. |
Yep, comme montré ds le tuto, j'ai mis localisable à true D'ailleurs, j'imagine qu'il faut le faire pour toutes les forms concernées, non ?
Et sinon, la fonction, je veux bien, mais ... elle traduit quoi en quoi ? ^^
Marsh Posté le 05-10-2006 à 21:37:15
Sinon, une autre solution, c'est de rappeler juste après le changement de culture :
Code :
|
Testé : ça marche.
Par contre, ça réinitialise toute la form, donc si y'a un traîtement en cours ou des modifications effectuées par l'utilisateur bah...
L'intérêt, c'est quand même que t'es sûr d'appliquer la modif à tous les contrôles de la form, sans risque d'en oublier un.
Marsh Posté le 05-10-2006 à 21:43:22
MagicBuzz a écrit : Sinon, une autre solution, c'est de rappeler juste après le changement de culture :
|
Je tente ça demain, merci
Marsh Posté le 05-10-2006 à 22:50:00
J'oubliais : le second intérêt, c'est que tu peux décider d'utiliser des layout / images différents selon la langue.
Par exemple, afficher "ParadoX France" sous forme d'image quant t'es en "fr-fr", "ParadoX US" sous forme d'une autre image, d'une autre taille, pour la version "en-us".
Et surtout, si tu fais une version arabe, tu voudras que la fenêtre soit positionnée de droite à gauche et non l'inverse.
Avec mon système, ça marche "tout seul".
Avec le système d'Harko, ça marche aussi, mais faut appliquer les ressources pour chaque propriété de chaque élément, ce qui peut rapidement s'avérer cauchemardesque.
Marsh Posté le 05-10-2006 à 22:57:07
Yep, c'est pas con du tout
Puis pour ce qui est des modifications perdues lors du changement langue, c'est pas si dramatique que ça, pis c'est toujours mieux que de faire redémarrer l'application à l'utilisateur
Marsh Posté le 05-10-2006 à 16:09:31
Bonjour,
Je suis tombé sur ce tutorial en googlant:
http://morpheus.developpez.com/localisationdotnet/
Cela m'a bien aidé, cependant j'ai encore un probleme: j'ai une appli avec des menus, et je les ai traduits (via la Gui, en changeant la prop "Language" ). Maintenant, j'aimerais faire comme dans le tutorial, cad changer la langue en execution via un element du menu.
J'ai bindé l'action
à cet élément du menu, mais quand je l'actionne, rien ne se passe. C'est surement dû au fait que l'affichage des textes n'est pas mis à jour. Ma question: comment forcer la mise à jour des elements du menu ? Autant pour un Label ou autre chose, le tutorial l'explique, autant la je bloque ^^
Merci d'avance
---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt