Changement de langue

Signaler
Messages postés
13
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
26 juin 2008
-
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
-
Bonjour, je développe actuellement un logiciel en C++ et je doit le fournir dans différentes langues (anglais, francais, espagnol, allemand). Comment faire pour changer dynamiquement la langue du logiciel à partir de l'item d'un menu par exemple ?

En plus claire, je veux que tout ce qui est écrit en francais passe en anglais lorsque je sélectionne l'item "Anglais"

D'avance, Merci

12 réponses


ouais c'était juste pour l'exemple mais dans le programme faut mettre des noms plus explicite......
Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
2
Salut, tu peux par exemple stocker toutes les chaines de caractères dans un fichier, chaque fichier traitant une langue.. mais ca risque de prendre un peu de temps..
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
ça risque effectivement de prendre du temps , mais bon la solution me parait bien .
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Tu peux mettre, en dur, tes chaines de caractères dans un ou plusieurs tableaux. Le changement de langue se fait alors par simple changement d'indice du tableau. La solution la plus connue reste l'utilisation des chaines sous forme de ressources dans ton exécutable. Dans les deux cas le changement de langue se fait de manière instantanée.

Je t'explique commet j'aurais fait en m'inspirant de la plupart des programmes:

Disons pour simplifié ton programme a 4 menu, tu fais alors 4 char:
char menu un[10];   char menu deux[10];   
char menu trois[10];    char menu quatre[10];

Au debut tu logiciel tu demandes la langue.
dison que le logiciel propose 2 langue: Francais et Anglais.

Si l'utilisateur sélectionne l'Anglais le programme initialise les char précédant à partir du fichier English.txt dans lequel on trouve: 

menu un=Files
menu deux=Edit   
menu trois=Tools
menu quatre=Help
END

et le fichier French.txt il contient :

menu un=Fichier
menu deux=Edition   
menu trois=Outils
menu quatre=Aide
END

Au debut c'est long de creer la fonction qui extrait les mots du fichier texte langue pour les mettre dans les char approprier.
Mais une fois cela fait on peut rajouté à la volé des tats de langues sans modification
( sauf le menu du debut qui doit proposé une langue suplémentaire)
MaLaDeDeDe 97one 
Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
2
perso je mettrais pas le menu un=, mais l'idée reste la meme ^^
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Perso l'idée de racpp mais plait plus , plus rapide. Il suffit d'une varaible indice en et hop quand on change de langue on change la variable de l'indice c'est mieu je pense.
Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
2
Ca impose de charger pas mal de chose en memoire et c'est super chiant pour l'ajout d'une langue, alors que ce n'est pas si rapide a mettre en place...
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Bonjour,
rrk275 >> Pour la solution des tableaux de chaines, il n'y a rien à changer en mémoire car on pointe directement vers la langue voulue. Moi je parle de rapidité pendant l'exécution du programme. En effet, cette solution est la plus rapide. Mais si le nombre de langues et de chaines est grand, cela consomme de la mémoire. Pour l'ajout d'une langue, il est vrai que parfois cela devient moins facile. Par contre, la solution des ressources dans l'EXE présente beaucoup d'avantages. Pour ajouter une langue, c'est presque un jeu d'enfant. Il suffit d'éditer le fichier script de ressource et ajouter tout ce qu'on veut dans la section STRINGTABLE. C'est la solution utilisée par beaucoup de logiciels professionnels.
Messages postés
13
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
26 juin 2008

Merci beaucoup pour votre aide, je pense que la solution avec un fichier texte est pas mal du tout mais cela va me prendre beaucoup de temps !

En effet j'ai non seulement les items des menus à changer de langue mais aussi tous les contrôls statics et en plus mon programme principale appel plein de boîtes de dialogues et programme secondaire, bref j'ai pas fini .
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
j'ai fait ça ici

en résumé, recherche des données seulement sur demande, et mémorisation dans une table de hachage.

modif dynamique des zones de textes, titres de fenetre, zones de menus...

___________________________________________________________
Magicalement
Nono
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
a ui , stoquage dans fichier texte, format "ini"

et là, je suis en train de faire une adaptation avec du format xml... (perso j'aime moins, mais bon, y a des normes...)

___________________________________________________________
Magicalement
Nono