It is annoying for developers to make number of steps to provide default translation of single text message within OpenMRS. If developer needs to do it, he puts corresponding spring:message tag into jsp file. Then, he finds the messages.properties file and appends default English translation for this message. If developer should provide translation into another language he needs to edit one more message.properties file etc. From the other hand, another person (translator) needs to complete a lot of steps to provide further qualitative translation of this message into other language (in the most common case, he needs to open default message.properties file to obtain message key, then open message properties file to put new translation into and to runs web-app to see translating message in context of web page).
In more details, we use Spring's message taglib for putting strings onto our web pages currently. This gives us the ability to translate openmrs very easily. If you want to put a string into a jsp page into openmrs you put this spring:message in your jsp:
And then you find the messages.properties file and add this:
And if you're bilingual and not too lazy you find the messages_es.properties file and append this:
Now the text can be is displayed automatically in Spanish if the user has set their locale as Spanish. If the user is in the English locale or any other, they will see the english translation.
Allow for in-line adding/editing of the translated text.
Implement and integrate pretty handy tool for in-page localization, which can greatly simplify work on translating OpenMRS.
openmrs:message– allowing us to control the output and enhance messaging within OpenMRS.
Functional and non-functional requirements set to this project are currently collected into one document and placed on separate page.
Basically, from the structural perspective, in-page localization tool for OpenMRS can consist of two parts. First is a dynamic web widgets, which work inside client browser. The second one might be a DWR-based backend for serving AJAX requests from web widgets. Both these parts can be built on the top of custommessages module 's codebase.
There are couple of child pages with detailed descriptions of proposed design:
See this wiki page to get details of project implementation plan.