L20n/Firefox

From MozillaWiki
Jump to: navigation, search

Description

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

Milestone Date Status
MozLondon Demo June 2016 DONE
Platform Development June-August 2016 ON TARGET
Performance research July 2016 ON TARGET
L10n Infrastructure Changes July-September 2016 ON TARGET
Land on Master November 2016 ON TARGET
MozHawaii Demo December 2016 ON TARGET

Requirements

Browser Menu

Dependencies
Deliverable

Build Support

Migrating localizations

  • Define what the process should create (bug 1288141)
  • Define which data to use (bug 1288146)
  • Define tracking applied migrations vs not (bug )
  • First iteration of content transformation (bug )

Performance

  • Define measures to test and hypotheses (bug 1280674)
  • Create a testing plan

Pontoon/TM

Secondary scope

Bindings for other pieces of Gecko

Live Updates

  • Tinker support (bug )
  • Pontoon support (bug )

Debugging Support


Milestones

The tracking bug is bug 1279002 and the interactive buglist can be used to view the entire dependency tree.

Sprint 1: July 19 — July 25

This sprint is about setting the stage. We get a twig which is an semi-official branch in mozilla-central (and gecko-projects in git) with integration tests enabled. We collaborate on the twig going forward. Once one of the future sprint's deliverables is ready to land on mozilla-central we follow the regular process: bug, patch, push to try, landing by a sheriff. We then merge mozilla-central into the twig. Rinse and repeat until everything has landed on mozilla-central.

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1288182 Requesting twig repo larch be reset Developer Services Mercurial: hg.mozilla.org RESOLVED FIXED Kendall Libby [:fubar] (he/him) 1281256
1288406 Port Firefox's menu bar to FTL L20n General RESOLVED FIXED Staś Małolepszy :stas 1289530, 1291693
1288637 Document the Firefox landing plan on wiki/L20n/Firefox L20n General RESOLVED FIXED Staś Małolepszy :stas
1288664 Create performance testing plan L20n General RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf] 1289530
1288665 Decide on indexing strategy for resources and sync/async modes L20n General RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf]

5 Total; 0 Open (0%); 5 Resolved (100%); 0 Verified (0%);


Sprint 2: July 26 — August 1

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1280671 Implement L10nRegistry L20n General RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf] 1280687, 1280669, 1280670, 1280673, 1280680, 1280689
1288141 [decision][l10n-conversion] document the intended outcome from the l10n migration process L20n General RESOLVED FIXED Axel Hecht [:Pike] 1280685
1289530 Evaluate the performance of Firefox's menubar in L20n L20n General RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf] 1288406, 1288664, 1295292 1280674, 1289535, 1291693

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);


Sprint 3: August 2 — August 8

Notes: Staś on PTO starting Aug 4

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1289535 Speed up l20n-chrome-xul L20n JS Library RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf] 1289530 1280674

1 Total; 0 Open (0%); 1 Resolved (100%); 0 Verified (0%);


Sprint 4: August 9 — August 15

Notes: Staś on PTO

Sprint 5: August 16 — August 21

Notes: Axel on PTO

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1288639 Implement Intl.MessageContext L20n General RESOLVED FIXED Staś Małolepszy :stas 1280675, 1280669, 1280670, 1280673
1288687 Adjust l20n.js's linting rules for landing in mozilla-central L20n JS Library RESOLVED FIXED Staś Małolepszy :stas 1291693
1297155 Set up performance framework on larch L20n General RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf]

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);


Sprint 6: August 23 — August 29

Notes: Axel on PTO

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1296618 Optimize message formatting L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1297434 Update the perf testing framework with browser.xul examples L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1297719 Print Performance measures L20n General RESOLVED FIXED Staś Małolepszy :stas
1297735 Fix m-c linting errors L20n General RESOLVED FIXED
1298122 Optimize IO L20n General RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf]
1298807 Fix Cut, Copy, Paste labels in the Edit menu L20n General RESOLVED FIXED Staś Małolepszy :stas
1298974 Fix documentReady() L20n JS Library RESOLVED FIXED Staś Małolepszy :stas

7 Total; 0 Open (0%); 7 Resolved (100%); 0 Verified (0%);


Sprint 7: August 30 — September 5

Sprint 8: September 6 — September 12

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1300727 Avoid spreading trait errors if there are none L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1300729 Optimize null values in the parser L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1300732 Use multiple querySelectorAll calls, one for each Localization L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1300752 Put perf markers in translateRootContent L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1300753 Trigger document localization on readystate=complete L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1301198 Don't return [value, errors] tuples from MessageContext L20n JS Library RESOLVED FIXED Staś Małolepszy :stas

6 Total; 0 Open (0%); 6 Resolved (100%); 0 Verified (0%);


Sprint 9: September 13 — September 19

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1288685 Document MessageContext L20n JS Library RESOLVED FIXED Staś Małolepszy :stas
1288689 Document XUL bindings L20n JS Library RESOLVED FIXED 1280669
1303148 Use a documentation generator L20n JS Library RESOLVED FIXED Staś Małolepszy :stas

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);


Sprint 10: September 20 — September 26

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1288682 Add tests for MessageContext L20n JS Library RESOLVED FIXED Staś Małolepszy :stas 1306262 1288684
1288684 Add basic MessageContext and L10nRegistry xpcshell tests L20n JS Library RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf] 1288682 1291693
1288690 Add tests for XUL bindings L20n JS Library RESOLVED FIXED Zibi Braniecki [:zbraniecki][:gandalf] 1315811 1280669
1305066 Remove the Environment monad from the resolver L20n JS Library RESOLVED FIXED Staś Małolepszy :stas

4 Total; 0 Open (0%); 4 Resolved (100%); 0 Verified (0%);


Sprint 11: September 27 — October 4

Full Query
ID Summary Product Component Status Resolution Assigned to Depends on Blocks
1303883 Port a UI feature of Firefox for Android L20n General RESOLVED FIXED Staś Małolepszy :stas 1280670, 1307164
1307144 Update l20n on larch with docstrings and comments L20n General RESOLVED FIXED Staś Małolepszy :stas
1307164 Enable ECMAScript's Intl API on larch L20n General RESOLVED FIXED 1303883

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);


People

Role Name IRC
Tech Lead Axel Hecht Pike
Engineering Matjaž Horvat mathjazz
Engineering Staś Małolepszy stas
Engineering Zibi Braniecki gandalf

Reference Links

Communication

Weekly Team Meeting
IRC
  • Server: irc.mozilla.org
  • Channel: #l20n
Newsgroup/Mailing List