2012-02-27 3 views
0

Je suis en train d'essayer de traslation à mai app. Je viens du Brésil donc l'application devrait être pt br et en-us, lors du codage j'ai utilisé l'anglais. J'ai trouvé ce post sur l'utilisation QTranslator:Internationalisation sur Qt 4,8

Qt Linguist - set translator for application

mais lors de l'exécution de l'application sur un système pt-br il apparaît en anglais. Est-ce que je manque quelque chose? P.S. n'a pas trouvé l'invite de commande Q, j'ai donc utilisé le menu Outils -> Externe -> Linguiste -> Mettre à jour la traduction (lupdate).

également créé le fichier .qm, here's un morceau de mon code:

QApplication a(argc, argv); 

QTranslator *trans = new QTranslator(); 

trans->load("C:/SVN/trunk/rcs/frameworkIdentity_ptbr.qm"); 

a.installTranslator(trans); 

FIdMain w; 
+2

avez-vous vérifié la valeur de retour de 'load'? –

+0

avez-vous également utilisé la fonction [translate] (http://developer.qt.nokia.com/doc/qt-4.8/qtranslator.html#translate)? –

+0

Oui, j'ai vérifié le retour de la charge, il renvoie vrai, j'ai utilisé la fonction tr comme dans cet exemple de Qt: http://doc.qt.nokia.com/4.7-snapshot/linguist-hellotr.html –

Répondre

0

C'est à peu près ce que je fais dans ma propre application où la traduction fonctionne (snipped ci-dessous).

Le problème ne se trouve pas dans les extraits que vous avez affichés. Comme suggéré dans les commentaires peut-être que les widgets sont créés avant le traducteur

int main(int argc, char** argv) 
{ 
    QApplication app(argc, argv); 

    QTranslator translator; 
    if ( !Settings::value("monitor/languageFile").isNull()) 
    { 
     translator.load(Settings::value("monitor/languageFile").value<QString>()); 
     app.installTranslator(&translator); 
    } 
    MainWindow mainWindow; 
    mainWindow.show(); 
    return app.exec(); 
} 
+0

Le traducteur est placé avant la fenêtre principale, mais toujours pas de changements, je suis en train de parcourir Qt Foruns à la recherche de la solution. –

+0

Pense seulement que peut-être le fichier de traduction (.qm) ne contient pas les chaînes traduites ou peut-être que vous avez manqué la macro Q_OBJECT dans une classe. Essayez d'abord de traduire une chaîne provenant d'un fichier .ui pour voir si cela fonctionne, puis affinez le problème. – Correa