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
  • 18-19 November | 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.

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,
  • Implement cross-channel localization for Firefox and Firefox for Android,
  • Track all project statuses in GitHub Projects and report frequently,
  • Recreate our documentation,
  • Mozilla.org as first project for new communities,
  • Define goals and format for hackathons in 2017.

Continue reading …

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:

  • Beta (50): localization updates for already shipping locales must be completed before 19 October. Note that this cycle doesn’t follow the usual pattern.
  • Aurora (51): localization updates must be completed before 7 November. That’s the Monday, also known as merge day, before the next release of Firefox.

String breakdown:

  • Firefox Aurora desktop has 158 added strings (213 obsolete). About 55% of the new strings are for Developer Tools.
  • Fennec Aurora has 27 new strings (17 obsolete). 8 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.

Dom

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

Devtools

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 startup.properties 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.

Toolkit

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:

  • Georgian (ka)
  • Kabyle (kab)
  • Latgalian (ltg)

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:

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

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.

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!