In-page Localization Project Plan

The following table contains sorted by priority tasks, that need to be completed in order for in-place localization to work properly:

Task ID

Task Name

Subtasks description


Related JIRA


Prepare project codebase

Do some work on preparing project codebase (browse specific project to built functionality on top of or create own module, etc).

Till to 23rd
of May



Implement new OpenmrsMessageTag JSTL tag class

  • Add custom JSTL tag class into core that will allow for text inside of Spring JSP message tag.
  • Write code that adds the translation capability for OpenmrsMessageTag class within project module.
  • Write unit tests for this.
  • Do formal code review of introduced core changes and do possible changes according to review

23rd - 31st of May



Add ability to run OpenMRS in translate mode

  • Provide functionality that allows user to toggle translate mode on/off. No in-place editing at this stage, only display/hide messages that can be edited in-place.
  • Add corresponding Setting (formerly Global Property from platform 1.8 downwards) for handling this mode
  • Introduce a new extension point within footerFull.jsp for placing toggling button into
  • Introduce a new access privilege for managing translations.

1st - 15th of June



Implement server-side of in-place localization engine

  • Write (or change if needed) functionality of persisting messages within database.
  • Re-/implement corresponding API service for this purposes.
  • Expose received functionality as DWR service to be available for client calls.
  • Unit test this functionality.

16th of June - 1st of July



Implement translation entering and editing

  • Add ability to edit “translatable” messages in place.
  • Work on css-styling to support translatable messages highlighting
  • Implement ability for user to switch locales during translation editing

2nd - 14th of July



Provide basic modules support

  • Implement ability to distinguish between core and module messages
  • Add ability for modules to publish “translatable” messages within their pages
  • Change service and data access tiers in order to handle modules messages persisting alongside with core ones

15th - 27th of July



Do scripting work around messages bundles synchronization with web pages

  • Write a script that takes the default bundle and imports those messages into web pages as the default ones
  • Review all pages to find out any regressions related to completed synchronization.

28th of July - 4th of August



Implement translations export functionality

  • Add ability for user to export translations, which he has already done so far
  • Add (or change) module admin page for doing export
  • Unit test this functionality.

5th - 12tht of August



Complete 1st phase

Rigorous testing of all received functionality.
Perform testing of received functionality using one or more existing implementations of OpenMRS.
Exception handling, bug removal.
Complete project documentation.

13th of July - 20tht of August