Version 2 (modified by Kalpa Welivitigoda, 10 years ago) ( diff )


Upgrade Translation Functionality: Proposal

BluePrint reference

1. Personal Details

  • Name: Kalpa Pathum Welivitigoda
  • Communication details
    • Email: callkalpa [AT] , callkalpa [AT]
    • Freenode IRC Nickname: callkalpa
    • Skype: callkalpa
    • Blog:
  • Include Biographical information about yourself, your education, country, timezone etc.
    • I am from Sri Lanka (GMT+0530) and an undergraduate at Department of Electrical Engineering, Faculty of Engineering, University of Moratuwa, Sri Lanka
  • Please provide an overview of your exposure to similar technologies and/or FOSS in general.
    • I have been involved with localising following projects to Sinhala, which is my native language (here I have worked with Pootle)
    • I am a packager at Sugar Labs, a contributor at Hanthana Linux, and occasionally write articles to local FOSS Magazines.
  • Please answer the question - “Why would you like to help the Sahana project?”
    • Because Sahana project is a project which helps to help people in case of need. The purpose is for humanity.

2. Personal Availability

  • Have you reviewed the timeline for GSOC2012?
    • Yes I have already
  • Do you have any significant conflicts with the listed schedule? If so, please list them here.
    • I have examinations at the university from 24th April to 10th May. Since it is the community bonding period I don't think that it will be a major issue.
  • Will you need to finish your project prior to the end of the GSOC?
    • No. My project plan is for the entire GSoC period.
  • Are there any significant periods during the summer that you will not be available?
    • I might not be available from 18th May to 21st May as I will be participating at the FUDCon 2012 at Malaysia. I will be participating only if they sponsor me, so that is tentative.

3. Project Abstract

Sahana-eden currently uses web2py translating feature to translate sahana-eden to different languages. With the current system only the original strings and the translated strings are available to the translators. That only would not be enough to translate correctly with the proper meaning. The objective of the project is to improve the translation process so that the translators have more information such as file name, line number, comments for the translators etc. So for example the translators will know the module in which the strings are in and that will help to translate more appropriately. Further the T() function currently used to identify strings to be translated will be improved so that the developer can add a comment for the translators. And a GUI (a web page) embedded into eden will be implemented so as to translations on the fly and see the progress of the translations.

4. Project Plan

This section is to provide the detail of your project proposal. Take as much space as is necessary.

  • Project Deliverable
    • code which enables a better translate sysem in sahana-eden
    • a web interface which enables to translate on the fly and show the progress
  • Project Justification
    • Translation of a project enables the project to be utilized by a wider range of users/developers. Sahana, being a disaster management systems is essential to reach people in need in spite of their language or any other reason. Translators are trying their best to translate Sahana to other languages as well so that the purpose is served. This project will make translators life easy and they will result in better translations. Ultimately the people using sahana, irrespective of their language will be highly benefited.
  • Implementation Plan
    1. First phase will be a CLI implementation. A python script is developed to extract and store strings from the interface and modules being used. Currently using modules can be extracted from /models/ The script will be extracting the file name, line number and the string to be translated.
    2. There are two approaches to implement the project as stated in ( and extracting stings to a spreadsheet is preferred. So the stored strings will be converted to a spreadsheet.
    3. The spreadsheet with translated strings will be fed to the appropriate language file in languages/
    4. Automation through step 1-3 (I have to study the current system. The current system edits the language file in /languages when the module is triggered)
    5. Modify T() function so that the developers can pass comments to translators
    6. Add extraction and storage of comments to the initial python script
    7. Test the system
    8. Implement a web interface and integrate it to eden (I have already gone through the tutorial at Introduction to the Code so integration will be easy
    9. Test the system
  • Future Options
    • Using a spreadsheet is just one approach. The other at the moment is using pootle. In case the community decide to use pootle a system can be implemented to use this projects string file and convert it to a po file which can be used by pootle. Otherwise the developers have to replace all their T() functions with gettext().
  • Relevant Experience
    • as I have mentioned earlier I have involved with translation using pootle which helps me to understand what's going on with the translation process.
    • my skill on python will help me through out the project (some python code I have written can be found in my blog)
    • I have contacts with many other translators and pootle managers from whom I can get advice and help in need

5. Project Goals and Timeline

Clearly outline your timeline and goals for the project. All goals must follow the SMART ( methodology - they should be Specific, Measurable, Achievable, Realistic and Time-bound. Each goal should explicitly tell us how we can measure it (e.g. code committed to trunk and can be assessed on and the date it is due. This should be provided as three columns - Due Date, SMART Goal, and Measure. The project is looking for explicit and well-written goals - proposals that contain broad and general goals will not be accepted. The more specific your goals, the better chance you have of being accepted.

These should be broken down into the following stages.

Work already undertaken - What research have you undertaken in this area in advance? (these can just be bullet points and are not required to follow the SMART methodology) First trimester (24 April - 20 May) - identify the SMART goals you have for the community bonding period. Most of these are likely to revolve around further scoping of the project with the community, engaging with the community, and updating and finalizing the project plan. Second trimester (21 May - 9 July) - identify the draft SMART goals you have for the first half of the project. These will be used to assess project process and form the basis for the mid-term evaluation. Third trimester (10 July - 13 August) - identify the draft SMART goals you have for the second half of the project. These will be used to assess the whole project and in conjunction with the mid-term goals, form the basis for the final evaluation.

We recognize that the goals may change during the project, and the mentors will accept modifications to the goals at any time. For example, discussion during the community engagement stage may change the scope of the project, and the goals may need to be subsequently modified. As such, the goals are not hard-and-fast, but we do want to see reasonable effort go into the initial project timeline.

The intent is to maintain these as a shared Google Spreadsheet so that mentors can track progress in the spreadsheet.

The Project Goals and Timeline will form a significant part of the assessment of your application, as well as mid-term and final evaluations.

Note: See TracWiki for help on using the wiki.