TheInternationalization Tag Set (ITS) is a set of attributes and elements designed to provideinternationalization and localization support inXML documents.[1]
The ITS specification identifies concepts (called "ITS data categories") which are important for internationalization and localization. It also defines implementation of these concepts through a set of elements and attributes grouped in the ITS namespace. XML developers can use this namespace to integrate internationalization features directly into their own XML schemas and documents.
ITS v1.0 includes seven data categories:
The vocabulary is designed to address two different aspects: First by providing markup usable directly in the XML documents. Second, by offering a way to indicate if there are parts of a given markup that correspond to some of the ITS data categories and should be treated as such by ITS processors.
ITS applies to both new document types as well as existing ones. It also applies to both markups without any internationalization features as well documents already supporting internationalization or localization-related functions.
ITS can be specified usingglobal rules andlocal rules.
its:rules element.In the following ITS markup example, the elements and attributes with theits prefix are part of the ITS namespace. Theits:rules element lists the different rules to apply to this file. There is oneits:translateRule rule that indicates that any content inside thehead element should not be translated.
Theits:translate attributes used in some elements are utilized to override the global rule. Here, to make translatable the content oftitle and to make non-translatable the text "faux pas".
<textxmlns:its="http://www.w3.org/2005/11/its"><head><revision>2006-09-10v5</revision><author>GersonChicareli</author><contact>someone@example.com</contact><titleits:translate="yes">TheOriginsofModernNovel</title><its:rulesversion="1.0"><its:translateRuletranslate="no"selector="/text/head"/></its:rules></head><body><divxml:id="intro"><head>Introduction</head><p>Itwouldcertainlybequitea<spanits:translate="no">fauxpas</span>tostartadissertationontheoriginofmodernnovelwithoutmentioningthe<tl>HKLMofGFDL</tl>...</p></div></body></text>
In the following ITS markup example, theits:locNote element specifies that any node corresponding to theXPath expression"//msg/data" has an associated note. The location of that note is expressed by thelocNotePointer attribute, which holds a relative XPath expression pointing to the node where the note is, here="../notes".
Note also the use of theits:translate attribute to mark thenotes elements as non-translatable.
<Resxmlns:its="http://www.w3.org/2005/11/its"><prolog><its:rulesversion="1.0"><its:translateRuleselector="//msg/notes"translate="no"/><its:locNoteRulelocNoteType="description"selector="//msg/data"locNotePointer="../notes"/></its:rules></prolog><body><msgid="FileNotFound"><notes>Indicatesthattheresourcefile{0}couldnotbeloaded.</notes><data>Cannotfindthefile{0}.</data></msg><msgid="DivByZero"><notes>Adivisionby0wasgoingtobecomputed.</notes><data>Invalidparameter.</data></msg></body></Res>
ITS does not have a solution to all XML internationalization and localization issues.
One reason is that version 1.0 does not have data categories for everything. For example, there is currently no way to indicate a relation source/target in bilingual files where some parts of a document store the source text and some other parts the corresponding translation.
The other reason is that many aspects of internationalization cannot be resolved with markup. This is due to the design of the DTD or the schema itself. There arebest practices, design and authoring guidelines help make documents are correctly internationalized and easy to localize. For example, using attributes to store translatable text is a bad idea for many different reasons, but ITS cannot prevent an XML developer from making such choice.
Some of the ITS 1.0 limitations are being addressed in the version 2.0: Seehttp://www.w3.org/TR/its20/ for more details.