Je trouves que les commandes de la bibliothèque Preference() se prêtent bien à cette manipulation. ça t'évite d'avoir X fichiers langues.
Sauvegarde le fichier avant de le compiler
Code : Tout sélectionner
;Création du fichier langue que tu peux faire à part
If CreatePreferences(GetCurrentDirectory()+"lng.prefs")
PreferenceGroup("FR")
WritePreferenceString("WELCOME", "Bonjour")
WritePreferenceString("ABOUT", "A Propos")
PreferenceGroup("UK")
WritePreferenceString("WELCOME", "Welcome")
WritePreferenceString("ABOUT", "About")
ClosePreferences()
EndIf
; Dans ton programme
OpenPreferences(GetCurrentDirectory()+"lng.prefs")
; Si l'utilisateur choisit le français
PreferenceGroup("FR")
Welcome$ = ReadPreferenceString("WELCOME", "Bonjour")
About$ = ReadPreferenceString("ABOUT", "A Propos")
Debug Welcome$
Debug About$
; Si l'utilisateur choisit l'anglais
PreferenceGroup("UK")
Welcome$ = ReadPreferenceString("WELCOME", "Welcome")
About$ = ReadPreferenceString("ABOUT", "About")
Debug Welcome$
Debug About$
ClosePreferences()
Le ReadPreferenceString offre la sécurité d'afficher la traduction au cas ou le fichier langue soit effacée par mesgardes.
Pour tester, vire le fichier lng.prefs et commente la partie CreatePreferences()
Quand au choix pour choisir sa langue, je préfère un petit buttongadgetimage avec le drapeau
Pour ce qui est d'un seule exe pour les 2 versions, hormis la bidouille en include binary de la version 32bits qui engloberait la version 64bits si l'os est 64bits, je ne vois pas trop mais ça reviendrait à faire un setup..