Home > Developers > Wiki > Admin Online Translation HOWTO
Views

Developer guide for working with Mifos internationalization, specifically as relates to making translation files work with the online translation tool.

Goals

  • strictly limit the proliferation of resource bundles to ensure manageability
  • support an extensible translatable string dictionary format to make life easy for translators

Overall i18n Architecture

Following the Cheetah i18n architecture guide, "master" keys and translatable strings are in Java .properties format resource bundles. These .properties files will not contain underscores in their filenames. These files will be stored in source code version control.

Language-specific translations will also be stored in source code version control, but only in .po (portable object) format, like LOCALE/bundlename_LOCALE.po. Language-specific Java .properties format resource bundles needed by Mifos to display the application in a language other than the default will be generated during the build.

General Guidelines

  • Before working with translation files, perform an update to pull the latest changes in source control into your working copy.
  • Use detailed log messages when committing. Mention why you made the change, refer to related issues, and link to related mailing list threads.

Adding new keys

  • add key and default translation to appropriate .properties file
  • run locale_sync.sh
  • commit default .properties and LOCALE/*.po files

New .properties files will also be picked up by locale_sync.sh, but care should be taken to only add new default/master translations when absolutely necessary (see Goals).

Adding new languages

  • create directory using name of locale
  • run locale_sync.sh
  • commit LOCALE/*.po files
  • an administrator also needs to add new translation files for this language to the server; make a request on the mifos-developer mailing list for this.


Grameen logo