3. Adaptations profondes
Dans certains cas, les modifications à apporter à l'interface sont plus profondes que les
textes à afficher à l'utilisateur. Par exemple, il peut s'agir d'agrandir une zone de
l'interface pour laisser place à la traduction… ou bien d'afficher une autre icône, de
jouer un autre son selon la langue. Dans ces cas, il devient utile de faire des tests selon
la langue de l'utilisateur.
Par exemple, ce code change une icône selon le code de langue [les deux premiers
caractères de Qt.locale().name] :
Component.onCompleted: {
switch (Qt.locale().name.substring(0,2)) {
case "en":
languageIcon = "images/icon_en.png";
break;
case "fr":
languageIcon = "images/icon_fi.png";
break;
default:
languageIcon = "images/icon_default.png";
}
}
Comment vérifier que toutes les chaînes ont été traduites ?
Pour vérifier qu'au moins toutes les chaînes nécessaires sont encadrées par un appel
à qsTr, une technique est de traduire (avec un script) toutes les chaînes du fichier
.ts, en reprenant les chaînes dans la langue d'origine du code et en les altérant de
telle sorte qu'on reconnaisse facilement l'opération (par exemple, en remplaçant
toutes les voyelles par d'autres symboles).
Ainsi, en lançant l'application avec cette traduction fantaisiste, on verra rapidement
quelles chaînes n'ont pas été traduites : elles ne présentent pas ces altérations. En
effet, si un appel à qsTr a été oublié, la chaîne correspondante ne sera pas touchée :
l'application affichera la chaîne d'origine.
402
Précédent

- 403/494

Suivant