Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] Problème de traduction

La traduction ne marche pas avec Qt Linguist

Sujet résolu
    24 mars 2009 à 20:59:19

    :DSalut,

    j'ai lu le tuto sur Qt Linguist et j'utilise Qt 4.5 !
    J'arrive a charger le fichier qm, mais mon application est toujours en français.

    Voici le Code :

    #include <QApplication>
    #include <QPushButton>
    #include <QTranslator>
    #include <QString>
    
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
        
        QString test="Test";
        QString &reference=test;
        QTranslator translator;
        if(translator.load("testEn")) //la méthode load renvoie true si elle réussi à charger le fichier 
            reference="Réussi";
        else                          //et false dans la cas contraire 
            reference="Raté";
        app.installTranslator(&translator);
    
        QPushButton t(test);          //La fenetre m'affiche Réussi
        t.show();
    
        QPushButton d(QObject::tr("Fichier"));
        d.show();
        //J'ai traduit Fichier par File, mais lorsque je lance l'application, Fichier apparait toujours
    
        return app.exec();
    }
    


    Je ne comprend pas ce qui ne fonctionne pas ?!
    Est-ce que quelqu'un pourrait m'aider, s'il vous plaît ?

    Merci d'avance ! :-°
    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2009 à 22:23:12

      Tu as oublié les accolades...
      • Partager sur Facebook
      • Partager sur Twitter
        26 mars 2009 à 18:37:08

        Heu, :(
        Quelles accolades ?
        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2009 à 20:31:18

          Le fait de les avoir oublié a un effet : tu appelles ta classe uniquement dans le cas du else, d'où le besoin d'accolades (sauf si c'est voulu) :

          #include <QApplication>
          #include <QTranslator>
          #include <QString>
          
          int main(int argc, char* argv[])
          {
              QApplication app(argc, argv);
              
              QString test="Test";
              QString &reference=test;
              QTranslator translator;
              if(translator.load("testEn")) //la méthode load renvoie true si elle réussi à charger le fichier 
                  reference="Réussi";
              else                          //et false dans la cas contraire 
              {
                  reference="Raté";
              app.installTranslator(&translator);
              }
          
              QPushButton t(test);          //La fenetre m'affiche Réussi
              t.show();
          
              QPushButton t(QObject::tr("Fichier"));
              t.show();
              //J'ai traduit Fichier par File, mais lorsque je lance l'application, Fichier apparait toujours
          
              return app.exec();
          }
          

          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2009 à 20:44:25

            Je pense que ça peut venir de ça : if(translator.load("testEn")) qui devrait être if(translator.load(QString("testEn")))

            edit : et tu es sur que tu as bien un fichier testEn.qm ?
            • Partager sur Facebook
            • Partager sur Twitter
              26 mars 2009 à 20:59:43

              Citation : rom1504

              Je pense que ça peut venir de ça : if(translator.load("testEn")) qui devrait être if(translator.load(QString("testEn")))


              Non non, c'est sous-entendu (comme pour setFixedSize(QSize(500, 400)) : c'est l'équivalent de setFixedSize(500, 400)).
              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2009 à 22:35:53

                Oui, je suis sur d'avoir mis un fichier testEn.qm, puisque la fenêtre m'affiche Réussi. Et je me suis pas trompé pour les accolades. Sinon j'ai réussi à faire marcher la traduction, j'ai créé une classe héritant de QMainWindow pour créé ma fenêtre, à l'ajout du macros Q_OBJECT ma traduction c'est mise à marché ! :D

                Merci quand même !
                • Partager sur Facebook
                • Partager sur Twitter

                [Qt] Problème de traduction

                × 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