Vesuvius Projects - Google Summer of Code 2012

Translation - Full Support for Multiple Languages

Mentor-Provided Section

Background, 2011 and Spring, 2012

Summer, 2012

IRC Chats

These were on #sahana-meeting unless indicated otherwise. Times shown may be full chat or most-significant portion.

Student-Provided Section

Project Abstract

Vesuvius, or the People Locator software, of Sahana is the descendant of the first version of Sahana created in response to the December 2004 Tsunami. However, many efforts made over the years to integrate a stable translation platform into Vesuvius have not panned out. As one of the parts of Sahana that gets implemented almost immediately after any disaster situation, Vesuvius needs to support multiple languages in order to be successfully deployed in different countries around the world. As Vesuvius is a software application that relies on community contributions to build up its database in a disaster situation, it is essential that its users be able to understand the interface properly. The gettext library is one of the most popular libraries used for translating software user interfaces on the Unix platform. The use of gettext enables the use of a handy software tool - namely, Pootle, which enables collaborative and efficient language translation of software systems. The gettext library was already in place, but unused, in Vesuvius. During Google Summer of Code 2011, I was engaged in re-integrating the use of the gettext library (this was known simply as re-integrating Pootle, because proper use of the gettext library would allow the use of Pootle to build language support). I also developed the functionality to revert to using Google’s Translation Engine (exposed through their Translate API), in the event of a Pootle/Launchpad-based gettext translation not being available for a particular string. I also generated scripts to grab UI strings enclosed in a particular function within the Vesuvius code and to append these strings to a translatable *.po template file, which is added to the Vesuvius codebase on Launchpad. UI strings are required to be in the format _t(‘CONTEXT|String’) under this system. Although the above were implemented, the evolution of Vesuvius has caused much of this functionality to break, and eventually, the new translation integration has become unstable. Furthermore, Google has discontinued providing its Translate API v2 as a free service, so some new methodology to minimize cost when utilizing Google Translate for Vesuvius needs to be developed. My aim for this year is to work out the minor bugs that have sprung up, to enable the translation framework to keep up with the changes made to Vesuvius, and to design and implement a better structure for the contexts to be used along with UI strings for disambiguation during translation replacements.

QR Code
QR Code agasti:vesuvius:gsoc2012:translation (generated for current page)