Language packs for touch devices

Registered by David Planella

Discussion and plans on how to deliver translations for the phone going forward. As a recap:

- We're shipping the desktop language packs on the phone
- This works for now, but it's suboptimal in the sense that:
  - the desktop language packs include translations that will never be shipped on the phone (e.g. Gedit, Rhythmbox, etc.) and are simply taking up space
  - there is no easy way to install new languages other than setting the image to RW and installing the corresponding language packs. While this is not the best user experience, it does not help us in motivating translation teams to provide translations, either.

A possible approach going forward:
- Create a separate set of touch language packs that include only the translations of the packages from the touch seeds. We're estimating that each of these packages would be quite small in size.
- Ship "all languages", that is, a bigger subset of language packs that provides more language coverage. This would not be absolutely all languages, but we can define the criteria (e.g. all languages with over 90% translation completion)

Martin Pitt has put together the first set of these language packs following this approach, and we'd like to show that work and discuss the next steps.

Blueprint information

David Planella
Needs approval
Series goal:
Accepted for utopic
Good progress
Milestone target:
milestone icon ubuntu-14.08
Started by
Martin Pitt

Related branches



= Status of touch specific langpacks =
- A well-covered language will come out as ~ 800 kB deb size (i. e. compressed), compared to the ~ 10 MB (compressed) that core+gnome require now.

- Wrt. Installed-Size, language-pack-touch-de is 3.3 MB, compared to language-pack-de (12 MB) plus language-pack-gnome-de (17 MB).

- If we put the limit to >= 50% completed translations we'll get 24 touch langpacks for installing by default. I. e. we'd spend 65 MB (uncompressed) for all translation support, which is similar to two to three "all ubuntu" langpacks that we install at the moment.

- On our current phone we spend 140 MB (uncompressed) for only 5 languages.

Touch packages:
Built with current langpack-o-matic:
  ./import --class touch --pkglist maps/pkglist-touch-utopic -t 50 ubuntu-utopic-translations.tar.gz utopic /tmp/lps

= translation domain priorities =

Priorities: 0 - 10000, comes from LP
- all templates have priority set
- definition in
- only include priority >= 1500

This avoids including large and relatively uninteresting translations like "gdb", and changes the statistics quite a bit. With a cutoff point of ">= 70% translated" we now get 28 languages with ~ half the size from above.

= spell checkers =
We install some by default already: ar, da, de-de, en-us, fr, fr-classical, hu, sv-se
We are missing at least Spanish and probably want some more
We either need to install them by default (most practical, they aren't too big), or clickify them for on-demand installation and then provide machinery to install them when selecting a different lang

We can drop -hu (3.5 MB) as we don't ship the Hungarian langpack
For fully matching the langpacks that we ship, we need to add (all installed-size)
  myspell-cs (3.8 MB)
  myspell-es (1.0 MB)
  hunspell-gl-es (0.9 MB)
  myspell-it (1.4 MB)
  myspell-nl (2.4 MB)
  myspell-pl (4.6 MB)
  myspell-pt-pt (0.5 MB)
  myspell-pt-br (5.6 MB)
  hunspell-ru (5.4 MB)
  myspell-sk (2.0 MB)
  myspell-sl (2.9 MB)
  myspell-uk (3.0 MB)

  Total: 33.5 MB, minus 3.5 MB for -hu: net + 30 MB installed size

= universe sources which we need to mark with X-Ubuntu-Use-Langpack: yes =


Work Items

Work items:
[pitti] reduce language pack list to only include domains with priority >= 1500: DONE
[pitti] Create a list of packages that need to be marked as X-Ubuntu-Langpacks: yes: DONE
[pitti] create a dictionary → size list and total size, then see if we want to install the other ones by default: DONE
[pitti] verify that X-Ubuntu-Use-Langpack packages appear in autobuilt -touch langpacks: DONE
[pitti] update seeds to use touch langpacks: DONE
[pitti] mark universe touch packages for using langpacks: INPROGRESS

This blueprint contains Public information 
Everyone can see this information.