utiliser plusieurs langues dans un programme

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
YvesRossignol
Messages : 133
Inscription : lun. 28/mars/2016 19:09

utiliser plusieurs langues dans un programme

Message par YvesRossignol »

Bonjour, un ami (Paul) m'a montré comment, avec quelques commandes, utiliser le français dans mes messages, textes, etc de mon programme. Je voudrais pouvoir avoir le français et l'anglais... j'ai les deux fichiers *.lang mais je me demande :

1- comment dire au compilateur que j'ai deux fichiers langues
2- comment faire choisir l'utilisateur la langue qu'il veut:
2.1 par menu
2.2 par check box
2.3 autres méthodes

il en est de même pour la version car je voudrais avoir un seul executable (je pense que c'est impossible) et que l'utilisateur choisi le 32 bits ou le 6 bits... ça je sais le faire avec inno setup. mais je m'informe...

voici la partie de code qui appelle le fichier lang.

Code : Tout sélectionner

; Build_Language("welds_french.Lang")
Yves

j'ai d'autres questions mais je vais faire un thread par question.
Yves Rossignol
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: utiliser plusieurs langues dans un programme

Message par JohnJohnsonSHERMAN »

Une solution consiste à charger au démarrage du programme un fichier contenant tous les textes et messages dans une certaine langue. Pour une autre langue il faut faire un autre fichier.
Il suffit de mettre une liste de tout les textes, un fichier JSON conviendra parfaitement, de plus c'est nativement supporté par PB. :)
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: utiliser plusieurs langues dans un programme

Message par Ar-S »

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..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre