opentag.com
\\ Technologies :: Formats :: TMX

The Translation Memory eXchange format was developed by the OSCAR special interest group of the Localisation Industry Standards Association (LISA).

The purpose of TMX is to allow any tool using translation memories to import and export databases between their own native formats and a common format. This allow tools users to not be cornered in using a specific tool, but to make sure the asset that their TM databases constitutes can go through the raise and fall of different generation of translation tools.

The version 1.4b of TMX has been released in April 2004. The main difference with the version 1.3 is the deprecation of the <ut> element, a more complete definition of how inline elements should be handled, and the addition of SRX.

The TMX format specifications are freely available at the GALA Web site: http://www.gala-global.org/oscarStandards/tmx/tmx14b.html

Two important aspects of TMX to keep in mind:

  • For text that includes inline codes (such as formatting, images, etc.), tools that support TMX Level 1 only are not providing true interoperability since they will lose all inline codes.
  • TMX does not provide a standard for segmentation. Therefore there is no guarantee that a TM will yield the same results when moved from one tool to the other, even for exact matches. This is not a problem specific to TMX, but a general issue of segmentation that occurs regardless which format you use to migrate your TMs. The adoption of the SRX (Segmentation Rules eXchange format) help to carry the information about how the segments of the TM have been made, but this does not solve all the issues.

Example of TMX document with one segment:

<?xml version="1.0" ?>
<tmx version="1.4">
 <header creationtool="XYZTool" creationtoolversion="1.01-023"
  datatype="PlainText" segtype="sentence"
  adminlang="en-us" srclang="EN"
  o-tmf="ABCTransMem">
 </header>
 <body>
  <tu>
   <tuv xml:lang="EN">
    <seg>Text in <bpt i="1">&lt;B></bpt>bold<ept i="1">&lt;/B></ept>.</seg>
   </tuv>
   <tuv xml:lang="FR">
    <seg>Texte en <bpt i="1">&lt;B></bpt>gras<ept i="1">&lt;/B></ept>.</seg>
   </tuv>
  </tu>
 </body>
</tmx>