Localisation d'une application Windows Forms

Signaler
Messages postés
11
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
30 mars 2010
-
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
-
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.

1 réponse

Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
29
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.

C# is amazing, enjoy it!