IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Traduction dynamique


Sujet :

Qt

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Traduction dynamique
    Bonjour, j'ai créer le programme suivant :



    Dans le QComboBox, il y a deux choix possible : Français ou Anglais. Selon le choix de l'utilisateur, je traduis cette application sans la redémarrer, tout se fait pendant l'exécution. Dès que l'utilisateur enfonce le QPushButton Traduire un slot translate() est appelé. Voici le code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //main.cpp
    #include "window.hpp"
     
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
     
        Window myWindow;
     
        return app.exec();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    //window.hpp
    #ifndef WINDOW__HPP
    #define WINDOW__HPP
     
    #include <QtGlobal>
    #include <QtCore>
    #include <QtGui>
     
    class Window : public QWidget
    {
        Q_OBJECT
     
        private:
            QComboBox* m_comboBox;
            QPushButton* m_pushButton;
            QTranslator* m_translator;
     
            Q_SLOT void translate();
     
        public:
            explicit Window(QWidget* widgetParent = 0);
     
    };
     
    #endif // WINDOW__HPP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    window.cpp
    #include "window.hpp"
     
    void Window::translate()
    {
        if (m_comboBox->currentText() == "Français")
        {
            m_translator->load("test_trad_fr");
        }
        else
        {
            m_translator->load("test_trad_en");
        }
    }
     
    Window::Window(QWidget* widgetParent) :
        QWidget(widgetParent)
    {
        m_comboBox = new QComboBox(this);
            m_comboBox->addItem(QObject::tr("Français"));
            m_comboBox->addItem(QObject::tr("Anglais"));
        m_pushButton = new QPushButton(QObject::tr("Traduire"), this);
            QObject::connect(m_pushButton, SIGNAL(released()), this, SLOT(translate()));
     
        QHBoxLayout* myLayout = new QHBoxLayout(this);
            myLayout->addWidget(m_comboBox);
            myLayout->addWidget(m_pushButton);
            this->setLayout(myLayout);
     
        m_translator = new QTranslator(this);
            m_translator->load("test_trad" + QLocale::system().name().section('_', 0, 0));
            qApp->installTranslator(m_translator);
     
        this->setWindowTitle(QObject::tr("Test de traduction"));
        this->setFixedSize(300, 0);
        this->show();
    }
    A l'exécution rien ne se passe j'ai tout essayer QCoreApplication::removeTranslator(), etc... Notez que je ne veux pas passer par Qt Designer.

    A côté de l'exécutable j'ai un fichier test_trad_en.qm, mais pas de test_trad_fr.qm, puisqu'il est déjà en dur dans le code source.
    Merci pour vos réponses.
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Sit multilingue : traduction dynamique des noms de page ?
    Par frakosun dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/07/2009, 12h53
  2. [Fast Report 4] Traduction dynamique
    Par VLDG dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 07/11/2008, 19h22
  3. Réponses: 3
    Dernier message: 16/10/2008, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo