Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conception - Faire un programme multiluingue

    21 mai 2008 à 22:48:29

    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
    • Partager sur Facebook
    • Partager sur Twitter
      21 mai 2008 à 23:31:00

      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.
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        23 mai 2008 à 4:41:11

        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.
        • Partager sur Facebook
        • Partager sur Twitter
          23 mai 2008 à 8:13:21

          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
          • Partager sur Facebook
          • Partager sur Twitter
            23 mai 2008 à 13:25:48

            la méthode officiel?
            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2008 à 16:52:18

              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.
              • Partager sur Facebook
              • Partager sur Twitter
                23 mai 2008 à 18:17:42

                Salut

                Citation : george135

                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 :colere2:


                Il n'est pas nécessaire d'utiliser des dll.
                La lib "gettext" est spécialement prévue pour ça : http://fr.wikipedia.org/wiki/Gettext

                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'
                • Partager sur Facebook
                • Partager sur Twitter
                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.
                • Editeur
                • Markdown