Bonjour,
perplexe ?
Je vais essayer d'expliquer...
Peu importe la manière dont le choix est fait ou modifié :
Si l'utilisateur choisi le français nous dirons mavariable CHOIX = 0
Si l'utilisateur choisi l'anglais nous dirons mavariable CHOIX = 1
Si l'utilisateur choisi le chinois nous dirons mavariable CHOIX = 2
La variable CHOIX est déclarée dans Module1 en tête de module avant toute macro :
Public CHOIX as Byte
Déclarée Publique cette variable est accessible en tout point de l'application (y compris depuis un USF)
Private Sub CommandButton1_Click()
CHOIX = 0
End Sub
Private Sub CommandButton2_Click()
CHOIX = 1
End Sub
La totalité des MsgBox est géré par une fonction (à paramètre) : cMsg
Pour le reste la confection du programme ne s'intéresse pas à la langue choisie.
Situation 1 :
MsgBox cMsg(1)
Situation 2 :
MsgBox cMsg(2)
Et la Function cMsg() renvoie le string en Français ou en anglais selon le CHOIX
Code :
- Function cMsg(i%) As String
- i = i + CHOIX * 100
- Select Case i
- Case 1: r = "1er message en francais"
- Case 2: r = "2àme message en français"
- Case 101: r = "1st English msg"
- Case 102: r = "2nd English msg"
- Case 201: r = "Je ne connais pas le chinois !"
- Case 202: r = "2ème msg en chinois..."
- End Select
- cMsg = r
- End Function
|
Remarquer la première ligne :
i = i + CHOIX * 100
Cette ligne s'occupe de la traduction éventuelle selon une équivalence facile à gérer.
Nota : si les msg sont nombreux on écrira :
i = i + CHOIX * 1000 ( ou 10000... )
Non, non c'est pas de l'ironie car :
Nota2 : Cette fonction permet aussi de gérer toute l'application :
Si d'entrée de jeux l'utilisateur à choisi l'Anglais, vous pouvez choisir de traduire le texte (String) de vos Formulaires ou de vos feuilles de calcul dans sa langue !
Dans certains cas celà peut se révéler interressant.
A+