Internazionalizzazione su Qt 4.8
-
13-11-2019 - |
Domanda
Sto cercando di impostare una traslazione sull'app May. Vengo dal Brasile, quindi l'app dovrebbe essere PT BR e EN-US, durante la codifica ho usato l'inglese. Ho trovato questo post su come usare QTranslator:
Linguista QT - Imposta il traduttore per l'applicazione
Ma quando si esegue l'app su un sistema PT-BR si presenta in inglese. Mi sto perdendo qualcosa? PS non ho trovato il prompt dei comandi Q, quindi ho usato gli strumenti di menu -> esterno -> linguista -> Translazione aggiorna (lupdate).
Ho anche creato il file .QM, qui il pezzo del mio codice:
QApplication a(argc, argv);
QTranslator *trans = new QTranslator();
trans->load("C:/SVN/trunk/rcs/frameworkIdentity_ptbr.qm");
a.installTranslator(trans);
FIdMain w;
Soluzione
Questo è praticamente quello che faccio nella mia applicazione in cui la traduzione funziona (sbirciata di seguito).
Il problema non è nei frammenti che hai mostrato. Come suggerito nei commenti, forse i widget vengono creati prima del traduttore
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();
}