L20n/Firefox
Contents
- 1 Description
- 2 Overview
- 3 Requirements
- 4 Secondary scope
- 5 Milestones
- 5.1 Sprint 1: July 19 — July 25
- 5.2 Sprint 2: July 26 — August 1
- 5.3 Sprint 3: August 2 — August 8
- 5.4 Sprint 4: August 9 — August 15
- 5.5 Sprint 5: August 16 — August 21
- 5.6 Sprint 6: August 23 — August 29
- 5.7 Sprint 7: August 30 — September 5
- 5.8 Sprint 8: September 6 — September 12
- 5.9 Sprint 9: September 13 — September 19
- 5.10 Sprint 10: September 20 — September 26
- 5.11 Sprint 11: September 27 — October 4
- 6 People
- 7 Reference Links
- 8 Communication
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
- Build support (bug 1280680)
- L10nRegistry + docs + tests (bug 1280671)
- Intl APIs + docs + tests (bug 1288639)
- L20n-chrome-xul.js + docs + tests (bug 1280669)
- browser-menu.inc ported to L20n (bug 1288406)
- Deliverable
- land ported menubar on mozilla-central (bug 1291693)
Build Support
- Basic builds for a single language (bug 1280680)
- L10n repacks (bug 1280683)
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
- Basic FTL support (
bug 1280657) - Modify data models for deeper support (bug 1280686)
- TM: what does ftl and tm do (spin off of bug 1289705)
Secondary scope
Bindings for other pieces of Gecko
- Chrome HTML (bug 1280670)
- Content HTML (bug 1280672)
- Chrome XBL (bug 1280673)
- Content XBL (bug 1280675)
Live Updates
Debugging Support
- about:localization (bug 1280689)
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.
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
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
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
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
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
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
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
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
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 |
|
Newsgroup/Mailing List |