Localizing Firefox in Barcelona

We were thrilled to start the year’s localization (l10n) community workshops in Barcelona at the end of March 2017! Thanks to the help of the ever dedicated Alba and Benny the workshop was fun, productive, and filled with amazing Catalonian food.

This workshop aimed to gather together core and active localizers from twenty-one l10n communities scattered throughout the southern parts of Western and Eastern Europe. Unlike the 2016 l10n hackathons, this was the first time we brought these twenty-one communities together to share experiences, ideas, and hack on Mozilla l10n projects together.

The workshop was held at Betahaus, a local co-working space in Barcelona located in Villa de Grácia, Barcelona. The space was great for both large group presentations and small group breakouts. We had room to move around, brainstorm on whiteboards, and play our favorite icebreaker game, spectograms.

All of the l10n-drivers were present for this workshop (another first) and many gave presentations on their main projects. Localizers got a look into new developments with L20n, Pontoon, and Pootle. We also had a glimpse into cross-channel localization for Firefox and how localizers can prepare for it to come in June.

Following tradition, l10n communities came to the workshop with specific goals to accomplish while there. While together, these communities were able to complete around 75% of their goals. These goals largely surrounded addressing the question of localization quality and testing, but also included translating strings for Mozilla products, web sites, and planning for recruiting new localizers.

We couldn’t think of being in Barcelona without taking advantage of participating in a cultural activity as a group. Alba was kind enough to guide the whole group through the city on Saturday night and show us some of the most prominent sites, like Sagrada Familia (which happened to be the most popular site among the l10n communities).

On Sunday, the l10n communities and drivers gathered around four different tables to discuss four different topics in 30-minute chunks of time. Every 30 minutes, Mozillians moved to a different table to discuss the topic assigned to that table. These topics included localization quality, style guides, recruiting new localizers, and mentoring new localizers. It was a great opportunity for both veteran and new localizers to come together and share their experience with each topic and ideas on how to take new approaches to each. Sure, it was a bit chaotic, but everyone was flexible and willing to participate, which made it a good experience nevertheless.

For more info about the workshop (including the official Spotify playlist of the workshop), visit the event’s wiki page here. ¡Hasta luego!

More pictures from the event:

Localizing Nightly by Default

One of our goals for 2017 is to implement a continuous localization system at Mozilla for Firefox and other projects. The idea is to expose new strings to localizers earlier and more frequently, and to ship updates to users as soon as they’re ready. I’m excited to say that we’ve arrived at one of the key milestones toward a continuous localization system: transitioning localization from Aurora to Nightly.

How can you help?

Starting April 19th, the focus for localization is going to be on Nightly.

If you are a localizer, you should install Nightly in your own language and test your localization.

If you are a member of a local community, you should start spreading the message about the importance of using Nightly to help improve localized versions of Firefox and share feedback with localizers.

If you are new to localization, and you want to help with translation tasks, check out our tools (Pontoon and Pootle), and get in touch with the contributors already working on your language.

The amount of information might be overwhelming at times, if you ever get lost you can find help on IRC in the #l10n channel, on our mailing list, and even via Twitter @mozilla_l10n.

Firefox release channels

Mozilla has three (previously four) release channels for Firefox, each with their own dedicated purpose. There’s Nightly (built from the mozilla-central repository), Beta (mozilla-beta), and Release (mozilla-release).

  • Nightly: development of Firefox (and now localization)
  • Aurora: testing & localization (no longer available)
  • Beta: stable testing of Firefox
  • Release: global distribution of Firefox to general audience

A version of Firefox will “ride the trains” from Nightly to Beta and finally to Release, moving down the channel stream every 6-8 weeks.

With Aurora, localizers were given one cycle to localize new, unchanging content for Firefox. In fact, once moved to Aurora, code would be considered “string frozen”, and only exceptional changes to strings would be allowed to land. Any good update from localizers during that time was signed off and rode the trains for 6-12 weeks before end-users received it.

We spent the last two years asking localizers about their contribution frequency preferences. We learned that, while some preferred this 6 week cycle to translate their strings, the majority preferred to have new content to translate more frequently. We came away from this with the understanding that the thing localizers want most when it comes to their contribution frequency is freedom: freedom to localize new Firefox content whenever they choose. They also wanted the freedom to send those updated translations to end-users as early as possible, without waiting 6-12 weeks. To accommodate this desire for freedom, Axel set out to develop a plan for a continuous localization system that exposes new content to localizers early and often, as well as delivers new l10n updates to users more quickly.

Nightly localization

The first continuous localization milestone consisted of removing the sign-off obligation from localizer’s TODO list. The second milestone consists of transitioning localization from the old Aurora channel to the Nightly channel. This transition aims to set the stage for cross-channel localization (one repository per locale with Nightly, Beta, and Release strings together) as well as satisfy the first desired freedom: to localize new Firefox content whenever localizers choose to localize.

This is how it works:

  1. A developer lands new strings in mozilla-central for Nightly.
  2. Localization drivers (l10n-drivers) review those new strings and offer feedback to the dev where needed.
  3. Every 2-3 days, localization drivers update a special clone of mozilla-central used by localization tools.
  4. Pootle & Pontoon detect when new strings have been added to this special repository and pull them into their translation environments automatically.
  5. When a new l10n updates is made, Pootle & Pontoon push the change into the locale’s Nightly repository.
  6. Localization drivers review all new updates into l10n Nightly repositories and sign off on all good updates.
  7. Good updates are flagged for shipping to Release users when the version of Firefox “rides the trains” to Release.

Localizing on Nightly offers localizers a few benefits:

  1. Localizers are exposed to new strings earlier for l10n, making it easier for developers to make corrections to en-US strings when localizers report errors.
  2. Localizers have the freedom to localize whenever new strings land (every 2-3 days) or to define their own cadence (every 2 weeks, 4 weeks, 8 weeks, etc.).
  3. Without Aurora, new localization updates get to end-users in Release faster.

The next continuous localization milestone is to implement cross-channel localization. Cross-channel will satisfy the second desired freedom: delivering translation updates to end-users faster. It will also drastically simplify the localization process, allowing localizers to land fixes once, and shipping them in all versions of Firefox. If you’d like to follow the work related to cross-channel, you can find it here on GitHub. We expect cross-channel to be ready before June 2017.

Firefox L10n Report – Nightly 55

This is going to be the last of these reports, since Aurora is going away, and Nightly strings will be exposed to localization tools once or twice a week. We’ll work on identifying new formats to keep you up to speed with all the changes happening in localization at Mozilla.

For further information about the change for Aurora, we’ve created these FAQs: https://github.com/mozilla-l10n/localizer-documentation/blob/master/misc/aurora_faqs.md

Nightly projects are already available in Pontoon, they will be available shortly also in Pootle.

Today Firefox 55 starts a second cycle on the Nightly channel, and these are the key dates:

  • Beta (54): localization updates for already shipping locales must be completed before May 31.
  • On June 12, Nightly (55) will move directly to the Beta channel.

String breakdown for locales starting to work on Nightly for the first time:

  • Firefox Nightly desktop has 695 added strings (97 obsolete). The actual number of missing strings will be much lower (184), since over 500 of them are a copy of the /preferences folder (see details later). About 4% of the new strings are for Developer Tools.
  • Fennec Nightly has 23 new strings (27 obsolete). 8 new strings are Fennec-only (in /mobile).

Noteworthy Changes

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

Browser

Preferences are going to be heavily reorganized. 13 existing files (513 strings) have been copied from /preferences to /preferences-old as part of merge day migration scripts.

https://hg.mozilla.org/mozilla-central/rev/892ffc32ee08

Note that “new preferences” and “old preferences” have already started to diverge. In some cases there are small changes, like final colon or ellipses removed; your tool’s translation memory should help for these (make sure to double check the suggested translation).

In some other cases, you will have to translate new strings twice, since the new preferences are currently only enabled in Nightly (hidden behind a preference), and might not move to Beta with Firefox 55.

Mobile

Searchplugins are now managed similarly to desktop. The entire mobile/searchplugins folder is not used anymore and has been removed as part of merge day.

Common issues

wc-reporter.label

This is a string destined to be displayed in the hamburger menu (on Nightly): \u00ad is a special character used to tell the system to disable hyphenation.

You should *not* keep that character in your translation, unless that’s what you plan to do (disable automatic hyphenation, and only after testing on as many platforms as possible). Make sure to test this string, and shorten it if necessary, because there’s space only for 3 lines of text in these buttons.

New Languages

A few new languages are moving to Beta (and later release) with Firefox 54:

  • Burmese (my) for desktop.
  • Bulgarian (bg) and Kabyle (kab) for Android.

Congratulations to all the teams involved for reaching this goal.

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.

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

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:

  • string navigation using screenshots
  • displaying original strings in screenshots
  • previewing translations in localized screenshots

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!

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:

  • Beta (53): localization updates for already shipping locales must be completed before 5 April.
  • Aurora (54): localization updates must be completed before 17 April. That’s the Monday, also known as merge day, before the next release of Firefox.

String breakdown:

  • Firefox Aurora desktop has 179 added strings (102 obsolete). About 35% of the new strings are for Developer Tools.
  • Fennec Aurora has 44 new strings (28 obsolete). 4 new strings are Fennec-only (in /mobile).

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.

Browser

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.

Changeset: https://hg.mozilla.org/releases/mozilla-aurora/rev/ab540f0d551b


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

  • browser.storageManager.enabled
  • dom.storageManager.enabled

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

Devtools

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:

  • Latgalian (ltg)
  • Burmese (my)
  • Nepali (ne-NP)
  • Tagalog (tl)

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.

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.

Heading
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:

  • Team dashboards could entirely replace our team wiki pages, reflecting team hierarchy and providing links to l10n resources like style guides.
  • Project dashboards could contain links to l10n preview environments and contact information (l10n drivers, developers).
  • Localization dashboards could contain deadline and priority information provided by the web dashboard.

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! 😉

Firefox L10n Report – Aurora 53

Current Aurora Cycle – Firefox 53

Key dates for this cycle:

  • Beta (52): localization updates for already shipping locales must be completed before 22 February.
  • Aurora (53): localization updates must be completed before 6 March. That’s the Monday, also known as merge day, before the next release of Firefox.

String breakdown:

  • Firefox Aurora desktop has 303 added strings (182 obsolete). About 25% of the new strings are for Developer Tools.
  • Fennec Aurora has 60 new strings (46 obsolete). 9 new strings are Fennec-only (in /mobile).

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.

Browser

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.

Changeset: https://hg.mozilla.org/releases/mozilla-aurora/rev/86e55de5106e


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.

Changeset: https://hg.mozilla.org/releases/mozilla-aurora/rev/d229169c60ea


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:

Changeset: https://hg.mozilla.org/releases/mozilla-aurora/rev/772c8d7a210c


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

Changeset: https://hg.mozilla.org/releases/mozilla-aurora/rev/31cb40156b9d

Mobile

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.

Changeset: https://hg.mozilla.org/releases/mozilla-aurora/rev/6dad16396f74

Devtools

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

Changeset: https://hg.mozilla.org/releases/mozilla-aurora/diff/2301f25d1595/devtools/client/locales/en-US/debugger.properties

New Languages

New locales reached release with Firefox 51:

  • Georgian (ka) and Kabyle (kab) in Firefox desktop.

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:

  • Latgalian (ltg)
  • Burmese (my)
  • Nepali (ne-NP)
  • Tagalog (tl)
  • Urdu (ur)

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

  • Asturian (ast)
  • Georgian (ka)

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.

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:

  • Implement a continuous localization process across all l10n projects.
  • Prepare Firefox desktop for implementation of l20n after Quantum.
  • Make sure that localization quality is a reason why users stay with Firefox.
  • Be aggressively competitive with existing mobile localizations and new mobile experiments.

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:

  • landed cross-channel localization,
  • improved our VCS interactions with Pootle & Pontoon,
  • incorporated a robust in-app notification system in Pontoon,
  • unified our dashboards,
  • and created the necessary training materials for localizers to know how to make a large impact within a world of continuous localization.

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:

  • implemented MQM in Pontoon and Pootle,
  • improved localizer exposure to Bugzilla within tooling,
  • ensured that all l10n communities have and maintain style guides & glossaries for their language,
  • organize l10n workshops for all l10n communities shipping Mozilla localizations,
  • and create marketing materials & plans for us all to better evangelize Firefox in our languages.

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:

  • ship to users the same level of localization coverage as our competitors on mobile,
  • ship 5 more languages that they do not cover,
  • make it easier to clearly identify the set of strings required to ship a new localization within our l10n tools,
  • and work with the mobile teams to implement right-to-left (RTL) support in our mobile projects.

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:

  • Rebuilding communities
  • Evangelizing localized products
  • Localization quality & testing
  • Training on l10n tool features

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:

  • 25-26 March | Barcelona
    • an, ast, ca, eu, gl, es-ES, fr, it, lij, pt-PT, rm, bg, bs, el, hr, hu, hy-AM, mk, ro, sl, sr
  • 22-23 April | Taipei
    • ja, ko, zh-CN, zh-TW, id, km, ms, th, tl, vi, my, lo
  • 6-7 May | Paris
    • ach, af, am, ff, son, xh, wo, az, ka, kk, tr, uz, ar, fa, he, ur, kab
  • 12-13 August | Asunción
    • pt-BR, es-CL, es-MX, es-AR, eo, cak, gn, zam, trs
  • 23-24 September | Berlin
    • br, cy, ga-IE, gd, de, en-GB, en-ZA, fy-NL, nl, uk, da, fi, is, nb-NO, nn-NO, sv-SE, dsb, cs, et, hsb, lv, lt, pl, sk, ru
  • 7-8 October | Kolkata
    • bn-BD, bn-IN, gu, hi, kn,  mr, ne, or, pa si, ta, te

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.

 

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 Mozilla.org (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.

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:

  • Beta (51): localization updates for already shipping locales must be completed before 11 January.
  • Aurora (52): localization updates must be completed before 23 January. That’s the Monday, also known as merge day, before the next release of Firefox.

String breakdown:

  • Firefox Aurora desktop has 330 added strings (61 obsolete). About 48% of the new strings are for Developer Tools. The actual amount of strings you’ll need to translate will be lower, more on that later in the Developer Tools section.
  • Fennec Aurora has 55 new strings (29 obsolete). 5 new strings are Fennec-only (in /mobile).

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.

Browser

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.

Devtools

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 netmonitor.properties, boxmodel.properties, font-inspector.properties, inspector.properties (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:

  • When creating a sentence with a link, 3 strings are used: before_link + link + after_link. English doesn’t need the part before or after the link, but that’s useful for other languages, so it’s kept empty in English. It’s expected for some locales to have a different behavior than English.
  • There are secondary commandkeys or accesskeys, or special values that are supposed to remain empty for most locales.

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: https://transvision.mozfr.org/string/?entity=toolkit/chrome/global/intl.properties:intl.charset.detector&repo=aurora

isRTL (crashreporter)
# LOCALIZATION NOTE (isRTL):
# 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: https://transvision.mozfr.org/string/?entity=toolkit/crashreporter/crashreporter.ini:isRTL&repo=aurora

New Languages

A few new locales were added in Firefox 51 Beta:

  • Georgian (ka) and Kabyle (kab) in Firefox desktop.

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

  • Guaraní (gn) in Firefox for Android.

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:

  • Latgalian (ltg)
  • Burmese (my)
  • Nepali (ne-NP)
  • Tagalog (tl)
  • Urdu (ur)

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

  • Asturian (ast)
  • Georgian (ka)

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.