As of this writing, the latest version of OmegaT supports SDL Trados TTX file format through Okapi plugin. While this is a great way to handle TTX files within your favorite translation program, it has two limitations. One possible workaround is to use Okapi Rainbow to create a translation kit for OmegaT and then post-process it after translation. In case this won’t work for you and you need to process your TTX file directly in OmegaT, this post suggests another easy-to-use workaround to overcome the current limitations. But let’s look at them first.
Segmented TTX File
If you open a segmented TTX file in OmegaT, all repetitive segments (>internal repetitions) are marked as the so called alternative translations; that is, identical segments supposedly translated in a different way. You can confirm this by looking at the Multiple Translations pane, which will display several translations for such segments. This behavior doesn’t allow auto-propagation of translations. If you edit any repetitive segment, you change just that segment while other identical segments will remain unchanged. You will need to edit each of them manually. Because the Multiple Translations feature was introduced in OmegaT 2.5, you can avoid this behavior by using an older version such as 2.3, but to me, this is not an option, because too many great features have been added since then.
Unsegmented TTX File
The above problem doesn’t apply to the unsegmented TTXs. But currently OmegaT creates a paragraph-based segmentation in the target TTXs instead of a sentence-based one, which is unacceptable more often than not. For example, your client may want TTX segmentation based on their own SDL Trados segmentation settings. If the paragraph-based segmentation is fine with you and your client, you can translate an unsegmented TTX file with the latest OmegaT safely. If not, you can only work on a segmented TTX.
Now for the workaround part. My colleague Vladimir came up with this solution and it has worked reliably for us so far. We noticed that if you take a segmented TTX file and replace each target segment with just one space, OmegaT will understand this space as if the segment is untranslated—therefore, no “multiple translations” problem. At the same time, OmegaT will keep the existing segmentation intact, which means no paragraph-based segmentation. With this workaround, you can use the latest OmegaT to work on any segmented TTX file directly.
- You need a fully segmented TTX file. You can ask your client to provide one. Or you can segment your TTX yourself using the free trial version of Wordfast Pro or SDL Trados. If your file has any 100% matches, you can either keep them or replace them with the source segments as well. We keep them when a client doesn’t want us to check them at all. As a result, they are labeled as alternative translations in OmegaT, but that’s okay because they won’t require any changes. If they need checking, however, we replace them with the source segments as well.
- Open your TTX file in any text editor that supports regular expressions such as Notepad++.
- Open the search and replace function, enable regular expressions, and make the following replacements:
You can input ‰ by pressing Alt+0137. In fact, you can use any other rare character of your choice, just make sure your TTX file doesn’t originally contain it.
Note the space between the tags in the replacement string. I am using English to Russian translation as an example, but you’ll need to use the language codes found in your TTX file.
This replacement simply reverts the one made in the first step.
- Save your TTX file and open it in TagEditor or Wordfast Pro. Look through the file to check whether all source segments were correctly replaced by the spaces. If you didn’t replace the existing translations (100% matches) by the source segments while segmenting your file, those existing translations will remain unchanged.
- Translate this TTX file with OmegaT.
This short workaround enables you to work on the segmented TTXs using the latest OmegaT. Before trying it, please note that we’ve tested it on a limited number of TTX files. The chances that you’ll experience problems are quite high. Please check your TTX file after making the replacements and also check whether OmegaT saves the target TTX file properly before you actually proceed with translation. Additionally, I am no expert with regular expressions so you might be able to improve the suggested replacements.
If you choose to use this workaround until the current limitations of processing TTX files with OmegaT 2.5 are solved, we’d love to hear you feedback so please leave a comment below.