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)