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...