Localization Hackathon in Riga

Stas and I met in Riga with the Baltic and Polish l10n communities to do a hackathon. We gathered Latvian, Lithuanian, and Polish. Sadly, nobody from the Estonian community could attend due to conflicting schedules, but Merike Sell joined us on Saturday morning via Skype. We also had Dainis Šantars and Rūdolfs Mazurs join for a few hours each to work on Latgalian.

On Friday evening, we kicked things off warm and dry. That’s worth noting, as there wasn’t any weather like that for the rest of the weekend. Anyway, we grabbed some dinner, and ventured a few places to get a first feeling for Riga.

University of Latvia, Riga
Saturday morning we met at the University of Latvia, and started the actual hackathon with the obligational introductions, and some “spectrograms”. We got some insights on testing, and which versions of Firefox our community uses. Reminder, Developer Edition or Nightly are the right versions. Use the version you work on. We also talked about the web and software in local languages. Seems that using localized versions becomes normal. We also got more insights into contribution patters that people like.

I really like the conversations about contribution patterns. We start the discussion with the question on how often people would like to localize. The answers quickly lead into discussions about localization quality, and which context localizers prefer to get that. But also to the role that Mozilla plays in people’s lives. Getting a better understanding of both are critical as we’re trying to make localization at Mozilla better.

Afterwards, stas and I gave some general project updates. The Mozilla firehose is overwhelming, so it’s good to give an update on the things that matter to the people in the room. In particular, stas covered L20n, which was well received. I talked about how we want to do Firefox l10n less bound to aurora and beta release channels, which people also liked.

We also talked about MQM, a standard of classifying issues found around localization. Once again we learned that it’s hard to explain them.

As usual, we let people work within their teams for half the time. We did help out with accounts, and persuaded folks to do reviews of suggestions. We heard they also used the time to strategically set up their team, and to learn from each other.

Last but not least, huge thanks to Raivis Dejus for organizing this event. He made us all feel welcome, and as warm as it gets, and always had an anecdote about Riga to share. He turned out to be my inspiration for the Berlin hackathon.

Change in Sign-Offs Process for Firefox and Firefox for Android

Message to all Mozilla localizers!

We have already announced this change in the blog post about l10n updates from MozLondon, but this topic deserves a thread of its own.

What is happening?
We are changing the way we are doing sign-offs. I REPEAT, we are changing the way we are doing SIGN-OFFS! 😉

What does it mean?
Basically, we are simplifying your life. In fact, you will not need to request sign-offs anymore.
We have realized that with time, this has become an unnecessary task that has lost its initial meaning. Sign offs, in the sense that we need to tell our system what translations go into a build, are still a technical necessity for the near future. Some of us l10n-drivers (Jeff, flod and I) will start managing the whole sign-off process allowing you to focus on your localizations.

How will it work?
The only thing that changes in your usual workflow is that you no longer need to request sign-offs. Essentially, as long as there’s a good, clean changeset, we will sign-off on it. From now on (we’ve already started), the designated l10n-drivers will perform sign-off reviews on all new changesets a few times a week. This will be the case on mozilla-aurora and mozilla-beta channels (Firefox Desktop and Firefox for Android). We will determine if the changeset is technically correct and will not break anything. You might also receive emails from us with notes about the string changes in case we find any issues.

We hope that this will result in shipping more good l10n updates to users. We consider that getting a localization update to a product – even if not complete – is better than no updates at all. True to our new motto “Simplicity and Opportunity”, we also believe this will simplify things on your side, and is a total win-win situation.

As usual, please feel free to reach out to us with any questions about this. Feedback as you know is welcome as well.

L20n in Firefox: A Summary for Localizers

We’re working on bringing L20n to Firefox and Gecko this summer. Here’s what you need to know if you’re a localizer.

L20n was a big part of the MozLondon All Hands work week. Jeff’s write-up on the All Hands will give you a good overview of all projects and activities the Localization team has been involved in. In this post I’d like to focus on L20n and the plan to
bring it to Firefox Desktop and Gecko.

Continue reading …

Triage translations by author in Pontoon

A few months ago we rolled out bulk actions in Pontoon, allowing you to perform various operations on multiple strings at the same time. Today we’re introducing a new string filter, bringing mass operations a level further.

From now on you can filter translations by author, which simplifies tasks like triaging suggestions from a particular translator. The new filter is especially useful in combination with bulk actions.

For example, you can delete all suggestions submitted by Prince of Nigeria, because they are spam. Or approve all suggestions from Mia Müller, who was just granted Translator permission and was previously unable submit approved translations.

See how to filter by translation author in the video.

P.S.: Gašper, don’t freak out. I didn’t actually remove your translations.

MozLondon Localization Sessions

Twice per year, Mozillians from around the world are invited to attend the All Hands work week. All Hands is an opportunity for both paid and volunteer staff from all functional areas to meet together to solve problems, brainstorm new goals, and find ways to make the Mozilla mission a reality. For the localization functional area, All Hands gives us a chance to collaborate on resolving challenges in the l10n process, discuss community needs, and start new programs within the functional area. Below is an overview of the highlights and l10n-specific sessions that were held in London. More information about many of these sessions will be made available in the coming weeks.

Continue reading …

Localization Hackathon in Argentina

From May 20-23, l10n-drivers Jeff Beatty and Delphine Lebédel met with 11 participants from 4 different communities in the city of Buenos Aires (Argentina) for 2 days of localization hacking. These communities represented Spanish from Chile, Spanish from Argentina, Guaraní and one member was from Mozilla Nativo (a community that helps promote indigenous languages in Mozilla products).

This hackathon followed the new 2016 format, as detailed here: https://blog.mozilla.org/l10n/2016/01/08/mozlando-localization-sessions/ – with a few notable differences from this year’s previous experiences.

In fact, we decided to insist more on localization style guides – and integrated a full 2 hours session dedicated solely to their creation. During this allocated time, communities focused themselves entirely on this task and based their work upon the English Style Guide template that the “Translation Quality Team” has created. Some teams decided to divide the work among themselves by sections and each work individually on those – while other communities decided to collaborate as a group – and work their way through each section by discussing and debating each item all together.

We then held a round table to understand what were the take-aways from creating these style guides. Some of the challenges were:
– That the wiki markup was confusing
– That it’s a very long process
– It’s hard for someone to understand the style guide and jump right into it. You need more time to study it, and really understand it
– Some thought it would be easy and suddenly realize they maybe don’t know enough of their own language 😀 Something helpful would be more concrete examples for each part in the English template

Regarded as successes and feedback were:
– That the initial English template is very clear and explains well how to go through the steps
– One community (Spanish from Argentina) almost finished their style guide!
– Guaraní team is doing a Spanish version first and then the Guaraní version
– Everyone has at least a base of work to build upon

Teams did not agree on where these style guides should live: some thought they should be part of the translation tools they use, and others in a wiki or on GitHub. In any case, everyone agreed that this was a great step forward in ensuring quality and consistency across all our Mozilla projects and in the translation work they create.

I would also like to take this opportunity to congratulate the Guaraní community who has recently launched Firefox in their language. This is an excellent achievement. And along with that, they have almost completed Firefox for Android. Congrats!

The Chilean team also managed to finish localizing Firefox for Android during the hackathon. Congratulations to them too!

In all, this event was a great way to touch base with these communities and make sure we are all aligned along the same goals and Mozilla’s mission. Creating style guides was also crucial in initiating a process for them to ensure quality and consistency going forwards.

Thank you to all who participated! You really did an awesome job.

The Buenos Aires Hackathon Participants

The Buenos Aires Hackathon Participants

Firefox L10n Report – Aurora 49

Starting from this cycle I’ll be in charge of sending the l10n report. I’ll also try something different, pointing out relevant changes in the last cycle, and some common issues found during the sign-off review process. The result will be a longer report, but I hope you will find it useful as well.

Here’s an outline of what is currently in Aurora this cycle for Firefox 49, and some information on the accomplishments of the l10n Community during the previous cycle.

Current Aurora Cycle – Firefox 49

Key dates for this cycle:

  • Beta (48): sign offs for already shipping locales must be completed before 20 July. For reference, the date is roughly 2 weeks before the next release date, and it’s the last good day to include your updates into a Beta build.
  • Aurora (49): sign offs must be completed before 1 August.

String statistics:

  • Firefox Aurora desktop has 179 added strings (125 obsolete). About 36% of the new strings are for Developer Tools.
  • Fennec Aurora has 78 new strings (56 obsolete). 19 new strings are Fennec-only (in /mobile).

There are currently no pending requests to uplift patches with strings to Aurora, even if bug 1134073 might request it in the next days (that would mean one added string for DevTools).

For further details on the new features you can check the release notes (they’re usually published a few days after release):

Current Release Cycle (Firefox 47)

Noteworthy events for Firefox 47 (release date: 7 Jun):

  • 61 locales, corresponding to 67% of our shipping locales, signed off updates for Firefox 47 on desktop. This is a decrease in locale coverage from the previous release (69 signed off locales).
  • 53 locales, corresponding to 74% of our shipping locales, signed off updates for Fennec 47 on Android. This is an decrease in locale coverage from the previous release (57 signed off locales).

Noteworthy Changes Available in Aurora

These are some of the interesting changes introduced in the last cycle. Note that you will need Firefox Developer Edition 49 to test them, and the build is usually available a few days after merge day.


Browser: there’s a new dialog displayed to users to reset search preferences. You can test it by opening about:searchreset.

Preferences: English changed the size of the Do Not Track dialog, you should check it after translating the new string (Privacy panel, “manage your Do Not Track settings“ link). Ignore the changed accesskey in this specific changeset, ID has been changed in a following commit.


Team is starting to use a new way to define keyboard shortcuts (not accesskeys), adopting a syntax similar to Electron. You can see an example in this changeset,

You should not translate fragments like CmdOrCtrl, CmdOrCtrl+Plus (Plus indicates the + key), CmdOrCtrl+Shift+D. Also a reminder that you should not be changing shortcuts in general, unlike accesskeys, unless the default keyboard layout for your locale doesn’t include that specific key, or combination of keys.


A few menu items changed capitalization as part of bug 893836. You should update your localization if you’re following the same rules as English, otherwise you can simply ignore the change and keep your existing translations.

Common Issues

The fragment “Error code:” inside these strings should be localized, while NS_ERROR_NET_INADEQUATE_SECURITY should not. It’s easy to miss the localizable piece, given the amount of HTML code in the string.

Data saver” in mobile. In this case “saving data” means “consuming less data”, not “save” as in “save a file”. Thanks to Eduardo Trápani for spotting it and filing a few bugs (a localization note was added in this cycle too).

For locales working on Pootle: always check strings before accepting a suggestion from translation memory. Several locales introduced an unwanted & in cmd.removeFile.label.

Don’t translate example.com, unless your National Registration Authority provides an equivalent domain created for the same purpose. More details in this discussion on dev-l10n.

Thanks to everyone for your dedication and hard work this last cycle. If you note anything missing in these reports, or would like to see other information included, please let me know.

Localization Hackathon in Stockholm

For the second year in a row the l10n-drivers team – represented by Jeff Beatty and I – met in Stockholm with several members of Mozilla’s Nordic communities, guests of the local Wikimedia offices, for the Nordic Viking Mozilla l10n Hackathon. The group of languages represented at the event included Danish, Finnish, Icelandic, Norwegian (both Bokmål and Nynorsk), and Swedish.

Nordic Hackathon - StockholmUnlike last year, when the topics and schedule of the event were largely set by l10n-drivers, this time each localization team was involved in the planning phase, and in charge of setting individual and group goals for this hackathon.

We started our Saturday morning in a sunny but cold Stockholm with some organizational updates, including topics like:

  • Change in focus from Firefox OS to Connected Devices, and how that affects localization priorities.
  • Updates about release and development cycles for iOS and desktop products, and our plans to increase participation and productivity by removing some of the existing technical barriers.
  • Mozilla’s renewed focus on quality, and how that applies to localization.
  • Our goal to improve communication channels with localizers, and help making their training and mentoring process more streamlined, through better documentation and tools.
  • How to use the newly released features in Transvision focusing on quality.

We also talked with localizers about the recent organizational changes inside l10n-drivers. In fact Stockholm also hosted a short but intense work week of the entire team right after the hackathon.

The rest of Saturday and Sunday were reserved for each team to work on achieving their goals, and our role was mainly to help them with some targeted training, and facilitate some discussions.

Several teams started putting into practice our focus on quality by writing a style guide for their language, a step that we consider fundamental to ensure consistency, and help with onboarding new volunteers. They also did work on improving quality across projects using Transvision’s Consistency View as a reference.

For some languages these events represent a critical moment to meet face to face and work together on their translations, since contributors might live hundreds of kilometers from each other and can only communicate online. That’s the perfect time to figure out the division of tasks inside the team, find ways to attract new contributors, rethink tools and workflows, and create onboarding documentation. And that’s exactly what happened for several of the teams at the hackathon.

The weekend ended without a Kubb tournament because of the inclement weather – even if someone insisted on the need of going outside in the snow and play anyway, as a viking would do – and plans for next year’s hackathon. Italy was suggested as one of the potential venues for the event, but I’m quite positive that doesn’t count as a Nordic country 🙂

Localization Hackathon in the Czech Republic

When I learned that I was going to co-organize the Prague L10n Hackathon, I was very excited. This would be my second visit. I wanted to see what had changed since the last time I was there. Upon arriving at the airport, I saw multilingual signs in Czech, English, Russian and Korean. When I got to the hotel, I saw lots of businessmen from the far East and a Chinese restaurant right across the street. Prague is far more globalized than it was a decade ago.

Our Prague L10n Hackathon on April 30 – May 1 united seven localizers representing these languages: Czech, Russian, Slovak, Upper and Lower Sorbians. Three localizers had not been to any Mozilla events prior, not to mention this was the first time for all of them meeting one another. I personally had worked with a few through email communications and bugzilla, so it was great to match the names with the faces.

Spring in Prague: localization communities of Czech, Russian, Slovak, Upper and Lower Sorbians.

My colleague Matjaž started the two-day event by sharing the latest info on organization changes, including the most recent change in the localization team. He also updated the attendees with the latest in product roadmap, including the end of FFOS as in mobile phone and renewed focus of Firefox on iOS and Android. He covered the overall team goals of streamlining localization tools and repositories. We also touched on the importance of translation quality and the ways to drive that, such as establishing locale-specific style guides and terminology lists. Having these should help recruiting and onboarding new localizers as well as keeping consistency of great work done by multiple contributors.

The Czech team used the opportunity to brainstorm about wireframe and discuss ideas around redesigning the translation interface of Pontoon. We took notes, filed bugs and fixed some of them. Good news, just a few days after the hackathon, Michal Vašíček and Victor Bychek of the Russian community both submitted their first patches to Pontoon!

In addition to working on team goals separately, all of us sat together sharing stories on how they got involved, what they had tried for community outreach, and the challenges they faced in recruiting and retaining localization contributors. No wonder during the Spectrogram, most agreed that it was easier to train someone to be technical than to become a better translator. Some of them had been long time Mozillians, working tirelessly behind the scenes. More than half were fairly new. The majority of the attendees were students or just fresh out of college. Michal Vašíček was the youngest of all, only 14 years old, with lots of great ideas. Michael Wolf single-handedly covered two locales all by himself.  He finished a few projects over the weekend.  Tomáš Zelina was supposed to spend the weekend studying for his high school exams; he came anyway. He wouldn’t pass up a chance to meet and collaborate with his community, in addition to practicing some English. Juraj Cigáň was the sole representative for Slovak, but he found common interests and challenges with the Czech community, not just linguistically.  Alexander Slovesnik, a long time Mozillian and Victor Bychek, a college student of Russia lived more than 1000km from one another.  Such event would make their first face to face meeting possible.

Our local rep Michal Stanke was new in this role though a veteran as a localizer. He helped us with identifying and securing the venue, providing info on transportation, arranging dining options that highlighted authentic Czech cuisines and the famous beers the country was known for. All the contributors stayed in an AirBnb which was just walking distance away from the venue. We wrapped up our event by taking an evening walk from the Old Town to the Prague Castle and beyond. We wondered which community would host the event next year. We all looked forward to a different city and perhaps a different country with more new contributors attending.

Localization Hackathon in Mexico

From April 9-10th 2016 we held a localization Hackathon in Oaxaca, Mexico. A total of 21 people gathered in this beautiful city for two days of work and fun. Eight locales were represented there, most of which were indigenous languages:

  • Spanish from Mexico
  • Triqui
  • Purépecha
  • Mozilla Nativo
  • Mixteco de suroeste
  • Mixteco de oeste central
  • Maya kaqchiquel
  • Zapoteco

As Jeff has already explained in a previous blog post this year’s l10n hackathons have a slightly different format than last year’s. Communities are more in control of their own agenda and need to determine specific and detailed goals beforehand. They are then expected to tackle those, mostly on their own, during the two days. L10n-drivers present (Jeff and I) gave summaries and presentations concerning the current status of Mozilla projects on Saturday morning – but the rest of the time we played mostly the role of observers and facilitators while the localizers took control of the event.
Exciting, right? 🙂
Here’s a recap of what happened:


The morning was dedicated to updates of the current active Mozilla projects relevant to localizers, which were mostly part of the Mozlando All-Hands discussions we had in November. Jeff and I covered topics such as FirefoxOS changes, updating our communication channels, Translation Quality & Style Guides, the future of l10n hackathons, changes in the way we handle repositories, and much more.

Each community learned the importance of testing their work with Transvision, specifically using the new “unlocalized“, “consistency” and “unchanged” views. These are great steps in our path to continuously improve the quality of the localizations and ensure they are state–of-the-art!
We then had a quick and fun spectrogram session with all the participants. It’s always a great way to learn where we stand and how localizers handle their work. I won’t talk too much about this session since it has to stay somewhat a surprise for the upcoming hackathons 😉 So, suspense!

Spectrogram Session

Spectrogram Session

After a delicious typical Oaxacan lunch (thanks again to Surco Oaxaca for hosting us and providing lunch!) we went back to work and it was now time for communities to drive the event forwards.

Chapulines! Yummy!

Chapulines! Yummy!

Each team introduced themselves one by one, and presented their:

  • Active projects
  • Work flows
  • Successes since last year’s hackathon
  • Challenges since last year’s hackathon
Team presentations

Team presentations

It was interesting to hear how much progress teams had made and how the previous year’s hackathons had helped them grow. Also, some of the presentations helped other teams gather knowledge and insight into how they might work around their own challenges and find solutions to issues they were encountering.
Once this was done, the localizers split up into their teams and started working on the goals they had set for themselves beforehand. Some of those goals were: catching up with pending l10n work, coming up with recruiting strategies, review current tooling needs, testing their work, and much, much more! More details on goals can be found here: https://wiki.mozilla.org/L10n:Meetings/2016_Oaxaca_hackathon


Sunday was mostly community-driven, and probably one of the most productive days as it was fully dedicated to break-out sessions and getting caught up with tasks and goals.
To start the day, Rodrigo from the Zapoteco community gave an excellent presentation on his guide to localization for under-resourced languages. After that, all participants got their hands dirty with localization tasks 😛
We also went over style guides with each and every community, gathering feedback on the English Style Guide template that the “Translation Quality Team” has recently created. Some communities started writing their own style guides, which is an important step towards ensuring consistency and quality in their translations.
At the end, we talked about the future of hackathons and what next year might look like. Some people have volunteered to lead that discussion and organization (thanks!). Things to take into account in order to plan these are for example visa needs, general cost of the city the event will be held in, if a Rep is present and can help in that city, flight costs, etc.
In all, this event was full of work and fun, which we believe are the necessary ingredients to creating the best localized products in the world.

Thank you to all that participated! As chofmann once put, “I love this community!” (and if you haven’t seen this video before, you MUST watch it NOW:)

"Oaxacathon" Participants

“Oaxacathon” Participants