18
Continuous Localization

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

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

Mozilla Confidential

<resources>

<string name="app_name">Two Strings</string>

<string name="textView1">one string" with &quot; 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

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

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

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

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

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

Thank You

Mozilla Confidential