Translate strings

There is a wide range of translation tools available in the gettext ecosystem. Some of the are listed on Wikipedia. The general workflow is always the same:

  1. Use the .pot template as the basis for translation. This will generate a new translation catalog (a .po file) or updates an existing .po file.
  2. Translate the strings (and plural forms) in your corresponding language.
  3. Save the resulting .po file for the next step.

Some gettext translation tools will also generate compiled .mo files. You can safely ignore these, we won't be using them.


By far the easiest option to translate is Transifex. This online service lets you get started quickly and does not require you (or your translators) to install anything. This service is not free, but there are free plans available for open-source projects.


An alternative to Transifex is Pootle, a web interface for translations. Pootle can be rather difficult to setup though.


The poedit application should be installed on your desktop, but is very easy to use (with one small exception). Here's a step by step guide:

First translation

  1. Download and install Poedit, which is available for Windows, Linux and Mac OS X.
  2. Start Poedit and choose the "New Catalog from POT File..."

    New catalog

  3. Locate your .pot file. This will open the "Catalog properties" dialog. Most of these options can be ignored, except for the Language and Plural Forms fields:

    Catalog properties

    You can find the correct value for these fields on this page. Warning: Be sure to check that you don't include a semicolon at the end of the plural-forms value, otherwise Poedit will not show the correct input boxes.

  4. Save the new .po file somewhere in your project (I recommend putting it in a po folder, next to the .pot file, as is convention for gettext projects).


  5. Translate the strings.


  6. Save your catalog and continue to the next step


If you make changes to your project, simply run grunt again to generate a new .pot template. Then:

  1. Open your translation catalog (the .po file).
  2. Use the "Update from POT File..." menu option. This will update your translation catalog by adding new strings, removing obsolete ones and flagging slightly changed ones for review.

    Update from catalog

  3. Update your translations as usual and remember to save your work.

Next: Compiling your translations