[Sugar-devel] GSOC Project Suggestion for Karma

Bryan Berry bryan at olenepal.org
Mon Mar 29 03:45:08 EDT 2010

Peter Gijsels and I have come up w/ a project that we would love to
have a GSoC participant apply for. Some of you may not yet be familiar
with Peter Gijsels. He is an extremely talented software developer who
is moving to Nepal to work with OLE Nepal. He will be taking over
day-to-day development of Karma from me as I transition from OLE Nepal
back into the private sector.

GSoC Suggestion for Karma: Worldwide Karma

Karma is a sub-project of SugarLabs that aims to make Sugar activity
development accessible to web developers and designers. Karma is not a
replacement for other toolkits such as PyGame or GCompris.
The Karma project has made a lot of progress in the last nine months
but it still has a long ways to go to fully integrate with Sugar
environment. In particular it needs better internationalization
support and integration with Sugar's translation system, pootle.

Project Description:

Manage Translation Process of roughly 80 Karma lessons into three
distinct languages.

Target Languages:
 - English
 - Another Left-to-right language, but Spanish or Hindi preferred
 - Language written Right-to-Left (RTL) such as Arabic or Hebrew

The original language of the lessons is Nepali

We are not looking for the GSoC student to translate the lessons but
rather assist the translators in any technical issues they encounter.

How Internationalization currently works in Karma:

- a Karma lesson consists of html and JavaScript. Messages to
communicate with the user occur in both the html and JavaScript code.
- these messages are extracted with a python script, which reuses the
GNU gettext library
- Hide quoted text -
- the translators work with pootle to provide translations for these messages
- a python script generates translated html. Messages in JavaScript
are translated dynamically by a jQuery plugin, jquery.i18n

The real work of this assignment will be to work on integration
between Karma and SugarLabs' Pootle translation system.
Internationalization is a complex problem space, full of edge cases.
Working with translators will help you refine Karma's toolset and take
it from its current Alpha level to real stability.

Project Outcomes:
- Ensure that roughly 80 lessons are completely translated to the four
target languages, this includes translation of strings and audio
- Improve scripts for grabbing translatable strings from HTML and
JavaScript. These scripts are written in Python and should be
upstreamed to the Translate-Toolkit as part of this project
- Improve jQuery plugin jquery.i18n.js, which handles string
replacement, plural forms, and issues with right-to-left string

Benefits to Participant:

The participant will have the opportunity to interface with the Sugar,
Pootle, and jQuery communities. While internationalization problems
can sometimes be obscure, internationalization software is used
indirectly by a very large number of users. Internationalization is a
problem that occurs again and again in succesful software, so
familiarity with solutions to this problem are an asset for any
software developer.

Requirements for Applicants:
- Working knowledge of Python
- Strong knowledge of JavaScript. You must understand prototypal inheritance
- Previous knowledge of i18n not necessary but would be helpful

Project Mentor:
Peter Gijsels, Karma developer

More information about the Sugar-devel mailing list