User:AxelHecht/Mobile Shipping Vehicles
We're currently shipping 15 out of ~60 available localizations on Firefox Mobile. This page enumerates the technical possibilities to close that gap.
Full Localization
One all-locales build
Ship a single build with all locales through the google play store.
Pros:
- straightforward to build and distribute
- mainstream update path
Cons:
- increased download size
- regressing startup time
- need to get back locale switcher
- bigger binary
Single-locale builds in google play store
Ship many single-locale builds through the google play store.
Pros:
- mostly straightforward to build and distribute
- mainstream update path
- great startup time
- choice of language at install time
Cons:
- requires different app IDs
- destroys discoverability and metrics in the google play store
- we could not recombine the populations in the future once a multi-locale is more feasible, as the app IDs cannot be changed
Single-locale builds on the web
Create our own web page to host single locale builds. We'd still have a mainstream-locales build on the google play store.
Pros:
- great startup time
- choice of language at install time
- 90-10 hitrate for languages on google play store, unique presence for ratings and discovery
- this is an already tested scenario
- we can recombine with the Google Play product in the future if desired, which means that if updates fail, we can still fall back on Google Play
Cons:
- Hard to discover long tail of languages
- Install experience requires developer settings
- Update experience shows tons of scary popups (one more than required?)
- Requires version to be in the future for web-installed builds to not update to multi-locale on the store
Partial Localization
The solutions below are variations of the status quo, we're not accepting contributions to 45+ localizations of Firefox for Android. We still have a few knobs to turn, with pros and cons. The solutions here codify that and get the set of localizations to manage down to those we're shipping.
Full Aurora localization
We'd keep all localizations on aurora, and disable anything but the multi-locale ones for beta during migration. Aurora would be the regular Aurora experience, though propably with a download page. The aurora builds wouldn't be promoted beyond the usual aurora coverage, though community sites might emphasize them.
Pros:
- Bad update experience is restricted to Aurora, Firefox branding only with best startup and install experience
- Additional locales for the multi-locale builds can be fielded from the Aurora group
Cons:
- Shipping Firefox doesn't have the aurora channel
- Sign-offs would only start with the first beta
- Initial Beta releases hardly localized
- mxr queries to search for common problems show a lot of data we don't care about
Fully restricted to multi-locale
We'd disable all locales not in the multi-locale builds, and treat the 15 in the multi-locale build just as any other product on the trains.
Pros:
- Shipping Firefox has both the Aurora and Beta channel
- mxr queries inform about what we release
Cons:
- Closed to community contributions, disempowerment of the community
- no ecosystem to build out additional localizations for the multi-locale build
Non-solutions
In this section, we're keeping track of proposal, which are believed to not have technical implementations
Single-locale builds in "mozilla store"
Create our own market implementation to host single locale builds. We'd still have a mainstream-locales build on the google play store.
Pros:
- Full control over install experience
- great startup time
- choice of language at install time
- 90-10 hitrate for languages on google play store, unique presence for ratings and discovery
Cons:
- Hard to discover long tail of languages
- Have to build a store
Unknowns:
Hopefully folks with experience on the amazon store can answer some of these and sort them into pros and cons.
- How to build a store
- AppIDs
- Version requirements
- Update experience
Language packs
Language packs work on the gecko side of things, but not on Android. See [1] for a discussion, which hasn't turned up technical implementations so far.
If doing a native-java implementation of java, with forking the layout exploders or postprocessing them, we might have a chance, but that's very speculative.