Planet Mozilla L10N

March 21, 2017


Firefox 53 Beta 3 Testday Results

Hello Mozillians!

As you may already know, last Friday – March 17th – we held a new Testday event, for Firefox 53 Beta 3.

Thank you all for helping us making Mozilla a better place – Iryna Thompsn, Surentharan and Suren, Jeremy Lam and jaustinlam.

From Bangladesh team: Nazir Ahmed Sabbir | NaSb, Rezaul Huque Nayeem, Md.Majedul islam, Rezwana Islam Ria, Maruf Rahman, Aminul Islam Alvi | AiAlvi, Sayed Mahmud, Mohammad Mosfiqur Rahman, Ridwan, Tanvir Rahman, Anmona Mamun Monisha, Jaber Rahman, Amir Hossain Rhidoy, Ahmed Safa, Humayra Khanum, Sajal Ahmed, Roman Syed, Md Rakibul Islam, Kazi Nuzhat Tasnem, Md. Almas Hossain, Md. Asif Mahmud Apon, Syeda Tanjina Hasan, Saima Sharleen, Nusrat jahan, Sajedul Islam, আল-যুনায়েদ ইসলাম ব্রোহী, Forhad Hossain and Toki Yasir.

From India team: Guna / Skrillex, Subhrajyoti Sen / subhrajyotisen, Pavithra R, Nagaraj.V, karthimdav7, AbiramiSD/@Teens27075637, subash M, Monesh B, Kavipriya.A, Vibhanshu Chaudhary | vibhanshuchaudhary, R.KRITHIKA SOWBARNIKA, HARITHA KAMARAJ and VIGNESH B S.


– several test cases executed for the WebM Alpha, Compact Themes and Estimated Reading Time features.

– 2 bugs verified: 1324171, 1321472.

– 2 new bugs filed: 1348347, 1348483.

Again thanks for another successful testday! 🙂

We hope to see you all in our next events, all the details will be posted on QMO!

March 21, 2017 05:08 PM

March 16, 2017


Extra Testday event hold by Mozilla Tamilnadu community

Hello Mozillians,

This week, Mozilla community from Tamilnadu organized and held a Testday event in various campus clubs from their region.

I just wanted to thank you all for taking part in this. With the community help, Mozilla is improving every day.

Several test cases were executed for the WebM Alpha, Reader Mode Displays Estimate Reading Time and Quantum – Compositor Process features.

Many thanks to Prasanth P, Surentharan R A, Monesh, Subash, Rohit R, @varun1102, Akksaya, Roshini, Swathika, Suvetha Sri, Bhava, aiswarya.M, Aishvarya, Divya, Arpana, Nivetha, Vallikannu, Pavithra Roselin, Suryakala, prakathi, Bhargavi.G, Vignesh.R, Meganisha.B, Aishwarya.k, harshini.k, Rajesh, Krithika Sowbarnika, harini shilpa, Dhinesh kumar, KAVIPRIYA.S, HARITHA K SANKARI, Nagaraj V, abarna, Sankararaman, Harismitaa R K, Kavya, Monesh, Harini, Vignesh, Anushri, Vishnu Priya, Subash.M, Vinothini K, Pavithra R.

Keep up the good work!
Mihai Boldan, QA Community Mentor
Firefox for Desktop, Release QA Team

March 16, 2017 09:19 AM

March 13, 2017

Mitchell Baker

The “Worldview” of Mozilla

There are a set of topics that are important to Mozilla and to what we stand for in the world — healthy communities, global communities, multiculturalism, diversity, tolerance, inclusion, empathy, collaboration, technology for shared good and social benefit.  I spoke about them at the Mozilla All Hands in December, if you want to (re)listen to the talk you can find it here.  The sections where I talk about these things are at the beginning, and also starting at about the 14:30 minute mark.

These topics are a key aspect of Mozilla’s worldview.  However, we have not set them out officially as part of who we are, what we stand for and how we describe ourselves publicly.   I’m feeling a deep need to do so.

My goal is to develop a small set of principles about these aspects of Mozilla’s worldview. We have clear principles that Mozilla stands for topics such as security and free and open source software (principles 4 and 7 of the Manifesto).  Similarly clear principles about topic such as global communities and multiculturalism will serve us well as we go forward.  They will also give us guidance as to the scope and public voice of Mozilla, spanning official communications from Mozilla, to the unofficial ways each of us describes Mozilla.

Currently, I’m working on a first draft of the principles.  We are working quickly, as quickly as we can have rich discussions and community-wide participation. If you would like to be involved and can potentially spend some hours reviewing and providing input please sign up here. Jascha and Jane are supporting me in managing this important project.  
I’ll provide updates as we go forward.  

March 13, 2017 06:28 PM

Mozilla L10n Blog

Hack on Pontoon with the Google Summer of Code

Mozilla has been kindly invited to participate in the Google Summer of Code (GSoC) 2017. For the first time, Pontoon will be part of this great program, which introduces students to open source software development. Read on if you’re interested in applying.

You will be paired with a mentor (hi!) and spend 3 months hacking on a free and open source translation tool from Mozilla. While gaining exposure to real-world software development techniques, you will also earn a stipend and have a great time!

Pontoon in Esperanto

As part of the Pontoon GSoC project, we’d like to explore the feasibility of screenshot-based localization process. The idea is this:

Localizers often lack context when translating strings. Let’s say you need to translate “Bookmark”. Is it a noun or a verb? In many languages translation for the former would be different than for the latter.

Sure, we can provide context using string comments, but a screenshot showing where in the application the string is used is much more revealing. Besides, application screenshots can be generated automatically, which is not (yet!) true for comments.

Your task will be to redesign Pontoon translation interface to support:

JavaScript, HTML, CSS and design skills are required.

Student applications open on March 20th at 16:00 UTC, so now is a perfect time to prepare. Let us know if you have any questions. And then go spend your summer break writing code and learning about open source development while earning a stipend!

March 13, 2017 05:40 PM

March 07, 2017


Firefox 53.0 Aurora Testday Results

Hello Mozillians!

As you may already know, last Friday – March 3rd – we held a new Testday event, for Firefox Aurora 53.0a2.

Thank you all for helping us make Mozilla a better place – Iryna Thompson.

From Bangladesh team: Tanvir Rahman, Kazi Nuzhat Tasnem, Saheda Reza Antora, Sabrina Joedder Silva, Maruf Rahman, Md.Majedul Islam, Anmona Mamun Monisha, Nazir Ahmed Sabbir, Sajedul Islam, Rezwana Islam Ria, Humayra Khanum, Forhad Hossain, আল-যুনায়েদ ইসলাম ব্রোহী, Abid Rahman, Roman Syed, Niaz Bhuiyan Asif, Asif Mahmud Rony, Touhidul islam Chayan.

From India team: Monesh, Subash, Rajesh, Rohit R, Pavithra.R, varun1102.


-several test cases executed for the WebM Alpha, Reader Mode Displays Estimate Reading Time and Quantum – Compositor Process features.

-6 bugs verified: 1323713, 1316225, 1196153, 1332595, 1326837, 1327731
-7 new bugs filed: 1344500, 1344271, 1344494, 1344495, 1344311, 1344325

Thanks for another successful testday 🙂

We hope to see you all in our next events, all the details will be posted on QMO!

March 07, 2017 02:55 PM

Mozilla L10n Blog

Firefox L10n Report – Aurora 54

Here’s an outline of what is currently in Aurora this cycle for Firefox 54.

Current Aurora Cycle – Firefox 54

Key dates for this cycle:

String breakdown:

There are currently no pending requests to uplift patches with strings to Aurora.

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

Noteworthy Changes Available in Aurora

These are some of the interesting changes introduced in the last cycle.


Several strings were updated changing to Title Case. String ID wasn’t changed in this case, so you won’t notice the change in Pontoon, while you’ll need to confirm the string in Pootle.


Several strings about the legacy Sync code were removed in bug 1296767. Completely obsolete files (6) were automatically removed as part of merge day.

In the last couple of cycles, some strings landed in pref for managing Site Data. To see this section in Preferences (at the bottom of Advanced -> Network), you need to enable (set to “true”) both these keys in about:config

Functionality is still hard to test, since there are no websites using this feature available for testing.


There’s currently no support for plural strings in Debugger. A bug is already on file, in the meantime the only solution available is to reorder the string to avoid associating the number to a noun.

New Languages

Urdu (ur) is riding the train to release with Firefox 53. It’s great to have another RTL language available for our desktop users.

We currently have 4 other locales working on Firefox desktop, and we really look forward to release them in the next versions of Firefox:

Talking about RTL languages, all four of them (Arabic, Persian, Hebrew, Urdu) are now enabled on beta for Firefox for Android, and will be officially released with Firefox for Android 53.

If you want to know more about the process of releasing new locales, or if you speak one of these languages and want to know how to help the localization teams, please get in touch with us.

To all localizers: Thanks again for all the time and effort you put in localizing and promoting Firefox in your language.

March 07, 2017 05:59 AM

March 03, 2017

Axel Hecht

On updating the automation behind l10n.m.o

Or, how to change everything and nobody sees a difference.

Heads up: All I’m writing about here is running on non-web-facing VMs behind VPN.

tl;dr: I changed 5 VMs, landed 76 changesets in 7 repositories, resolving 12 bugs, got two issues in docker fixed, and took a couple of days of downtime. If automation is your cup of tea, I have some open questions at the end, too.

To set the stage: Behind the scenes of the elmo website, there’s a system that generates the data that it shows. That system consists of two additional VMs, which help with the automation.

One is nick-named a10n, and is responsible for polling all those mercurial repositories that we use for l10n, and to update the elmo database with information about these repositories as it comes in. elmo basically keeps a copy of the mercurial metadata for quicker access.

The other is running buildbot to do the actual data collection jobs about the l10n status in our source repositories. This machine runs both a master and one slave (the actual workhorse, not my naming).

This latter machine is an old VM, on old OS, old Python (2.6), never had real IT support, and is all around historic. And needed to go.

With the help of IT, I had a new VM, with a new shiny python 2.7.x, and a new storage. Something that can actually run current versions of compare-locales, too. So I had to create an update for

Python 2.6 Python 2.7.x
globally installed python modules virtualenv
Django 1.4.18 Django 1.8.x
Ubuntu CentOS
Mercurial 3.7.3 Mercurial 4.0.1 and hglib
individual local clones unified local clones
No working stage docker-compose up

At the same time, we also changed hg.m.o from http to https all over the place, which also required a handful of code changes.

One thing that I did not change is buildbot. I’m using a heavily customized version of buildbot 0.7.12, which is incompatible with later buildbot changes. So I’m tied to my branch of 0.7.12 for now, and with that to Twisted 8.2.0. That will change, but in a different blog post.

Unified Repositories

One thing I wanted and needed for a long time was to use unified clones of our mercurial repositories. Aside from the obvious win in terms of disk usage, it allows to use mercurial directly to create a diff from a revision that’s only on aurora against a revision that’s only on beta. Sadly, I did think otherwise when I wrote the first parts of elmo and the automation behind it, often falling back to default instead of an actual hash revision, if I didn’t know anything ad-hoc. So that had to go, and required a surprising amount of changes. I also changed the way that comparisons are triggered, making them fully reproducible. They also got more robust. I used to run hg id -ir . to get the revision, which worked OK, unless you had extension errors in stdout/stderr. Meh. Good that that’s gone.

As I noted, the unified repositories also benefit doing diffs, which is one of the features of elmo for reviewing localizations. Now that we can just use plain mercurial to get those diffs, I could remove a bunch of code that created diffs between aurora and beta by creating diffs between each head and some ancestor, and then sticking those diffs back together. Good that that’s gone.


Testing an automation with that many moving parts is hard. Some things can be tested via unit tests, but more often, you just need integration tests. I still have to find a way to write automated integration tests, but even manual integration tests require a ton of set-up:

Doing this manually is evil, and on Macs, it’s not even possible, because Twisted 8.2.0 doesn’t build anymore. I used to have a script that did many of these things, but that’s …. you guessed it. Good that that’s gone. Now I have a docker-compose test setup, that has most things running with just a docker-compose up. I’m still running elmo and MySQL on my host machine, fixing that is for another day. Also, I haven’t found a good way to do initial project setup like database creations. Anyway, after finding a couple of bugs in docker, this system now fires up quickly and let’s me do various changes and see how they pass through the system. One particularly nice artifact is that the output of docker-compose is actually all the logs together in one stream. So as you’re pushing things through the system, you just have one log to watch.

As part of this work, I also greatly simplified the code structure, and moved the buildbot integration from three repositories into one. Good that those are gone.


Sadly there were a few bits and pieces where my local testing didn’t help:

Changing the URL schemes for hg.m.o to https alongside this change triggered a couple of problems where Twisted 8.2 and modern Python/OpenSSL can’t get a connection up. Had to replace the requests to websites with synchronous urllib2.urlopen calls.

Installing mercurial in a virtualenv to be used via hglib is good, but WSGI doesn’t activate the virtualenv, and thus PATH isn’t set. My fix still needs some server-side changes to work.

I didn’t have enough local testing for the things that Thunderbird needs. That left that setup burning for longer than I anticipated. The fix wasn’t hard, just badly timed.

Every now and then, Django 1.8.x and MySQL decide that it’s a good idea to throw away the connection, and die badly. In the case of long-running automation jobs, that’s really hard to prevent, in particular because I still haven’t fully understood what change actually made that happen, and what the right fix is. I just plaster connection.close() into every other function, and see if it stops dying.

On Saturday morning I woke up, and the automation didn’t process Firefox for a locale on aurora. I freaked out, and added tons of logging. Good logging that is. Best logging. Found a different bug. Also found out that the locale was Belarus, and that wasn’t part of the build on Saturday. Hit my head against a wall or two.

Said logging made uncaught exceptions in some parts of the code actually show up in logs, and discovered that I hadn’t tested my work against bad configurations. And we have that, Thunderbird just builds everything on central, regardless of whether the repositories it should use for that exist or not. I’m not really happy yet with the way I fixed this.

Open Questions

March 03, 2017 08:01 PM

March 01, 2017

Mozilla L10n Blog

Pontoon dashboard facelift

At the end of last year we ran a user survey and transformed results into Pontoon roadmap for 2017. Since the top-voted feature (in-app notifications) was blocked by the runner-up (project priorities and deadlines), we started working on the latter. It’s now ready for you to consume.

Adding two columns for project priority and deadline to our dashboards shouldn’t be a big deal, but we also had other related requests to fullfil. Additionally, dashboard code was in desperate need of a rewrite. So we ended up with the biggest changset ever landing in Pontoon! A big thank you to jotes for his patience during the review process!

Now let’s have a closer look at some of the changes we have made. We’ll use team page as an example and explain differences to other views along the way.

Greek Team Page

Greek Team Page

Main Menu
Starting on top, you’ll notice a simplified header with Pontoon logo, links to most popular views and the less frequent actions moved to the menu on the right. Note that Machinery was previously referred to as Terminology, but it’s the same old metasearch engine for translations.

The following section presents details of the current view, in our case team dashboard. On the left side you’ll find some CLDR locale data – plural forms, script, writing direction and the number of literate speakers. On the right side you’ll see overall team statistics.

Subpage Navigation
Team, Project and Localization (i.e. localization of a project by a team) dashboards consist of various subpages and you switch between them using tabs. As you’ll notice by the YouTube-like progress bar on top of the page, the navigation is now AJAX-based, which should make it faster.

Project Listing
Finally, in the project list below the tabs you’ll find the deadline and priority columns. If the deadline is overdue, it’s painted red. If it’s orange, you have less than a week to complete your translations. Projects are ranked in 5 priority levels, marked with stars.

Team dashboard now allows you to jump straight to the translate view with translation status filter applied. Hover any project to reveal its stats and select one of the translation statuses or “All strings”. A tooltip also appears when hovering in latest activity column, revealing the latest translation, author and date.

Jump straight to translate view with translation status filter applied

Jump straight to translate view with translation status filter applied

Bugzilla integration
Mozilla uses Bugzilla to track progress of projects and localizations. Open bugs specific to the team can now be accessed via the Bugs tab on the team page. Thanks to Axel, who wrote the code to support this functionality in Elmo, it’s now part of Pontoon too. Which means we’re now officially merging Pontoon and our standalone dashboard codebase!

Open bugs for the Greek team

Open bugs for the Greek team

Other dashboards
Project and Localization dashboard share their layouts with the Team dashboard. You’ll notice some information not previously available, such as repository URL on the Project page and a list of contributors, project info and team info on the Localization page.

A look ahead
With these changes, our dashboards should not only become more powerful, easier to use and more pleasant to the eye, but also more flexible to adapt to future requests. There are plenty of things we could improve:

Let us know how you feel about the new dashboards. And don’t forget, you can always file a bug or submit an idea for improvement! 😉

March 01, 2017 07:43 PM


Special bug verification event for Firefox 52 – a success with the help of the QA Community!

Hello Mozillians!

Last week, the Release QA Team (Firefox for Desktop) reached out to a few people from the QA Community and asked for help on a very specific list of bug fixes that would make the team more confident about the quality of Firefox 52.0, if successfully verified.

The following contributors were hand picked based on their consistent and reliable performance during Bug Verification Days: Maruf Rahman, Md.Majedul isalm, Kazi Nuzhat Tasnem, Azmina, Saheda Reza, Nazir Ahmed Sabbir, Sajedul Islam, Tanvir Rahman and Hossain Al Ikram.

It gives me great pleasure to extend my warmest congratulations to each and every one of them, on behalf of the entire Release QA Team. Thank you and we all hope that you’ll be willing to repeat this exercise again, soon.

Keep up the good work guys!
Mihai Boldan, QA Community Mentor
Firefox for Desktop, Release QA Team

March 01, 2017 02:09 PM

Firefox 53.0 Aurora Testday, March 3rd

Hello Mozillians,

We are happy to let you know that Friday, March 3rd, we are organizing Firefox 53.0 Aurora Testday. We’ll be focusing our testing on the following features: Implement support for WebM Alpha, Reader Mode Displays Estimated Reading Time and Quantum – Compositor Process for Windows. Check out the detailed instructions via this etherpad .

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better!

See you on Friday!

March 01, 2017 02:08 PM

February 21, 2017


Rezaul Huque Nayeem: industrious, tolerant and associative

Rezaul Huque Nayeem has been involved with Mozilla since 2013. He is from Mirpur, Dhaka, Bangladesh where he is an undergraduate student of Computer science and Engineering at the Daffodil International University. He loves to travel countrywide and hangout with friends. In his spare time, he volunteers for some social organizations.

Rezaul Huque Nayeem is from Bangladesh in south Asia.

Rezaul Huque Nayeem is from Bangladesh in south Asia.

Hi Nayeem! How did you discover the Web?

I discovered the web when I was kid, one day (2000/2001) in my uncle’s office I heard something about Email and Yahoo. That was the first time and I learned little bit about the internet on that day. I remember that I was very amazed when I downloaded a picture.

How did you hear about Mozilla?

In 2012 one of my friends told me about Mozilla and its mission. He told me how to contribute in many pathways in Mozilla.

How and why did you start contributing to Mozilla?

I started contributing to Mozilla on 20 march, 2015 by QA Marathon Dhaka. On that day my mentor Hossain Al Ikram showed me how to contribute to Mozilla by doing QA. He teached me how to test any feature on Firefox, how to verify bugs or do triage. From that day I love doing QA. Day by day I met many awesome mozillians and was helped by them. I love to contribute with them in a global community. I also like the way Mozilla works for making better web.

Nayeem in QA Marathon, Dhaka

Have you contributed to any other Mozilla projects in any other way?

I did some localization on Firefox OS and MDN. I contributed in MLS (Mozilla Location Service). I also participated in many Web Maker focused events.

What’s the contribution you’re the most proud of?

I feel proud to contribute to QA. By doing QA now i can find bugs and help to get them fixed. That’s why now many people can use a bug free browser. And it also teaches me how to work with a community and make me active and industrious.


Please tell us more about your community. Is there anything you find particularly interesting or special about it?

The community I work with is Mozilla Bangladesh QA Community, a functional community of Mozilla Bangladesh where we are focused in contributing in QA. It is the biggest QA community and growing day by day. There is about 50 + active contributors who regularly participates in Test days, Bug Verification days and Bug triage days. Last year, we verified more than 700 bugs. We have more than 10 community mentors to help contributors. In our community every member is so much friendly and helpful. It’s a very active and lovely community.


What’s your best memory with your fellow community members?

Every online and offline event was very exciting for me. But Firefox QA Testday, Dhaka (4.dec.2015) was the best memorable event with my community for me. It was really an awesome offline daylong event.


You had worked as a Firefox Student Ambassador. Do you have any event that you want to share?

I organized two events on my institutional campus, Dhaka Polytechnic Institute. One was a Webmaker event and another one was for MozillaBD Privacy Talk. Both was thrilling for me, as I was leading those events.


What advice would you give to someone who is new and interested in contributing to Mozilla?

I will tell him that, first you have to decide what you really want to do? If you work with a community, then please do not contribute for yourself, do it for your community.

If you had one word or sentence to describe Mozilla, what would it be?

Mozilla is the One who really wants to make web free for people

What exciting things do you envision for you and Mozilla in the future?

I envision that Mozilla will give much effort on connecting devices so that world would get some exciting gear.

February 21, 2017 11:23 PM

Firefox 52 Beta 7 Testday Results

Hello Mozillians!

As you may already know, last Friday – February 17th – we held a new Testday event, for Firefox 52 Beta 7.

Thank you all for helping us making Mozilla a better place – P.Avinash Sharma, Vuyisile Ndlovu, Athira Ananth, Ilse Macías and Iryna Thompson, Surentharan R.A., Subash.M, vinothini.k, R.krithika sowbarnika, Dhinesh Kumar, Fahima Zulfath A, Nagaraj.V, A.Kavipriya, Rajesh, varun tiwari, Pavithra.R, Vishnu Priya, Paarttipaabhalaji, Kavya, Sankararaman and Baranitharan.

From Bangladesh team: Nazir Ahmed Sabbir, Maruf Rahman, Md.Majedul islam, Md. Raihan Ali, Sabrina joadder silva, Afia Anjum Preety, Rezwana Islam Ria, Rayhan, Md. Mujtaba Asif, Anmona Mamun Monisha, Wasik Ahmed, Sajedul Islam, Forhad Hossain, Asif Mahmud Rony, Md Rakibul Islam.


– several test cases executed for the Graphics.

– 5 bugs verified: 637311, 1111599, 1311096, 1292629, 1215856.

– 2 new bugs filed: 1298395, 1340883.

Again thanks for another successful testday 🙂

We hope to see you all in our next events, all the details will be posted on QMO!


February 21, 2017 01:09 PM

February 08, 2017


Firefox 52 Beta 7 Testday, February 17th

Hello Mozillians,

We are happy to announce that Friday, February 17th, we are organizing Firefox 52 Beta 7 Testday. We will be focusing our testing on Graphics. Check out the detailed instructions via this etherpad .

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better!

See you on Friday!

February 08, 2017 01:07 PM

February 07, 2017


Firefox 52 Beta 3 Testday Results

Hello Mozillians!

As you may already know, last Friday – February 3rd – we held a new Testday event, for Firefox 52 Beta 3.

Thank you all for helping us making Mozilla a better place – Surentharan.R.A, P.Avinash Sharma, Athira Ananth, Vuyisile Ndlovu, Suba Narayanan, Paul Graphonium.

From Bangladesh team: Nazir Ahmed Sabbir, MD.Majedul Islam, Kazi Nuzhat Tasnem, Saima Sharleen, Md.Rahimul Islam, Md. Raihan Ali, Md Rakibul Islam, Md. Almas Hossain, Rayhan Hossen, Anmona Mamun Monisha, Sayed Ibn Masud, Sajedul Islam, Ahmed Safa, Abid Rahman, Hasibul Hasan Shanto, Rezwana Islam Ria, Mahsanul Islam Nirjhor, Akash, Toki Yasir, Tanvir Rahman and Maruf Rahman.

From Tamilnadu:  Fahima Zulfath A, Nagaraj V, Ronit Jadhav, Paarttipaabhalaji, Surentharan R.A, Pavithra R, Roshan Dawande, P.Avinash Sharma, v vishnupriya and Vinothini K.


– several test cases executed for the DTMF support, Screen Sharing and <select> drop-down improvements features
– 8 bugs verified: 1311795, 1336411, 1299428, 1316266, 1327155, 132797213279531322737
– 7 new bugs filed: 1336725, 1336723, 1336717, 1336721, 1336941, 1336933, 1336938
Again thanks for another successful testday 🙂

We hope to see you all in our next events, all the details will be posted on QMO!

February 07, 2017 01:38 PM

February 06, 2017

Rumbling Edge - Thunderbird

On hiatus …

I’ve run The Rumbling Edge for over a decade now. It’s time to take a break – that stage in your life where you would like to try other stuff.

February 06, 2017 10:33 PM

January 31, 2017

Mitchell Baker

A Thank You to Reid Hoffman

Today I want to say thank you to Reid Hoffman for 11 years as a Mozilla Corporation board member. Reid’s normal “tour of duty” on a board is much shorter. Reid joined Mozilla as an expression of his commitment to the Open Internet and the Mozilla mission, and he’s demonstrated that regularly. Almost five years ago I asked Reid if he would remain on the Mozilla board even though he had already been a member for six years. Reid agreed. When Chris Beard joined us Reid agreed to serve another two years in order to help Chris get settled and prime Mozilla for the new era.

Mozilla is in a radically better place today than we were two, three, or five years ago, and is poised for a next phase of growth and influence. Take a look at the Annual Report we published Dec 1, 2016 to get a picture of our financial and operational health. Or look at The Glass Room, or our first  Internet Health Report, or the successful launch of Firefox Focus (or Walt Mossberg’s article about Mozilla) to see what we’ve done the last few months.

And so after an extended “tour of duty” Reid is leaving the Mozilla Corporation board and becoming an Emeritus board member. He remains a close friend and champion of Mozilla and the Open Internet. He continues to help identify technologists, entrepreneurs, and allies who would be a good fit to join Mozilla, including at the board level.  He also continues to meet with and provide support to our key executives.

A heartfelt thank you to Reid.

January 31, 2017 05:06 PM


Firefox 52 Beta 3 Testday, February 3rd

Hello Mozillians,

We are happy to announce that Friday, February 3rd, we are organizing Firefox 52 Beta 3 Testday. We will be focusing our testing on DTMF, Screen Sharing and <select> drop-down improvements features. Check out the detailed instructions via this etherpad .

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better!

See you on Friday!

January 31, 2017 04:03 PM

January 26, 2017


Firefox 52.0 Aurora Testday Results

Hello Mozillians!

As you may already know, last Friday – January 20th – we held a new Testday event, for Firefox 52.0 Aurora.

Thank you all for helping us making Mozilla a better place – zstimi, Spandana Vadlamudi, Moin Shaikh, Vuyisile Ndlovu, terrameijar, Avinash Sharma, Varun Kumar Tiwari. 

From Bangladesh team: Nazir Ahmed Sabbir, MD.Majedul islam, Kazi Nuzhat Tasnem, Sabrina Joedder Silva, Maruf Rahman, Syed Nayeem Roman, Md. Mujtaba Asif, Rezwana Islam Ria, Afia Anjum Preety, Asiful Kabir Heemel, Anmona Mamun Monisha, Shahriar Shanto, Iftekher Alam, Tazin Ahmed, Raihan Ali, Mahsanul Islam Nirjhor, Toki Yasir, Abid Rahman, Sajedul Islam, Saima Sharleen. 

From India team: Surentharan R.A, Subhrajyoti Sen, Nagaraj, A.Kavipriya, Paarttipaabhalaji, Roshan Dawande, Sakshi Prajapati, Avinash Sharma, Vinothini, Krithika Sowbarnika.


Again thanks for another successful testday 🙂

We hope to see you all in our next events, all the details will be posted on QMO!


January 26, 2017 02:47 PM

January 23, 2017

Mozilla L10n Blog

Firefox L10n Report – Aurora 53

Current Aurora Cycle – Firefox 53

Key dates for this cycle:

String breakdown:

There are currently no pending requests to uplift patches with strings to Aurora.

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

Noteworthy Changes Available in Aurora

These are some of the interesting changes introduced in the last cycle.


Several strings were updated in Preferences, switching from “I/me” to ”You/your”. Depending on the way you translated them before, following closely English or using your own style, you might be able to reuse the existing translations.


Permission dialogs (sharing microphone, camera, location, etc.) have been redesigned to have a consistent layout and message. The result is that there are about 50 new strings to translate, in /browser and /toolkit (for password dialogs). You can use this website to test most permission dialogs.


There are several new strings related to managing WebExtensions-based add-ons. To give you an idea, the permission system is similar to the one available in a mobile OS, and you need to review them before installing or updating add-ons:


A few strings changed without a new ID to fix the use of “login” (noun) instead of “log in” (verb). They will show up as fuzzy in Pootle, but you should be able to confirm your existing translation



There’s a new string that is missing a comment (will be fixed, but not in time for this aurora cycle): “Open tabs” in pref_private_data_openTabs is a preference to clear open tabs, so “Open” is an adjective in this context, not a verb.



Localization is still broken for Debugger. In addition to that, a problematic changeset landed at the very end of the cycle: 7 strings changed without a new ID, and a few of them have issues (no plural form, one unclear). All issues should be fixed in the next Aurora cycle (this version of Debugger is enabled by default only on Nightly and Developer Edition).


New Languages

New locales reached release with Firefox 51:

Congratulation to all the teams involved! It’s been a long time since we added new language to release.

We currently have 5 other locales working on Firefox desktop, and we really look forward to release them in the next versions of Firefox:

The following locales are moving to Beta with Firefox 52 for Android:

If you want to know more about the process of releasing new locales, or if you speak one of these languages and want to know how to help the localization teams, please get in touch with us.

To all localizers: Thanks again for all the time and effort you put in localizing and promoting Firefox in your language.

January 23, 2017 05:53 PM

January 18, 2017

Camino L10N

Our teams are working on 1.0a1

Some languages have a complete translation of 1.0, we might upload them if you ask for it send me a mail at qa-mozilla at hirlimann dotNet. Our main issue for 1.0 is bug 248160. If someone wants to fix it, it would be very very nice.

January 18, 2017 07:22 PM

Mozilla L10n Blog

New Firefox, continuous l10n, and l10n community workshops in 2017

There’s a certain excitement growing within Mozilla. We’ve spent the last year strengthening our core, making Firefox and other projects competitive, and eliminating pain points in the localization process. We improved our l10n quality control practices by holding l10n events (hackathons) to train localizers, creating language-specific style guides, and expanding our use of translation memory by enabling more projects on Pontoon. We’re now ready to expand on our l10n quality practices, support the release of a new Firefox, and transform localization into a continuous process in an effort to better support our users on localized builds of Firefox.

We’re preparing to contribute to this exciting time in Mozilla’s history by accomplishing the following long-term goals:

Continuous localization

Continuous localization is a localization process whereby strings are quickly delivered to localizers for translation and testing and then quickly delivered to product teams for release, all with minimal manual intervention. With Quantum coming to Firefox, we’re expecting a larger than average volume of strings to translate and deliver to the organization. Optimizing our tooling and processes to more seamlessly interact with version control systems (VCS) and automating relevant QA checks & tasks will expand and focus the l10n community’s impact on the most critical tasks that have brought them to Mozilla to contribute: rapidly making Firefox available to users in any language. We’ll know we’ve accomplished this when we’ve done these things:

L20n in Firefox desktop

This goal might look familiar to you. We learned late in 2016 that a pure Javascript implementation of l20n introduced a number of performance issues in Firefox. This ultimately kept us from landing l20n in Firefox. With Quantum on the horizon, we’re working with the Firefox product team to define a timeline for accepting l20n into Firefox. This will likely not be until after Quantum has officially shipped later in 2017. In addition to setting this time line and criteria for acceptance into Firefox (and defining the l10n tech plan for Quantum), we’ll know that we’re successful here when we’ve landed l20n in Firefox for Android, added l20n selector support in Pontoon & Pootle, and continued our efforts to standardize l20n.

Measure and improve localization quality

Growth is the key word for 2017. Industry research tells us that users turn away from software that is poorly localized. As we’ve mentioned before, l10n quality is one of our highest priorities, however, we currently have no real way to measure quality. With performance, there are crash rate, startup time, and other metrics that can measure if a piece of software is well-developed. We’ve identified MQM as a similar metric that can help us measure the quality of localizations and inform how we recognize one another for good contributions and improve. We know we’ll be successful measuring and improving localization quality when we have done these things:

Competition in mobile localizations

In 2017 Mozilla will be running multiple experiments in the mobile space. The continuous localization process will allow us the technical flexibility to support localization of these experimental projects. One way we can help make Firefox for Android and iOS a success is by offering users, at minimum, the same level of localization coverage as Chrome, Safari, and other competitors in this space. One advantage Mozilla has against Google, Apple, and others is our status as an open source project. Often we’re able to offer localizations of Firefox to users in more languages than they can thanks to you, the community. To be successful here, we plan to take these steps:

L10n workshops schedule

This year we’ll be holding six l10n community workshops (formerly called “hackathons”) in various locations around the world. These workshops will be larger than those we’ve held in the past, as they’ll involve inviting 3 localizers from anywhere between 9 – 23 l10n communities per workshop (27-69 localizers per workshop). The core focus areas for these workshops is four-fold:

Each of these are areas that we’ve identified over the last couple of years of organizing l10n events as areas in which l10n communities worldwide need more help and support from the l10n-drivers. We’ll work with each l10n community to set goals around these four areas for their participation in workshops. We hope that those attending these workshops will return to their communities and share the lessons learned at the workshop they attended.

We plan to follow this schedule for this year’s l10n workshops for the following active l10n communities:

The l10n-drivers will organize the workshops, including identifying localizers to invite from each community and seeking feedback and approval from each community’s leader(s). If you’re interested in following or participating in the planning, you can do so by following our projects in GitHub.

This is a big year for Mozilla as we aim to grow our influence. Thank you to all our community for your help. We’re looking forward to seeing what we can accomplish together as passionate, dedicated Mozillians.


January 18, 2017 04:38 PM

January 17, 2017

Pascal Chevrel

Shell script to record a window into an animated GIF

Part of my work consists of spreading what new features land on Nightly for our Twitter account and sometimes an animated Gif to show how a new feature works or how to activate it easier than trying to squeeze explanations into 140 characters.

Initially I was doing a video screencast and then converting the video into a Gif but I wasn't happy with the quality of the end result and the whole process was time consuming. I ended up searching for a better solution and found out about byzanz-record, a command that allows screencasting directly as a Gif and I think is easier to use for a Linux user than playing with ffmpeg. I ended up tweaking a script I found on Stackoverflow and this is what I use in the end:

Other people using Linux may have similar needs so maybe that will help you guys discover this command.

January 17, 2017 04:08 PM

January 14, 2017

Mozilla L10n Blog

Pontoon Roadmap for 2017q1

At the end of last year we asked Pontoon users to participate in our survey in order to help us make better decisions on their behalf and shape the future of Mozilla’s translation tool.

Turnout exceeded our expectations: in the first 24 hours alone, 120 members of Mozilla localization community casted their votes. That gave us confidence to base Pontoon 2017 Roadmap on results of the survey. Let’s have a look at them!

154 people participated in the survey. They had to vote on each of this features from 1 to 5, so the minimum number of votes per idea was also 154.

Let’s see how survey results turn into Pontoon roadmap for the first quarter of the year:

In-app notifications. We’ll add the ability to send targeted notifications to relevant users on special events. For example, users who submitted translations to Firefox for iOS will receive a notification when new strings arrive. Author will be notified when new suggestion gets submitted for the string she translated. A few days before the deadline, we’ll send a reminder to team managers and translators of incomplete locales.

Priorities and deadlines. This is a requirement for some of the notifications described above, so it’s likely to get released earlier. For each project, we’ll show how important it is and when is the deadline to submit translations (if available). For projects like (and in the future Firefox), we’ll also display priority and deadline information on a file level.

Screenshot-based localization. As goofy commented in the survey, 3 things are high priority: add context, provide context, show context 😉. What in-context localization brings to websites, screenshots could bring to product l10n. We’d like to explore that by designing a user interface for navigating strings by screenshots and displaying screenshot for any string. And we’ll try to do that as part of Google Summer of Code. Stay tuned!

Terminology and Glossary. The one and only Jotes already started integrating Microsoft Terminology into translation interface and we’re planning to ship that by the end of the quarter. As the first step towards creating Mozilla Terminology, we’ll also set up a localization project with terms extracted from various Mozilla projects. After Q1 we’ll focus on building a specialized functionality for creating, maintaining and translating terms.

L20n. While this hasn’t been called out as part of the survey, we have some work left to do regarding the implementation of the UI for advanced L20n features. A solid step forward has been made last year and now we have to land it and finalize the missing pieces.

The rest of the ideas from the survey will either get our attention post Q1 or will only get partially resolved during the first quarter. An example of the latter is merging Pontoon with our standalone dashboards (Elmo and Web Dashboard), which we’ll be effectivelly starting to do by adding support for priorities, deadlines and notifications, and also by outlining a plan to bring together the rest of the functionality.

And remember: even if the survey is now closed, you can always vote or comment on existing ideas or add new ones.

January 14, 2017 12:15 AM

January 12, 2017


Firefox 52.0 Aurora Testday, January 20th

Hello Mozillians,

We are happy to let you know that Friday, January 20th, we are organizing Firefox 52.0 Aurora Testday. We’ll be focusing our testing on the following features: Responsive Design Mode and Skia Content for Windows. Check out the detailed instructions via this etherpad .

No previous testing experience is required, so feel free to join us on #qa IRCchannel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better!

See you on Friday!

January 12, 2017 01:44 PM

January 09, 2017


Firefox 51 Beta 12 Testday Results

Hi everyone!

Last Friday, January 6th, we held the first testday of this year Firefox 51 Beta 12 Testday.  It was yet another successful event (please see the results section below) so a big Thank You goes to everyone involved.

First of all, many thanks to our active contributors: Vuyisile Ndlovu, Moin Shaikh, P Avinash Sharma, Ilse Macías.

Bangladesh team: Maruf Rahman, Humayra Khanum, Jobayer Ahmed Mickey, Md. Almas Hossain, Raihan Ali, Iftekher Alam, Tariqul Islam Chowdhury, Saima Sharleen, Md.Tarikul Islam Oashi, Toki Yasir, Majedul islam Rifat, Kazi Nuzhat Tasnem, Rezwana Islam Ria, Aminul Islam Alvi and Tanvir Rahman.

India team: Subhrajyoti Sen, Baranitharan, Aishwarya.B, Deepak Chandh, Roshan Dawande, Vishnupriya .V, Selva Makilan, Rajesh D, SriSailesh, R.Krithika Sowbarnika, P Avinash Sharma, Sakshi Prajapati, Sankaraman, Sriram, Surentharan .R.A, Nagaraj.V, Pavithra.R, Paarttipaabhalaji, Kavya Kumaravel, Vinothini, Satchidanandam.M, Karthikeyan S, Dhevendhiran, Kavipriya and Dinesh Kumar.

Secondly, a big thank you to all our active moderators.


Third, some tests that were failed need more information from you guys. I left a few comments in the etherpads so please provide me with that information so we can see if we should log bugs on those or not.

Again thanks for another hugely successful testday 🙂

We hope to see you all in our next events, all the details will be posted on QMO! Happy new year!

January 09, 2017 03:24 PM

December 29, 2016


Firefox 51 Beta 12 Testday

Hello Mozillians,

Let’s start this new year properly! We will have another beta testday, Firefox 51 beta 12 next Friday, 6th January. We will be focusing our testing on WebGL 2.0,  Zoom Indicator and Flash support (New version of flash in Linux – 24) features. Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

See you on the first Friday from 2017! Have a happy new year!

December 29, 2016 01:57 PM

December 05, 2016

Mitchell Baker

Helen Turvey Joins the Mozilla Foundation Board of Directors

This post was originally posted on the website.

Helen Turvey, new Mozilla Foundation Board member

Helen Turvey, new Mozilla Foundation Board member

Today, we’re welcoming Helen Turvey as a new member of the Mozilla Foundation Board of Directors. Helen is the CEO of the Shuttleworth Foundation. Her focus on philanthropy and openness throughout her career makes her a great addition to our Board.

Throughout 2016, we have been focused on board development for both the Mozilla Foundation and the Mozilla Corporation boards of directors. Our recruiting efforts for board members has been geared towards building a diverse group of people who embody the values and mission that bring Mozilla to life. After extensive conversations, it is clear that Helen brings the experience, expertise and approach that we seek for the Mozilla Foundation Board.

Helen has spent the past two decades working to make philanthropy better, over half of that time working with the Shuttleworth Foundation, an organization that provides funding for people engaged in social change and helping them have a sustained impact. During her time with the Shuttleworth Foundation, Helen has driven the evolution from traditional funder to the current co-investment Fellowship model.

Helen was educated in Europe, South America and the Middle East and has 15 years of experience working with international NGOs and agencies. She is driven by the belief that openness has benefits beyond the obvious. That openness offers huge value to education, economies and communities in both the developed and developing worlds.

Helen’s contribution to Mozilla has a long history: Helen chaired the digital literacy alliance that we ran in UK in 2013 and 2014; she’s played a key role in re-imagining MozFest; and she’s been an active advisor to the Mozilla Foundation executive team during the development of the Mozilla Foundation ‘Fuel the Movement’ 3 year plan.

Please join me in welcoming Helen Turvey to the Mozilla Foundation Board of Directors.


You can read Helen’s message about why she’s joining Mozilla here.


Twitter: @helenturvey

High-res photo

December 05, 2016 02:30 AM

December 01, 2016

Mitchell Baker

Julie Hanna Joins the Mozilla Corporation Board of Directors

This post was originally posted on the website.

Julie Hanna, new Mozilla Corporation Board member

Julie Hanna, new Mozilla Corporation Board member

Today, we are very pleased to announce the latest addition to the Mozilla Corporation Board of Directors – Julie Hanna. Julie is the Executive Chairman for Kiva and a Presidential Ambassador for Global Entrepreneurship and we couldn’t be more excited to have her joining our Board.

Throughout this year, we have been focused on board development for both the Mozilla Foundation and the Mozilla Corporation boards of directors. We envisioned a diverse group who embodied the same values and mission that Mozilla stands for. We want each person to contribute a unique point of view. After extensive conversations, it was clear to the Mozilla Corporation leadership team that Julie brings exactly the type of perspective and approach that we seek.

Born in Egypt, Julie has lived in various countries including Jordan and Lebanon before finally immigrating to the United States. Julie graduated from the University of Alabama at Birmingham with a B.S. in Computer Science. She currently serves as Executive Chairman at Kiva, a peer-peer lending pioneer and the world’s largest crowdlending marketplace for underserved entrepreneurs. During her tenure, Kiva has scaled its reach to 190+ countries and facilitated nearly $1 billion dollars in loans to 2 million people with a 97% repayment rate. U.S. President Barack Obama appointed Julie as a Presidential Ambassador for Global Entrepreneurship to help develop the next generation of entrepreneurs. In that capacity, her signature initiative has delivered over $100M in capital to nearly 300,000 women and young entrepreneurs across 86 countries.

Julie is known as a serial entrepreneur with a focus on open source. She was a founder or founding executive at several innovative technology companies directly relevant to Mozilla’s world in browsers and open source. These include Scalix, a pioneering open source email/collaboration platform and developer of the most advanced AJAX application of its time, the first enterprise portal provider 2Bridge Software, and Portola Systems, which was acquired by Netscape Communications and become Netscape Mail.

She has also built a wealth of experience as an active investor and advisor to high-growth technology companies, including sharing economy pioneer Lyft, Lending Club and online retail innovator Bonobos. Julie also serves as an advisor to Idealab, Bill Gross’ highly regarded incubator which has launched dozens of IPO-destined companies.

Please join me in welcoming Julie Hanna to the Mozilla Board of Directors.



Twitter: @JulesHanna

High-res photo


December 01, 2016 07:18 PM

November 28, 2016


Firefox 51 Beta 3 Testday Results

Hi everyone!

Last Friday, November 25th, we held Firefox 51 Beta 3 Testday.  It was a successful event (please see the results section below) so a big Thank You goes to everyone involved.

First of all, many thanks to our active contributors: Krithika MAPMoin Shaikh, M A Prasanna, Steven Le Flohic, P Avinash Sharma, Iryna Thompson.

Bangladesh team: Nazir Ahmed Sabbir, Sajedul Islam, Maruf Rahman, Majedul islam Rifat, Ahmed Safa,  Md Rakibul Islam, M. Almas Hossain, Foysal Ahmed, Nadim Mahmud, Amir Hossain Rhidoy, Mohammad Abidur Rahman Chowdhury, Mahfujur Rahman Mehedi, Md Omar Faruk sobuj, Sajal Ahmed, Rezwana Islam Ria, Talha Zubaer, maruf hasan, Farhadur Raja Fahim, Saima sharleen, Azmina AKterPapeya, Syed Nayeem Roman.

India team:  Vibhanshu Chaudhary, Surentharan.R.A, Subhrajyoti Sen, Govindarajan Sivaraj, Kavya Kumaravel, Bhuvana Meenakshi.K, Paarttipaabhalaji, P Avinash Sharma, Nagaraj V, Pavithra R, Roshan Dawande, Baranitharan, SriSailesh, Kesavan S, Rajesh. D, Sankararaman, Dinesh Kumar M, Krithikasowbarnika.

Secondly, a big thank you to all our active moderators.


We hope to see you all in our next events, all the details will be posted on QMO!

November 28, 2016 01:26 PM

November 17, 2016


Firefox 51 Beta 3 Testday, November 25th

Hello Mozillians,

We are happy to announce that next Friday, November 25th, we are organizing Firefox 51 Beta 3 Testday. We’ll be focusing our testing on the WebGL2, FLAC support, Indicator for device permissions and Zoom Indicator features, bug verifications and bug triage. Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better! See you on Friday!

November 17, 2016 03:24 PM

November 14, 2016

Mozilla L10n Blog

Firefox L10n Report – Aurora 52

Hi everyone,
Here’s an outline of what is currently in Aurora this cycle for Firefox 52.

Current Aurora Cycle – Firefox 52

This is an unconventional cycle: it’s 2 cycles combined into one, to work around Holidays at the end of the year. It could be a great occasion to work on missing strings, or focus on testing if your locale is already in good shape.

Key dates for this cycle:

String breakdown:

There are currently no pending requests to uplift patches with strings to Aurora. There is ongoing work on Firefox stub installer that will probably need to land for Firefox 52, and there was a back-out during the weekend (strings landed and were removed for test failures). Given the exceptional length of the cycle, we might have a number of requests higher than usual. As we always do, we’ll carefully evaluate them one by one together with Release Drivers.

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

Noteworthy Changes Available in Aurora

These are some of the interesting changes introduced in the last cycle.


The string disableContainersMsg was fixed without a new iD: Containers Tabs -> Container Tabs

The entire /searchplugins folder was removed as part of Merge Day. Searchplugins are now stored directly in mozilla-central.


Several developer tools are still moving strings from .DTD to .properties:

A migration script was run on all locales, excluding those working on l10n-central (eo, es-ES, fr, it, pl, ru), to move strings from the existing DTD files to the new .properties files. 115 strings were moved in the process, reducing the number of missing strings for Firefox desktop to 215.
We also worked together with Pootle’s tech team to make sure that these changes will be imported in the tool.

Strings were automatically moved to,,, (all in /devtools/client). All obsolete DTD files were removed.

The new Debugger is now localizable, even if there are still some hardcoded strings to fix.

Common Issues

We added a new view in Transvision to display empty strings diverging between English and the requested locale. In other words, it displays a string that is empty in English but not in the locale, and a string that is empty in the locale but not in English.

Empty strings are not a rarity in Mozilla products:

Pootle will report these empty strings as untranslated: for the first type of strings you can use the special control displayed under the text area to insert a “zero width non-joiner” character. That doesn’t necessarily work for the second type, so you’re invited to test to avoid introducing strange behaviors.

Related to this special values, there are several locales with wrong values for the following keys.

Intl.charset.detector (toolkit)
Localization comment:
# LOCALIZATION NOTE (intl.charset.detector):
# This preference controls the initial setting for the character encoding
# detector. Valid values are ja_parallel_state_machine for Japanese, ruprob
# for Russian and ukprob for Ukrainian and the empty string to turn detection
# off. The value must be empty for locales other than Japanese, Russian and
# Ukrainian.

Current translations:

isRTL (crashreporter)
# Leave this entry empty unless your language requires right-to-left layout,
# for example like Arabic, Hebrew, Persian. If your language needs RTL, please
# use the untranslated English word "yes" as value

Current translations:

New Languages

A few new locales were added in Firefox 51 Beta:

These are the new locales shipping in release with Firefox 50:

Congratulation to all the teams involved!

We currently have 5 other locales working on Firefox desktop, and we really look forward to release them in the next versions of Firefox:

The following locales are targeting Firefox 52 to release Firefox for Android:

If you want to know more about the process of releasing new locales, or if you speak one of these languages and want to know how to help the localization teams, please get in touch with us.

To all localizers: Thanks again for all the time and effort you put in localizing and promoting Firefox in your language.

November 14, 2016 04:02 PM

November 03, 2016

Mozilla L10n Blog

Goals and vision for Mozilla l10n 2016

A lot of improvements to Mozilla l10n tools and process have come throughout 2016. We’ve deeply enjoyed connecting with members of the community to learn what other improvements you would like to see in l10n. For the rest of the year, the l10n team has a number of goals we’re working toward accomplishing by 1 January 2017:


Land L20n in Firefox desktop on mozilla-central

We’ve been talking about l20n for a long time now and it’s finally coming to Firefox desktop. Changing this infrastructure has a number of benefits (that we’ve mentioned in other blog posts) as well as a number of dependencies. The aim is to land l20n in mozilla-central soon after merge day in November, meaning that Firefox 53 will be the first version of Firefox to use the new framework. There are a number of dependencies to accomplishing this and making the transition smooth for everyone. These are the dependencies that are most relevant to the localization work you do:


  1. Pontoon & Pootle need a UI that allow localizers to use the robust l20n features easily and without requiring a steep learning curve.
  2. Documentation & en-US style guide needs to be updated to reflect the change to the FTL file format and l20n syntax.
  3. Dashboards (i.e., compare-locales) need to be able to scan and report stats on l20n strings.
  4. Migrating your translations into the new format needs to be seamless.


Implement cross-channel localization for Firefox and Firefox for Android

This is another one that we’ve mentioned once or twice in previous blog posts. Last December, Axel developed the idea to unify all of a locale’s Mercurial repository channels into one repository. This means that each locale will only have one Mercurial repository for Firefox and Firefox for Android rather than three separate ones for aurora, beta, and release (and nightly for some). Thunderbird and SeaMonkey will use the same process. This will lay the foundation for a couple of changes that affect you in the future:


  1. You’ll be able to make corrections once and they’ll show up in Aurora and Nightly immediately. We’ll be working to extend this to Beta and Release in 2017.
  2. We will have more freedom to determine when localization updates happen across multiple channels and outside of the normal release cycle.
  3. Those wanting to translate more often will easily be able to do so while those wanting to translate only once per cycle can continue with that frequency.


Track all l10n-driver project statuses in GitHub Projects and report frequently.

Transparency has been a high priority for us over the last several months. We even spent a week together in Reykjavík to discuss, explore, and create a way to improve our transparency. Coming out of that work week, Stas created an IRC bot in #l10n-drivers that allows us to tell it to-do items to add to a list and organize at a later time. Once organized into categories like struggles, accomplishments, current goals, etc., they are copied and pasted into our weekly planning meeting wiki pages for anyone to read.


Another decision made from that work week was that we need to have a central place to track projects that we’re working on, such as cross-channel l10n, landing l20n, hackathons, etc. We explored a few different solutions (including Trello) and settled on using GitHub Projects ( & ) to track these projects. If you want to follow along with these projects and stay up-to-date with what the l10n-drivers are working on, you’re welcome to watch these projects with your GitHub account.


Recreate our documentation.

It’s been 5 years since our documentation was last re-written. Localization at Mozilla has changed dramatically since that time. The documentation is terribly outdated, difficult to find, and hard to navigate. The plan for the rest of the years is to inventory our current documentation, get rid of everything in MDN and WikiMo, and migrate anything that is still useful to GitHub markdown files. Once all of the documentation is written, we’ll begin creating tutorial-like, task-based, screencasts and add them to the Mozilla L10n YouTube channel.

A lot of this sounds like work just for the l10n-drivers, but I know that there have been many members of the global community working on creating their own training documentation for localization. If you’re interested in getting involved now, help us find information gaps in our existing documentation on MDN and WikiMo and file the request as an issue in GitHub ( ). You can also help us to create screencast videos once the documentation is complete. We’ll create a process for creating and submitting these videos, most likely in 2017. as first project for new communities.

Historically when communities approached us about localizing Firefox, we directed them to Firefox desktop first. Gradually, we learned that Firefox for Android or Firefox for iOS were more appropriate first projects for specific regions. With this product-specific focus, is often left behind as an afterthought by most new communities. Product localization usually is more technical, requires more time, are bigger projects to tackle, and aren’t the first point of interaction a potential user has with Mozilla. As a result, many new communities start, but don’t finish. Starting this quarter, we’ll begin funneling new communities toward completing We hope that this will provide a quicker turnaround for new communities to see the impact of their contributions by being less technical, updating very frequently, and by being the second smallest project in the list of primary Mozilla l10n projects

Define goals and format for 2017 hackathons.

We’re looking forward to closing out this year strong to set us up to do some really fun and innovative things in 2017.

November 03, 2016 08:56 PM

October 31, 2016


Firefox 51.0a2 Aurora Testday Results

Hello Mozillians!

As you may already know, last Friday – October 28th – we held a Testday event, for Firefox 51 Aurora.

Thank you all for helping us making Mozilla a better place – Logicoma, Iryna Thompson, Rajesh, Moin Shaikh, Onek Jude, Prosper Salama,  Biraj Karmakar, Vibhanshu Chaudhary, Avinash Sharma, Sadamu Samuel.

From Bangladesh: Nazir Ahmed Sabbir, Maruf Rahman, Saheda Reza Antora, Md. Almas Hossain, Shahidul Islam, Md. Majedul Islam, Md. Mujtaba Asif, Tariqul Islam Chowdhury, Sajedul Islam, Rezwana Islam Ria, Amir Hossain Rhidoy, Md. Nafis Fuad, Shaheen Javed, Ahmed Safa, Akash, Toki Yasir.

From India: Nagaraj.V,  Pavithra.R, Surentharan.R.A, Paarttipaabhalaji, Meruso, Subhrajyoti Sen, Avinash Sharma, Bhuvana Meenakshi.K, Survesh Jones, Vibhanshu Chaudhary.

A big thank you goes out to all our active moderators too!


Keep an eye on QMO for upcoming events!

October 31, 2016 12:52 PM

October 21, 2016


Firefox 51.0a2 Aurora Testday, October 28th

Hello Mozillians,

We are happy to let you know that Friday, October 28th, we are organizing Firefox 51.0 Aurora Testday. We’ll be focusing our testing on the following features: Zoom indicator, Downloads dropmaker.

Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better!

See you on Friday!

October 21, 2016 03:57 PM

October 18, 2016


Firefox 50 Beta 7 Testday Results

Hello Mozillians!

As you may already know, last Friday – October 14th – we held a new Testday event, for Firefox 50 Beta 7.

Thank you all for helping us making Mozilla a better place – Onek Jude, Sadamu Samuel, Moin Shaikh, Suramya,ss22ever22 and Ilse Macías.

From Bangladesh: Maruf Rahman, Md.Rahimul Islam, Sayed Ibn Masud, Abdullah Al Jaber Hridoy, Zayed News, Md Arafatul Islam, Raihan Ali, Md.Majedul islam, Tariqul Islam Chowdhury, Shahrin Firdaus, Md. Nafis Fuad, Sayed Mahmud, Maruf Hasan Hridoy, Md. Almas Hossain, Anmona Mamun Monisha, Aminul Islam Alvi, Rezwana Islam Ria, Niaz Bhuiyan Asif, Nazmul Hassan, Roy Ayers, Farhadur Raja Fahim, Sauradeep Dutta, Sajedul Islam, মাহফুজা হুমায়রা মোহনা.

A big thank you goes out to all our active moderators too!


Keep an eye on QMO for upcoming events!

October 18, 2016 07:00 AM

October 04, 2016


Firefox 50 Beta 3 Testday Results

Hello Mozillians!

As you may already know, last Friday – September 30th – we held a new Testday event, for Firefox 50 Beta 3.

Thank you all for helping us making Mozilla a better place – Julie Myers, Logicoma, Tayba Wasim, Nagaraj V, Suramya Shah, Iryna Thompson, Moin Shaikh, Dragota Rares, Dan Martin,  P Avinash Sharma.

From Bangladesh: Hossain Al Ikram, Azmina Akter Papeya, Nazir Ahmed Sabbir, Saddam Hossain, Aminul Islam Alvi, Raihan Ali, Rezaul Huque Nayeem, Md. Rahimul Islam, Sayed Ibn Masud, Roman Syed, Maruf Rahman, Tovikur Rahman, Md. Rakibul Islam, Siful Islam Joy, Sufi Ahmed Hamim, Md Masudur-Rahman, Niaz Bhuiyan Asif, Akash Kishor Sarker, Mohammad Maruf Islam, MD Maksudur Rahman, M Eftekher Shuvo, Tariqul Islam Chowdhury, Abdullah Al Jaber Hridoy, Md Sajib Mullla, MD. Almas Hossain, Rezwana islam ria, Roy Ayers, Nzmul Hossain, Md. Nafis Fuad, Fahim. 

From India: Vibhanshu Chaudhary, Subhrajyoti Sen, Bhuvana Meenakshi K, Paarttipaabhalaji, Nagaraj V, Surentharan.R.A, Rajesh . D, Pavithra.R.

A big thank you goes out to all our active moderators too! 


Keep an eye on QMO for upcoming events!

October 04, 2016 07:54 AM

September 30, 2016

Mitchell Baker

Mozilla Hosting the U.S. Commerce Department Digital Economy Board of Advisors

Today Mozilla is hosting the second meeting of the Digital Economy Board of Advisors of the United States Department of Commerce, of which I am co-chair.

Support for the global open Internet is the heart of Mozilla’s identity and strategy. We build for the digital world. We see and understand the opportunities it offers, as well as the threats to its future. We live in a world where a free and open Internet is not available to all of the world’s citizens; where trust and security online cannot be taken for granted; and where independence and innovation are thwarted by powerful interests as often as they are protected by good public policy. As I noted in my original post on being named to the Board, these challenges are central to the “Digital Economy Agenda,” and a key reason why I agreed to participate.

Department of Commerce Secretary Pritzker noted earlier this year: “we are no longer moving toward the digital economy. We have arrived.” The purpose of the Board is to advise the Commerce Department in responding to today’s new status quo. Today technology provides platforms and opportunities that enable entrepreneurs with new opportunities. Yet not everyone shares the benefits. The changing nature of work must also be better understood. And we struggle to measure these gains, making it harder to design policies that maximize them, and harder still to defend the future of our digital economy against myopic and reactionary interests.

The Digital Economy Board of Advisors was convened to explore these challenges, and provide expert advice from a range of sectors of the digital economy to the Commerce Department as it develops future policies. At today’s meeting, working groups within the Board will present their initial findings. We don’t expect to agree on everything, of course. Our goal is to draw out the shared conclusions and direction to provide a balanced, sustainable, durable basis for future Commerce Department policy processes. I will follow up with another post on this topic shortly.

Today’s meeting is a public meeting. There will be two live streams: one for the 8:30 am-12:30 pm PT pre-lunch session and one for the afternoon post-lunch 1:30-3:00pm PT. We welcome you to join us.

Although the Board has many more months left in its tenure, I can see a trend towards healthy alignment between our mission and the outcomes of the Board’s activities. I’m proud to serve as co-chair of this esteemed group of individuals.

September 30, 2016 02:10 PM

September 28, 2016

Mitchell Baker

UN High Level Panel and UN Secretary General Ban Ki-moon issue report on Women’s Economic Empowerment

“Gender equality remains the greatest human rights challenge of our time.”  UN Secretary General Ban Ki-moon, September 22, 2016.

To address this challenge the Secretary General championed the 2010 creation of UN Women, the UN’s newest entity. To focus attention on concrete actions in the economic sphere he created the “High Level Panel on Women’s Economic Empowerment” of which I am a member.

The Panel presented its initial findings and commitments last week during the UN General Assembly Session in New York. Here is the Secretary General, with the the co-chairs, and the heads of the IMF and the World Bank, the Executive Director of the UN Women, and the moderator and founder of All Africa Media, each of whom is a panel member.

UN General Assembly Session in New York

Photo Credit: Anar Simpson

The findings are set out in the Panel’s initial report. Key to the report is the identification of drivers of change, which have been deemed by the panel to enhance women’s economic empowerment:

  1. Breaking stereotypes: Tackling adverse social norms and promoting positive role models
  2. Leveling the playing field for women: Ensuring legal protection and reforming discriminatory laws and regulations
  3. Investing in care: Recognizing, reducing and redistributing unpaid work and care
  4. Ensuring a fair share of assets: Building assets—Digital, financial and property
  5. Businesses creating opportunities: Changing business culture and practice
  6. Governments creating opportunities: Improving public sector practices in employment and procurement
  7. Enhancing women’s voices: Strengthening visibility, collective voice and representation
  8. Improving sex-disaggregated data and gender analysis

Chapter Four of the report describes a range of actions that are being undertaken by Panel Members for each of the above drivers. For example under the Building assets driver: DFID and the government of Tanzania are extending land rights to more than 150,000 Tanzanian women by the end of 2017. Tanzania will use media to educate people on women’s land rights and laws pertaining to property ownership. Clearly this is a concrete action that can serve as a precedent for others.

As a panel member, Mozilla is contributing to the working on Building Assets – Digital. Here is my statement during the session in New York:

“Mozilla is honored to be a part of this Panel. Our focus is digital inclusion. We know that access to the richness of the Internet can bring huge benefits to Women’s Economic Empowerment. We are working with technology companies in Silicon Valley and beyond to identify those activities which provide additional opportunity for women. Some of those companies are with us today.

Through our work on the Panel we have identified a significant interest among technology companies in finding ways to do more. We are building a working group with these companies and the governments of Costa Rica, Tanzania and the U.A. E. to address women’s economic empowerment through technology.

We expect the period from today’s report through the March meeting to be rich with activity. The possibilities are huge and the rewards great. We are committed to an internet that is open and accessible to all.”

You can watch a recording of the UN High Level Panel on Women’s Economic Empowerment here. For my statement, view starting at: 2.07.53.

There is an immense amount of work to be done to meet the greatest human rights challenge of our time. I left the Panel’s meeting hopeful that we are on the cusp of great progress.

September 28, 2016 09:54 PM

September 26, 2016


Firefox 50 Beta 3 Testday, September 30th

Hello Mozillians,

We are happy to announce that Friday, September 30th, we are organizing Firefox 50 Beta 3 Testday. We will be focusing our testing on Pointer Lock API and WebM EME support for Widevine features. Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better! See you on Friday!

September 26, 2016 09:28 AM

September 23, 2016

Mitchell Baker

Living with Diverse Perspectives

Diversity and Inclusion is more than having people of different demographics in a group.  It is also about having the resulting diversity of perspectives included in the decision-making and action of the group in a fundamental way.

I’ve had this experience lately, and it demonstrated to me both why it can be hard and why it’s so important.  I’ve been working on a project where I’m the individual contributor doing the bulk of the work. This isn’t because there’s a big problem or conflict; instead it’s something I feel needs my personal touch. Once the project is complete, I’m happy to describe it with specifics. For now, I’ll describe it generally.

There’s a decision to be made.  I connected with the person I most wanted to be comfortable with the idea to make sure it sounded good.  I checked with our outside attorney just in case there was something I should know.  I checked with the group of people who are most closely affected and would lead the decision and implementation if we proceed. I received lots of positive response.

Then one last person checked in with me from my first level of vetting and spoke up.  He’s sorry for the delay, etc but has concerns.  He wants us to explore a bunch of different options before deciding if we’ll go forward at all, and if so how.

At first I had that sinking feeling of “Oh bother, look at this.  I am so sure we should do this and now there’s all this extra work and time and maybe change. Ugh!”  I got up and walked around a bit and did a few thing that put me in a positive frame of mind.  Then I realized — we had added this person to the group for two reasons.  One, he’s awesome — both creative and effective. Second, he has a different perspective.  We say we value that different perspective. We often seek out his opinion precisely because of that perspective.

This is the first time his perspective has pushed me to do more, or to do something differently, or perhaps even prevent me from something that I think I want to do.  So this is the first time the different perspective is doing more than reinforcing what seemed right to me.

That lead me to think “OK, got to love those different perspectives” a little ruefully.  But as I’ve been thinking about it I’ve come to internalize the value and to appreciate this perspective.  I expect the end result will be more deeply thought out than I had planned.  And it will take me longer to get there.  But the end result will have investigated some key assumptions I started with.  It will be better thought out, and better able to respond to challenges. It will be stronger.

I still can’t say I’m looking forward to the extra work.  But I am looking forward to a decision that has a much stronger foundation.  And I’m looking forward to the extra learning I’ll be doing, which I believe will bring ongoing value beyond this particular project.

I want to build Mozilla into an example of what a trustworthy organization looks like.  I also want to build Mozilla so that it reflects experience from our global community and isn’t living in a geographic or demographic bubble.  Having great people be part of a diverse Mozilla is part of that.  Creating a welcoming environment that promotes the expression and positive reaction to different perspectives is also key.  As we learn more and more about how to do this we will strengthen the ways we express our values in action and strengthen our overall effectiveness.

September 23, 2016 09:19 PM

September 19, 2016

Mozilla L10n Blog

Firefox L10n Report – Aurora 51

Here’s an outline of what is currently in Aurora this cycle for Firefox 51.

Current Aurora Cycle – Firefox 51

Key dates for this cycle:

String breakdown:

There are currently no pending requests to uplift patches with strings to Aurora.

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

Noteworthy Changes Available in Aurora

These are some of the interesting changes introduced in the last cycle.


One string in layout/ has changed without a new ID, from ‘no element found’ to ‘no root element found’.


Several developer tools are moving strings from .DTD to .properties, it should be expected to have a perfect match in TM tools like Pontoon & Pootle between old and new strings. For example:

There is also one big movement of strings (from each devtools to a file) to improve devtools startup performances.

The new debugger, also known as debugger.html, is currently not localizable. We’re in touch with the team and we hope to make it localizable soon.


In bug 1290756 and bug 686168, help viewer files were moved from toolkit to comm-central (for SeaMonkey). These files were either removed or moved into /suite for all locales during merge day.

Common Issues

GenericImageNameGIF = image.gif
GenericImageNameJPEG = image.jpg
GenericImageNamePNG = image.png

As the localization notes explain, you should not localize the extension, but you should localize the ‘image’ part.

New Languages

When Firefox 51 moves to release, if everything goes according to plans, we aim to release 3 new locales on desktop:

Congratulation to all the teams involved: localizing Firefox is a huge effort and achievement!

We have 4 other locales with a promising outline, and we really look forward to release them in the next versions of Firefox:

If you want to know more about the process of releasing new locales, or if you speak one of these languages and want to know how to help the localization teams, please get in touch with us.

To all localizers: Thanks again for all the time and effort you put in localizing and promoting Firefox in your language.

September 19, 2016 04:39 PM

September 15, 2016

Mozilla L10n Blog

Localization Hackathon in Kuala Lumpur

13975340_10153976510682153_2559748474514988567_oThe last weekend of August saw the largest localization hackathon event the l10n-drivers ever organized. Thirty-four community contributors representing 12 languages from 13 East and Southeast Asian countries journeyed to Kuala Lumpur, Malaysia on Friday, August 26. Jeff, Flod, Gary Kwong and I arrived in time for the welcome dinner with most of the community members. The restaurant, LOKL Coffee, was ready for a menu makeover and took the opportunity to use this Mozilla event to do just that. A professional photographer spent much of the evening with us snapping photos.

We started off Saturday morning with Spectrogram, where l10n contributors moved from one side of the room to another to illustrate whether they agreed or disagreed with a statement. Statements help us understand each community’s preferences to address localization requests. An example: There are too many translation/localization tasks for me to keep up; I want to work on 2000 strings sliced up in 1 year, twice, 6 weeks, 4 weeks, weekly, every other day, daily.

Jeff, the newly appointed localization manager, updated everyone on l10n organization change; the coming attraction of the l20n development; Pontoon as one of the centralized l10n tools; and the ultimate goal of having a single source of l10n dashboard for the communities and l10n project managers.

29278375225_14057983ee_z1Flod briefed on the end of Firefox OS and the new initiatives with Connected Device. He focused on Firefox primarily. He discussed the 6-week rapid release cycles or cadence. He also covered the five versions of Firefox: Aurora, nightly, beta, release, and ERS. He described the change to a single source of repository, allowing strings move to production sooner. Firefox for iOS and Android were also presented. It was welcome news that the localized product can be shipped through automatic signoff, without community’s involvement.

I talked about the importance of developing a style guide for each of the languages represented. This helps with onboarding new comers, consistency among all contributors and sets the style and tone for each of the Mozilla products. I also briefly touched upon the difference between brand names and product names. I suggested to take this gathering as an opportunity to work on these.

For the rest of the weekend, our communities worked through the goals they set for ourselves. Many requested to move their locales to Pontoon, causing a temporarily stall in sync. Others completed quite a few projects, making significant advances on the dashboard charts. Even more decided to tackle the style guides, referencing the template and leveraging information from established outlets. When the weekend was over, nine communities reported to have some kind of draft versions, or modified and updated an existing one. Other accomplishments included identifying roles and responsibilities; making plans for meetup for the rest of the year; tool training; improving translation quality by finding critical errors; updating glossaries; completing some high priority projects.

28990074610_b82176fccc_kThe weekend was not just all work, but filled with cultural activities. Our Saturday dinner at Songket Restaurant was followed by almost an hour of Malaysian cultural dances from across the country, showcasing the diverse cultures that made up Malaysia. Many community members were invited to the stage to participate. It was a fun evening filled with laughter. Our Sunday dinner was arranged inside Pasar Seni, or the Central Market, a market dating back to 1888. It is now filled with shops and restaurants, giving all visitors a chance to take home some souvenirs and fond memories. Many of us visited the near by Pedaling Street, sampling tropical fruits, including Durian, made in all shapes and forms.

Putting together the largest l10n hackathon ever is a big achievement and lots of credit goes to our local support. 29262607536_235530cd88_zA big thanks to our Malaysian community, led by Syafiq, who was our eyes and ears on the ground from day one, planning, selecting the venue location, advising us on restaurants, lodging, transportation and cultural events. Not only we accomplished what we set out to do, we did it safely, we all had fun and we made more friends. Also a shout-out to Nasrun, our residence photographer for documenting the weekend through his lens. And a thank you to everyone for sharing a very special and productive weekend with fellow Mozillians! See you next time at another hackathon!

September 15, 2016 06:08 PM

September 14, 2016

Mozilla L10n Blog

This is what the power of the open Web looks like

One of the main goals of Pontoon is lowering barriers to entry. Especially for end users (mainly localizers), but also for contributors to the codebase, since many of our localizers have a developer background.

I’m happy to acknowledge that in the last 30 days there has been more activity from volunteer contributors in Pontoon development than ever before! Let’s have a closer look at what have they been working on:

Last month's Pontoon contributors

Last month’s Pontoon contributors

Michal Vašíček
Michal came up with the idea to highlight matches in original and translated strings when searching in the sidebar. He created a patch, but couldn’t finish it due to his school duties. It was taken over by Jarek, who earlier played a great role in reviewing the original patch by Michal.

Being only 14 years old, Michal is the youngest Pontoon contributor!

Jarek Śmiejczak (jotes)
Since he became an active Pontoon contributor over a year ago, Jarek has evolved from being not just a great developer but also a fantastic mentor; helping onboard new contributors and review their work. One way or another, he’s been involved with all bugs and features listed in this blog post.

Of course that doesn’t mean he stopped contributing code. On the contrary, he just completed a Firefox Accounts based authentication support which will soon replace Persona. And, he’s already busy working on bringing terminology support to Pontoon too.

Victor Bychek
A lot of our users have been complaining about their email addresses being exposed publicly in Pontoon UI and URLs, even if it complies with Commit Access Requirements. Thanks to Victor, these days are over: we no longer reveal email addresses in top contributor pages and filter by user selector, as long as you set a display name.

Victor is a pleasure to work with and is already busy with his next task, which will allow you to apply multiple filters at the same time.

Stoyan Dimitrov
As the new leader of the Bulgarian localization team, Stoyan takes his duties very professionally. He started by creating a vector version of Pontoon logo and changing the copy.

Later on he created a Firefox Add-On called Pontoon Enhanced, which can add new features to Pontoon before they are deployed or even implemented in the application. It’s basically a Test Pilot for Pontoon.

Michal Stanke
As an agile bug reporter, Michal has been one of the most valuable early adopters of Pontoon. Now he has decided to take a step further.

He set up his local Pontoon instance, fixed a few developer documentation bugs along the way and provided a patch that fixes one of the bugs he reported. It allows us to properly detect placeables of form %(thisIsVariable)s.

Get involved!
I consider myself lucky to be working with this great team. It is particularly valuable to see contributions coming from people who actually use the product. This is what the power of the open Web looks like!

You too can shape the future of Pontoon by filing a bug or starting to work on one of the mentored ones. The barriers to entry are low! 🙂

September 14, 2016 06:35 PM

September 12, 2016


Firefox 50.0 Aurora Testday Results

Hello Mozillians!

As you may already know, last Friday – September 9th – we held a new Testday event, for Firefox 50.0 Aurora.

Thank you all for helping us making Mozilla a better place – Iryna Thompson, Survesh, Subhrajyoti, Kumaraguru, Karthikeyan, Nilima, gaby2300, Moin Shaikh.

From Bangladesh:  Nazir Ahmed Sabbir, Rezaul Huque Nayeem, Samad Talukder, Asif Mahmud Shuvo, Kazi Nuzhat Tasnem, Sajedul Islam, Md.Majedul islam, Mohammad Abidur Rahman Chowdhury, Raihan Ali, Niaz Bhuiyan Asif, Sufi Ahmed Hamim, Saheda Reza Antora, Toki Yasir, Md. Almas Hossain, Nashrif Mahmud, Maruf Rahman.

A big thank you goes out to all our active moderators too!


Keep an eye on QMO for upcoming events!

September 12, 2016 02:31 PM

September 02, 2016

Mitchell Baker

Guest Post: Increasing the Level of Participation in the Hiring Process

This is a guest blog post from Jane Finette, Executive Program Manager, who works closely with me in Office of the Chair.

In a recent blog post Mitchell described why she has been eager to see the hiring process at Mozilla have a larger focus on cross-functional participation, particularly for senior leaders whom we expect to represent a broad swath of Mozilla.  Enabling wider participation in how we hire for leadership has been our starting point.  She notes we began organizing panel discussions for a broader set of people to talk to the candidate some time ago.

The need to hire for a new senior role, Vice President of Marketing Communications, presented an opportunity to further explore this new type of approach. Jascha Kaykas-Wolff, our CMO and the hiring manager for this role, and I sat down to plan and document some further experiments with the hiring process for this role. Our goal from the start was to explore two outcomes: an increased participation within the organization and the simultaneous creation of a meaningful process for candidates to evaluate us.

Enabling participation in the hiring process for the VP of MarComm position was particularly crucial because this person has a role that represents and communicates publicly about a broad swath of Mozilla. The VP of MarComms oversees the global communications, social media, user support and content marketing teams and works across the organization to develop impactful outbound communications for Mozilla and Firefox products.

Jascha's quote Participation in Hiring

What was the process?

Jascha and I designed the interview process right at the start with participation as one of the key objectives. Together we identified interviewers as peers, direct reports, expertise leaders and others who were not from the group where the candidate would work; in this case Marketing.  We identified cross functional areas the hire would interact with on a regular and a geographic basis, these were people who might not otherwise have been part of the interview process.

Here is an overview of the process we devised:

1st round: Peers (no direct reports).
Purpose: Interviewing for values match, strong competency in area of expertise.

2nd round: Directs report + leaders in area of expertise, including cross-functional areas.
Purpose: Interviewing for leadership attributes, values match, competency in area of expertise.

3rd round: Panel – including moderator and panel members who were not part of the group where the candidate would work. Panel was a maximum of 7 people.
Purpose: Validate values match. Give insights into broader organizational dynamics.

4th round: Case study including peers + directs reports and a small selection of members of  the panel. Maximum of 12 people.
Purpose: Place for the person to demonstrate their expertise and shine, and experience a typical environment.

5th round: CEO and Chairwoman
Purpose: Validate values match, leadership and skills where appropriate.

We conducted well over 50 screenings and entered 8 very well qualified candidates into our process. The process took approximately four months to complete, approximately the same amount of time required for an executive level hire.

Laura's quote Participation in Hiring

What have we learned so far?

The hiring process for the VP of MarComm is now complete. Alex Salkever, joined Mozilla as our Vice President of Marketing Communications on May 18, 2016.

We have a hypothesis that increasing the level of diversity and participation will lead to stronger hires at Mozilla. We are continuing the pilot to explore this further.

(1) In our opinion interviews are both for the organization and the candidate

(2) Participatory hiring process in senior levels is our starting point

(3) Defining what success looks like helps identify who should participate in the hiring process

(4) Add more people early on


Alex quote

Often a standard type of interview process is designed for the company, rather than the individual being interviewed. The standard process is intended to maximize assessment in a core area of expertise, whereby candidates are evaluated by their manager, peers and direct reports in their domain only. This creates an unhealthy power balance and exposes a set of addressable biases in the process such as ones based on cultural fit, and skills gap perspectives from other areas of the company.

What’s next?
We will continue to explore, record results and share further findings. We have now begun another participatory hiring experiment at the ‘director’ level role.   It’s an interesting question what piece of evidence would conclusively prove cross-functional and cross-level participation in hiring leadership brings benefits to an organization.  We’ll continue to experiment.

September 02, 2016 07:08 PM

August 31, 2016


Firefox 49 Beta 7 Testday Results

Hello Mozillians!

As you may already know, last Friday – August 26th – we held a new Testday event, for Firefox 49 Beta 7.

Thank you all for helping us making Mozilla a better place – Ron Bentley, Iryna Thompson, Carmen Făt, Logicoma, Moin Shaikh, Aaron Raimist

From Bangladesh: Mohammad Maruf Islam, Samad Talukder, Nazir Ahmed Sabbir, Rezaul huque Nayeem, Azmina Akter Papeya, Saheda Reza Antora, Saddam Hossain, Tanvir Rahman, Kazi nuzhat Tasnem, Maruf Rahman, Sajal Ahmed,  Kazi Ashraf Hossain, Md.Majedul islam, Forhad Hossain, Sajedul Islam, Akash, Tazin Ahmed,  Toki Yasir, Ria, Sourov_Arko,  Amir Hossain Rhidoy, Roy Ayers, Sufi Ahmed Hamim, Fahim.

A big thank you goes out to all our active moderators too! 



Keep an eye on QMO for upcoming events!

August 31, 2016 09:01 AM

August 23, 2016

Mitchell Baker

Practicing Open: Expanding Participation in Hiring Leadership

Last fall I came across a hiring practice that surprised me. We were hiring for a pretty senior position. When I looked into the interview schedule I realized that we didn’t have a clear process for the candidate to meet a broad cross-section of Mozillians.  We had a good clear process for the candidate to meet peers and people in the candidate’s organization.  But we didn’t have a mechanism to go broader.

This seemed inadequate to me, for two reasons.  First, the more senior the role, the broader a part of Mozilla we expect someone to be able to lead, and the broader a sense of representing the entire organization we expect that person to have.  Our hiring process should reflect this by giving the candidate and a broader section of people to interact.  

Second, Mozilla’s core DNA is from the open source world, where one earns leadership by first demonstrating one’s competence to one’s peers. That makes Mozilla a tricky place to be hired as a leader. So many roles don’t have ways to earn leadership through demonstrating competence before being hired. We can’t make this paradox go away. So we should tune our hiring process to do a few things:

We made a few changes right away, and we’re testing out how broadly these changes might be effective.  Our immediate fix was to organize a broader set of people to talk to the candidate through a panel discussion. We aimed for a diverse group, from role to gender to geography. We don’t yet have a formalized way to do this, and so we can’t yet guarantee that we’re getting a representational group or that other potential criteria are met. However, another open source axiom is that “the perfect is the enemy of the good.” And so we started this with the goal of continual improvement. We’ve used the panel for a number of interviews since then.

We looked at this in more detail during the next senior leadership hire. Jascha Kaykas-Wolff, our Chief Marketing Officer, jumped on board, suggesting we try this out with the Vice President of Marketing Communications role he had open. Over the next few months Jane Finette (executive program manager, Office of the Chair) worked closely with Jascha to design and pilot a program of extending participation in the selection of our next VP of MarComm. Jane will describe that work in the next post. Here, I’ll simply note that the process was well received. Jane is now working on a similar process for the Director level.

August 23, 2016 08:53 PM


Firefox 49 Beta 7 Testday, August 26th

Hello Mozillians,

We are happy to announce that Friday, August 26th, we are organizing Firefox 49 Beta 7 Testday. We will be focusing our testing on WebGL Compatibility and Exploratory Testing. Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better! See you on Friday!

August 23, 2016 01:06 PM

August 17, 2016

Mitchell Baker

Practicing “Open” at Mozilla

Mozilla works to bring openness and opportunity for all into the Internet and online life.  We seek to reflect these values in how we operate.  At our founding it was easy to understand what this meant in our workflow — developers worked with open code and project management through bugzilla.  This was complemented with an open workflow through the social media of the day — mailing lists and the chat or “messenger” element, known as Internet Relay Chat (“irc”).  The tools themselves were also open-source and the classic “virtuous circle” promoting openness was pretty clear.

Today the setting is different.  We were wildly successful with the idea of engineers working in open systems.  Today open source code and shared repositories are mainstream, and in many areas the best of practices and expected and default. On the other hand, the newer communication and workflow tools vary in their openness, with some particularly open and some closed proprietary code.  Access and access control is a constant variable.  In addition, at Mozilla we’ve added a bunch of new types of activities beyond engineering, we’ve increased the number of employees dramatically and we’re a bit behind on figuring out what practicing open in this setting means.  

I’ve decided to dedicate time to this and look at ways to make sure our goals of building open practices into Mozilla are updated and more fully developed.  This is one of the areas of focus I mentioned in an earlier post describing where I spend my time and energy.  

So far we have three early stage pilots underway sponsored by the Office of the Chair:

Follow-up posts will have more info about each of these projects.  In general the goal of these experiments is to identify working models that can be adapted by others across Mozilla. And beyond that, to assist other Mozillians figure out new ways to “practice open” at Mozilla.

August 17, 2016 11:26 PM


Firefox 49 Beta 3 Testday Results

Hello Mozillians!

As you may already know, last Friday – August 12th – we held a new Testday event, for Firefox 49 Beta 3.

Thank you all for helping us making Mozilla a better place – Logicoma, Julie Myers, Moin Shaikh, Ilse Macías, Iryna Thompson.

From BangladeshRezaul Huque Nayeem, Raihan Ali, Md. Rahimul Islam, Rabiul Hossain Bablu, Hossain Al Ikram, Azmina Akter Papeya, Saddam Hossain, Sufi Ahmed Hamim, Fahim, Maruf Rahman, Hossain Ahmed Sadi, Tariqul Islam Chowdhury, Sajal Ahmed, Md.Majedul islam, Amir Hossain Rhidoy, Toki Yasir, Jobayer Ahmed Mickey, Sayed Ibn Masud, kazi Ashraf hossain, Sahab Ibn Mamun, Kazi Nuzhat Tasnem, Sourov Arko, Sauradeep Dutta, Samad Talukder, Kazi Sakib Ahmad, Sajedul Islam, Forhad hossain, Syed Nayeem Roman, Md. Faysal Alam Riyad, Tanvir Rahman, Oly Roy, Akash, Fatin Shahazad.

From India: Paarttipaabhalaji, Surentharan, Bhuvana Meenakshi.K, Nagaraj V, Md Shahbaz Alam, prasanthp96, Selva Makilan, Jayesh Ram, Dhinesh Kumar M, B.AISHWARYA, Ashly Rose, Kamlesh Vilpura, Pavithra.

A big thank you goes out to all our active moderators too!


Keep an eye on QMO for upcoming events! 😉

August 17, 2016 03:00 PM

August 15, 2016

Mitchell Baker

Increasing Information Flow at Mozilla

Information flow between leaders and individual contributors is critical to an effective organization. The ability to better understand the needs of the organization, to gather input across different domains, getting other perspectives before we make a decision and change management, help create a clueful and informed organisation.

This quarter we are piloting a number of untypical discussion sessions between leaders and individuals across Mozilla, whereby leaders will engage with participants who are not usually in their domain. There are hypotheses we’d like to test.  One is that cross-team, multiple-level discussion and information flow will: prevent us from being blind-sided, increase our shared understanding, and empower people to participate and lead in productive ways.  A second hypothesis is that there is an appetite for this type of discussion and some templates and structure would make it easier for people to know how to approach it.

We have 9 leaders who have agreed to host a discussion session this quarter, and we’re currently in the process of inviting participants from across the organization. Currently, there are 4 types of discussions we’ve identified that could take place, there are likely more:

If these sessions prove useful, we may create a useful toolkit for leadership on how to run disperse discussion sessions, and gather input from across Mozilla. And in addition, create a toolkit for individual contributors for understanding and contributing to important topics across Mozilla.

We’ll plan to share more updates next month.

August 15, 2016 08:26 PM

August 05, 2016


Firefox 49 Beta 3 Testday, August 12th

Hello Mozillians,

We are happy to announce that Friday, August 12th, we are organizing Firefox 49 Beta 3 Testday. We will be focusing our testing on Windows 10 compatibility, Text to Speech in Reader Mode and Text to Speech on Desktop features. Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better! See you on Friday!

August 05, 2016 11:32 AM

August 01, 2016

Mozilla L10n Blog

Firefox L10n Report – Aurora 50

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

Current Aurora Cycle – Firefox 50

Key dates for this cycle:

String breakdown:

There are currently no pending requests to uplift patches with strings to Aurora.

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 48)

Noteworthy events for Firefox 48 (release date 3 Aug):

As recently announced, localizers are not going to request sign-offs anymore for Firefox and Fennec, l10n-drivers will sign-off and review any update landing in the repository, for both Aurora and Beta.

For this reason we’re probably not going to include this section in the next cycle reports, while we determine more meaningful metrics to track localization activity.

Noteworthy Changes Available in Aurora

These are some of the interesting changes introduced in the last cycle.


The new Containers feature is not enabled outside of Nightly (it might be included in a future Test Pilot experiment). If you want to test it, you need to manually switch the preference privacy.userContext.enabled to True.

More details about this feature are available in this blog post.


As explained in the previous report, team is starting to use a new way to define keyboard shortcuts (not accesskeys), adopting a syntax similar to Electron.

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. Translating these keys will result in the tools being broken.

Several developer tools are also moving strings from .DTD to .properties, it should be expected to have a perfect match in TM tools like Pontoon & Pootle between old and new strings. For example:


The string with ID or was changed from Oriya to Odia to reflect a change in the language name. This kind of changes can’t introduce a different ID, since the locale code remains the same.

Common Issues

Translated reference entities and untranslated labels

In .DTD files, a string can contain a reference to another entity in the form of &another_entity_name; (note the ampersand at the beginning and the semicolon at the end). These are references to other string IDs and should not be translated.

Example from Fennec:

You can always turn this off in &settings; under &pref_category_general;.

A few locales translated the first &settings;, generating an error. It’s also good to remember that these errors break the multi-locale Android build for all locales, en-US included, and that’s why you will see someone from l10n-drivers committing a fix directly in tools (Pontoon, Pootle) or Mercurial. Please remember to keep an eye on the dashboard page for your locale and verify errors and warnings.

On the other hand, Pootle displays a string with an accesskey as &Show: the label is “Show”, the accesskey is “S” (the character after the ampersand). Note that there’s no semicolon at the end. This has to be translated, and dropping the ampersand will make the accesskey fallback to English. Never add the accesskey to your label, e.g. “Show (S)”. For further details about accesskeys, see 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.

August 01, 2016 05:32 PM

July 25, 2016

Mozilla L10n Blog

L20n in Firefox: A Summary for Developers

L20n is a new localization framework for Firefox and Gecko. Here’s what you need to know if you’re a Firefox front-end developer.

Gecko’s current localization framework hasn’t changed in the last two decades. It is based on file formats which weren’t designed for localization. It offers crude APIs. It tasks developers with things they shouldn’t have to do. It doesn’t allow localizers to use the full expressive power of their languages.

L20n is a modern localization and internationalization infrastructure created by the Localization Engineering team in order to overcome these limitations. It was successfully used in Firefox OS. We’ve put parts of it on the ECMA standardization path. Now we intend to integrate it into Gecko and migrate Firefox to it.

Overview of How L20n Works

For Firefox, L20n is most powerful when it’s used declaratively in the DOM. The localization happens on the runtime and gracefully falls back to the next language in case of errors. L20n doesn’t force developers to programmatically create string bundles, request raw strings from them and manually interpolate variables. Instead, L20n uses a Mutation Observer which is notified about changes to data-l10n-* attributes in the DOM tree. The complexity of the language negotiation, resource loading, error fallback and string interpolation is hidden in the mutation handler. It is still possible to use the JavaScript API to request a translation manually in rare situations when DOM is not available (e.g. OS notifications).

What problems L20n solves?

The current localization infrastructure is tightly-coupled: it touches many different areas of the codebase.  It also requires many decisions from the developer. Every time someone wants to add a new string they need to go through the following mental checklist:

  1. Is the translation embedded in HTML or XUL? If so, use the DTD format. Be careful to only use valid entity references or you’ll end up with a Yellow Screen of Death. Sure enough, the list of valid entities is different for HTML and for XUL. (For instance &hellip;
    is valid in HTML but not in XUL.)
  2. Is the translation requested dynamically from JavaScript? If so, use the .properties format.
  3. Does the translation use interpolated variables? If so, refer to the documentation on good practices and use #1, %S, %1$S, {name} or &name; depending on the use-case. (That’s five different ways of interpolating data!) For translations requested from JavaScript, replace the interpolation placeables manually with String.prototype.replace.
  4. Does the translation depend on a number in any of the supported languages? If so, use the PluralForm.jsm module to choose the correct variant of the translation. Specify all variants on a single line of the .properties file, separated by semicolons.
  5. Does the translation comprise HTML elements? If so, split the copy into smaller parts surrounding the HTML elements and put each part in its own translation. Remember to keep them in sync in case of changes to the copy. Alternatively write your own solution for replacing interpolation specifiers with HTML markup.

What a ride! All of this just to add a simple You have no new notifications message to the UI.  How do we fix this tight-coupled-ness?

L20n is designed around the principle of separation of concerns. It introduces a single syntax for all use-cases and offers a robust fallback mechanism in case of missing or broken translations.

Let’s take a closer look at some of the features of L20n which mitigate the headaches outlined above.

Single syntax

In addition to DTD and .properties files Gecko currently also uses .ini and .inc files for a total of four different localization formats.

L20n introduces a single file format based on ICU’s MessageFormat. It’s designed to look familiar to people who have previous experience with .properties and .ini. If you’ve worked with .properties or .ini before you already know how to create simple L20n translations.

Primer on the FTL syntax

Fig. 1. A primer on the FTL syntax

A single localization format greatly reduces the complexity of the ecosystem. It’s designed to keep simple translations simple and readable. At the same time it allows for more control from localizers when it comes to defining and selecting variants of translations for different plural categories, genders, grammatical cases etc. These features can be introduced only in translations which need them and never leak into other languages. You can learn more about L20n’s syntax in my previous blog post and at An interactive editor is also available at

Separation of Concerns: Plurals and Interpolation

In L20n all the logic related to selecting the right variant of the translation happens inside of the localization framework. Similarly L20n takes care of the interpolation of external variables into the translations. As a developer, all you need to do is declare which translation identifier you are interested in and pass the raw data that is relevant.

Plurals and interpolation in L20n

Fig. 2. Plurals and interpolation in L20n

In the example above you’ll note that in the BEFORE version the developer had to manually call the PluralForm API. Furthermore the calling code is also responsible for replacing #1 with the relevant datum. There’s is no error checking: if the translation contains an error (perhaps a typo in #1) the replace() will silently fail and the final message displayed to the user will be broken.

Separation of Concerns: Intl Formatters

L20n builds on top of the existing standards like ECMA 402’s Intl API (itself based in large part on Unicode’s ICU). The Localization team has also been active in advancing proposals and specification for new formatters.

L20n provides an easy way to use Intl formatters from within translations. Often times the Intl API completely removes the need of going through the localization layer. In the example below the logic for displaying relative time (“2 days ago”) has been replaced by a single call to a new Intl formatter, Intl.RelativeTimeFormat.

Intl API in use

Fig. 3. Intl API in use

Separation of Concerns: HTML in Translations

L20n allows for some semantic markup in translations. Localizers can use safe text-level HTML elements to create translations which obey the rules of typography and punctuation. Developers can also embed interactive elements inside of translations and attach event handlers to them in HTML or XUL. L20n will overlay translations on top of the source DOM tree preserving the identity of elements and the event listeners.

Semantic markup in L20n

Fig. 4. Semantic markup in L20n

In the example above the BEFORE version must resort to splitting the translation into multiple parts, each for a possible piece of translation surrounding the two <label> elements.  The L20n version only defines a single translation unit and the localizer is free to position the text around the <label> elements as they see fit.  In the future it will be possible to reorder the <label> elements themselves.

Resilient to Errors

L20n provides a graceful and robust fallback mechanism in case of missing or broken translations. If you’re a Firefox front-end developer you might be familiar with this image:

Yellow Screen of Death

Fig. 5. Yellow Screen of Death

This errors happens whenever a DTD file is broken. The way a DTD file can be broken might be as subtle as a translation using the &hellip; entity which is valid in HTML but not in XUL.

In L20n, broken translations never break the UI. L20n tries its best to display a meaningful message to the user in case of errors. It may try to fall back to the next language preferred by the user if it’s available. As the last resort L20n will show the identifier of the message.

New Features

L20n allows us to re-think major design decisions related to localization in Firefox. The first area of innovation that we’re currently exploring is the experience of changing the browser’s UI language. A runtime localization framework allows the change to happen seamlessly on the fly without restarts. It will also become possible to go back and forth between languages for just a part of the UI, a feature often requested by non-English users of Developer Tools.

Another innovation that we’re excited about is the ability to push updates to the existing translations independent of the software updates which currently happen approximately every 6 weeks. We call this feature Live Updates to Localizations.

We want to decouple the release schedule of Firefox from the release schedule of localizations. The whole release process can then become more flexible and new translations can be delivered to users outside of regular software updates.


L20n’s goal is to improve Mozilla’s ability to create quality multilingual user interfaces, simplify the localization process for developers, improve error recovery and allow us to innovate.

The migration will result in cleaner and easier to maintain code base. It will improve the quality and the security of Firefox. It will provide a resilient runtime fallback, loosening the ties between code and localizations. And it will open up many new opportunities to innovate.

July 25, 2016 10:17 PM


Firefox 49.0 Aurora Testday Results

Hello mozillians!

Last week on Friday (July 22nd), we held another successful event – Firefox 49.0 Aurora Testday.

Thank you all for helping us making Mozilla a better place – Moin Shaikh, Georgiu Ciprian, Marko Andrejić, Dineesh Mv, Iryna Thompson.

From Bangladesh: Rezaul Huque Nayeem, Nazir Ahmed Sabbir, Hossain Al Ikram, Azmina Akter Papeya, Md. Rahimul Islam, Forhad Hossain, Akash, Roman Syed, Niaz Bhuiyan Asif, Saddam Hossain, Sajedul Islam, Md.Majedul islam, Fahim, Abdullah Al Jaber Hridoy, Raihan Ali, Md.Ehsanul Hassan, Sauradeep Dutta, Mohammad Maruf Islam, Kazi Nuzhat Tasnem, Maruf Rahman, Fatin Shahazad, Tanvir Rahman, Rakib Rahman, Tazin Ahmed, Shanjida Tahura Himi, Anika Nawar and Md. Nazmus Shakib (Robin).

From India: Nilima, Paarttipaabhalaji, Ashly Rose Mathew M, Selva Makilan R, Prasanth P, Md Shahbaz Alam and Bhuvana Meenakshi.K

A big thank you goes out to all our active moderators too!


I strongly advise everyone of you to reach out to us, the moderators, via#qa during the events when you encountered any kind of failures. Keep up the great work!

Keep an eye on QMO for upcoming events! 😉

July 25, 2016 02:39 PM

July 22, 2016

Mitchell Baker

Update on the United Nations High Level Panel on Women’s Economic Empowerment

It is critical to ensure that women are active participants in digital life. Without this we won’t reach full economic empowerment. This is the perspective and focus I bring to the UN High Level Panel for Women’s Economic Empowerment (HLP), which met last week in Costa Rica, hosted by President Luis Guillermo Solis.

(Here is the previous blog post on this topic.)

Many thanks to President Solis, who led with both commitment and authenticity. Here he shows his prowess with selfie-taking:

Screen Shot 2016-07-22 at 12.32.19 PM

Members of the High Level Panel – From Left to Right: Tina Fordham, Citi Research; Laura Tyson, UC Berkeley; Alejandra Mora, Government of Costa Rica; Ahmadou Ba, AllAfrica Global Media; Renana Jhabvala, WIEGO; Elizabeth Vazquez, WeConnect; Jeni Klugman, Harvard Business School; Mitchell Baker, Mozilla; Gwen Hines, DFID-UK; Phumzile Mlambo, UN Women; José Manuel Salazar Xirinachs, International Labour Organization; Simona Scarpaleggia, Ikea; Winnie Byanyima, Oxfam; Fiza Farhan, Buksh Foundation; Karen Grown, World Bank; Margo Thomas, HLP Secretariat.

Photo Credit: Luis Guillermo Solis, President, Costa Rica

In the meeting we learned about actions the Panel members have initiated, and provided feedback and guidelines on the first draft of the HLP report. The goal for the report is to be as concrete as possible in describing actions in women’s economic empowerment which have shown positive results so that interested parties could adopt these successful practices. An initial version of the report will be released in September, with the final report in 2017.  In the meantime, Panel members are also initiating, piloting and sometimes scaling activities that improve women’s economic empowerment.

As Phumzile Mlambo-Ngcuka, the Executive Director of UN Women often says, the best report will be one that points to projects that are known to work. One such example is a set of new initiatives, interventions and commitments to be undertaken in the Punjab, announced by the Panel Member and Deputy from Pakistan, Fiza Farhan and Mahwish Javaid.

Mozilla, too, is engaged in a set of new initiatives. We’ve been tuning our Mozilla Clubs program, which are on-going events to teach Web Literacy, to be interesting and more accessible to women and girls. We’ve entered into a partnership with UN Women to deepen this work and the pilots are underway. If you’d like to participate, consider applying your organizational, educational, or web skills to start a Mozilla Club for women and girls in your area. Here are examples of existing clubs for women in Nairobi and Cape Town.

Mozilla is also involved in the theme of digital inclusion as a cross-cutting, overarching theme of the HLP report. This is where Anar Simpson, my official Deputy for the Panel, focuses her work. We are liaising with companies in Silicon Valley who are working in the fields of connectivity and distribution of access to explore if, when and and how their projects can empower women economically.  We’re looking to gather everything they have learned about what has been effective. In addition to this information/content gathering task, Mozilla is working with the Panel on the advocacy and publicity efforts of the report.

I joined the Panel because I see it as a valuable mechanism for driving both visibility and action on this topic. Women’s economic empowerment combines social justice, economic growth benefits and the chance for more stability in a fragile world. I look forward to meeting with the UN Panel again in September and reporting back on practical and research-driven initiatives.

July 22, 2016 07:49 PM

July 21, 2016


Firefox 49.0 Aurora Testday, July 22nd

Hello Mozillians,

Good news! We are having another testday for you 😀 This time we will take a swing at Firefox 49.0 Aurora, this Friday, 22nd of July.  The main focus during the testing will be around Context Menu, PDF Viewer and Browser Customization. Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

I know this is short notice but we hope you will join us in the process of making Firefox a better browser. See you on Friday!

July 21, 2016 07:57 AM

July 19, 2016

Mozilla L10n Blog

Localization Hackathon in Berlin

After much delays, collectively we picked a balmy first weekend of June and Berlin as our host city for a localization hackathon. We had four representing each of Dutch/Frisian and Ukrainian communities, three of German, one of South African English. Most of them had not been to an l10n hackathon, many have never not met in person within the community even though they had been collaborating for years.

Group shot

As with the other hackathons this year we allowed each team to plan how they spent their time together, and set team goals on what they wanted to accomplish over the weekend. The localization drivers would lead some group discussions. As a group, we split the weekend covering the following topics:

A series of spectrograms where attendees answer yes/no, agree/disagree questions by physically standing on a straight line from one side of the room to the other. We learned a lot about our group on recognition, about the web in their language, and about participation patterns. As we’re thinking about how to improve localization of Firefox, gaining insights into localizers hearts and life is always helpful.

Axel shared some organizational updates from the Orlando All-Hands: we recaped the status of Firefox OS and the new focus on Connected Devices. We also covered the release schedule of Firefox for iOS and Android.

We spent a bit more time talking about the upcoming changes to localization of Firefox, with L20n and repository changes coming up. In the meantime, we have a dedicated blog post on l20n for localizers, so read up on l20n there. Alongside, we’ll stop using individual repositories and workflows for localizing Firefox Nightly, Developer Edition, Beta, and release. Instead the strings needed for all of them will be in a single place. That’s obviously quite a few changes coming up, and we got quite a few questions in the conversations. At least Axel enjoys answering them.


Our renewed focus on translation quality that resulted in development of the style guide template as a guideline for localization communities to emulate. We went through all the categories and sub-categories and explained what was expected of them to elaborate and provide locale specific examples. We stressed the importance of having one as it would help with consistency between multiple contributors to a single product or all products and projects across the board. This exercise encouraged some of the communities who thought they had a guide to review and update, and those who didn’t have one to create one. The Ukrainian community created a draft version soon after they returned home. Having an established style guide would help with training and on boarding new contributors.
We also went over the categories and definitions specified in MQM. We immediately used that knowledge to review through live demo in Pontoon-like tool some inconsistencies in the strings extracted from projects in Ukrainian. To me, that was one of the highlights of the weekend: 1) how to give constructive feedback using one of the defined categories; 2) Reoccurring type of mistakes either by a particular contributor or locale; 3). Terminology consistency within a project, product or a group of products, especially with multiple contributors; 4) Importance of peer review

For the rest of the weekend, each of the community had their own breakout sessions, reviewed their own to-do list, fixed bugs, completed some projects, and spent one on one time with the l10n drivers.

Brandenburg Gate and the teamWe were incredibly blessed with great weather. The unusually heavy rain that flooded many parts of Germany stopped during our visit. A meetup like this would not be complete without experiencing some local cultures. Axel, a Berlin native was tasked to show us around. We walked, walked and walked and with occasionally public transportation in between. We covered several landmarks such as the Berlin Wall, the Brandenburg Gate, several memorials, the landmark Gedächtniskirche as well as parks and streets crowded with the locals. Of course we sampled cuisines that reflected the diverse culture that Berlin had been: we had great kebabs and the best kebabs, Chinese fusion, the seasonal asparagus and of course the German beer. For some of us, this was not the first Berlin visit. But a group activity together, with Axel as our guide, the visit was so much memorable. Before we said goodbye, the thought of next year’s hackathon came to mind. Our Ukraine community had volunteered to host it in Lviv, a beautiful city in the western part of the country. We shall see.

July 19, 2016 03:30 PM

July 16, 2016

Mozilla L10n Blog

Localization Hackathon in Ljubljana

Earlier this week I came back from the Ljubljana Localization Hackathon which took place over the weekend. It was an inspiring meetup focused on translating Mozilla projects. I left full of energy and ideas and happy to have met many amazing people contributing to Mozilla.

Group photo

Almost thirty participants from Armenia, Bulgaria, Greece, Hungary, Macedonia, Romania, Serbia and Slovenia gathered in Ljubljana for three days. We discussed the current state of localization, the future of the localization process and technology at Mozilla. There was time for each of the communities to work on their goals as well as time for everyone to talk to each other and have fun.


The morning of the first day was dedicated to a series of updates from the Localization Drivers team. I started out by announcing the team’s updated mission statement which is all about becoming an efficient localization provider for Mozilla. I also summarized the recent changes in the team which is now divided in two working groups: the Technical Project Management group (Delphine, Francesco, Jeff and Peiying) and the Technical group (Axel, Matjaž, Staś and Zibi).

Francesco (flod) explained the thinking behind the new release process and the plan to use single repositories for each locale for all release channels. Right now there are five different versions of Firefox: Nightly, Dev Edition Aurora, Beta, Release, and ESR and each localization exists across four different repositories. After the migration there will only be one canonical repository for each locale. This will greatly simplify the setup for the localization teams.

Delphine then took the stage to introduce MQM which was well received. MQM is a framework for evaluating translation issues. It provides structure to the process of reviewing localizations and makes it easier to give constructive feedback to the localizers as well as track the quality of the localization over time. A central piece of MQM is a good and up-to-date style guide. Many localization teams spent the Saturday and Sunday afternoon working on their style guides. Delphine also mentioned new Transvision features available to the localizers: the Translation Consistency view and the Unchanged Strings view.

The main theme of the morning updates was simplicity and quality. We’re making a lot effort to reduce the complexity of the localization process at Mozilla and to create approachable quality benchmarks. We want to close the feedback loop between the current localizers and new contributors; help them connect, discuss and encourage participation.  The reviewers should be able to explain why a suggestion was rejected.  There needs to be an easy and contextual communication layer between new localizers and the reviewers.

An important part of this strategy is careful planning of the work load for the localization teams. In the past we ran an experiment involving Firefox for iOS: the localizers weren’t required to manually sign off on any particular changeset. It turned out to be a big success. Delphine announced that going forward there will be no more sign-off requests done by localizers themselves. Instead the Localization Drivers will verify that the changesets work and sign off on them, thus reducing the overhead for the localizers.

Without signoffs we’ll need a better way of tracking progress and understanding the state of completion for each locale. Francesco briefed everyone on the plan to group strings into so-called buckets. Buckets will be based on how visible strings are or who their target audience is. The likely candidates for individual buckets include: the main browser UI, Developer Tools, DOM/CSS Parser errors etc. Buckets will have priorities and will allow us to track progress separately per bucket.


Saturday morning is also when we took it outside to do an exercise called a spectrogram. If you’ve followed the blog posts about the previous hackathons or you have been to one, you’re likely familiar with the concept. Spectrograms allow us to have a laid-back conversations on different topics. We start off by asking a question. Depending on how strongly they feel about the answer the participants then move along an imaginary line. The line allows us to capture the subtleties in opinions and feelings. That is, the whole spectrum of responses.

Spectrograms in Ljubljana

A number of responses stood out to me during the exercise. We talked about the communication inside of the localization teams and between the localization teams and the Drivers team. People were generally happy with how quick they got their answers in IRC and the mailing list. However a few contributors expressed a concern that it is not clear to the new-comers how to contact their locale’s team.

We asked how people felt about the amount of work they did and the number of projects there were to localize. Everyone ended up in the middle of the spectrum and Stoyan from Bulgaria offered an interesting explanation: it’s because localizers like what they do and they choose to do it themselves. Related to this was a question about deadlines: are they too short? A sentiment that resonated with a lot of participants was that they didn’t mind the deadlines—but rather the amount of time it takes for a translation to reach the users. This turned out to be an important insight closely related to Live Updates to Localizations that we’re working on as part of the effort to port Firefox to L20n (more on that later).

Goce from Macedonia recalled an experience which I feel we should all remember about and try not to repeat in the future. Back in the Firefox OS days there was a big rush to get a lot of content localized before the launch. In the end the release was delayed and canceled. It’s important for all involved stakeholders to have a good visibility into the release planning. Precise time estimates help prioritize community work and make sure efforts beyond the call of duty that we often see from the community aren’t in vain.

The question about mentoring new contributors vs. localizing alone spurred a long conversation with many take-aways. Fredy from Greece admitted that reviewing someone’s translations can sometimes be the same amount of work then just doing the whole translation from scratch himself. He wondered if translations could have their Discussion pages similar to definitions in Wikipedia which would be then publicly accessible and easy to reference in the future. Matjaž noted that reviewing might be in fact rather easy, but it’s giving meaningful feedback to the translators that is hard and time-consuming. MQM will definitely help in this respect. We’re working on prototyping the UI for Pontoon to make it easy to use for everyone.

Balázs from Hungary then quipped that there are two kinds of people: those who are willing to contribute and those who are able to do it. Usually these two kinds don’t overlap. The role of authoring tools like Pontoon and Pootle is to help those who are willing bridge the gap of not being able to.

The conversation about mentoring and evaluating new contributors ended on a high note with a great story from Slovenia’s very own Lan. Lan is a SUMO localizer and he was able to attract a new contributor to the Slovenian localization a year ago. When he started reviewing their contributions he realized the translations weren’t as good as he had hoped. Lan didn’t get discouraged though. He took his time to review all translations, corrected them and then asked the new contributor to go through the fixes to get an idea of how to improve. This turned out to be a good investment of Lan’s time; today the new contributor is still active and their translations are much better!

(Lan’s story is even more impressive if you consider that he is still in high school. In fact two very active members of the Slovenian community, Lan and Amadej, are both very young. I can’t wait to see what Mozilla will have become when they’re my age!)

While it’s clear that chaperoning new contributors could help foster the community growth, the group was divided with respect to how to actually do it. Some prefer to give out small independent assignments to localize real existing projects and nurture the sense of ownership. Others would rather create a single testing project with a known good translation and evaluate new contributions in reference to it.


The question about the preferred frequency of contribution always leads to interesting findings. The two extremes of the spectrum are “I want to localize small numbers of strings daily” and “I want to localize a big number of strings once a year”. In Ljubljana most of the participants chose to stand somewhere in the middle. A smaller group preferred daily assignments that could be completed during a coffee break. Another group would rather see the frequency of localization aligned with the frequency of releases of the software. One person in the middle was Marko from Serbia who summarized his choice by saying that he liked seeing the results of his work on a regular basis.

The last question that I would like to highlight here was about testing. We wanted to know how the localizers test their localizations. The responses covered the entire spectrum. Some localization communities have dedicated QA teams while other localizers dogfood their own work by using the software themselves. Another group wasn’t sure how to test nor where to find the nightly builds. This suggests that we can do better with documenting the best practices for testing. Matjaž also suggested that this kind of information for each project could be displayed by Pontoon.

The difficulties in testing often stem from the fact that some translations are hard to come by in regular usage and only show up in rare situations. The experiences from localizing Firefox for iOS prove that automated screenshots are an invaluable tool in such situations, in addition to being useful overall.

Pontoon and L20n

On Sunday morning Matjaž and I took the stage to represent the Technical group of the Localization Drivers team. Matjaž presented Pontoon which had already been used by some of the localization teams.  There have been many improvements to performance and usability of Pontoon as of late: faster sync, bulk actions, more readable diffs, better filtering, suggestions from other languages, support for L20n’s syntax and more!  Looking into the future, one of the most important tasks ahead of us is the merger of Pontoon and We want to make sure all information relevant to localization is in one place.

The L20n presentation was divided into two parts.  I introduced L20n’s new syntax, FTL, and recommended the L20n by Example and the FTL Tinker as the learning resources.  I then showed a few use-cases where L20n really shines. The first one was according past participles with the gender of the subject. The second one was about particles governing the grammatical case of nouns.  My audience could easily relate—their native languages are among the ones with the most complex grammars in the world. In fact, it was an incredible diverse gathering of languages!  We had a strong group of Slavic languages (Bulgarian, Macedonian, Serbian, Slovenian), followed by a Romance language (Romanian) as well as two of the oldest  languages in the world: Greek and Armenian. And don’t forget Hungarian which is one of the few European languages that isn’t part of the Indo-European family of languages.

In the second part I showed a build of Firefox ported to L20n and demoed Live Updates to Localization. It seems like the ability to push translation updates and fixes almost live without having to wait for the next software update really is a game changer. The feedback I got afterwards was very positive.

Working in Groups

Both afternoons on Saturday and Sunday were dedicated to working in groups. All the participating localization teams had set goals leading up to the hackathon. The goals ranged from catching up with localizations to reviewing suggestions to discussing the health of the community to creating style guides.  The list of goals is available in the wiki.

Working in groups in Ljubljana

The Bulgarian community deserves a special mention here.  During the hackathon Ognyan transferred the leadership of the localization team to Stoyan (first from the left in the picture below).  Congratulations, Stoyan!  Ognyan and Stoyan then quickly proceeded to update the Bulgarian localization of Firefox Desktop to 100% complete.

Stoyan and Ognyan

Notice the Mozilla l10n photo frame above?  Make sure to check out more pictures with it taken by Nino. We also had custom-made name badges and other visual accessories.  All design materials were created by Mozilla Slovenija community designer Rok.  They are available on GitHub for other teams and hackathons to reuse.

Fun and Rest

Ljubljana is a beautiful city. It’s very friendly to pedestrians; almost everything was in walking distance from the venue. It’s also very green and inviting when it comes to spending time outdoors. After a period of focused effort it was great to take a short stroll across the city.

Thanks to the amazing organizer and host, Gašper, each evening was full of activities and opportunities to get to know each other. We tasted traditional dishes from Prekmurje, a region of Slovenia close to the Hungarian border. We visited the Ljubljana castle which offers fantastic views on the mountains surrounding the city. We even competed at a kart racing circuit!


Helping Gašper was Nino, also from Slovenia, who managed the hackathon’s presence on social media. He took over the Mozillagram Instagram account for the weekend which resulted in a 10% increase in followers. Nino’s work was highlighted during the Weekly Meeting on Monday. I would also like to give a special shout-out to Jobava from Romania who did a great job taking notes during the whole weekend.  Having a dedicated person in charge of the note taking was instrumental to making everyone’s time productive. Jobava managed to capture a lot of details and insights. I often looked into his notes when writing this blog post. Hvala, Nino and Jobava!

The hackathon was an astounding success. It was diverse, educational and inspiring. A huge Thank you! to everyone who participated and helped organize it. I couldn’t be more excited for the future of localization at Mozilla!

July 16, 2016 08:51 AM

July 14, 2016

Mozilla L10n Blog

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.

July 14, 2016 04:33 PM

July 11, 2016

Mozilla L10n Blog

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.

July 11, 2016 05:05 PM


Firefox 48 beta 6 Testday Results

Hello mozillians!

Last week on Friday (July 8th), we held another successful event – Firefox 48 beta 6 Testday.

Thank you all for helping us making Mozilla a better place – akash, Karthikeya L K, Iryna Thompson, Moin Shaikh, Ilse Macías, Corey Sheldon, Ciprian Georgiu, Julie Myers (a.k.a. SnoopyRules), Bhuvana Meenakshi.K, Prasanth p, Mano @Manokarr, Nazir Ahmed Sabbir, Hossain Al Ikram, Tanvir Rahman, Azmina Akter Papeya, Khalid Syfullah Zaman, Mohammad Maruf Islam, Md.Majedul islam, Samad Talukdar, Kazi Sakib Ahmad, Zayed News, Maruf Rahman, Md.Tarikul Islam Oashi, Aminul Islam Alvi, Akash, Rakib Rahman, Ria, Rezaul Huque Nayeem, Sayed Ibn Masud and Saddam Hossain.

A big thank you goes out to all our active moderators too!


I strongly advise everyone of you to reach out to us, the moderators, via #qa during the events when you encountered any kind of failures. Keep up the great work! \o/

And keep an eye on QMO for upcoming events! 😉

July 11, 2016 02:54 PM

July 05, 2016


Firefox 48 Beta 6 Testday, July 8th

Hello Mozillians,

Good news! Friday, July 8th, we will host a new Testday for Firefox 48 Beta 6. We will have fun testing APZ (Async Scrolling), verifying and triaging bugs. If you want to find out more information visit this etherpad.

You don’t need testing experience to take part in the testday so feel free to join the #qa IRC channel and the moderators will help if you have any questions.

I am waiting forward on seeing you on Friday. Cheers 😀

July 05, 2016 08:58 AM

June 29, 2016

Mozilla L10n Blog

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.

What’s L20n?

L20n is a localization framework developed by Mozilla’s Localization Engineering team. It builds on years of learning of the hard and the good parts of localization at Mozilla. It aims at allowing localizers to use the whole expressive power of their language without any compromises. Complex translations should be possible, but simple translations should remain simple.

The design of L20n revolves around two main themes:

Here’s a good example to illustrate these points. Suppose you want to show a short label with the number of new messages in the UI. Something as simple as “0 new”, “1 new”, “2 new”, “5 new” etc. will work fine in English. In L20n, the English translation would look like
the following:

new-label = { $num_of_new } new

Things get more interesting for other languages where the adjective “new” needs to be accorded with the number. In French, we’d say “1 nouveau” but “2 nouveaux” and “5 nouveaux” (because “message” is masculine). The French localizer could encode this in L20n like this:

new-label = { PLURAL($num_of_new) ->
    [one]      Un nouveau
    [other]    { $num_of_new } nouveaux

The arrow -> introduces a so called select expression which chooses one of the defined variants (one, other) based on the value of PLURAL($num_of_new). The number of variants is language-specific and up to the localizer. In fact, they could provide a special case for 0,
if they wish:

new-label = { PLURAL($num_of_new) ->
    [0]        Aucun nouveau
    [one]      Un nouveau
    [other]    { $num_of_new } nouveaux

Note that while the French localizer can add variants at will, the English translation remains intact. That’s the isolation part. The source code (not shown here) also doesn’t require any changes in any case. That’s separation of concerns.

There are many more use-cases in which the expressiveness of L20n shines. The example above uses plural categories as the selector but you could also create select expressions based on genders, grammatical cases etc. You can learn more about the syntax used in L20n at The syntax is called FTL which stands for FTL Translation List. There’s also an on-line playground called the FTL Tinker where you can experiment with the syntax and see it evaluate right away in your browser!

L20n in Firefox

L20n has been successfully used to localize Firefox OS apps in the past. Firefox OS was a great testbed for us. We simplified L20n’s syntax based on the feedback we got from localizers. We streamlined the API to make it easier for developers to use it. Last but not least, we made sure the performance was not an issue even on low-memory devices. L20n has matured and now we’re bringing it to Firefox and Gecko.

Here’s what you need to know right now:

  1. L20n’s syntax, called FTL, is designed from ground up to be easy to understand, easy to edit and easy to write in. The syntax will be uniformly used everywhere where L20n is used.  No more #1 or %S or %1$S or &foo; or {{foo}}, depending on the file you’re in. Just one syntax which stays simple if you want it to.
  2. L20n also supports HTML in translations which means you can use <em> or <sup> as required by your language. Developers can also finally stop with the foo.start, foo.middle and foo.end madness and just drop those <a> elements into the translation text for you to position them wherever you please. This feature deserves its own blog post—stay tuned!
  3. We will start the transition with a simple UI feature.  A good candidate might be the Help > About Firefox dialog (bug 1289668).
  4. We will be slowly phasing DTD and properties files out, as we transition more UI features to L20n.  We will create scripts to help with the transition and can help you with converting files in your repositories.
  5. We are working closely with Pontoon and Pootle to enable support for the FTL syntax.  If you’re using these tools to translate Mozilla projects you probably won’t notice much change.
  6. We are planning to land at the beginning of one of the upcoming cycles to maximize the testing window. We don’t have a precise date yet. We’d like to target Firefox 51 or 52 which would put us in early August or mid-September. This however may still change.
  7. True to Mozilla’s spirit, the whole project is public and we’re looking for feedback and help! You can follow the meta bug or consult the buglist to track our progress.

Looking into the future

L20n’s first and foremost goal is to empower localizers and let them create good and natural-sounding translations.  The technology behind L20n opens up a new world of possibilities when it comes to improving the user’s and the localizer’s experience.

One such improvement is the ability to change the language of the UI on the fly, without having to restart the browser. This allows for a smoother and more pleasant experience for the user when a new language becomes available and the user chooses to use it. Furthermore it would allow for retranslating parts of the UI if needed which would especially be useful for Developer Tools: show console warnings and errors in your language for convenience or retranslate them on the fly to English to quickly look them up on the web.

Another innovation that we’re really excited about is the ability to push updates to the existing translations independent of the software updates which happen approximately every 6 weeks. We call this feature Live Updates to Localizations. In the future we’re hoping to be able to fix typos almost instantly in all Firefox instances around the world. The same technology would allow localizers to follow up with translations a few days after the release of a new version of Firefox. Last but now least, some translation authoring tools like Pontoon and Pootle could be allowed to push updates to the translations as you type them in your browser, allowing to instantly preview the translation and to make sure if fits well in the UI.

June 29, 2016 04:47 PM

June 14, 2016

Mitchell Baker

Expanding Mozilla’s Boards

This post was originally published on the Mozilla Blog.

In a post earlier this month, I mentioned the importance of building a network of people who can help us identify and recruit potential Board level contributors and senior advisors. We are also currently working to expand both the Mozilla Foundation and Mozilla Corporation Boards.

The role of a Mozilla Board member

I’ve written a few posts about the role of the Board of Directors at Mozilla.

At Mozilla, we invite our Board members to be more involved with management, employees and volunteers than is generally the case. It’s not that common for Board members to have unstructured contacts with individuals or even sometimes the management team. The conventional thinking is that these types of relationships make it hard for the CEO to do his or her job. We feel differently. We have open flows of information in multiple channels. Part of building the world we want is to have built transparency and shared understandings.

We also prefer a reasonably extended “get to know each other” period for our Board members. Sometimes I hear people speak poorly of extended process, but I feel it’s very important for Mozilla.  Mozilla is an unusual organization. We’re a technology powerhouse with a broad Internet openness and empowerment mission at its core. We feel like a product organization to those from the nonprofit world; we feel like a non-profit organization to those from the Internet industry.

It’s important that our Board members understand the full breadth of Mozilla’s mission. It’s important that Mozilla Foundation Board members understand why we build consumer products, why it happens in the subsidiary and why they cannot micro-manage this work. It is equally important that Mozilla Corporation Board members understand why we engage in the open Internet activities of the Mozilla Foundation and why we seek to develop complementary programs and shared goals.

I want all our Board members to understand that “empowering people” encompasses “user communities” but is much broader for Mozilla. Mozilla should be a resource for the set of people who care about the open Internet. We want people to look to Mozilla because we are such an excellent resource for openness online, not because we hope to “leverage our community” to do something that benefits us.

These sort of distinctions can be rather abstract in practice. So knowing someone well enough to be comfortable about these takes a while. We have a couple of ways of doing this. First, we have extensive discussions with a wide range of people. Board candidates will meet the existing Board members, members of the management team, individual contributors and volunteers. We’ve been piloting ways to work with potential Board candidates in some way. We’ve done that with Cathy Davidson, Ronaldo Lemos, Katharina Borchert and Karim Lakhani. We’re not sure we’ll be able to do it with everyone, and we don’t see it as a requirement. We do see this as a good way to get to know how someone thinks and works within the framework of the Mozilla mission. It helps us feel comfortable including someone at this senior level of stewardship.

What does a Mozilla Board member look like

Job descriptions often get long and wordy. We have those too but, for the search of new Board members, we’ve tried something else this time: a visual role description.

Board member job description for Mozilla Foundation

Board member job description for Mozilla Corporation

Board member job description for Mozilla Foundation

Board member job description for Mozilla Foundation

Here is a short explanation of how to read these visuals:

I invite you to look at these documents and provide input on them. If you have candidates that you believe would be good Board members, send them to the mailing list. We will use real discretion with the names you send us.

We’ll also be designing a process for how to broaden participation in the process beyond other Board members. We want to take advantage of the awareness and the cluefulness of the organization. That will be part of a future update.

Update August 2, 2016

Both the Mozilla Foundation and Mozilla Corporation Board Candidate Profiles have been updated. Cultural Fit has been updated to ‘Values Match’.

MoCo Board Candidate Profile

MoFo Board Candidate Profile


June 14, 2016 11:43 AM

June 09, 2016

Mitchell Baker

Joi Ito changes role and starts new “Practicing Open” project with Mozilla Foundation

Since the Mozilla Foundation was founded in 2003, we’ve grown remarkably – from impact to the size of our staff and global community. We’re indebted to the people whose passion and creativity made this possible, people like Joi Ito.

Joi is a long-time friend of Mozilla. He’s a technologist, a thinker, an activist and an entrepreneur. He’s been a Mozilla Foundation board member for many years. He’s also Director of the MIT Media Lab and was very recently appointed Professor of the Practice by MIT.

As Joi has become more deeply involved with the Media Lab over the past few years, we’ve come to understand that his most important future contributions are, rather than as a Board member, to spur innovative activities that advance the goals of both the Mozilla Foundation and the Media Lab.

The first such project and collaboration between Mozilla and the Media Lab, is an “Open Leadership Camp” for senior executives in the nonprofit and public sectors.

The seeds of this idea have been germinating for a while. Joi and I have had an ongoing discussion about how people build open, participatory, web-like organizations for a year or so now. The NetGain consortium led by Ford, Mozilla and a number of foundations, has shown the pressing need for deeper Internet knowledge in the nonprofit and public sectors. Also, Mozilla’s nascent Leadership Network has been working on how to provide innovative ways for leaders in the more publicly-minded tech space to learn new skills. All these things felt like the perfect storm for a collaborative project on open leadership and to work with other groups already active in this area.

The project we have in mind is simple:

  1. Bring together a set of experienced leaders from ‘open organizations’ and major non-profit and public sector organizations.
  2. Get them working on practical projects that involve weaving open techniques into their organizations.
  3. Document and share the learning as we go.

Topics we’ll cover include everything from design thinking (think: sticky notes) to working in the open (think: github) to the future of open technologies (think: blockchain). The initial camp will run at MIT in early 2017, with Joi and myself as the hosts. Our hope is that a curriculum and method can grow from there to seed similar camps within public-interest leadership programs in many other places.

I’m intensely grateful for Joi’s impact. We’ve been lucky to have him involved with Mozilla and the open Internet. We’re lucky to have him at the Media Lab and I’m looking forward to our upcoming work together.

June 09, 2016 07:02 PM

June 06, 2016

Pascal Chevrel

Launching Firefox Nightly with a temporary profile, from bash

If you are a Firefox Nightly user and you think you have found a bug in Firefox, a regression maybe, then you should wonder if the bug is in Firefox or if your data profile is causing it.

Maybe you changed some setting in about:config? Maybe you have an add-on causing problems? In that case, you might be hesitent to file a bug. Don't be!

Just try to reproduce your bug in a fresh data profile, if you are on Linux or MacOS you can even use this small script that I am using that automates the creation of a temporary user profile, name it, make the file executable with chmod +x and launch the script from your terminal. Done.

Here is below the script I am using to do that, as you can see I put it as a gist on GitHub for easy sharing. If you use it, like it or want to improve it, don't hesitate to contact me (pascal AT mozilla DOT com)!

PS1: Yes, this is blatant self-plagiarism of a post I wrote in French in 2010 ;)

PS2: This script comes with no guarantee, it has been working for me on Ubuntu for years, it might not work at all for you.

June 06, 2016 11:43 AM

May 19, 2016

Pascal Chevrel

Let's give Firefox Nightly some love!

After a decade working on making Mozilla Web properties available in dozens of languages, creating communities of localizers around the globe and building Quality Assurance tools, dashboards and APIs to help ship our software and websites internationally, I recently left the Localization department to report to Doug Turner and work on a new project benefiting directly the Platform and Firefox teams!

I am now in charge of a project aiming to turn Nightly into a maintained channel (just as we have the Aurora, Beta and Release channels) whose goal will be to engage our very technical Nightly users into the Mozilla project in activities that have a measurable impact on the quality of our products.

Here are a few key goals I would like us to achieve in 2016-2017:

I will not work on that alone, Sylvestre Ledru, our Release Management Lead, has created a new team (with Marcia Knous in the US and Calixte Denizet in France) to work on improving the quality of the Nightly channel and analyse crashes and regressions. Members of other departments (Participation, MDN, Security, Developer Relations…) have also shown interest in the project and intend to get involved.

But first and foremost, I do intend to get the Mozilla community involved and hopefully also get people not involved in Mozilla yet to join us and help us make of this "Nightly Reboot" project a success!

A few pointers for this project:

Interested? Do get involved and don't hesitate to contact me if you have any suggestion or idea that could fit into that project. Several people I spoke with in the last weeks gave me very interesting feedback and concrete ideas that I preciously noted!

You can contact me (in English, French or Spanish) through the following communication channels:

update 15:33 See also this blog post by Mozilla Engineer Nicholas Nethercote I want more users on the Nightly channel

May 19, 2016 12:37 PM

May 13, 2016

Pascal Chevrel

MozFR Transvision Reloaded: 1 year later

Just one year ago, the French Mozilla community was living times of major changes: several key historical contributors were leaving the project, our various community portals were no longer updates or broken, our tools were no longer maintained. At the same time a few new contributors were also popping in our IRC channel asking for ways to get involved in the French Mozilla community.

As a result, Kaze decided to organize the first ever community meetup for the French-speaking community in the Paris office (and we will repeat this meetup in June in the brand new Paris office!) .


This resulted in a major and successful community reboot. Leaving contributors passed on the torch to other members of the community, newer contributors were meeting in real life for the first time. This is how Clarista officially became our events organizer, this is how Théo replaced Cédric as the main Firefox localizer and this is how I became the new developer for Transvision! :)

What is Transvision? Transvision is a web application created by Philippe Dessantes which was helping the French team finding localized/localizable strings in Mozilla repositories.

Summarized like that, it doesn't sound that great, but believe me, it is! Mozilla applications have big gigantic repos, there are tens of thousands of strings in our mercurial repositories, some of them we have translated like a decade ago, when you decide to change a verb for a better one for example, it is important to be able to find all occurrences of this verb you have used in the past to see if they need update too. When somebody spots a typo or a clumsy wording, it's good to be able to check if you didn't make the same translation mistakes in other parts of the Mozilla applications several years ago and of course, it's good to be able to check that in just a few seconds. Basically, Phillippe had built the QA/assistive technology for our localization process that best fitted our team needs and we just couldn't let it die.

During the MozFR meetup, Philippe showed to me how the application worked and we created a github repository where we put the currently running version of the code. I tagged that code as version 1.0.

Over the summer, I familiarized myself with the code which was mostly procedural PHP, several Bash scripts to maintain copies of our mercurial repos and a Python script used to extract the strings. Quickly, I decided that I would follow the old Open Source strategy of Release early, release often. Since I was doing that on the sidelines of my job at Mozilla,  I needed the changes to be small but frequent incremental steps as I didn't know how much time I could devote to this project. Basically, having frequent releases means that I always have the codebase in mind which is good since I can implement an idea quickly, without having to dive into the code to remember it.

One year and 15 releases later, we are now at version 2.5, so here are the features and achievements I am most proud of:

  1. Transvision is alive and kicking :)
  2. We are now a team! Jesús Perez has been contributing code since last December, a couple more people have shown interest in contributing and Philippe is interested in helping again too. We have also a dynamic community of localizers giving feedback, reporting bugs are asking for immrovements
  3. The project is now organized and if some day I need to step down and pass the torch to another maintainer, he should not have difficulties setting the project up and maintaining it. We have a github repo, release notes, bugs, tagged releases, a beta server, unit testing, basic stats to understand what is used in the app and a mostly cleaned up codebase using much more modern PHP and tools (Atoum, Composer). It's not perfect, but I think that for amateur developers, it's not bad at all and the most important thing is that the code keeps on improving!
  4. There are now more than 3000 searches per week done by localizers on Transvision. That was more like 30 per week a year ago. There are searches in more than 70 languages, although 30 locales are doing the bulk of searches and French is still the biggest consumer with 40% of requests.
  5. Some people are using Transvision in ways I hadn't anticipated, for example our documentation localizers use it to find the translation of UI mentioned in help articles they translate for, people in QA use it to point to localized strings in Bugzilla

A quick recap of what we have done, feature-wise, in the last 12 months:

The above list is of course just a highlight of the main features, you can get more details on the changelog.

If you use Transvision, I hope you enjoy it and that it is useful oo you. If you don't use Transvision (yet), give it a try, it may help you in your translation process, especially if your localization process is similar to the French one (targets Firefox Nighty builds first, work directly on the mercurial repo, focus on QA).

This was the first year of the rebirth of Transvision, I hope that the year to come will be just as good as this one. I learnt a lot with this project and I am happy to see it grow both in terms of usage and community, I am also happy that one tool that was created by a specific localization team is now used by so many other teams in the world :)

May 13, 2016 08:27 AM

November 17, 2015

Pascal Chevrel

Follow-up to my current migration to Atom Editor

After my recent blog post announcing that I was transisionning from Sublime Text to Atom, I got a couple of nice surprises from the community that fix some of the annoyances I have with Atom or that will just make it better.

How to fix the keyboard shortcut to comment out a single line on a French keyboard

Just click on the  'Edit/Open your Keymap' menu item and put that line at the bottom:

'.platform-linux atom-text-editor': 'ctrl-:': 'editor:toggle-line-comments'

That will make the shortcut work along with the keyboard localization package installed for French (and Belgian French too). If you are on Windows, use the selector .platform-win32 (I don't know what the MacOS one is).

How to have a basic project mode like in Sublime text and be able to switch projects

Install the Project Manager package (thanks to Giorgio Maone, mozilla Add-on dev for the tip), it's roughly equivalent in functionnality to Sublime's built-in project manager and it seems good enough to me. One caveat is that switching from one project to another is a bit slow.

Support for .lang Mozilla syntax files in Atom

This is a nice gift from my colleague Francesco Lodolo, he made a syntax highlighter for the DotLang localization text format we use for and other sites for which we need fast translations for, this will be useful to me but also to Mozilla localizers that could want to use Atom to edit their translations, here is the package:

DotLang language support in Atom

And a screenshot to give you an idea of the end result.


New Version of Atom 1.2 stable and 1.3beta released

This is always nice to have, I like new stuff :) Here is their blog post about it: Atom 1.2

Codeintel equivalent in Atom for PHP ?

There is a series of packages called php-integrator-* (base, autocomplete plus, tooltips, annotations...) that are supposedly providing the equivalent services as Codeintel  but after indexing a single project for an hour (bringing my computer to its knees), I couldn't make it work. On a couple of occasions I saw a nice tooltip for a method indexed, but I don't know how I triggered it and I don't get any autocompletion of classes while typing. I guess it's still pretty much alpha stuff  but hopefully that will work some day. Also I suspect it tried to index all of my dependencies in the vendor directory… I only need my own code to be indexed, not the external dependencies or a whole framework. The good news I guess is that something is developped and I might get that feature one day.

Atoum integration in Atom ?

Another nice surprise from the community, looks like Julien Bianchi, one of Atoum developers is working on a package to get Atoum in Atom following my request on Twitter:



Many many thanks to him, I am always amazed at how nice the people in the Atoum project are with their users :)

UPDATE: here is the Atoum plugin and a video demoing it

Conclusion of the day

My transition is going well and progressing quickly, today I coded exclusively in Atom, I found some small bugs and needed to get my marks in the new environment  but it's not a revolution compared to Sublime and so far I felt rather productive. Most of the problems I have really are in the realm of polishing and finding where an option is set up or what a new shortcut is, that said, the experience is satisfying and I probably didn't get today more headaches than I had when I switched from Geany to Sublime a couple of years ago. So far, so good :)


November 17, 2015 12:19 AM

November 11, 2015

Pascal Chevrel

Progressively moving from Sublime Text 3 to Atom

I am currently moving from Sublime Text (I am a happy paying customer) to Atom. I love Sublime but unfortunately, the project is dying and I want to invest in tools that are maintained in the long term.

Sublime 3 is still not release after years, the only developper completely disappeared for months and this is not the first time it happens, this is also not an open source project which means that the project will die if this only developper leaves. The support forum is filled with spam and basically, there is no roadmap nor any official commitment to pursue the project.

Of course, Sublime still works fine, but there are already reports of it getting crashy on newer version of Linux, the addons ecosystem is slowing down and in the meantime, there is Atom created by the vibrant GitHub community with regular releases and attractive features (mainly clearly copied from Sublime).

So far I hadn't switched because Atom was not ready for prime time, despite its 1.0 number. It was just not usable on my machine for any serious dev work.

That said, the recent 1.2beta builds did get improvements and many extensions are actually working around core bugs that were making Atom a no go until now. So today, I am trying to use Atom 50% of the time instead of 10% as before.

So as to get a working setup, I did have to install a few must have extensions that just make the app usable. First and foremost, I needed Atom to work on my X1 carbon which boasts a 2560*1440 resolution and well, hiDPI is not Chrome Forte, I couldn't even read the microscopic UI and using CSS to fix that was a pain and not scalable when you switch your screen to a external monitor or for a presentation with a different resolution, one point for Sublime which just respects my OS DPI settings. Fortunately, this extension fixes it all:


The second thing I needed was decent speed, it's still lagging behind Sublime but the recent Atom builds over the summer did make a significant effort in that respect and the boot up time is now acceptable for my daily use.

The third problem which is probably still a blocker for me is that Atom basically sucks at managing non-US Qwerty keyboards, like seriously, it's bad. Most of the shortcuts didn't work on my French keyboard and this is the same problem for most keyboards in the world. Again this seems to be a Chrome engine limitation according to Github Issues and it should be fixed upstream in a few versions of Chrome from now. In the meantime, this package is an acceptable workaround that makes many non-US keyboards work more or less with Atom:

Keyboard Localization

There is one big caveat and one of my day to day blockers, I can't comment out a single line from a keyboard shortcut, if that simple bug were fixed in the package or Atom, I would certainly use it 75% of the time and not 50%.

In terms of UI and color scheme, it took me some time to find something agreable to the eyes (On Sublime, I tended to like Cobalt color scheme) but Atom Light for the UI and Code Dark for color scheme are rather agreable. Of course I am a PHP developper, so my color scheme tends towards having clear syntax in this language. The 1.2beta builds also stopped opening context menu in silly locations on my screen instead of below my cursor, another pain point gone.

The Zen and minimap extensions are just must haves for Sublime defectors like me:

Other extensions I use a lot are available:

In terms of PHP specific extensions, I found several equivalents to what I use in Sublime:

There are other PHP extensions I installed but didn't have much chance with them yet, some require configuration files, others don't seem to work or conflict with the keyboard shortcuts (stuff like php-cs-fixer).

The one extension I really miss from Sublime is Codeintel that autocompletes method names and gives tootips explaining methods from the data extracted from Dockblocks in classes. I really wish this will be ported some day or that an equivalent feature will be created.

I also need to see how to launch simple scripts on saving files, to launch Atoum unit tests for example, hopefully somebody will hack it and I won't have to dig into doing it myself ;)

On the plus side for Atom, Git/GitHub integration in the UI is obviously out of the box, I didn't have to install any extension for that. The UI is also improving regularly and just more pleasing to the eyes than Sublime's, which is a bit too geeky to my taste. There is a real preference panel where you can manage your extensions and many interesting small features for which you don't have to edit configuration files like in Sublime (seriously, setting your font size in a JSON file is not user friendly).

It does have its share of bugs though, for example color syntaxing seems to choke on very large files (like 2MB) and everything is displayed as text (not cool for XML or long PHP arrays for example). There are also sometimes lock ups of the UI, often when I switch to preferences.

But all in all, the experience is getting better over time and I think that I found a credible alternative to Sublime for 2016. I know there are other options, I actually have PHPStorm for example which is super powerful, but just as with Eclipse, Netbeans and other heavy-weight IDEs, I have better things to do in my life than spend 3 months just learning the tool to be able to edit a couple of files and I don't buy the argument that this is a life investment ;)

The one aspect of Atom that I think is still basic is project management, I need something just as simple as Sublime but I may just have overlooked the right extension for that and anyway, it's such a popular request that I have no doubt it will be in core at some point.

That's it, if you haven't tried Atom in a while and like me are worried about Sublime Text future, maybe that post will make you want to give it a try again.

I still love Sublime, even in its beta form it is a solid and complete product and I would be happy to keep on paying for it and get updates, but unfortunately, its days seem to be doomed because all the eggs are in the same basket of a single developer that may have good reasons to have vanished, but I just need work done and there are enough bus factor people in my own job to afford having also this problem with the main tool I use on a daily basis. I'd be happy to be proven wrong and see a Sublime Renaissance, the only dev is obviously incredibly talented and deserves to make a living out of his work, I just think he got overwelmed by the incredible success he had with his product and just can't keep up. At some point, open source or prioritary software, you need a team to scale up and meet your customers satisfaction. I do hope that if he completely gives up on this project to pursue other adventures, he will open source Sublime Text and not let all this coding beauty disappear in the prioritary world limbos forever :)

PS: And yes, I prepared this blog post in Markdown syntax thanks to the built-in Markdown previewing pane in Atom ;)

November 11, 2015 02:55 PM

September 27, 2015

Rumbling Edge - Thunderbird

2015-09-27 Calendar builds

Common (excluding Website bugs)-specific: (41)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac (2015-08-12 build only, due to bug 1195442)

September 27, 2015 08:19 PM

2015-09-27 Thunderbird comm-central builds

Thunderbird-specific: (89)

MailNews Core-specific: (35)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac (2015-08-12 build only, due to bug 1195442)

September 27, 2015 08:18 PM

August 17, 2015

Rumbling Edge - Thunderbird

Use funfuzz to find new, unique security bugs in Mozilla for bounty rewards

Do you have spare computer cycles, and would like to help find security bugs in Mozilla products? If you discover new and unique security issues, you may be able to earn bounties within guidelines!

Recently, the Mozilla Platform Fuzzing team released funfuzz (fuzzers & fuzzing harness) and lithium (an updated version of a line-based reducer) on GitHub:

  1. funfuzz
    2. Repository of fuzzers and harness scripts to run them
    3. Jesse Ruderman wrote an excellent blogpost
    4. Components of funfuzz:
      1. jsfunfuzz – js fuzzer
      2. domfuzz – DOM fuzzer
      3. compareJIT – runs with different runtime flags and compares output
      4. randorderfuzz – adds in random tests from repository to jsfunfuzz
      5. compileShell – compiles js shells
      6. autoBisect – bisects Mercurial repositories to find regressors
  2. lithium

We have in-tree documentation to help you get started on your way to find new, unique security bugs.

Quick-start guide:

  1. Ensure you have build prerequisites installed
  2. Clone both repositories side-by-side (adjacent to each other)
    • e.g. into ~/lithium and ~/funfuzz
  3. Clone the Mercurial mozilla-central repository.
    • e.g. into ~/trees/mozilla-central
  4. Start the loopBot script!
    1. Example command:
      • python -u funfuzz/ -b "--random" -t "js" --target-time 28800 | tee ~/log-loopBotPy.txt
    2. Use `-t “js”` to test SpiderMonkey shells only, `-t “dom”` for only Firefox DOM
    3. More documentation here.


  1. The harness should work with most common platforms, e.g. Windows, Linux and Macs as well as on EC2.
  2. When fuzzing, the computer will use a large amount of computer resources. It is recommended not to use the computer heavily when it is fuzzing.
  3. Until FuzzManager integration arrives, the list of known bugs are in:
    1. assertion failures
    2. crashes
  4. For SpiderMonkey `-t “js”` mode, if you find an unknown crash or assertion failure, there are several files to look for, in the wtmp1 subfolder:
    1. *-reduced.js files usually contain a partially-reduced testcase
    2. *-orig.js files are the original unreduced testcase
    3. *-summary.txt shows the runtime flags needed to trigger the bug
    4. *-crash.txt files contain the crash stacktrace
    5. *-err.txt files contain stderr output
    6. *-out.txt files contain stdout output
    7. *-autobisect.txt files contain bisection information
    8. build-source.txt files contain the information on shell build type
    9. Follow the guidelines as listed in the “Claiming a bug bounty” section of the bug bounty document
  5. In case things go wrong, kill all the relevant Python processes.
    • Example command that kills all running Pythons on machine:
      1. $ killall python # Linux
      2. $ killall Python # Mac

Where you can help:

  1. Run funfuzz with dynamic analysis tools
    • ASan
      • Works on Mac
      • May have issues on Linux, especially EC2 VMs
    • Valgrind
    • TSan, LSan, UBSan not integrated yet
      • Volunteers welcome!
  2. Add to our fuzzers
  3. Improve our fuzzing harness
    • File an issue if something does not work
    • Send us a pull request for improvements!
  4. Help out in other Mozilla Security projects

Note that the final bounty reward amounts are up to the discretion of the bounty committee. Help us help everyone fuzz our way to a safer Gecko for everyone!

(This is part of a new category of posts related to fuzzing. Fuzzing is used extensively to find bugs, regressions and security issues in Gecko, which Firefox, Firefox OS and Thunderbird are based on)

Edit: Tweaked wordings throughout.

August 17, 2015 09:27 PM

July 25, 2015

Rumbling Edge - Thunderbird

2015-07-24 Calendar builds

Common (excluding Website bugs)-specific: (16)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64) (2015-07-22 builds)

Mac builds Official Mac

July 25, 2015 07:08 AM