Table of Contents
Vesuvius Projects - Google Summer of Code 2012
Translation - Full Support for Multiple Languages
Mentor-Provided Section
Background, 2011 and Spring, 2012
- A brief introduction of this idea and others is at GSoC 2012 Ideas
- IRC chats about this idea and others prior to the Google proposal deadline are at Vesuvius GSoC 2012 (Pre-Acceptance Version)
Summer, 2012
- See also: weekly community updates on sahana-discuss.
IRC Chats
These were on #sahana-meeting unless indicated otherwise. Times shown may be full chat or most-significant portion.
- Tuesday, May 8, 16:03-17:54 UTC (12:03-1:54) pm EDT
- Tuesday, May 15, 16:07-17:20 UTC (12:07-1:20 pm EDT). This was a general Agasti meeting but much of it concerned GSoC
- Tuesday, May 22, 16:07-17:28 UTC (12:07-1:28 pm EDT)
- (May 22-28. SahanaCamp and SSF Annual Meeting). Ramindu was in NYC May 25-29, traveling before and after.
- Tuesday, June 5, 16:52-17:43 UTC (12:52-1:43 pm EDT)
- Tuesday, June 19, 16:59-17:50 UTC (12:59-1:50 pm EDT)
- Tuesday, June 26, 16:33-16:52 UTC (12:33-12:52 pm EDT)
- Tuesday, July 3, 16:31-17:59 UTC (12:31-13:59 pm EDT)
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.