openIMIS (modular) localization

Localization (i18n) aims at providing to users an interface (UI) that match their culture.

This covers the language (used vocabulary) as well as displayed value formats (date formats, number formats,...).

The displayed locale (i.e. translations and value formats) is defined by user's registered language in the database (i.e. not the browser's settings).

One openIMIS instance can support users in distinct languages.

The frontend app has no limitation on the number of supported languages.

Howerver the 'codified data' in the backend (like famility types,...) currently only support a primary and secondary language.

Values formats

Values formats are handled in openIMIS frontend via react-intl. That library implements the FormatJS standard for react and is based on the notion of 'locale'.

The locales are packaged with openIMIS frontend at build time. Used languages are mapped to locales (example:the language "fr_BE" can be mapped on the genric "fr" locale).

See openimis-fe_js README file for more details.


  • openIMIS is modular and each module, dedicated to specific domains (claims, policies,...), brings its own 'vocabulary'
  • a shared (fallback) vocabulary is provided from the openIMIS frontend root (openimis-fe_js) and provides generic (not domain-specific) translations (such as "Cancel", "Close",...)
  • finally language packs can be provided (as separated modules/plugins) to either
    • overwrite the (module or core -provided) default translations
    • and/or provide additional messages translations.

See openimis-fe_js README file for more details.