JauntyLanguageSelectorImprovements

Revision 19 as of 2009-01-04 10:26:32

Clear message

Summary

Redesign the GUI to make the language management more userfriendly. Add more functionality to cover common use cases.

Release Note

TBD

Rationale

Currently there is only one combobox which contains a list of all available languages and the installed languages only have a checkbox set. This is no convenient as users need to scrool through the whole list in order to find out which languages are currently installed. Additionally, users have requested additional features, like detailed locale settings and user based language settings instead of only providing the system wide settings. The support for complex characters checkbox should probably be integrated with the keyboard setting dialog in the upstream Gnome / KDE configuration tools.

Use Cases

  • Abdul and Ping-An share a computer and prefer to have different language settings for their desktops. GDM provides the possibility to choose the language per user profile, but since this is hidden in the Options menu, Abdul and Ping-An don't know about this functionality. Instead they found the system setting in language-selector. However, since this sets the system wide language, they are confused and would like to have the possibility to set their preferred language for their session only.
  • Bob lives in Finland, but prefers his desktop to be in English. Since the English locales don't use the metric system, he would like to have more fine grained control over his environment variables and set the relevant ones to use fi_FI instead.
  • A Brazilian user found that not all applications are fully translated into Brazilian Portuguese. Instead a fallback to general Portuguese is used. Since Brazilian Portuguese differs a lot from Portuguese spoken in Portugal, he would prefer US English as a fallback instead.
  • Choose language for new accounts and login screen (technical: system-wide $LANG) from the set of installed locales (created by langpacks)
  • Install support for more languages (install language-pack-XX and language-support-XX, which generates all locales for that language)
  • Remove support for languages
  • (currently) enable/disable support for complex languages -> should perhaps go to the keyboard prefs

Design

A non-root mode needs to be added so that people can modify personal settings.

Implementation

UI Changes

General GUI overhaul:

  • Language list
    • need to scroll through the whole list to see which languages are already installed
    • ideas how to improve this:
      • have two lists, one for available languages and one for installed languages. Move entries between the two with Add/Remove buttons or arrow buttons.
      • have a list with installed languages and two buttons for Add and Remove. Add pops up a new window with available languages, Remove just removes the currently selected entry from the installed languages.
      • need to integrate the Details selection box
      • mpt to provide ideas
  • currently perceived UI problems:
    • list is serving two functions: show what is installed, and what you might want to install
    • language "support" should be just "Languages"; "support is over-used and confusing
    • "default" language is technical and confusing; drop the bold label "default language" and drop "default" from the long label

Needed funtionality:

  • combobox to list all currently installed languages
    • list currently installed details options per language
  • Add new language and language details
  • Remove language from the installed languages list
  • Set system language (root) -- language, region, variation
  • Set user language -- language, region, variation
  • manipulate system locale variables (root)
  • manipulate user locale variables
  • give the user the choice over the fallback language for his locale.

Code Changes

  • standardize the notation of language entries in language-selector and gdm
    • provide translated and native entries next to each other.
    • take the native names from the translated iso-codes package
  • per user language environment: set "Language=xx_YY.UTF-8" in ~/.dmrc
  • Store the LC_* settings into ~/.locales
  • Source ~/.locales into ~/.profile
  • If variables are already set in the environment, but ~/.profile does not include ~/.locales, just display the values, but do not allow changing them
  • langpack split (also affects langpack-o-matic):
    • split Chinese into Simplified and Traditional Chinese
    • split Portuguese into Portuguese and Brazilian
  • programatic interface to install missing langpacks/support stuff to make installer/oem install happy - they set something like "install this at the next opportunity"
    • dpkg --set-selections, have either apt or update-manager honour this

from bug reports

- Language selector should allow selecting newly marked languages as the default immediately (bug #138224)

- Language selector does not suggest installing support for the default language (bug #289165)

- Language selector only suggests installing partial language support for the default language (bug #311228)

  • when update-notifier becomes available it could notice that the missing language
    • packages can now be installed now and prompt for it (basicly dpkg --set-selections, apt-get dselect-upgrade)
  • update-manager/python-apt should check the dselect database
  • make sure it works in kde
  • From https://wiki.ubuntu.com/BetterDesktopCDLanguageSupport:

    • Installer could suggest enabling Internet connection and downloading language packs automatically, when a non-English language is selected [note: it has been noted by the ubiquity developer that post-install suggestion, now implemented, is preferable]

Test/Demo Plan

TBD


CategorySpec