This blog mainly contains posts about Mozilla release engineering projects that I am working on and some personal insights.

Saturday, January 12, 2013

Handing off Armenian localization to others

For a very long time I have been involved with the Armenian localization process for Mozilla but since I got married I had to re-prioritize where I would put my time into.In this post, I will describe what pieces of knowledge I gathered over the years and try to write something that others can use. Please forgive the lack of structure and whatever mistakes I make.

Concepts involved

We do translations in the Aurora cycle which it's supposed to be the first cycle frozen with regards to new texts to be translated

Product translations

How to translate Firefox, Thunderbird and Firefox for Android

Every 6 weeks (matching the opening of an Aurora cycle), I would remind contributors with an email or a Facebook post with instructions on what to translate

Web translations

Web pages translated into Armenian

Bugzilla

Issue tracking system

Mozilla.am and Facebook

Accounts

1 - Mozilla's development cycle

Here's a brief explanation on how developers change Firefox and include texts to be translated. Developer's create code changes and add texts to be translated while Firefox is on the first six weeks' development cycle. This period is called Trunk, Nightly (since every night a new update is generated) or the latest version of the product or mozilla-central (central point of integration).

After six weeks of changes the code is taken from Trunk/Nightly to Mozilla Aurora. In this cycle translations are not to be changed. It is at this point in time that we want to translate texts since there should be no new texts to be added on this six weeks cycle. The code and translations on Aurora are generated every morning for every language and for every platform. If your team introduces new translations it will be integrated on the next morning's update. On this 6 week period, you are expected to do your translations, submit them and then sign them off (more details later).

After this Aurora period passes, the translations move into the Beta cycle where a much larger audience tests all products. At this point, missed translations can still be taken if necessary. Approximately one beta is generated every week.

After this Beta development cycle, the beta product reaches the Release cycle where millions of users get to use it. The majority of users don't know any other cycles besides the Release one and they are not aware that there is such a concept as the release version. No translations are to happen on this period either. One version is produced at the beginning of the cycle and security releases only occur due to major security issues.

Here's a summary:

Nightly: First 6 weeks, new texts appear on Nightly

Aurora: Second 6 weeks, all texts are ready to be translated

Beta: Third 6 weeks period, you should have translated all your texts on the Aurora period. The translations from the Aurora period are kept on this cycle.

Release: The last 6 weeks are exactly the same as the Beta period. No translations. They are kept exactly the same

2- Product translations

There are several ways of translating the various Mozilla products [1]. One of them is Narro, which a web tool. My recommendation is to abandon such project and continue with Pootle's version. The guys running it are very responsive and are much more involved with the translations they support. We have had way too many issues with Narro in the last 2 years. I'm not sure if they have support for all three products or not. Visit the Armenian page they set up for us: http://mozilla.locamotion.org/hy_AM.Nevertheless, here are the instructions on how I used to do it with Narro. A complete set of tutorials are documented in here:https://developer.mozilla.org/en-US/docs/Localizing_with_Narro

2.1.1 - Review other people's translations

Some users in Narro can actually review and approve other contributor's suggestions. Only reviewed translations should make it into the Narro exports.

2.2 - Export Narro into Mercurial

The translations of your team won't be official until they are committed/submitted to Mozilla's Mercurial servers. Mercurial is a version control system that can store the translated files. Narro exports the translations in a zip file that has the same structure as the files in Mercurial.Every 6 weeks (or every time you get a bunch of translations) you should export and commit your translations into Mercurial. Don't leave it until the end of the 6 weeks cycle of Narro could fail you. The next day your translations will be included on the Armenian Aurora version of Firefox for desktop and mobile plus Thunderbird:http://www.mozilla.org/en-US/firefox/all-aurora.html#hy-AM (Aurora is the second cycle out of the four development cycles)

Narro trick

The following post explains how to prevent Narro from exporting specific files. This is useful for some files that require review from the L10n driving team. http://armenzg.blogspot.ca/2011/12/how-to-exclude-file-from-being-exported.html 2.3 - Sign off on the L10n DashboardTo communicate to the L10n team that your translations are ready for a development cycle you have to sign off. To sign off is to use a webtool to mark a specific submission to Mercurial as ready to be released.After we import the changes into Mercurial in 15-20 minutes we should see the results on this dashboard:https://l10n.mozilla.org/teams/hy-AM

We only care about “fx_aurora” (Firefox), “fennec_aurora” (Firefox Mobile) and “tb_aurora” (Thunderbird) when we want to take care of current needed translations

Once your commits have greened out you have to click on the icon that looks like a magnifying glass (This is to mark a sign off)

Only people who are signed in and have the right privileges can submit a sign-off.

2.4 - Example of status communication

Every 6 weeks blog/email the group of potential localizers so they can do the translations:

Hi,

In 6 weeks version 20 of the various Mozilla products we translate into Armenian will be released to the beta audience.

We're
not doing great for the Firefox Desktop version. If you could think of
who could help us do translations please let us know.

4 - Bugzilla

In the software industry, issues are tracked with issue tracking systems which are also known as bugs. Mozilla has a database called Bugzilla which tracks issues of all sorts. In the case of L10n, there are bugs that are specific to your language (a.k.a. locale).