Journal Déploiement de Transcript sur KGeography

Posté par  . Licence CC By‑SA.
46
16
mar.
2012

KGeography propose une multitude de cartes à ses utilisateurs soucieux d’étendre leurs horizons par l’apprentissage de la géographie. Problème, ces cartes sont affublées d’un article rendant épique la recherche du moindre pays : « La France » ne précède pas « Le Guatémala » qui n’est pas suivi de « Haïti », etc. Face à cette situation, le plus simple aurait été de supprimer les articles disgracieux pour ne conserver que les noms des pays… C’était sans compter les différents questionnaires du programme ; KGeography interrogeant l’utilisateur sur des sujets divers comme les capitales, divisions, drapeaux ou fonds de carte. Ces questions, extraordinairement bancales à cause du système de traduction, imposaient la forme suivante : « La capitale de Le Japon est Tokyo » (cette phrase s’obtenant en substituant un argument %1 par la traduction du nom d’un pays ou d’une division).

Comparaison de l’ordonnancement des cartes pré & post-Transcript

Les problèmes clairement identifiés, il restait à trouver une solution. L’histoire aurait pu s’arrêter là sans l’acharnement d'un gentil développeur frustré qui allait dénicher une technique obscure : Transcript, un moteur de transcription permettant d'adapter la structure d'un texte étranger à la grammaire locale. Apparemment rien de nouveau, n'importe quel traducteur étant capable des mêmes prouesses. Comme cela a été expliqué plus haut, il arrive que le texte des interfaces repose sur la concaténation de divers éléments qui, une fois assemblés en phrases, deviennent incorrects ou perdent tout leur sens. Transcript suppléé l'internationalisation statique en appelant un script capable d'interpréter et de modifier les chaînes de caractères au moment de les afficher. Voici comment nous avons utilisé Transcript pour améliorer le français d'un programme de la suite éducative de KDE S.C.

Habituellement, une interface internationalisée affichera les termes traduits correspondants à son index interne (File → Fichier, Edit → Édition, etc.). Ce comportement persiste avec Transcript à la différence qu’il est possible d’indiquer une alternative optionnelle à la traduction en insérant le code « |/| » (barre verticale – barre oblique – barre verticale ou plus crûment : pipe – slash – pipe). Si un script et ses fonctions sont présents cette alternative sera employée, sinon le texte précédent continuera d’avoir cours assurant ainsi la rétro-compatibilité de la traduction.

Notre problème portant sur les articles et leur adaptation au milieu, il fallait commencer par déclarer une série d’articles et leurs correspondances : la → de la → à la → en (voir les listes _genitif, _datif, _nominatif et _directif). Comme vous le constaterez à la lecture du script, le contenu de la liste des génitifs a été retenu pour réaliser la correspondance entre les différentes déclinaisons. Le reste de la magie scriptographique s’opère en supprimant manuellement les articles de la traduction pour les remplacer par une fonction substituante (pose-genre-etendu) accompagnée du génitif approprié. Par exemple, l’entrée « Le Portugal » deviendra « Portugal|/|$[pose-genre-etendu 'du']! » et affichée suivant le contexte « le Portugal », « au Portugal », « du Portugal », etc.

Justement, les préliminaires terminés, venons en à la déclaration du contexte. Comme précisé, le mode de substitution courant repose sur des arguments : « Vous avez répondu correctement à %1 questions sur %2 ». Les %1 et %2 étant, dans ce contexte, remplacés par les valeurs numériques adéquates au moment de l’affichage. Donc, à la question « Le drapeau de %1 est… » nous pouvons maintenant ajouter notre alternative « |/|Le drapeau $[get-genre-etendu genitif %1] est… » qui recherchera (get-genre-etendu) et ajoutera la déclinaison nécessaire (genitif) en fonction de l’article attribué par pose-genre-etendu pour la valeur à substituer (%1). Concrètement, cela donne « Le drapeau des Pays-Bas est… » au lieu de « Le drapeau de Les Pays-Bas est… » ; nettement mieux vous en conviendrez. Reste plus qu’à identifier toutes les questions pour sortir les déclinaisons appropriées.

Dernier point, KGeography permet de choisir le type d’interrogations par l’intermédiaire de boutons dont les intitulés changent en fonction des noms donnés aux divisions (par exemple, « départements » pour la France, « provinces » pour le Costa Rica ou « comtés » pour la Norvège). Avant Transcript, les intitulés étaient concis et, ou tordus : « Drapeaux de États », « États par capitales », « Capitales de États ». Encore une fois, en associant un génitif aux noms de divisions avec pose-genre-etendu et en ajoutant un appel à get-genre-etendu sur les intitulés des boutons, il est possible d’obtenir des formules plus agréables : « Les provinces par drapeaux », « Capitales des provinces », etc.

Intitulés des tests de connaissances pré & post-Transcript

Les plus attentifs auront sans-doute remarqués l'absence de majuscules en début de phrases sur les intitulés malgré la présence de la fonction majus-initiale. Elle reste une épine pour le pauvre traducteur que je suis, car elle n'a aucun effet lorsque je l'applique aux chaînes qui en auraient besoin (pire, l'article disparaît) et, cela, quelle que soit la combinaison retenue (normalement, $[majus-initiale $[get-genre-etendu nominatif %1]]). Avis aux experts…

Ainsi se conclu notre aventure, en espérant que vous l’aurez trouvé instructive et qu'elle vous aura encouragée à corriger des problèmes similaires dans vos traductions. À cette fin, sachez que les tests se font simplement en copiant votre JavaScript à cet emplacement « ~/.kde4/share/locale/fr/LC_SCRIPTS/programme/programme.js » et les messages compilés dans « ~/.kde4/share/locale/fr/LC_MESSAGES/programme.mo ». Lors d'un commit, le script devra être placé dans « fr/scripts/module/programme/programme.js ».

Remerciements à Albert Astals Cid (KGeography), Chusslove Illich (Transcript) et Laurent Garnier (script pour KGeography).

Vous trouverez d'autres illustrations du travail accompli au chapitre « Premiers pas » du manuel francophone de KGeography.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.