iceman_688
Messages postés13Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention26 juin 2008
-
7 juil. 2006 à 16:05
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 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"
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 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..
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201416 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
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
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 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.
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 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...
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201416 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.
iceman_688
Messages postés13Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention26 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 .