Read This if You Hate to Translate Internal Repetitions


Internal repetitions in OmegaT explainedInternal repetitions represent two distinct challenges for translators. You need to make sure they’re translated in the same way across the project. But sometimes, you want to translate them in a different way. In the early days, tackling these two challenges was a nightmare since changing a translation of an internal repetition would require searching and replacing all the occurrences across all the files in a project. The newer programs, OmegaT included, automatically replace each occurrence of an internal repetition, keeping them consistent throughout the entire project, while also allowing unique translations.

Challenge 1: Using auto-propagation in OmegaT

Auto-propagation is a project-specific setting enabled by default. You can confirm this by pressing Ctrl+E and looking for the Auto-propagation of Translations checkbox. To check whether it works correctly, scroll through your project and find any segment that displays in gray. This is a non-unique segment (internal repetition). Translate it, copy the source text, and find it using the Text Search window (Ctrl+F). If you check Display all results, you’ll notice that all the occurrences got translated, not just this one. Whenever you update any of these non-unique segments, the remaining occurrences will update immediately, too. No need to update them individually.

Challenge 2: Alternative translations in OmegaT

But there’s a catch. Some of these internal repetitions will require a different translation depending on the context. For instance, “Title” can mean a title of a document and a person’s title such as “Mr.” Some CAT tools still make dealing with these segments difficult, but with OmegaT, this couldn’t be easier. All you need to do is translate a non-unique segment in a different way, right-click it, and select Create Alternative Translation. When you re-open this segment, the Multiple Translations pane will display two different translations. The alternative translation description in this pane includes the name of the file where it belongs. Because such translations are context-dependent, OmegaT also stores and displays in the pane the source text from the preceding and the following segments. To remove an alternative translation, open the segment, right-click it again, and select Use as Default Translation.

Best practices for alternative translations

  • If you have ten occurrences of a repetition, but only one requires an alternative translation, be sure to make this one segment an alternative translation. Don’t leave this segment unique, making the other nine segments alternative translations. I know this sounds common-sense, but it’s not an easy thing to do because as soon as you encounter a repetition that calls for an alternative translation, you’re compelled to change it right away, without thinking whether it might be better to convert the other occurrence. So think before you do this to avoid unnecessary alternative translations.
  • Go To Next Untranslated Segment stops where there is at least one alternative translation: You can enable this checkbox in Options => Editing Behavior to make sure each alternative translation opens when you go through the project using Ctrl+U. I keep this option enabled because double-checking these tricky segments is a helpful habit.
  • Previously, alternative translations were always file-dependent: OmegaT stored the file name in the project_save.tmx and inserted alternative translations only if the name of the file in the project matched the one in the project_save.tmx. But now, you can configure this behavior by enabling the Ignore file context when identifying segments with alternate translations checkbox under Options → File Filters. I keep this option enabled at all times, because otherwise, something as simple as changing a file name can result in losing alternative translations. The only time you want to disable it is when you have alternative translations with identical context in different files that have to be translated differently.


  • OmegaT’s speed on big files…

    Post about making OmegaT much faster when working with huge files and experiencing a slowdown in OmegaT’s response to keystrokes and mouse clicks…….

  • In this grand scheme of things you’ll secure an A for effort and hard work. Where you lost everybody was in your details. You know, as the maxim goes, the devil is in the details… And it couldn’t be more true at this point. Having said that, allow me inform you precisely what did deliver the results. Your authoring is definitely quite convincing which is probably the reason why I am taking an effort in order to comment. I do not make it a regular habit of doing that. 2nd, even though I can see the leaps in reasoning you make, I am not necessarily convinced of exactly how you seem to unite the ideas which help to make your conclusion. For the moment I will, no doubt yield to your point however hope in the near future you actually link your facts better.

  • Hi! Do you use Twitter? I’d like to follow you if that would be ok. I’m undoubtedly enjoying your blog and look forward to new posts.

  • Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your weblog? My blog is in the very same area of interest as yours and my users would definitely benefit from a lot of the information you present here. Please let me know if this okay with you. Thanks a lot!

  • Admiring the dedication you put into your blog and detailed information you provide. It’s good to come across a blog every once in a while that isn’t the same old rehashed information. Excellent read! I’ve bookmarked your site and I’m adding your RSS feeds to my Google account.

  • Hi! Do you know if they make any plugins to assist with Search Engine Optimization? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good success. If you know of any please share. Many thanks!

  • Damien Rembert says:

    Hi Roman,

    I’d like to suggest you add a note/update about the “Ignore file context when identifying segments with alternate translations” checkbox. This setting is not easy to find (so I have to look it up every now and then) and this page is one of the most complete there is on the use of alternative translations. It’s just missing that bit of information, as far as I can tell!
    It’s a good alternative to the method you describe in the end of this page, since it does not depend on the name of the file. Obviously it’s to be used carefully as it relies only on the content of the surrounding segments (depending on the file format).

    This checkbox can be found in “Options” > “File filters…”.
    Quoting the manual:
    “Ignore file context when identifying segments with alternate translations: by default, OmegaT uses the source file name as part of the identification of an alternate translation. if the option is checked, the source file name will not be used, and alternative translations will take effect in any file as long as the other context (previous/next segments, or some sort of ID depending on the file format) matches.”

    Thank you very much for this very useful page!


    • Hello Damien,

      Thank you for reading and suggesting an update. Right, this option was not available at the time of the writing. I have updated the article now.

      Best wishes,

Add comment