Translations
Supporting Translations In Ubuntu Accomplishments
This page outlines a potential plan for supporting translations in Ubuntu Accomplishments and be able to use Launchpad as a translations tool.
Problem
Different types of accomplishments are broken into accomplishments sets (as an example, see lp:ubuntu-community-accomplishments).
Each accomplishment includes documentation such as the following:
[accomplishment] title=Community Council Member description=You are a member of the Community Council application=ubuntu-community category=Governance needs-signing=true icon=default.png needs-information=launchpad-email depends=ubuntu-community/ubuntu-member summary = The Ubuntu Community Council is the primary community (i.e. non-technical) governance body for the Ubuntu Project and as such has an important role and responsibility to the Ubuntu community. The Community Council advises and decides on community policy and process. It is also an escalation body for incidents that occur elsewhere in the Ubuntu community. Members of the Community Council have demonstrated a strong commitment and participation history in Ubuntu, clear leadership skills, and have the time and availability to commit to the needs of the council. steps: Become an Ubuntu Member. Demonstrate effective and extensive contribution to Ubuntu for a sustained period of time. There is no fixed time period, but this should be long enough to demonstrate your commitment to the project. Amend the wiki page that was created for Ubuntu Membership usually found on <tt>wiki.ubuntu.com</tt> that is up todate and outlines your contributions. In the wiki page include your contributions, describe which teams you are in, and summarize your efforts. When the next Community Council election is announced, nominate yourself as a candidate. Mark Shuttleworth, the Founder of Ubuntu, and also known as sabdfl (self-appointed bebevolent dictator for life) selects the canidates from the list of nominees and puts those forward to be voted on by current Ubuntu Members. tips: Focus on your leadership abilities. The Community Council is an important leadership position and we look for strong, capable, confident leaders. You should probably have led another team to develop and demonstrate your leadership capabilities before applying to be on the Community Council. Only apply to the Community Council when you have had a significant amount of experience in the community. pitfalls: Don't apply to the Community Council just to be in a position of power. Try not to be on more than one council (e.g. Community Council, Technical Board) at the same time. Join one, and give it your full attention. links: https://wiki.ubuntu.com/CommunityCouncil https://wiki.ubuntu.com/CommunityCouncilAgenda http://www.ubuntu.com/project/about-ubuntu/governance help = #ubuntu-community-team on Freenode
(content shown above is from community-council.accomplishment)
This is a Python ConfigParser INI style file. Each of these .accomplishment files is loaded by the Ubuntu Accomplishments daemon and then made available to clients.
We want to provide a way in which we can provide translations for these files and use Launchpad as a system in which people can translate them.
Proposed Solution
The following solution was discussed between David Planella and myself (Jono Bacon).
Fundamentally we would use gettext to handle the translations. First we would need to ensure the .accomplishment files are set up for translations. This means putting a '_' before all fields that could be translated. As an example:
[accomplishment] _title=Community Council Member _description=You are a member of the Community Council application=ubuntu-community category=Governance needs-signing=true icon=default.png needs-information=launchpad-email depends=ubuntu-community/ubuntu-member _summary = The Ubuntu Community Council is the primary community (i.e. non-technical) governance body for the Ubuntu Project and as such has an important role and responsibility to the Ubuntu community. The Community Council advises and decides on community policy and process. It is also an escalation body for incidents that occur elsewhere in the Ubuntu community. Members of the Community Council have demonstrated a strong commitment and participation history in Ubuntu, clear leadership skills, and have the time and availability to commit to the needs of the council. _steps: Become an Ubuntu Member. Demonstrate effective and extensive contribution to Ubuntu for a sustained period of time. There is no fixed time period, but this should be long enough to demonstrate your commitment to the project. Amend the wiki page that was created for Ubuntu Membership usually found on <tt>wiki.ubuntu.com</tt> that is up todate and outlines your contributions. In the wiki page include your contributions, describe which teams you are in, and summarize your efforts. When the next Community Council election is announced, nominate yourself as a candidate. Mark Shuttleworth, the Founder of Ubuntu, and also known as sabdfl (self-appointed bebevolent dictator for life) selects the canidates from the list of nominees and puts those forward to be voted on by current Ubuntu Members. _tips: Focus on your leadership abilities. The Community Council is an important leadership position and we look for strong, capable, confident leaders. You should probably have led another team to develop and demonstrate your leadership capabilities before applying to be on the Community Council. Only apply to the Community Council when you have had a significant amount of experience in the community. _pitfalls: Don't apply to the Community Council just to be in a position of power. Try not to be on more than one council (e.g. Community Council, Technical Board) at the same time. Join one, and give it your full attention. _links: https://wiki.ubuntu.com/CommunityCouncil https://wiki.ubuntu.com/CommunityCouncilAgenda http://www.ubuntu.com/project/about-ubuntu/governance _help = #ubuntu-community-team on Freenode
For the fields that don't have a '_' they would not be translatable.
We would then include a setup.py script inside the accomplishments set that generates the POT files from each of the .accomplishments files and saves them to the bzr branch.
Translation in Launchpad
Launchpad would then be able to provide the Rosetta interface for translating the files as it does for any other translations of strings in a branch.
When translations are complete the translations files are then imported back into the branch.
Questions:
- Can LP provide a multi-line box for translating the paragraphs in the .accomplishment file?
Displaying the Translations In Ubuntu Accomplishments
In the Ubuntu Accomplishments daemon we read in all .accomplishments files. This would be read in using standard gettext practice (eg. _("foo")).
Accomplishments/Specs/Translations (last edited 2012-04-03 21:12:15 by 99-41-167-234)