Menus multilingues dynamiques

Description

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.

Conclusion :


Le zip comporte:

L'article complet (avec sources): "Article_MenuLang.rtf"

Microsoft Visual C# 2008 Express: dossier "MenuLang"
Solution "MenuLang" avec les projets:
MenuMono: Méthode habituelle: menus à une seule langue
MenuLang: Avec menus multilingues

------

Solution simple et élégante de créer des programmes vraiment multilingues.

W. Voirol, Switzerland

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.