Bonjour à tous,
Je connais assez bien le C++ mais au niveau de la conception il me manque un peu d'expérience... Je voudrais faire un programme, qui soit accessible à tous et donc qui soit multiluingue (ayant une interface graphique comme wxwidget). Mon problème est que je ne vois absolument pas comment m'organiser pour faire ceci. Vous qui avez un peu plus d'expérience que moi en la matière, pouvez vous me donner les grandes lignes ?
Merci pour votre aide
Une idée est de faire un grand tableau, chaque tableau contient un texte. Et donc le tableau contient tous les textes.
Ensuite, quand tu programmes et que tu veux afficher un texte, tu affiches un texte que tu vas chercher dans le tableau.
Du coup, il te suffit de faire plusieurs tableaux en plusieurs langues différentes, avec bien sur, pour le meme indice, le meme texte en une autre langue.
Tu fais, au début, une fonction qui charge un tableau ou un autre en fonction d'une langue choisie, en allant par exemple chercher dans un fichier ou un autre.
tu peut faire un fichier avec des id lié à un texte genre la phrase 64 est Bonjours! ou Hello dans le fichier fr.lang et en.lang. Ensuite, tu charge le fichier que tu a besoin dans un tableau (conteur vector<> serait plutôt bien) et tu peut faire des chose dans le genre de
cout << lang[64] << endl;
Une variante serai de remplacer les id par un mot et d'utiliser un map<>.
Sinon, je crois que Qt inclue des fonctionnalité pour la traduction, c'est à voir pour d'autre lib.
D'après toi, est-ce que tu es le premier au monde à vouloir faire une app multi-lingue ?!
La méthode officielle a donc été donnée des milliers de fois sur Usenet depuis les années 80-90 et est détaillée dans MSDN, avec exemple complet (Internationalization and Localization, ...)
Donc cf Google Groups & MSDN
Il y a les ressources en Windows qui permettent d'une façons plus ou moins automatique de charger les chaînes internationalisées d'une application. Cela reviens à charger des DLL et d'avoir des chaînes dans un tableau avec des ID. Ceci n'incluant _que_ les strings. Dans les ressources il y a bien plus : dialogues, icônes, menus, etc.
D'après toi, est-ce que tu es le premier au monde à vouloir faire une app multi-lingue ?!
La méthode officielle a donc été donnée des milliers de fois sur Usenet depuis les années 80-90 et est détaillée dans MSDN, avec exemple complet (Internationalization and Localization, ...)
Donc cf Google Groups & MSDN
On sent bien qu'il vient sur le forum pour aider les autres, lui
Tout d'abord, il faut que tu détermines en quelle langue sera programmé ton application, et surtout, t'y tenir (ne pas mélanger plusieurs langues dans le code).
Il faut également que tu prenne l'habitude de mettre toutes les chaines à traduire dans la macro _("Chaine de caractères")
Ensuite, il faut scanner tes fichiers sources avec un utilitaire comme poedit, spécialement étudié pour ce genre de choses (il va te générer des fichiers de traductions, te permettre de les remplir, et surtout de les compiler en fichier ".mo" servant à l'internationalisation.
Il reste, au démarrage de ton application, à indiquer où se trouvent les fichiers de langue, ainsi que leur nom, et tout se fait automatiquement.
Pour ce dernier point, je ne sais pas exactement comment faire (à part avec wxWidgets, mais je ne pense pas que tu utilises cette lib, sinon, tu l'aurais dit ).
Bonne chance.
Xav'
Portail français wxWidgets : wxDev.fr | Quelques progs + libs wxWidgets compilées : mywxstuff
Conception - Faire un programme multiluingue
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html