Traduire l'application
Niveau : intermédiaire
Objectifs : traduire une application en fonction de la langue de l'utilisateur
Prérequis : Premiers pas avec Qt Quick, Communiquer avec Python
Qt Quick propose un système d'internationalisation très similaire à celui de PyQt, où
les rôles du programmeur et du traducteur sont entièrement découplés. Le programmeur
ajoute des marques spécifiques dans son code Qt Quick (avec la fonction qsTr), qui
sont repérées et collationnées par un outil spécifique (lupdate). Le résultat de cette
deuxième étape sert de lien entre le programmeur et le traducteur : les fichiers produits
par lupdate sont directement utilisés par le traducteur pour son travail, puis utilisés
dans l'application (après un passage par lrelease).
À l'exécution, l'application regarde la langue de l'utilisateur, charge le fichier de
traduction correspondant ; de son côté, le moteur d'exécution Qt Quick, par le biais de
la fonction qsTr, effectuera le remplacement avec la chaîne de caractères qui
correspond à la langue choisie à l'exécution pour chaque chaîne marquée.
Du côté du programmeur, la principale difficulté pour traduire l'application se limite à
ajouter les appels à qsTr aux bons endroits — ni plus ni moins. Cette opération est
néanmoins nécessaire : seul le programmeur sait réellement quelles chaînes doivent
être traduites et lesquelles peuvent être ignorées (par exemple, les clés dans un
dictionnaire, les URL ou toute occurrence de "").
Note > PyQt fournit tant pylupdate5 que lupdate. Le premier ne peut traiter que des
fichiers Python, tandis que le second fonctionne pour du code source C++ et QML.
L'inconvénient est que les deux ne peuvent pas fusionner leurs fichiers : deux
fichiers de traduction sont nécessaires pour traduire tant le code Python que
Qt Quick.
394
Précédent

- 395/494

Suivant