Menus multilingues dynamiques
(Multilingual dynamic menus; Mehrsprachige dynamische Menus)
Mots-clés: c#, menu, multilingue, dynamique, instantané.
Keywords: c#, menu, multilingual, dynamic, instantaneous.
Schlagworte: c#, menu, mehrsprachig, dynamisch, augenblicklich.
Pour la plupart des logiciels, il faut choisir la langue lors de son installation.
Dans certains programmes, comme par exemple les convertisseurs de devises (Currency Converter), il peut être intéressant de passer instantanément d'une langue à une autre, y compris dans les menus.
Dans le fichier source "MenuLang.cs" sont définis les classes nécessaires:
- MainMenuLang, dérivée de MainMenu
- MenuItemLang, dérivée de MenuItem
La construction d'un menu multilingue est similaire à la construction classique.
- "MainMono.cs" montre une construction classique.
- "MainLang.cs" montre une extension aux menus multilingues.
Procédé:
1) Remplacer la classe MainMenu du menu principal par
MainMenuLang (dérivée de MainMenu).
Le constructeur définit les langues (et leur nombre);
2) Remplacer la classe MenuItem des éléments de menu sensibles
aux changements de langue par MenuItemLang (dérivée de
MenuItem). Les menus (et sous-menus) peuvent être composés
indifféremment d'éléments MenuItem ou MenuItemLang.
3) A l'aide de la méthode "MainMenuLang.AddLangItemsTo",
ajoutez au menu la liste des langues à séléctionner.
Cette liste peut être ajoutée à n'importe quel endroit du
menu (et même à plusieurs endroits !).
4) A la fin de la construction de menu, il faut déterminer la
langue initiale (MainMenuLang.SelLang = ...).
5) Adaptez la méthode "Form1.Lang_Click" pour effectuer les
changements instantanés du programme.