|Version 8 (modified by 10 years ago) ( diff ),|
Upgrade Translation Functionality: Proposal
1. Personal Details
- Name: Kalpa Pathum Welivitigoda
- Communication details
- Email: callkalpa [AT] gmail.com , callkalpa [AT] fedoraproject.org
- Freenode IRC Nickname: callkalpa
- Skype: callkalpa
- Blog: www.kalpapathum.blogspot.com
- Include Biographical information about yourself, your education, country, timezone etc.
- I am an undergraduate at Department of Electrical Engineering, Faculty of Engineering, University of Moratuwa, Sri Lanka
- Country: Sri Lanka
- Time zone: GMT+0530
- If you have a link to a resume/CV/LinkedIn profile, include it here
- Please provide an overview of your exposure to similar technologies and/or FOSS in general.
- Please answer the question - “Why would you like to help the Sahana project?”
- Sahana is a project which helps to help people in case of need. It is into humanitarian FOSS. Since it's initial deployment in Sri Lanka to manage post tsunami disaster it has been deployed in many other part of the globe to help disaster victims. Contributing to such a project I myself believe I help the people really in need of help. And it brings me the happiness that I have helped them.
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
- 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/000_config.py. The script will be extracting the file name, line number and the string to be translated.
- There are two approaches to implement the project as stated in (http://eden.sahanafoundation.org/wiki/BluePrintTranslation) and extracting stings to a spreadsheet is preferred. So the stored strings will be converted to a spreadsheet.
- The spreadsheet with translated strings will be fed to the appropriate language file in languages/
- 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)
- Modify T() function so that the developers can pass comments to translators
- Add extraction and storage of comments to the initial python script
- Test the system
- 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
- Testing and bug fixing
- 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)
5. Project Goals and Timeline
Clearly outline your timeline and goals for the project. All goals must follow the SMART (http://en.wikipedia.org/wiki/SMART_%28project_management%29) 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 demo.sahana.lk) 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
- I have already started studying current translation system in eden
- 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.
- 10 May - 17 May:
- 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.
- Implementation of CLI
- 22 May - 28 May: develop a python script to extract and store strings from the modules being used
- 29 May - 4 June: convert the file of stored strings to a spreadsheet
- 5 June - 11 June: develop a python script to feed the translated string from the spreadsheet back into eden
- 12 June - 22 June: Automate the above three processes
- 23 June - 30 June: Modify T() function as required
- 1 July - 8 July: Testing and bug fixing
- 10 July - 13 July: Midterm 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.
- Implementation of GUI
- 10 July - 15 July: commit adjustments based on the mentor's feedback of the mid evaluation
- 16 July - 25 July: on the fly translation
- 25 July - 3 August: progress report on translation of each module
- 4 August - 13 August: Testing and bug fixing
|Due Date||SMART goal||Measure|
|First trimester (24 April - 20 May)|
|17 May||Study on Translate Toolkit: for translating to and from spreadsheets||code committed locally|
|Second trimester (21 May - 9 July) : Implementation of CLI|
|28 May||Develop a python script to extract and store strings from the modules being used||code committed to trunk|
|4 June||Convert the file of stored strings to a spreadsheet||code committed to trunk|
|11 June||Develop a python script to feed the translated string from the spreadsheet back into eden||code committed to trunk|
|22 June||Automate the above three processes||code committed to trunk|
|30 June||Modify T() function as required||code committed to trunk|
|8 July||Testing and bug fixing||demo|
|Third trimester (10 July - 13 August) : Implementation of GUI|
|15 July||Commit adjustments based on the mentor's feedback of the mid evaluation||code committed to trunk|
|25 July||Implementation of on the fly translation||code committed to trunk|
|3 August||Implementation of displaying progress report on translation of each module||code committed to trunk|
|13 August||Testing and bug fixing||demo|