cs_zemzemi
Messages postés11Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention30 mars 2010
-
18 janv. 2010 à 11:59
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 2017
-
18 janv. 2010 à 16:51
Bonjour,
Je suis en train de développer une application WindowsForms dont sa partie Interface Utilisateur (UI) a été créé à partir d'un fichier XML. Donc tous les composants graphique (Label, TextFeuild, ComboBox....) sont créés dynamiquement.
Je cherche comment séparer le texte affiché de l'application afin que l'application soit indépendante des langues, et que donc quand on modifie la langue, l'application ne soit pas recompilée à chaque fois.
Dans le web j'ai trouvé quelque exemple qui parle de la localisation pour des interfaces graphiques statiques il regroupe tous ".Text" dans une méthode UpdateUI() et après chaque changement de langue on fait appel à cette méthode mais dans notre cas sa ne marche pas car on ne sait pas d'avance les éléments de notre interface.
Quelqu'un pourrait-il me dire comment je pourrais faire pour changer la langue de l'interface.
merci d'avance.
cordialement.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 18 janv. 2010 à 16:51
Bonjour
Difficile de trouver une solution facile a mettre en oeuvre,
le multi langage porte sur 2 ensembles:
1-les textes fixes d'une application (labels, menus ...)
2-les textes venant du traitement des données
dans le premier cas, comme tes composants sont définis dans un XML tu peux y définir une regle de syntaxe pour les textes, préfixés avec le langage par exemple, ou utiliser un lien vers un fichier de messages.
ex: <object Type=label, Name=Label1, Text=[fr-fr]ceci est un label[en-en]This is a label>
ou <object Type=label, Name=Label1, Text=@Text1> dans ce cas Text1 serait une clef du fichier de langue.
Dans le 2eme cas c'est plus compliqué, et cela dépend de l'application, je n'ai pas de solution toute faite.