top of page
  • lilianfaedi

Dernière mise à jour : 3 juin 2022


Cet article est une introduction succincte aux règles du format Internationalization Tag Set (ITS) [1] et à leur utilité au sein de la traduction. Il a été co-écrit par Ismaël et moi-même.


Introduction


L'Internationalisation Tag Set (ITS) définit des catégories de données et leur implémentation sous forme d'éléments et d'attributs, et il est conçu pour être utilisé en combinaison avec des schémas [2] afin de prendre en charge l'internationalisation et la localisation de documents.


Afin de présenter les règles ITS que nous venons de découvrir, il convient en premier lieu de présenter le standard Extensible Markup Language (ou XML) [3] : un standard de définition de règles d'écriture de balises. Ce standard est à la base des formats TMX, XLIFF, SRX ou TBX qui sont couramment utilisés dans le monde de la traduction, mais également à la base des formats ODF ou DOCX qui sont utilisés dans les documents que nous avons à traduire.


1. Définition de notions élémentaires


Un élément (aussi appelé balise), ou “tag” en anglais, est utilisé pour formater du texte, structurer et hiérarchiser des données, mais également peut décrire des commandes, etc.


Un attribut est une sous-partie d'un élément qui sert à en préciser les caractéristiques. Le format XML définit une liste de règles d’écriture d'éléments et d'attributs pour garantir la compatibilité entre les formats et la possibilité de facilement travailler avec des formats différents.


ITS est un ensemble de règles (écrites sous forme de balises XML) qui servent à traiter les contenus d'un fichier donné. Ces règles permettent entre autres d'identifier les parties à traduire, les parties à ne pas traduire, les parties à considérer comme des « paragraphes », les parties à considérer comme des éléments de paragraphes, etc.


Un ensemble de règles ITS peut être appliqué à tout fichier à traduire. Pour appliquer les règles ITS à un document, il faut utiliser un mécanisme qui convertit ce document en fichier à traduire en fonction des règles ITS définies. Nous utiliserons ici le logiciel Rainbow de l’Okapi Framework [4].


Les fichiers utilisés ici ont été créés par Jean-Christophe Helary (notre tuteur de stage) pour utilisation lors d'une présentation du standard ITS à la Open Source Conference Tokyo en 2016.


2. Fichier XML arbitraire


Nous allons travailler ici à une conversion en XLIFF comme on peut en trouver dans le monde de la localisation. Le fichier que nous utilisons est un fichier XML arbitraire :


<?xml version="1.0"?>

<doc>

 <p pid="p1">剣道はすごく<b>楽しい</b>。<img src="写真.png" alt="稽古中"/></p>


 <p pid="p2">この写真は、「獅剣会」の仲間が稽古している姿を写っています。「獅剣会」

 は<b>「しけんかい」</b>とよみます。


 <br/><b>なぜでしょう。</b>

 <reviewNote author="エラリー">本当に知りたい?</reviewNote>


 <br/>いろんな説があります。まず、獅剣会の構成メンバーは香西辺りで<i>獅子舞い</i>を

 やって、<i>剣道</i>もやっています。だから「獅・剣」の会。


 <br/>もう一つの説はあります。実はこの会を考えた人は<b>四軒屋</b>さんといいます。

 だから<i>「四軒屋さんの会」</i>という考え方もあります。

 </p>


 <p>さて、ここからは、この間の三豊近県の試合についてのお話します。その試合は一本勝負

 です。相手は「竹輪会」の柳さんでした。6段のばりばり強い人です。長く持たないだろ

 と思ったんですが、意外と長く感じました。</p>


 <soundtrack>


審判: はじめ!

柳さん: や~

私も: や~

しばらくしたら: (竹刀の音)ガチャガチャガチャガチャ


柳さん: や~

私も: や~


(もう30秒たったので負けても恥ずかしくない…

と思ったら、柳さんの素早い足さばきで…)


柳さん: め~ん

私は:(あらら~)


審判: 面あり!勝負あり!


 </soundtrack>


 <p>という訳で、余計なことを考えていなければ、もう少し長く持ったかも!</p>

</doc>


3. Fichier ITS


Le fichier ITS permet de fixer des règles, et nous allons détailler dans les parties suivantes qu’elle en est le contenu :


<?xml version="1.0" encoding="UTF-8" standalone="no"?><its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:itsx="http://www.w3.org/2008/12/its-extensions" xmlns:okp="okapi-framework:xmlfilter-options" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0">

<!-- See ITS specification at: http://www.w3.org/TR/its/ -->

<its:translateRule selector="//*/@alt" translate="yes"/>

<its:withinTextRule selector="//img|//b|//i|//reviewNote" withinText="yes"/>

<its:translateRule itsx:whiteSpaces="preserve" selector="//soundtrack" translate="yes"/>

<its:translateRule selector="//reviewNote" translate="no"/>

</its:rules>


4. Explication de l'en-tête


<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:itsx="http://www.w3.org/2008/12/its-extensions" xmlns:okp="okapi-framework:xmlfilter-options" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0">


L'en-tête confirme qu'ITS est bien défini selon XML version 1.0 et que le fichier est encodé en UTF-8. On y voit également les références explicites au standard ITS et dans notre cas à des options du Okapi Framework.


5. Les quatre règles ITS


Voici les quatre règles que propose le document ITS que nous avons décidé d’analyser et d'étudier.


• “<its:translateRule selector="//*/@alt" translate="yes"/>”


Le sélecteur (“selector”) se révèle très important ici. Il spécifie les objets sur lesquels la règle ‘translate=”yes”’ va s’appliquer. Ici, il s’agit de tous les attributs qui s’appellent “alt” de tous les éléments du document. Par défaut, tout élément est considéré comme devant être traduit au contraire des attributs d'un élément : c’est à l’utilisateur donc d’indiquer si c’est le cas ou non.


• <its:withinTextRule selector="//img|//b|//i|//reviewNote" withinText="yes"/>


Ici, le sélecteur spécifie que tous les éléments définis dans sa liste (“img”, “b”, “i”, “reviewNote”) se verront appliquer la règle “withinTextRule=”yes”” [6]. Cette règle définit les éléments qui font partie d’un texte encadré par un élément supérieur. Ces parties ne sont donc pas considérées comme des « paragraphes », mais comme par exemple des éléments de formatage à l'intérieur d'un « paragraphe » (gras, italique, etc).


• <its:translateRule itsx:whiteSpaces="preserve" selector="//soundtrack" translate="yes"/>


“itsx:whiteSpaces” a été implémenté par le Okapi Framework avant la sortie d'ITS 2.0 [7] et indique comment les espaces blancs doivent être traités dans le contenu avec deux valeurs possibles : "default" (qui considère comme XML que les espaces sont non significatifs) et "preserve" qui permet de conserver ces espaces blancs pour la traduction.


• <its:translateRule selector="//reviewNote" translate="no"/>


En opposition avec la première règle, l'élément “//reviewNote” est défini comme n’étant pas à traduire.


6. Mise en application


Nous allons maintenant utiliser la définition ITS dans Rainbow pour convertir ce fichier XML arbitraire en fichier XLIFF.


  • Nous devons d’abord télécharger Rainbow par ce lien :



  • On lance Rainbow, qui se présente comme suit :


  • On ajoute le document XML à traduire dans Input List (à l’aide du petit plus) :


  • On spécifie les langues source/cible du document



  • On clique sur le nom du filtre et on en crée un nouveau avec nos règles ITS :




  • On choisit “Translation Kit Creation” ;


  • On choisit Projet OmegaT, puis on appuie sur “Execute” :



Il convient désormais de lancer le projet obtenu dans OmegaT. Traduisez un ou deux segments et enregistrez votre progression. Créez maintenant les fichiers cibles et rouvrez votre logiciel Rainbow. Remplacez le fichier XML par le “manifest” qui se trouve dans notre projet OmegaT. Pour finir, on choisit “Translation kit postprocessing” et on appuie de nouveau sur “Execute” :



Voilà, le fichier traduit apparaît dans le dossier “out” du projet OmegaT. Bravo, on peut s’applaudir !


7. Conclusion


L’analyse de chacune de ces balises à travers un fichier XML au format ITS permet de mieux comprendre comment on peut créer soi-même des filtres de conversion XLIFF pour fichiers XML arbitraires, pour traduction, éventuellement dans OmegaT.


Nous vous remercions de votre lecture. N’hésitez pas à poster un commentaire juste en-dessous si vous avez une remarque sur cet article.


Sources


[1] https://www.w3.org/TR/2007/REC-its-20070403/

La version 2.0 d'ITS se focalise sur HTML et les formats XML en général : https://www.w3.org/TR/its20/

[2] https://fr.wikipedia.org/wiki/XML_Schema

[3] https://fr.wikipedia.org/wiki/Extensible_Markup_Language

[4] https://www.w3.org/TR/2007/REC-its-20070403/#basic-concepts-selection

[5] https://www.w3.org/TR/2007/REC-its-20070403/#trans-datacat

[6] https://www.w3.org/TR/2007/REC-its-20070403/#elements-within-text

[7] http://okapiframework.org/wiki/index.php?title=XML_Filter#whiteSpaces

Merci à M. Jean-Christophe Helary, notre tuteur de stage, pour avoir corrigé cet article !

Le blog de l'EMT (L'European Master's Translation), qui appartient à la Commission Européenne, a publié notre article sur les groupes partagés dans OmegaT :


Nous l'avions co-écrit avec Ismaël dans ce but, mais nous avons surtout été grandement aidé par notre tuteur de stage, M. Jean-Christophe Helary, qui a ajouté un nombre conséquent d'informations édifiantes dans le thème de notre écrit. Je l'en remercie.


Nous parlons avant tout dans cet article d'OmegaT, de sa licence libre, des projets en équipe supportés par une synchronisation rapide et des fonctionnalités utiles de l'outil (les glossaires, les notes, etc.). Je vous invite à consulter le lien ci-dessous dans les deux langues (en français et dans sa traduction en anglais) :



Si vous avez des questions sur cet article, n'hésitez pas à les poser dans les commentaires.

  • lilianfaedi

Dernière mise à jour : 14 mai 2022



Introduction


Lorsque l'on pose la question à un traducteur "pourquoi vous utilisez un outil de TAO ?", l'une des premières choses qu'il vous dira est que les glossaires sont bien pratiques. Et pour cause : au lieu de devoir utiliser un dictionnaire ou une liste de termes comme à l'époque, cet outil s'incorpore à l'interface de votre programme dans une fenêtre stylisée. Avec les mémoires de traduction, elles constituent l'un des deux avantages principaux d'un outil de TAO.


Dans SDL Trados Studio par exemple, on peut consulter les glossaires utilisés dans un sous-programme spécifique, intitulé "SDL Multiterm" et les gérer à l'envie en renommant, en supprimant et en ajoutant des entrées par le biais de l'interface. Elles s'affichent aussi dans la fenêtre même du logiciel tant que l'on met en place le glossaire dans le projet adéquat et que l'on définit pour elle les langues (source et cible) du projet :


Mais qu'en est-il d'OmegaT ? Si j'ai pu traiter de nombreux aspects du logiciel au travers de ce blog, je ne vois pas de fonctionnalité plus simple à mettre en place que celle des glossaires pour ce logiciel. Nous allons essayer de comprendre pourquoi par le biais de ces quelques lignes.


1) Incorporer des glossaires au projet


Ce titre est en-soi mensonger. En effet, il ne s'agit pas d'incorporer un glossaire à un projet : il est déjà présent à la création de ce dernier. Essayons d'en créer un pour voir ce que cela donne : allons dans Projet > Nouveau. Vous devriez obtenir une fenêtre comme celle-ci :


Vous pouvez voir en bas l'emplacement des fichiers de votre projet. Le troisième champ, contenant une adresse de répertoire, indique où se trouve votre glossaire. Bien sûr, il est possible de changer librement où se situent vos éléments du projet. Quand vous êtes satisfait de vos réglages, appuyez sur "OK".


Maintenant que votre projet est créé, chargez-y le fichier que vous souhaitez traduire et identifiez un terme qui serait intéressant à placer dans votre glossaire. Lorsque vous en voyez un qui pourrait faire l'affaire, sélectionnez-le, faites un clic droit et cliquez sur "Ajouter une entrée de glossaire". Une fenêtre devrait s'ouvrir :

Vous voyez que le terme source est déjà entré dans le champ correspondant, et que deux autres champs à remplir (dont un déroulant) se situent juste en-dessous. J'expliquerai plus tard en détail chaque champ. Pour l'instant, nous allons rentrer le terme qui correspond à la langue cible. Vous pourriez écrire vous-même le terme cible qui vous semble être une bonne traduction. Toutefois, si vous avez déjà rempli le segment cible, une fonction pratique s'offre à vous : vous pouvez sélectionner et copier l'expression adéquate, puis seulement cliquez sur le champ vide à côté de "Terme cible". Normalement, votre sélection est automatiquement insérée. Pour le bien de l'exercice, entrez dans le champ "Commentaire" la ou les phrases de votre choix. Vous devriez obtenir quelque chose comme ce qui suit :


Appuyez sur "OK". Félicitations, vous venez de créer votre première entrée de glossaire sur OmegaT, si ce n'est votre premier glossaire tout court. Vous pouvez facilement voir le fruit de votre travail dans la fenêtre Glossaires, si vous l'avez dans votre fenêtre principale :

À noter que vous ne pouvez pas écrire dans cette fenêtre.


2) Glossaire en écriture


Il serait intéressant de consulter votre fameux glossaire. On pourrait très bien aller dans les dossiers de votre système d'exploitation, mais il est aussi possible d'y accéder par deux moyens :


- Via le menu Projet d'OmegaT, puis Accéder au contenu du projet > Glossaires ;

- Clic sur le petit engrenage en haut à droite de la fenêtre et sur "Ouvrir le fichier glossaire en écriture".


Par le premier moyen, votre dossier s'est ouvert avec votre glossaire. Cliquez alors dessus. La deuxième méthode permet d'ouvrir directement le fichier dans une application texte. Voici ce que vous devriez obtenir dans votre logiciel :

Chaque entrée de glossaire est donc composée des trois éléments suivants :


- Le terme en langue source (ex : Chat Botté) ;

- Le terme en langue cible (ex : Puss in Boots) ;

- Un commentaire (ex : Célèbre personnage fantastique de cape et d'épée).


Chacun de ces éléments est séparé par une espace de tabulation. Ainsi, l'ajout d'entrées dans votre glossaire est on ne peut plus simple : il suffit juste de mettre les trois éléments dans l'ordre pour qu'OmegaT reconnaisse immédiatement l'entrée et l'incorpore dans la fenêtre en question.


Pour ajouter des entrées dans un projet en équipe, cela fonctionne exactement de la même façon. N'hésitez pas à consulter l'article que j'ai co-rédigé avec Ismaël pour en savoir plus : https://blogs.ec.europa.eu/emt/fr/traduction-multiposte-et-logiciels-de-tao-libres-omegat-en-situation/.


3) Un ou plusieurs glossaires


Essayons de créer un autre glossaire pour voir ce que cela donne. Rendez-vous dans votre dossier de glossaires et créez un autre document texte. Appelons-le "glossary2" pour l'exemple. À l'intérieur, reprenez votre terme source et modifiez juste le commentaire et le terme cible (en les séparant bien entendu avec une espace de tabulation) :

Maintenant, observez votre fenêtre Glossaires d'OmegaT :

Votre commentaire et votre autre traduction ont été pris en compte. Vous remarquez donc que même un simple fichier .txt que vous créez en trois clics peut devenir une liste redoutable pour traduire votre document.


Pour créer une entrée complètement différente, répétez la même action mais simplement sautez une ligne dans votre document texte, changez le terme source et modifiez à loisir les deux autres éléments de l'entrée, comme ceci par exemple :

Maintenant, retournez dans votre fenêtre OmegaT et constatez le résultat :

Si vous ne voyez pas toutes les entrées de vos glossaires dans le logiciel (comme dans l'exemple ci-dessus où il manque l'entrée du Chat Botté), cela est parfaitement normal. OmegaT n'affiche que les entrées qui contiennent une occurrence d'un terme source dans le segment en cours de traduction. Par exemple, le segment que je traduis actuellement est "un Meunier ne laissa pour tous biens à trois enfants qu’il avait, que son Moulin, son âne, et son chat". "Chat Botté" n'y apparaissant pas, le logiciel estime qu'il n'a rien à faire ici (et sans doute pour ne pas obstruer l'affichage).


Conclusion


Nous avons vu dans cette article que les glossaires dans OmegaT sont très simples à alimenter. En réalité, ils sont déjà présents à la création du projet, rendant leur utilisation aisée.


Ce n'était évidemment que la base de l'utilisation des glossaires, puisque je n'ai pas abordé les scripts automatisés via Python pour en créer facilement par exemple, ou leur changement de format possible. Pour d'autres informations sur eux dans OmegaT, merci de vous rendre directement à la page correspondante du manuel de l'outil : https://omegat.sourceforge.io/manual-latest/fr/appendix.glossaries.html.


N'hésitez pas à me poser des questions dans les commentaires de cet article si je n'ai pas été assez clair dans mes propos.

bottom of page