Bonjour à toutes et à tous,
Pour des raisons d’internationalisation d'un produit, je dois effectuer la traduction des quelques qdialog qui s'affichent sur une IHM.
J'ai pour cela suivi la méthode décrite ici : http://qt.developpez.com/doc/4.7/internationalization/.
Voici ma classe modifiée pour qu'elle accepte la traduction :
Le code a été épuré pour être posté, il se peut que des erreurs soient apparues...
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 DialogMsgWindow::DialogMsgWindow(QWidget *parent, bool autoHide, int type, int timeout) : QMessageBox(parent){ parentWidth = parent->width(); parentHeight = parent->height(); this->type = type; this->setText(DialogMsgWindow::tr("Le système va s'éteindre, voulez-vous poursuivre ?")); this->setIcon(QMessageBox::Warning); this->setModal(false); if(this->type != warning_noUsbKey && this->type != warning_notEnoughSpaceUsb && this->type != information_transferDone){ btn_ok = new QPushButton(tr("OUI"), this); this->addButton(btn_ok, QMessageBox::AcceptRole); btn_cancel = new QPushButton(tr("NON"), this); this->addButton(btn_cancel, QMessageBox::RejectRole); } else{ btn_ok = new QPushButton(tr("OK"), this); this->addButton(btn_ok, QMessageBox::AcceptRole); } }
De ce code, j'ai extrait le fichier .ts désiré pour réaliser une traduction en anglais que j'ai ensuite ouvert avec linguist puis compilé en .qm (toutes les traductions sont marquées d'une coche verte).
Seulement lorsque je lance mon application, seul le texte des boutons sont traduits et pas le texte du dialog. De quoi cela pourrait-il venir ?
Partager