URL: https://linuxfr.org/news/deploiement-de-transcript-sur-kgeography Title: Déploiement de Transcript sur KGeography Authors: Gilrain baud123, claudex et patrick_g Date: 2012年03月16日T12:21:55+01:00 Tags: éducation, kde, traduction, localisation, l10n et retour_d_expérience Score: 33 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. ---- [Journal à l'origine de la dépêche](http://linuxfr.org/users/gilrain/journaux/deploiement-de-transcript-sur-kgeography) [KGeograhpy](http://edu.kde.org/applications/all/kgeography/) [Transcript](http://techbase.kde.org/Localization/Concepts/Transcript) ---- [KGeography](http://edu.kde.org/applications/all/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](http://pierre.buard.free.fr/images/kde/kgeography-liste.png "Listes de 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](http://techbase.kde.org/Localization/Concepts/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](http://edu.kde.org/?site_locale=fr). 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](http://websvn.kde.org/*checkout*/branches/stable/l10n-kde4/fr/scripts/kdeedu/kgeography/kgeography.js), 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](http://pierre.buard.free.fr/images/kde/kgeography-gui.png "Intitulés des tests 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](http://edu.kde.org/applications/all/kgeography/)), Chusslove Illich ([Transcript](http://techbase.kde.org/Localization/Concepts/Transcript)) et Laurent Garnier ([script pour KGeography](http://websvn.kde.org/*checkout*/branches/stable/l10n-kde4/fr/scripts/kdeedu/kgeography/kgeography.js)). Vous trouverez d'autres illustrations du travail accompli au chapitre « Premiers pas » du [manuel francophone de KGeography](http://docs.kde.org/development/fr/kdeedu/kgeography/quick-start.html).

AltStyle によって変換されたページ (->オリジナル) /