Translating the Reference Application

The modules that make up the Reference Application are (mostly) translated via the online tool Transifex. It lives  here:

If you would like to help translate, you need to create a (free) account on transifex and join the OpenMRS team on Transifex. (If you have trouble doing this, please ask for help on the dev:translation category of OpenMRS Talk.)

If you find a Reference Application module that is not included in the Transifex project, please ask on OpenMRS Talk to have it added. 

Translations are automatically pulled into the codebase daily, but module owners won't automatically notice this, and won't automatically release a new version with your translations. After you have reached some milestone of translating a module, you should write a post on dev:translation, and we'll make sure the appropriate module owner is notified.

You can be a reviewer!

We would like to have all translations be reviewed before they are pulled into the codebase, but we are not doing this yet. (At present we automatically mark all translations as reviewed daily, with this CI plan.)

Help us improve by volunteering to review translations! For this you should meet certain requirements:

  1. Be a native speaker or interpreter of the language
  2. (one of the following)
    • Be a known OpenMRS community member (/dev/2 or above, or another Talk badge that shows you have been around)
    • Have some Transifex recommendations
    • submitted 100 new / improved and appropriate translations

If you are interested in the work of a reviewer, but you don't meet all conditions or if you can speak an uncommon language, ask if you still qualify on the dev:translation category.

Be a Translation Manager

There are some tasks that you can do as a Translation Manager, without needing to be multilingual yourself:

  • Help us start a review process, and ensure that all new translations are reviewed in a reasonable amount of time
    • Even better, help set up automated alerts for this
  • Make sure that all languages that have translations are available in modules
    • Even better, help set up automated alerts for this (i.e. a module's config.xml or .tx/config doesn't mention a language for which it has a translation)
  • Make sure that any reported "translation issues" in Transifex are being addressed
    • Even better, help us set up automated alerts for this
  • Find commonly-used modules we aren't translating yet, and encourage module authors to get these into Transifex.
  • Help recruit translators and (especially!) reviewers
  • Help us craft a strategy for uncommon languages (i.e. what to do where it's too hard to find reviewers)
    • (Maybe allow unreviewed translations of certain languages. Or maybe decide that if a language is that uncommon in the OpenMRS community, we shouldn't be including it.)

Thanks to Ismael Batista for volunteering in this role! (We can always use more help, though.)

Translation Notes & Gotchas

  • Any messages that contain arguments (i.e., {0}, etc) must have any single quotes (') replaced with two single quotes (' '). Spring's ResourceBundleMessageSource uses MessageFormat for replacing placeholders ({0}) inside messages. MessageFormat requires that single quotes (') are escaped using two single quotes ('') (see: MessageFormat Javadoc).

Developer Details

For more details about how a developer would configure a module to use Transifex, see Maintaining OpenMRS Module Translations via Transifex.

Translating OpenMRS clinical terminology

The file handles application-specific language. For more information about updating and translating clinical terminology used in OpenMRS via the concept dictionary, see Terminology Service Bureau. Contact Andrew Kanter at