Poedit is a free tool to translate software, websites, and apps that use Gettext PO files for localization. WordPress, PHP projects, and Django, for example, use PO files, and on Linux, PO files are used for nearly everything.

Poedit uses a very compact format for its editor, so it is easy to use and lets you focus on translation without being distracted. It uses a TM to store your translations, and therefore it can suggest translations in future projects.

How translation of strings from code works

  1. The developer writes their code using Gettext APIs.
  2. The developer extracts all translatable texts in their code and creates a master PO file that translators can work with.
  3. The translator works through the PO file provided and hands back their translations, one file per language.
  4. Whenever the source code changes and there are translation differences, the developer re-runs the extraction and updates the master PO file accordingly.
  5. The translator must only update their translation file to match the master file 100%.

Poedit can help with stages 2 through 5 and save translators and developers time at each stage, thanks to its focused workflow and extensive capabilities.

Available for: Windows, OS X, Unix/Linux

Download Poedit:
Download

Additional Information:

Online Help
Wiki Page
Video on YouTube

Considerations for Software Translation

It is important to know that software translation needs a different approach than other translations.

One is, of course, that not every tool is made for it. CAT tools like OmegaT or MateCat are great for most translation jobs. Some tools might not be able to handle Gettext PO Files. POedit, on the other hand, is only good for software translations. So choose wisely.

Another important fact is that you will face space limitations when you translate strings for user interfaces. Therefore it is always important to keep your translations as short as possible. Otherwise, it might not fit into the dialog’s text boxes. It might get cut or overlap with other text. This, in turn, leads to a bad user experience. However, your translation still needs to be clear. The user needs to know what he has to do on the user interface, or, again, it will be a bad user experience.