Computer Assisted Translation (CAT) tools

After reading the article Automatically translate your apps in less than 5 minutes, from Tiago Simões, I decided to share how I usually translate Outsystems applications: using a CAT (Computer Assisted Translation) tool.

While using Google Sheet + Google Translate function is cheap and looks fast, it will not have the advantages of a CAT tool (see below) and will become more difficult to maintain with time. These are the issues I currently see:

  • After a first translation job, how to understand what texts changed and need re-translation?
  • How to profit from a translation done on another part of the same system or the same client's applications?
  • As you cannot blindly trust what google provided, how can you avoid having to approve the same translation multiple times?
  • How to guarantee the same term is always translated the same way?

Advantages of using a CAT tool:

  • They save all the human approved translations in a translation memory (database of translations).
  • They allow exporting the translation memories (TMs), so you can use them on another CAT tool.
  • They allow using TMs from other projects.
  • When you upload a new or changed file, the tool will check which segments (texts) it already knows and only shows to translate the new or changed ones.
  • They allow the usage of glossaries, so that helps keep term consistency.
  • They do spellcheck. Note: Google sheets allow this too.
  • They respect placeholders. Note: I'll try to write another post showing why placeholders are important and how to use them in Outsystems.
  • They do translation quality checks. Examples: is the target missing an end period mark, does it have multiple spaces, is the same source text translated multiple ways, is the same target text translated the same way while it was different on the source, etc...
  • They allow us to have a defined process (developers upload, translators translate, and reviewers review).

Recommended CAT tools

I used different CAT tools in the past: Worldserver (years ago), Crodwin, SmartCat, and MateCat. I'll only talk about the last two as they are the ones you can use for free for an unlimited time. I'm not associated with any of these products.


Link: https://smartcat.com/

  • Freemium, the most important options are available on the free tier.
  • Supports RESX files.
  • Supports Multilingual-Excel files (the format exported by Outsystems).
  • If you already have translated rows on a Multilingual-Excel file, they will be imported and used.
  • Allows to keep the project active and to re-upload the same files.
  • The free machine translation module uses Yandex service, and the result is not as good as Google's.
  • Usage of Google and Bing translation services require payment.

Important: If you see the Free Machine Translation option, your translations will be sent to the machine translation provider to improve the quality of the service.


Link: https://www.matecat.com/

  • Free.
  • Uses community translation memories: translation done by other people.
  • Uses Google and Bing for MT.
  • Supports RESX files.
  • Supports Multilingual-Excel files (the excel format exported by Outsystems).
  • It is not possible to re-upload the same file. If the file changes, you need to create a new project and use the existing translation memories.

Important: by default, MateCat shares the translations you did with other users, it's all part of the "community translation memory" idea. If you need to keep the texts private you need to configure the project not to share.

How To
How to had Multilingual-Excel files to SmartCat

Documentation: https://help.smartcat.com/hc/en-us/articles/360015204940-Multilingual-Excel-done-right

Video: https://youtu.be/kOhLgKJ89Bc

Note: If the UI doesn't offer you the "Skip" option, upload a text file and remove it afterward.

For Outsystems exported excel files, the configuration should be:

To finish, I'll like to mention that this thread's idea is to discuss experiences and ideas, so please share your perspective and experiences by commenting.

What tools did you use to help you with translations?

What is the biggest problem while translating an application?