Tuesday, January 30, 2007 - 10:49
Written by

CiviCRM is localised into several languages and used by people all around the world. All of the CiviCRM translations are provided by volunteers; this blog post explains how to participate in the community of translators and make CiviCRM usable for people who prefer to use software in their language.

General Informations

All of the strings (words, sentences – texts in general) displayed in the user interface are written in English and translated on-the-fly to the locale selected in Administer CiviCRM | Global Settings | Localisation (for example, if the locale is pl_PL, the strings are translated to Polish). Of course, if a given string is not yet translated, it remains in English; this means CiviCRM can be translated partially (or incrementally over time), and not all of the 3350 different strings need to be translated to make CiviCRM usable for a non-English-speaking person.

For actual translation of the English strings we use the gettext backend. This means we have plain-text PO files containing the English originals and the target (e.g., Polish) translations. These files can be either translated with any text editor, with a specialised PO file editor or (most preferably) our Web-based translation interface.

Web-based Translation

To help translate CiviCRM we’ve set up a Web translation interface. After registering, users can help translate CiviCRM to all of the languages listed there. The translation interface is quite easy to grasp (drop us a note if there are any problems with it) and allows translating from any place with Internet connectivity.

Access to the PO Files

If you prefer to translate offline, you can use any text editor (preferably a PO-file editor like KBabel, gtranslator for Linux or poEdit for Windows), the PO files can be found in our repository’s l10n subdirectory – CiviCRM 1.6 files live here. After translating, please send the files our way.

New Languages

If your language is not listed in the Web-based interface, please send an email to and we’ll gladly generate all of the relevant PO files (and add them to the repository and our Web interface).

Localising a CiviCRM Installation

Since CiviCRM 1.6, the localisation files are split into their own tarball distribution file. To localise your CiviCRM installation, download the relevant civicrm-<version>-l10n.tar.gz file and extract it into your CiviCRM directory; you should then be able to select different locales in Administer CiviCRM | Global Settings | Localisation.


If you want to join the translators community, please consider subscribing to the low-volume civicrm-translators mailing list.

Relevant Links


I found this on the CiviCRM forum:

If you want to compile the PO files yourself, you need the gettext program. Once you have it, you need to issue these commands:

msgcat -o civicrm.po *.po
msgfmt -o civicrm.po

The first will create a common PO file with all the translations and the second one will compile it.
To edit the translation in your language visit
I really recommend to check the CiviCRM translations because at least in the german one are a lot of errors. Hopefully the translation quality will improve for the next versions.
How do I get the translated file back to sourceforge for downloading and how do I update files in pootle? (from a forum post)
Shot commits all of the new translations into the code repository on a weekly basis. You can download for example the German MO file for CiviCRM 2.1 at
Every time they do a release they also take a snapshot of all of the translations and upload it to SourceForge.