Changement de langue

iceman_688 Messages postés 13 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 26 juin 2008 - 7 juil. 2006 à 16:05
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 11 juil. 2006 à 16:36
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

Utilisateur anonyme
8 juil. 2006 à 00:33
ouais c'était juste pour l'exemple mais dans le programme faut mettre des noms plus explicite......
1
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
7 juil. 2006 à 17:15
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..
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
7 juil. 2006 à 18:02
ça risque effectivement de prendre du temps , mais bon la solution me parait bien .
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
7 juil. 2006 à 20:52
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
7 juil. 2006 à 21:50
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 
0
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
7 juil. 2006 à 23:42
perso je mettrais pas le menu un=, mais l'idée reste la meme ^^
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
8 juil. 2006 à 09:54
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.
0
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
8 juil. 2006 à 12:08
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...
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
8 juil. 2006 à 16:23
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.
0
iceman_688 Messages postés 13 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 26 juin 2008
10 juil. 2006 à 09:14
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 .
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 juil. 2006 à 16:34
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
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 juil. 2006 à 16:36
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
0
Rejoignez-nous