Internationalization Tag Set

ITS (Internationalization Tag Set) est un jeu d'éléments et d'attributs conçu pour faciliter l'internationalisation et la localisation des documents XML.

La norme ITS identifie des concepts importants pour l'internationalisation et la localisation appelés "catégories de données ITS". Elle définit également des implémentations de ces concepts au travers d'un jeu d'éléments et d'attributs groupés au sein de l'espace de noms ITS. Les développeurs et auteurs XML peuvent utiliser cet espace de noms pour intégrer directement des fonctionnalités d'internationalisation à leurs propres schémas et documents XML.

Présentation modifier

ITS version 1.0 comprend sept catégories de données :

  • Translate : définit quelles parties d'un document peuvent être traduites ou ne le peuvent pas ;
  • Localization Note : offre des alertes, des conseils, des instructions et d'autres informations pour aider les personnes chargées de la localisation et de la traduction ;
  • Terminology : indiquent les parties du document qui définissent des termes ainsi qu'éventuellement des pointeurs vers des informations sur ces termes ;
  • Directionality : indique le sens d'écriture à appliquer aux différentes parties du document ;
  • Ruby : détermine les parties du document qui doivent être affichées en tant que texte ruby (un ruby est un court filet à côté d'un texte principal, utilisé en général dans les textes d'Extrême-Orient pour indiquer la prononciation ou pour fournir une brève annotation) ;
  • Language Information: identifie la langue des différentes parties du document ;
  • Elements Within Text: indique comment les éléments doivent être traités en ce qui concerne la segmentation linguistique.

Les éléments et attributs ITS fonctionnent de deux façons différentes. D'abord, ils fournissent un balisage que l'on peut utiliser directement dans les documents XML. Ensuite, ils offrent une manière de rattacher certaines balises existantes à des catégories de données ITS, ce qui permet aux processeurs ITS de les traiter de façon adaptée.

ITS s'applique aussi bien à de nouveaux types de documents qu'aux types existants. Il s'applique à la fois aux systèmes de balisage complètement dépourvus de fonctionnalités d'internationalisation qu'à ceux qui prennent déjà en charge certaines fonctionnalités d'internationalisation.

ITS utilise des règles globales et des règles locales :

  • les règles globales sont énoncées n'importe où dans le document (règles globales internes) ou même en dehors du document (règles globales externes) grâce à l'élément its:rules ;
  • les règles locales sont exprimées au moyen d'attributs et d'éléments spécialisés à l'emplacement du document où elles s'appliquent.

Exemples modifier

Catégorie de données Translate modifier

Dans l'exemple de balisage ITS suivant, les éléments et les attributs préfixés par its: font partie de l'espace de noms ITS. L'élément its:rules énumère les différentes règles à appliquer à ce document. La règle its:translateRule indique tout contenu trouvé dans l'élément head ne doit pas être traduit.

L'attribut its:translate attaché à certains éléments sert à nuancer la règle générale. Ici, cet attribut est utilisé pour rendre traduisible le contenu de title et pour rendre non-traduisible le texte "Weltanschauung".

<text xmlns:its="http://www.w3.org/2005/11/its">
 <head>
  <revision>Sep-10-2011 v5</revision>
  <author>Charles Gustave Lejeune</author>
  <contact>cg.lejeune@lameetlavie.fr</contact>
  <title its:translate="yes">La conception du Monde</title>
  <its:rules version="1.0">
   <its:translateRule translate="no"
                      selector="/text/head"/>
  </its:rules>
 </head>
 <body>
  <div xml:id="intro">
   <head>Introduction</head>
    <p>La <span its:translate="no">Weltanschauung</span> est une vision du monde
      (ou une conception du monde), d'un point de vue métaphysique, notamment
      dans l'Allemagne romantique ou moderne.</p>
  </div>
 </body>
</text>

Catégorie de données Localization Note modifier

L'élément its:locNote précise que tout nœud correspondant à l'expression XPath "//msg/data" est associé à une note. L'emplacement de cette note est indiqué par l'attribut locNotePointer, qui contient un chemin XPath relatif pointant sur le nœud où se trouve la note, ici ="../notes".

On peut également remarquer l'utilisation de l'attribut its:translate pour marquer les balises notes comme non-traduisibles.

<Res xmlns:its="http://www.w3.org/2005/11/its">
 <prolog>
  <its:rules version="1.0">
   <its:translateRule selector="//msg/notes"
                      translate="no"/>
   <its:locNoteRule locNoteType="description"
                    selector="//msg/data" 
                    locNotePointer="../notes"/>
  </its:rules>
 </prolog>
 <body>
  <msg id="FileNotFound">
   <notes>Indique que le fichier de ressources {0} n'a pas pu être chargé.</notes>
   <data>Fichier {0} introuvable.</data>
  </msg>
  <msg id="DivByZero">
   <notes>Une division par zéro a failli être calculée.</notes>
   <data>Paramètre invalide.</data>
  </msg>
 </body>
</Res>

Limitations de ITS modifier

ITS ne constitue pas une solution à tous les problèmes d'internationalisation et de localisation de documents XML.

Une raison en est que la version 1.0 ne dispose pas de catégories de données pour tout. Par exemple, il n'y a pour le moment pas moyen d'indiquer une relation source-cible dans des fichiers bilingues où certaines parties du document contiennent le texte source, alors que d'autres parties contiennent la traduction correspondante.

L'autre raison est que de nombreux aspects de l'internationalisation ne peuvent pas être traduits en balises. Ils se rapportent à la conception de la DTD ou du schéma eux-mêmes. Certaines bonnes pratiques de conception et de rédaction doivent être respectées pour s'assurer que les documents sont correctement internationalisés et faciles à localiser. Par exemple, l'utilisation d'attributs pour stocker des textes à traduire est une mauvaise idée pour plusieurs raisons, mais ITS ne peut pas empêcher un développeur XML de faire un tel choix.

Liens externes modifier