Firefox translations in Launchpad/Language packs

Registered by Jason Warner

How to build firefox translation packages in the new "rapid upstream releases" world, and how to integrate them into Launchpad translations.

Blueprint information

Chris Coulson
Martin Pitt
Series goal:
Milestone target:
Started by
Chris Coulson

Related branches



Status quo:

* Right now firefox source builds the en-US.xpi, but no other langpacks
* po2xpi is pretty much FUBAR and unmaintainable, so we want to avoid using this
* We maintain (mostly) untranslated search plugins in langpack-o-matic
* LP translations are not being used at all right now, as we have no way of integrating them, and the delta to next upstream releases is high.
* Upstream has no officially blessed translation platform, but most folks use

Approach from 11.10 on:
* Build separate l10n packages from firefox source, drop them from language-pack-*, and drop po2xpi.
* Use upstream translated search plugins instead of our copies in langpack-o-matic.
* Use Launchpad translations to translate upstream trunk only (not release branches), and send them to upstream from time to time.

Some feedback [dpm]:

* Would it not make sense to move the i18n work items from to this spec? Not a big issue, but I find it a bit confusing and it might make more sense to group all translatioins-related items in one spec.
* With this approach (enabling translations only for trunk on the upstream Firefox project in Launchpad) we're effectively disabling the translations of the source packages on each distro. Ubuntu translators tend to translate in the source packages space in Launchpad, rather than the upstream projects in Launchpad.
  - If the tools do a conversion from xpi -> po and then from po -> xpi, in a similar way than Chromium does, would it not be possible for the Firefox package to use this tools to expose the translations in Launchpad and use them through message sharing? This way translators could translate in the source packages and their translations would flow to the trunk branch in Launchpad, ready to be sent to upstream.
  - In short, adding the part for the source packages enclosed in the orange square at:
* We should provide a workflow to update the firefox-l10n-* packages at the same time we update the main language packs.

--> Chris, did you have a chance to look at the requested feedback
above? I think the main thing is that if we enable translations for
Firefox in Launchpad we should enable them for the source packages as
well. Ubuntu translators tend to translate only on$RELEASE (i.e. the source packages)
and they will probably not translate the upstream project in Launchpad
(at least unless it is sync'd very often to upstream, I would think).
You mentioned on IRC that once we've got the upstream translations repo
import and the conversion tools set up, it would not be difficult to
build the POT file in the source package, as everything should then be
in the source tarball. Maybe this + message sharing as described on the
diagram above is the way to go. Do you think we could do that?

Work items (oneiric-alpha-2):
Talk to Mozilla about using user provided translations from Launchpad:
Update firefox package to build l10n packages including search plugins: DONE
Update thunderbird to build l10n packages: DONE
Kill thunderbird-locales source package (bug 792099): DONE
Review search plugin localizations in langpack-o-matic and retain any appropriate ones in the search plugins shipped from firefox: DONE
[pitti] langpack-o-matic: Don't install XPIs/search plugins for langpacks for >= 11.10: DONE
[pitti] langpack-o-matic: Add firefox-locale-* dependency to langpack to not break translations on upgrade: DONE
[pitti] Update language-selector to install firefox-l10n-*: DONE

pitti, 2011-07-19: Moving to p series, Chris is too swamped this cycle.

seb,128, 2012-07-03: same story, low priority for q so dropping it from the target it but keep it as a "would be nice" if there is spare time for it


Work Items

Work items:
Write tool to convert Firefox translations to gettext to import in to Launchpad (lp:~chrisccoulson/+junk/mozilla-l10n-tools): INPROGRESS
Write tools to merge translations in Launchpad into a particular firefox release branch (lp:~chrisccoulson/+junk/mozilla-l10n-tools): TODO
Write tools to merge LP gettext translations with upstream trunk translations, for upstream submission: TODO
Update firefox package to build a firefox-desktop POT: TODO
[dpm] Set up LP translations for upstream firefox trunk, but no other releases/packages: BLOCKED