Translation

Summary

The Mobile (Mobile Core plus Mobile customized versions) user interface (Hildon, applets, and applications) will need to be translated into arbitrary sets of languages to support various distributions and ODM/OEM opportunities. The Mobile platform consists of pieces drawn from various sources, each of which may use divergent approaches to translatability. This specification should define the relevant requirements and the approach to fulfill those requirements. Approaches respecting Launchpad/Rosetta, language packs, default/installed translations, and user download/user language switching capabilities should be defined.

Release Note

(TBD)

Rationale

  • Custom distributions of Ubuntu Mobile and its applications must be buildable to support an arbitrary set of languages
  • Team needs to be able to assess status of Hildon and each application respecting translatability

Use Cases

  • An opportunity arises to provide a set of distributions, each of which targets a particular set of languages. For example, the opportunity might involve an English/Simple Chinese distribution, an English/French distro, and an English/Russian distro.
  • A user of any particular distribution decides to switch languages at run time. She should be able to tell which languages are supported on the current system and should be able to switch between them. She should also be able to download languages not currently present and switch to any of them.

Assumptions

  • A distribution will ship with a pre-installed set of languages and a pre-set language locale.
  • The current language pack download and language selection mechanism/widget in Ubuntu can be used in Mobile. This needs to be confirmed/corrected.

Use Gettext

Gnome gettext approach is the mechanism used for internationalization is Ubuntu and is therefore the required approach for Mobile.

Therefore, wherever possible, all code should use the gettext approach, including C code and Python code.

Any application not using gettext requires exceptional handling in language packs and Launchpad. Where exceptional cases exists, such as the Midbroswer, which is based on Firefox, this needs to be explicitly noted and planned for.

Note: It may prove helpful to publish wiki.ubuntu.com pages on how to use gettext in C and Python in a manner that is consistent with Launchpad and the Ubuntu translation infrastructure.

Hildon

Hildon is now using gettext for translation.

It needs to be determined whether Hildon is translated upstream (Gnome) or whether it needs to be set up in Launchpad for translation.

Note: Some hard coded strings in Hildon are tokens, not actual English words, and therefore, when presented in Launchpad, may not provide a sufficient basis from which a translator may work. On the other hand, since English translations are probably in place, it may be possible to check the English translation, see the intended meaning, and use this a the basis for translation. This will have to be tested for feasibility once Hildon is in Launchpad and set up for translation.

Applications

Applications are derived from various upstream sources that may not have implemented translatability or that may have implemented it in a manner that is inconsistent with Launchpad (that is, not using gnome gettext). Therefore the status of each application respecting translatability must be evaluated and noted. A Mobile "Application Criteria" wiki page has been put together (https://wiki.ubuntu.com/MobileAndEmbedded/UserApplicationCriteria) that includes whether the application is "set up for translation." A mobile team member is tasked with applying these criteria to each application. The full picture of required work and possible issues will not be known until this analysis is complete.

In particular, each Mobile application should be evaluated by the following:

  • Mechanism: gettext, some other mechanism, no mechanism
  • If non gettext approach, what is the Mobile solution?
  • Where translated: upstream, Launchpad, or nowhere

Known exceptional applications currently include:

  • Midbrowser, which is Firefox base and therefore uses XPI, not gettext.
  • intel Media Player and IM, which do not currently implement any translation mechanism

MobileAndEmbedded/Translation (last edited 2008-08-06 16:37:14 by localhost)