language-selector-karmic

Summary

  1. language-pack splits:
    • The language pack for Chinese will be split into two, Simplified Chinese and Traditional Chinese.
  2. UI changes:
    • Users will be able to specify which fallback languages they want to use in case their applications are not fully translated into their main language.
    • Users will be able to manipulate the LANG and LANGUAGES locale specific environment variables separately through the GUI.
    • Users will be able to set their preferred IME (ibus, scim, nabi, etc.) through the GUI.
  3. language-support metapackages:
    • The language-support-extra-* metapackage will go away.
    • The language-support-translations-* metapackage will be replaced with a function to selectively install additional localisation packages, depending on which software is installed (e.g. openoffice.org, thunderbird, etc.).

Release Note

TBD

Rationale

  1. language-pack splits:
    • Simplified Chinese and Traditional Chinese are two different scripts, resulting to msgids being translated twice, once into Simplified Chinese and once into Traditional Chinese. Therefor it doesn't make sense to keep both translations in the same package. By splitting the package, users would typically save half the space, because they only need one translation, not both. This would also make it easier to prepare localised CD images, since the language-packs will only occupy half the space of what they do now.
  2. UI changes:
    • The list of fallback languages is currently configured in a config file in language-selector. This configuration provides some sane default fallback settings for a number of languages. Since those settings might not satisfy every user, we should provide an easy to use interface to change it. KDE and Firefox contain this possibility already. Some users prefer to use their desktop in a different language than which is spoken in their country of residence. E.g. a user might live in Thailand, but prefers to use his desktop in English. Since the main English locale (en_US) uses the imperial system, but the user prefers to use system used in his country of residence, it would be useful to have a GUI to set this information. The information then gets stored in the locale specific environment variables (e.g. LANG=th_TH and LANGUAGE=en_US). We will change the default IME to be iBus in Karmic. However, some users prefer to use a different IME. Therefor we should provide a possibility for the users to select their preferred IME in the GUI.
  3. language-support metapackages:
    • language-support-extra is a metapackage, which lives in universe and pulls packages which might be interesting for the user when adding that language. Since this metapackage is not essential and could confuse users, it should be removed. If the user needs additional applications, there are other ways to find them. language-support-translations contains additional translations for packages, which are either not in main or not handled through Rosetta and language-packs. Since we cannot distinguish which desktop flavor the user uses and only install appropriate packages based on the applications the user has installed, it was decided to abolish this metapackage in favor of a more fine grained control over which additional translation packages get installed.

Design

language-selector-karmic.jpg

  • For the IME selection, add a combobox, with the available choices, depending on which packages the user has installed. E.g. "As my IME application, use: (ibus, scim, nabi, etc.).
  • Language settings:
    • system settings, like measurements, paper format, currency, etc. are set with the LANG variable (also sets the default language)
    • if the user wants his desktop in a different language, set LANGUAGE to his preferred language(s). This overrides the setting in LANG, but only for the desktop language. Everything else stays the same.
    • Fallback language settings get set in LANGUAGE, separated by colon.
    • Measurement setting basically depends on the country of residence, only one choice, no fallbacks.
    • The treeview for selecting the preferred languages, will set LANGUAGE.

Implementation

  1. language-pack split
    • langpack-o-matic will split zh into zh-hans and zh-hant
    • language-selector will get a case switch for this language code to list additional entries in the language list (Chinese (simplified), Chinese (traditional))
  2. environment variable settings
    • system wide settings go in /etc/default/locale
    • user specific settings go in ~/.profile
    • LANGUAGE (= Default language and Fallback languages, separated by colon)
    • LANG (= System settings, depending on the country of residence)
  3. IME selector
    • reads the available choices from /etc/X11/xinit/xinput.d/
    • reads the current user setting through im-switch (already implemented)
    • sets the user setting through im-switch (already implemented) and gives the user's choice as argument (to do).
  4. language-support-translations
    • package trigger set by packages with separate l10n packages
    • triggers update-notifier
    • message shows a link to run language-selector
    • language-selector detects the missing translation packages and installs them

Test/Demo Plan

TBD


CategorySpec

language-selector-karmic (last edited 2009-08-06 10:51:39 by 89)