Déploiement de Transcript sur KGeography

Posté par  . Édité par baud123, claudex et patrick_g. Modéré par baud123.
33
16
mar.
2012
KDE

KGeography, un logiciel KDE d'apprentissage de la géographie, était confronté à un problème lié à l'accord des articles avec le contexte. Vous trouverez l'explication de la solution retenue en deuxième partie.

NdM : merci à Gilrain pour son journal.

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ée 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. Ne 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 conclut notre aventure, en espérant que vous l’aurez trouvée instructive et qu'elle vous aura encouragé à 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.

Aller plus loin

  • # Le français est trop compliqué

    Posté par  (site web personnel) . Évalué à 3.

    Le français est trop compliqué… et beaucoup d'autres langues aussi.
    Le pire c'est quand un ministre, contre l'avis de l'académie, décide de féminiser certains mots en créant la confusion entre le genre de la fonction et le genre de la personne.
    Elle est devenue une ministre (payée moins cher qu'un ministre ?) ne sachant pas que l'on doit dire Madame le ministre.
    On dit bien une sentinelle, une estafette ou une personne même quand c'est un homme.
    Ce ministre mal dans sa peau n'a fait qu'ajouter des exceptions qui compliquent le traitement automatisé des données.

    • [^] # Re: Le français est trop compliqué

      Posté par  . Évalué à 2.

      j'adore la dernière phrase!!
      c'est à l'informatique de s'adapter à notre langue et pas l'inverse.

      Les évolutions peuvent être discutable (si l'académie était contre il y a certainement une raison) mais il ne faut pas les regarder à travers le prisme de l'informatique, c'est totalement aberrant!!!

      • [^] # Re: Le français est trop compliqué

        Posté par  . Évalué à 3. Dernière modification le 17 mars 2012 à 19:52.

        en tant que programmeur, j'ai une sainte horreur des exceptions dans les algorithmes :-)
        en tant que français, si je pouvais libérer ma mémoire de tout le code spaghetti de la langue je serai bien content :-) :-)
        (je serai curieux de savoir la puissance de l'ordinateur capable de faire 0 faute à la dictée de Pivot…)

        donc, pour mettre tout le monde d'accord : il faudrait que les évolutions aillent dans le sens d'une simplification de la langue et suppriment des exceptions au lieu d'en ajouter (peut-être est-ce d'ailleurs déjà le cas ?)

        et il n'y a pas que les informaticiens qui diront merci, tous les étrangers voulant apprendre la langue pourraient apprécier…

        Envoyé depuis mon Archlinux

        • [^] # Re: Le français est trop compliqué

          Posté par  . Évalué à 0.

          Et si l'on commençait par supprimer tous les emprunts inutiles à l'anglo-étatsunien, ça serait déjà une GROSSE (et agréable) simplification!
          Faut-il rappeler que tout enfant de 3 ans est capable de parler couramment
          le français, ou le swahili…

        • [^] # Re: Le français est trop compliqué

          Posté par  (site web personnel) . Évalué à 5.

          en tant que programmeur, j'ai une sainte horreur des exceptions dans les algorithmes :-)

          Ajoute la description des exceptions dans le données d'entrée… :)

          en tant que français, si je pouvais libérer ma mémoire de tout le code spaghetti de la langue je serai bien content :-) :-)

          Je ne crois pas que cela fonctionne comme ça dans nos têtes…

          donc, pour mettre tout le monde d'accord : il faudrait que les évolutions aillent dans le sens d'une simplification de la langue et suppriment des exceptions au lieu d'en ajouter (peut-être est-ce d'ailleurs déjà le cas ?)

          Je suis fondamentalement contre les évolutions proclamées de la langue pour les raisons suivantes:

          — Comme avec toute évolution de langue, l'accès à la littérature devient plus difficile car le texte est écrit dans une langue légèrement différente. C'est vrai de la lecture comme de la recherche automatique. Par exemple un moteur de recherche devrait analyser son entrée, deviner si l'orthographe est ancienne ou nouvelle, calculer l'autre et lancer deux recherches! (Je déteste les exceptions dans les algos!)

          — Le mimétisme joue dans l'apprentissage de la langue une part importante et la lecture des textes à l'orthographe obsolète alternée à la lecture de textes à la nouvelle orthographe, favorise le développement d'une langue hybride, mélange de l'obsolète et de la réformée.

          — Les groupes de personnes qui jugent leurs correspondants sur leur orthographe trouveront une raison supplémentaire de les mépriser.

          • [^] # Re: Le français est trop compliqué

            Posté par  . Évalué à 1.

            La langue a toujours évolué, on va pas la figer en en conservant les défauts de façon éternelle pour éviter les soucis d'une période de transition.

            Il y a de toute façon déjà de nombreux textes majeurs qui sont rédigés dans un français différent du français moderne.

    • [^] # Re: Le français est trop compliqué

      Posté par  (site web personnel) . Évalué à 2.

      Mince ! Je viens de découvrir qu'une estafette c'était autre chose que ça http://fr.wikipedia.org/wiki/Renault_Estafette

      L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

    • [^] # Re: Le français est trop compliqué

      Posté par  . Évalué à 2.

      Le pire c'est quand un ministre, contre l'avis de l'académie, décide de féminiser certains mots en créant la confusion entre le genre de la fonction et le genre de la personne.

      En même temps dans pas mal de cas le genre de la personne se confond avec celui de la fonction, introduire un peu de cohérence en appliquant la même règle partout ne peut pas faire de mal. Ce qui manque à la langue française c'est un genre neutre, à quoi ça rime de rendre masculines ou féminines des choses asexuées ?

      • [^] # Re: Le français est trop compliqué

        Posté par  (site web personnel) . Évalué à 4.

        En même temps dans pas mal de cas le genre de la personne se confond avec celui de la fonction, introduire un peu de cohérence en appliquant la même règle partout ne peut pas faire de mal.

        Mais pas dans tous les cas. Ainsi la langue attire l'attention sur le fait qu'une personne se distingue de la fonction qu'elle occupe.

        Ce qui manque à la langue française c'est un genre neutre, à quoi ça rime de rendre masculines ou féminines des choses asexuées ?

        Il y a une différence entre sexe et genre. Pour les animés, le genre est souvent déterminé par le sexe, pour les inanimés il n'est pas pour autant vide de sens. De plus des genres différents permettent (parfois) de lever des ambiguités, par rapport à un énoncé analogue sur des objets de même genre.

Suivre le flux des commentaires

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