Programmation Qt/Traduire son programme

Il peut arriver que vous distribuez votre programme à un ami. Imaginons qu'il soit anglais. Même s'il parle français, il préférerait avoir le programme en anglais. C''est pour cela qu'on peut traduire le programme. Tout d'abord, configurons le monprojet.pro.

Configurer le projet

modifier
#-------------------------------------------------
#
# Project created by QtCreator 2018-10-10T14:20:39
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = monprojet
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

Pour l'instant, vous avez ceci. Maintenant, rajoutez la ligne :

TRANSLATIONS += monprojet_fr.ts monprojet_en.ts

Voilà, votre fichier .pro est configuré. Rendez-vous maintenant dans vos fichiers .cpp. Ajoutez autour de vos chaînes de caractères tr(). Cette fois-ci, c'est dans la console (Ctrl + Alt + T sous GNU/Linux, Menu > Accessoires sous Windows) que nous avons rendez-vous. Entrez la ligne suivante :

lupdate monprojet.pro

Vous pouvez maintenant voir des fichiers .ts générés.

Les fichiers .ts et .qm

modifier

Quand vous avez installé Qt, un programme nommé Qt Linguist a aussi été installé. Allez-y.

Ouvrez les fichiers en question, puis rentrez dans les champs English Translation, par exemple, le texte traduit. Fermez ensuite le programme, et ouvrez la console :

lrelease monprojet_fr.ts monprojet_en.ts

Cela créé des fichiers .qm. Mettez-les maintenant dans le dossier de l'exécutable. Ouvrez le fichier main.cpp et entrez :

QTranslator translator;
translator.load("monprojet_en");
app.installTranslator(&translator);

Lancez maintenant le programme. Le programme est traduit en anglais ! Bien évidemment, cela marche pour le chinois, l'arabe, l'italien...