Revie Qt Translation.
Pour traduire l'application dynamique:
1 - terminal de commande Ouvrir Qt et accédez à votre dossier de projet. 2 - Obtenez toutes la chaîne traduisible de votre projet
lupdate -pro Example.pro -ts example.ts
3 - Traduire toute la chaîne à la langue à l'aide QLinguist 4 - Générer le fichier .qm avec toute traduction exécution:
lrelease example.ts
5 - Ajoutez ce fichier, example.qm, comme ressource à votre projet pour l'inclure avec le fichier exécutable. Resource System
6 - Maintenant, utilisez QTranslator pour traduire l'application:
QTranslator* translator = new QTranslator;
if(translator->load(":/"+example.qm)){
qApp->removeTranslator(translator); // Remove the translator if was used before
qApp->installTranslator(translator); // Install again the translator to force a new translation.
qDebug() << "Translation success!" ;
}else{
qDebug() << "Error file not found!";
}
7 - Vous pouvez gérer l'événement de traduction à l'aide changeEvent:
void MainWindow::changeEvent(QEvent* event)
{
if (event) {
switch(event->type()) {
// When the translator is loaded this event is send.
case QEvent::LanguageChange:
break;
// Whem the system language changes this event is send.
case QEvent::LocaleChange:
//retranslate the ui.
break;
default:
break;
}
}
QMainWindow::changeEvent(event);
}
C'est tout!
avez-vous charger la traduction en application? http://doc.qt.io/qt-5/qcoreapplication.html#installTranslator http://doc.qt.io/qt-5/qtranslator.html#load –
oui. Je charge les fichiers .ts et les fichiers .qm –
il y a beaucoup de choses à faire pour que la traduction soit active. La description de votre problème est simple à court et incomplète. Suivez les instructions de Qt et assurez-vous de ne rien manquer. Vérifiez également les journaux peut-être là Qt signale une erreur. –