Yes, I want my consultation

SDLXLIFF Translation with OmegaT Made Easy

How to convert SDLXLIFF to TTX and back for translation with OmegaTThis is an important addition to my previous article about making the tags produced by other tools more friendly to OmegaT. Read this if you’re struggling with any sort of existing translations in the SDLXLIFF files. Due to a current limitation, OmegaT accepts only those SDLXLIFF files where you copied the source segments into the target segments (pre-segmented files). This makes it impossible to keep the 100% matches in a file and have the Trados tags converted into the OmegaT tags automatically.


In his recent newsletter, Jost Zetzsche mentioned a handy program called SDLXLIFF to Legacy Converter, which, among other conversions, allows you to convert between the SDLXLIFF and TTX formats. Are you thinking about the same thing as I am? Yes! This means we can convert SDLXLIFF into TTX, translate the resulting TTX file with OmegaT, and then convert it back into the SDLXLIFF format. Because OmegaT provides a better support for TTX than it currently does for SDLXLIFF, including support for partially or fully translated files, this workaround enables us to avoid the above limitation.


At least three use cases come to mind:

  1. A pre-translated SDLXLIFF file that includes a certain percentage of 100% matches. To process this file in OmegaT directly, you need to overwrite all 100% matches, as well as the untranslated segments, with the source segments. As a result, you’ll end up inserting any 100% matches with tags manually from the TM, adjusting those tags each time. Instead of this time-consuming process, you can now convert your pre-translated SDLXLIFF file into a TTX file. You then load this TTX into OmegaT, and voila, all 100% matches with tags are already there.
  2. Editing an already translated SDLXLIFF file. This may be a file that you received for editing from a translation agency. Currently, the only way to process it with OmegaT is to create a TMX from this file, overwrite all 100% matches with the source segments, load both the file and TMX into OmegaT, and hope there’re not too many tags. Sounds complicated, doesn’t it? This is very inefficient indeed, and the motivation to do this kind of conversion is quite low when you can actually use Studio to edit the SDLXLIFF file directly. With the SDLXLIFF to Legacy Converter, however, you only convert your SDLXLIFF file into a TTX file and back.
  3. Processing larger SDLXLIFF files. Certain SDLXLIFF files may take too long to load in OmegaT. If you encounter this problem, simply convert them into TTX.

What to Watch Out for

OmegaT does follow the existing segmentation in a TTX file—or a SDLXLIFF files, for that matter. It doesn’t merge segments. But it still can split segments that originally appeared as one segment in the TTX file. For example, a two-sentence Trados segment can become two segments in OmegaT, each sentence in a separate segment. This means OmegaT won’t be able to insert the translation from the TTX or TM automatically. You’ll either need to adjust segmentation rules on a case-by-case basis to match the TTX segmentation or insert translations manually.

As with any other conversion, converting between SDLXLIFF and TTX might be prone to errors and inefficiencies. You need to weigh the advantages and time it’ll take against the time necessary to insert the 100% matches manually or simply work in Studio directly without any conversions.

OmegaT may fail to load a resulting TTX file, displaying an error “26473: Warning: Attribute Lang is missing in Tuv (after text unit ‘0’)” in the log. In this case, you either need to re-save this file in TagEditor or open it with any text editor and replace all occurrences of “Tuv lang” with “Tuv Lang.”

One Last Thing

Always remember to segment your SDLXLIFF files before conversion. Otherwise, OmegaT might have trouble segmenting the TTX files. And if you’re geeky enough, you can also use our regex workaround to avoid displaying the translations from a TTX file in the Fuzzy Matches pane.

To learn more about OmegaT, read other articles about what this translation memory program has to offer.

Add comment

About the Author

Roman Mironov
Roman Mironov
CEO & Founder

As the founder of Velior, Roman has had the privilege of being able to turn his passion for languages into a business. He has over 15 years of experience in the translation industry. Roman has helped dozens of clients increase sales by making their products appealing for speakers of other languages.