continuous localization€¦ · • herald is part of phabricator • ccs l10n-drivers on patches...
TRANSCRIPT
![Page 1: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/1.jpg)
Continuous Localization
![Page 2: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/2.jpg)
Public
Agenda
2
AndroidAnalysis of our Android Apps
Continuous L10nLocalizing Firefox Nightly
Brief HistoryHow we shipped Firefox
Q&A
3.
2.
1. 4.
![Page 3: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/3.jpg)
Public 3
Shipping Localized Firefox
over time
![Page 4: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/4.jpg)
Public
Firefox < 5• Localize mostly on the release branch
• We all forgot most of that• It was year(s) per branch
The OLD Days
4
![Page 5: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/5.jpg)
Mozilla Confidential
Nightly
getting closer in 2011
• small locale list
• localized builds each day
• directly what’s on central
• localizers merge to Aurora
Rapid Release
5
Aurora• all locales
• 6-ish weeks of string freeze
• localized builds each day
• l10n-drivers merge to Beta
Beta• release-ready locales
• weekly builds
• signed off by localizers
• reviewed by l10n-drivers
• release-engineering merges to release
![Page 6: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/6.jpg)
Public
post-”Dawn”
• one localization for Nightly, Beta, Release, ESR
• “Herald” notifies on patches touching l10n
• Localization of Nightly, Beta, Release in Pontoon
• Nightly builds twice a day with latest localization
• Beta twice a week with sign-offs by l10n-drivers
• Release/ESR with latest state of that release during Beta, plus fixups
Today
6
![Page 7: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/7.jpg)
Public
• Herald is part of Phabricator
• CCs l10n-drivers on patches when they get submitted for review
• Developers can’t hide ;-)
• We don’t know when developers don’t touch l10n files, but should.
• Use CODEOWNERS on github to achieve similar results
catching localization issues during reviewHerald
7
![Page 8: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/8.jpg)
Public
• problems for localization still reach mozilla-central
• keep them to just a few localizers to verify
• ask for help if problems arise
• publish known-good states to gecko-strings
not everything is healthyQuarantine
8
![Page 9: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/9.jpg)
Public
• en-US strings
• contains the unit (super-set) of• mozilla-central, mozilla-beta, mozilla-release
• comm-central, comm-beta, comm-release
• we localize this, and have strings for each channel
• thus cross-channel
• used to build localized versions of Firefox, Fennec, Thunderbird, SeaMonkey
• will include ESR at some point in the future
gecko-strings
9
![Page 10: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/10.jpg)
Public 10
Android
Mobile Apps & More
![Page 11: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/11.jpg)
Public
● Android app development puts localizable strings into strings.xml files● Strings have comments, and are maintained as part of the patch
● Engineering teams are set on a linear history in git
All set for continuous localization!
The good parts
11
![Page 12: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/12.jpg)
Mozilla Confidential
<resources>
<string name="app_name">Two Strings</string>
<string name="textView1">one string" with " apos"'"trophe</string>
<string name="textView2">one string\" with \" apos\'trophe</string>
</resources>
… if they’d ever fix that bug ...… and the Ugly
12
![Page 13: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/13.jpg)
Public
app/src/main/res/values/strings.xml is localized in● app/src/main/res/values-de-rDE/strings.xml or● app/src/main/res/values-b+sr+Latn/strings.xml
Locale codes: in vs id, etc
Documentation only describes best practices, but lacks definition of edge cases
Still Ugly
13
![Page 14: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/14.jpg)
Public 14
The Way Forward
● Establish a mozilla-supported subset● Automated tests to enforce that
subset● Support some quirks like locale codes
=>Pontoon can localize Android projects
directly.
![Page 15: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/15.jpg)
Public
Many Things FirefoxMozilla’s Android Apps
15
And● Android Components● Firefox Lockbox● Firefox Reality● Firefox Lite● Fenix● ...
![Page 16: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/16.jpg)
Public
Workflow
16
Q
xx-XX
en-US
PontoonAndroid product repos
1
2
3
4
56
7
![Page 17: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/17.jpg)
Public
● Builds with all languages
● Published on a developer channel with updates
● Some projects will have automated screenshots for testing
Builds
17
![Page 18: Continuous Localization€¦ · • Herald is part of Phabricator • CCs l10n-drivers on patches when they get submitted for review • Developers can’t hide ;-) • We don’t](https://reader033.vdocument.in/reader033/viewer/2022051605/600a1fbef3edbc56117bacd5/html5/thumbnails/18.jpg)
Thank You
Mozilla Confidential