9. Traduction des boutons standards
Comme signalé, si on se limite à la procédure qui a été présentée, les boutons des
boîtes de dialogue standards seront toujours en anglais quelle que soit la langue
configurée : par exemple, la boîte de dialogue affichée à l'appel de
QMessageBox.question affiche invariablement les boutons Yes et No. L'explication
tient bien sûr dans le fait qu'on a ici des éléments textuels internes à la librairie PyQt et
donc non traduits dans nos fichiers de traduction.
Pour pallier ce désagrément, il existe une solution : charger les fichiers de traduction
propres à Qt, qui sont heureusement fournis dans l'installation. Nous allons présenter
ici comment procéder.
La première chose à faire est de copier les fichiers d'éléments textuels standards Qt
dans le même répertoire que nos biblioapp.*.qm. Ces fichiers se trouvent dans le
répertoire d'installation de Qt, dossier translations. Dans ce répertoire, on trouve
tous les fichiers de traduction, qu'ils soient destinés aux applications Qt écrites ellesmêmes en Qt (assistant_*.qm, designer_*.qm, linguist_*.qm, qmlviewer_*.qm)
ou aux modules Qt utilisés dans nos programmes (qt*_*.qm). Pour l'application
BiblioApp, on a juste besoin de prendre dans ce répertoire les fichiers qt_*.qm (qui
sont en fait des catalogues incluant des références vers les autres) et les fichiers
qtbase_*.qm, qui correspondent aux composants widgets de base.
Concrètement, pour avoir les versions françaises et anglaises, vous allez donc copier
quatre fichiers, à savoir qt_fr.qm, qt_en.qm, qtbase_fr.qm et qtbase_en.qm, dans
le répertoire de BiblioApp contenant nos fichiers .qm.
Note > Si votre application utilise des modules spécifiques de Qt, vous irez chercher
les fichiers correspondants : qtconnectivity_*.qm, qtmultimedia_*.qm, etc.
Ensuite, il faut adapter le programme principal afin de créer et installer les trois
traducteurs, instances de QTranslator, pour les trois fichiers .qm correspondant à la
langue sélectionnée : "biblioapp.", "qt_", "qtbase_". Le premier traducteur gère les
éléments textuels propres à l'application BiblioApp, les deux autres gèrent les éléments
textuels standards de Qt.
# start_app.py
# version internationale, incluant les boutons standards
import sys
157
Comme signalé, si on se limite à la procédure qui a été présentée, les boutons des
boîtes de dialogue standards seront toujours en anglais quelle que soit la langue
configurée : par exemple, la boîte de dialogue affichée à l'appel de
QMessageBox.question affiche invariablement les boutons Yes et No. L'explication
tient bien sûr dans le fait qu'on a ici des éléments textuels internes à la librairie PyQt et
donc non traduits dans nos fichiers de traduction.
Pour pallier ce désagrément, il existe une solution : charger les fichiers de traduction
propres à Qt, qui sont heureusement fournis dans l'installation. Nous allons présenter
ici comment procéder.
La première chose à faire est de copier les fichiers d'éléments textuels standards Qt
dans le même répertoire que nos biblioapp.*.qm. Ces fichiers se trouvent dans le
répertoire d'installation de Qt, dossier translations. Dans ce répertoire, on trouve
tous les fichiers de traduction, qu'ils soient destinés aux applications Qt écrites ellesmêmes en Qt (assistant_*.qm, designer_*.qm, linguist_*.qm, qmlviewer_*.qm)
ou aux modules Qt utilisés dans nos programmes (qt*_*.qm). Pour l'application
BiblioApp, on a juste besoin de prendre dans ce répertoire les fichiers qt_*.qm (qui
sont en fait des catalogues incluant des références vers les autres) et les fichiers
qtbase_*.qm, qui correspondent aux composants widgets de base.
Concrètement, pour avoir les versions françaises et anglaises, vous allez donc copier
quatre fichiers, à savoir qt_fr.qm, qt_en.qm, qtbase_fr.qm et qtbase_en.qm, dans
le répertoire de BiblioApp contenant nos fichiers .qm.
Note > Si votre application utilise des modules spécifiques de Qt, vous irez chercher
les fichiers correspondants : qtconnectivity_*.qm, qtmultimedia_*.qm, etc.
Ensuite, il faut adapter le programme principal afin de créer et installer les trois
traducteurs, instances de QTranslator, pour les trois fichiers .qm correspondant à la
langue sélectionnée : "biblioapp.", "qt_", "qtbase_". Le premier traducteur gère les
éléments textuels propres à l'application BiblioApp, les deux autres gèrent les éléments
textuels standards de Qt.
# start_app.py
# version internationale, incluant les boutons standards
import sys
157
