Features/Jetpack/Add-on SDK Localization API and Service
Status
Add-on SDK Localization API and Service | |
Stage | On hold |
Status | ` |
Release target | ` |
Health | OK |
Status note | The full API and web service has been put on hold in favour of a simpler local API for now. |
{{#set:Feature name=Add-on SDK Localization API and Service
|Feature stage=On hold |Feature status=` |Feature version=` |Feature health=OK |Feature status note=The full API and web service has been put on hold in favour of a simpler local API for now. }}
Team
Product manager | David Mason |
Directly Responsible Individual | ` |
Lead engineer | ` |
Security lead | Dan Veditz |
Privacy lead | ` |
Localization lead | Zbigniew Braniecki |
Accessibility lead | ` |
QA lead | ` |
UX lead | ` |
Product marketing lead | ` |
Operations lead | ` |
Additional members | ` |
{{#set:Feature product manager=David Mason
|Feature feature manager=` |Feature lead engineer=` |Feature security lead=Dan Veditz |Feature privacy lead=` |Feature localization lead=Zbigniew Braniecki |Feature accessibility lead=` |Feature qa lead=` |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=` }}
Open issues/risks
`
Stage 1: Definition
1. Feature overview
The ability for localizers to localize addons is key for addons to reach Mozilla's global userbase.
Addon localization in the traditional platform is cumbersome, because addon developers must solicit localizations themselves and manually integrate them into their addon packages.
Addon localization in the SDK comprises a simple, high-level API for specifying the strings to localize, a localization service to which addons distributed by AMO are automatically submitted for localization, a web application through which localizers can localize addons, and automatic repackaging of AMO-distributed addons with new and updated localizations.
2. Users & use cases
The target audience is addon developers. The use case is an add-on developer using the Add-on SDK (either directly or via the Add-on Builder) to build an addon.
3. Dependencies
The feature depends on work to be done in the SDK, AMO, and a localization service with which AMO interacts to solicit and retrieve localizations.
4. Requirements
The feature must enable localization of addons and distribution of localized addons without requiring the developer of an addon to do anything other than identify the strings needing localization and submit the addon to AMO.
Non-goals
`
Stage 2: Design
5. Functional specification
`
6. User experience design
`
Stage 3: Planning
7. Implementation plan
A good deal of work to implement this has already been done by Gandalf - what is missing is the coordination among Jetpack, Gandalf, and AMO as was originally planned. In addition, AMO's time to work on this is very limited and perhaps too far away for us to effectively launch this feature in a timely manner. To that end, we may want to move the "pushing to the 3rd party service" side of this to the Add-on Builder.
In addition, since most of the hard work has been done, we can launch this in phases:
Phase 1: The initial step is simply to land gandalf's "Common Pool" module. This will allow devs to flag strings to translate with a _("string to translate") - When done, the dev can then upload the xpi to https://l10n.mozillalabs.com/projects/p/mozilla-jetpacks/upload/ and the strings will enter the common pool to be translated, and returned to the developer.
Phase 2: In this stage we should iterate on the l10n support, including taking a look at localizing html files (a method for hosted html as well as included html).
At the same time, we should look at adding automatic uploads to transifex directly from the Online Builder so that devs don't have to worry about doing that themselves.
Phase 3: when the AMO devs have time to implement it, we should have the automatic uploads work directly from AMO when a dev uploads his/her xpi to AMO.
8. Reviews
Security review
`
Privacy review
`
Localization review
`
Accessibility
`
Quality Assurance review
`
Operations review
`
Stage 4: Development
9. Implementation
`
Stage 5: Release
10. Landing criteria
` {{#set:Feature open issues and risks=` |Feature overview=The ability for localizers to localize addons is key for addons to reach Mozilla's global userbase.
Addon localization in the traditional platform is cumbersome, because addon developers must solicit localizations themselves and manually integrate them into their addon packages.
Addon localization in the SDK comprises a simple, high-level API for specifying the strings to localize, a localization service to which addons distributed by AMO are automatically submitted for localization, a web application through which localizers can localize addons, and automatic repackaging of AMO-distributed addons with new and updated localizations. |Feature users and use cases=The target audience is addon developers. The use case is an add-on developer using the Add-on SDK (either directly or via the Add-on Builder) to build an addon. |Feature dependencies=The feature depends on work to be done in the SDK, AMO, and a localization service with which AMO interacts to solicit and retrieve localizations. |Feature requirements=The feature must enable localization of addons and distribution of localized addons without requiring the developer of an addon to do anything other than identify the strings needing localization and submit the addon to AMO. |Feature non-goals=` |Feature functional spec=` |Feature ux design=` |Feature implementation plan=A good deal of work to implement this has already been done by Gandalf - what is missing is the coordination among Jetpack, Gandalf, and AMO as was originally planned. In addition, AMO's time to work on this is very limited and perhaps too far away for us to effectively launch this feature in a timely manner. To that end, we may want to move the "pushing to the 3rd party service" side of this to the Add-on Builder.
In addition, since most of the hard work has been done, we can launch this in phases:
Phase 1: The initial step is simply to land gandalf's "Common Pool" module. This will allow devs to flag strings to translate with a _("string to translate") - When done, the dev can then upload the xpi to https://l10n.mozillalabs.com/projects/p/mozilla-jetpacks/upload/ and the strings will enter the common pool to be translated, and returned to the developer.
Phase 2: In this stage we should iterate on the l10n support, including taking a look at localizing html files (a method for hosted html as well as included html).
At the same time, we should look at adding automatic uploads to transifex directly from the Online Builder so that devs don't have to worry about doing that themselves.
Phase 3: when the AMO devs have time to implement it, we should have the automatic uploads work directly from AMO when a dev uploads his/her xpi to AMO. |Feature security review=` |Feature privacy review=` |Feature localization review=` |Feature accessibility review=` |Feature qa review=` |Feature operations review=` |Feature implementation notes=` |Feature landing criteria=` }}
Feature details
Priority | Unprioritized |
Rank | 999 |
Theme / Goal | ` |
Roadmap | Jetpack |
Secondary roadmap | ` |
Feature list | Jetpack |
Project | ` |
Engineering team | Jetpack |
{{#set:Feature priority=Unprioritized
|Feature rank=999 |Feature theme=` |Feature roadmap=Jetpack |Feature secondary roadmap=` |Feature list=Jetpack |Feature project=` |Feature engineering team=Jetpack }}
Team status notes
status | notes | |
Products | ` | ` |
Engineering | ` | ` |
Security | sec-review-needed | dveditz |
Privacy | ` | ` |
Localization | ` | ` |
Accessibility | ` | ` |
Quality assurance | ` | ` |
User experience | ` | ` |
Product marketing | ` | ` |
Operations | ` | ` |
{{#set:Feature products status=`
|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=sec-review-needed |Feature security health=Assigned |Feature security notes=dveditz |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=` |Feature qa notes=` |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}
Existing work: