language-selector-karmic

Differences between revisions 2 and 3
Revision 2 as of 2009-06-05 17:11:13
Size: 5579
Editor: www
Comment:
Revision 3 as of 2009-06-09 05:31:29
Size: 6265
Editor: www
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * '''Created''':  * '''Created''': 2009-06-05 by ArneGoetje
Line 37: Line 37:

== User stories ==

== Assumptions ==
   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.
Line 44: Line 42:
You can have subsections that better describe specific parts of the issue.  FIXME

 mpt, please provide some mockups for the UI changes in language-selector.
 For the fallback languages, one idea is to use a textbox and add languages to it. The topmost entry is the preferred language to use, the subsequent ones are fallback languages. In KDE it is done this way.
 For the locale environment settings, we could make it simple and let the user only choose the country of residence, paper format, measurement unit and number format (decimal separator is . or ,). Or we could expose each variable to the user and let the user choose individually.
 
 Thoughts?
Line 48: Line 52:
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:  1. language-pack split
  * langpack-o-matic will split pt into pt and pt-br and zh into zh-hans and zh-hant
  * language-selector will get a case switch for those two language codes to list additional entries in the language list (Brazilian Portuguese, Chinese (simplified), Chinese (traditional), Portuguese)
Line 50: Line 56:
=== UI Changes ===  1. environment variable settings
  * system wide settings go in /etc/default/locale
  * user specific settings go in ~/.profile
  * LANGUAGE (= Fallback languages, separated by colon)
  * LC_TIME (= Date and time formats)
  * LC_NUMERIC (= Non-monetary numeric formats)
  * LC_MONETARY (= Monetary formats -- country specific)
  * LC_PAPER (= Paper size -- US vs. European paper formats)
  * LC_ADDRESS (= Address formats and location information -- i.e. in which country are you residing?)
  * LC_TELEPHONE (= Telephone number formats -- country specific)
  * LC_MEASUREMENT (= Measurement units, metric or other)
Line 52: Line 68:
Should cover changes required to the UI, or specific UI that is required to implement this

=== Code Changes ===

Code changes should include an overview of what needs to change, and in some cases even the specific details.
 1. 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
Line 64: Line 80:
== BoF agenda and discussion ==

 * langpack split (also affects langpack-o-matic):
  * purpose is to keep language packs smaller
  * split Chinese into Simplified and Traditional Chinese
  * split Portuguese into Portuguese and Brazilian
   * Launchpad currently does not support language variations (variations are imported and exported, but are not modifyable)
 * manipulate system locale variables (root)
  * /etc/default/locale LANGUAGE variable, which controls fallback language order
  * Currently doable, but we haven't got a GUI for it
 * manipulate user locale variables
  * UI
   * hidden behind an Advanced button
   * could use UI similar to firefox which allows user to create arbitrary list of fallbacks, or, as interim step, could allow user to specify a fallback
  * need research where to put the settings in the user's home directory
* Ask for feedback on ubuntu-translators on which parameters the users normally would want to change (David)
 * Or LoCo teams
 * What do other OSs do?
* How can this be implemented on a per-user basis?
 * just like current implementation
* on the first iteration just implement LC_MESSAGE and LC_OTHERS

=== language-support-translations ===
 * package trigger set by packages with separate l10n packages
  * triggers update-notifier
  * message shows a link to run language-selector

 * language-support-extra should go away

Summary

  1. language-pack splits:
    • The language pack for Chinese will be split into two, Simplified Chinese and Traditional Chinese.
    • The language pack for Portuguese will get Brazilian Portuguese split out into a separate language pack.
  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 their locale specific environment variables 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

This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.

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. With Portuguese it's a similar case, European Portuguese and Brazilian Portuguese have different vocabulary and grammar, resulting in most strings being translated twice. A split here could also benefit the users, since they only need one translation.
  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 locales (US and GB) use the imperial system, but the user prefers to use the metric system, 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. LC_PAPER).
  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

  • FIXME mpt, please provide some mockups for the UI changes in language-selector. For the fallback languages, one idea is to use a textbox and add languages to it. The topmost entry is the preferred language to use, the subsequent ones are fallback languages. In KDE it is done this way. For the locale environment settings, we could make it simple and let the user only choose the country of residence, paper format, measurement unit and number format (decimal separator is . or ,). Or we could expose each variable to the user and let the user choose individually. Thoughts?

Implementation

  1. language-pack split
    • langpack-o-matic will split pt into pt and pt-br and zh into zh-hans and zh-hant
    • language-selector will get a case switch for those two language codes to list additional entries in the language list (Brazilian Portuguese, Chinese (simplified), Chinese (traditional), Portuguese)
  2. environment variable settings
    • system wide settings go in /etc/default/locale
    • user specific settings go in ~/.profile
    • LANGUAGE (= Fallback languages, separated by colon)
    • LC_TIME (= Date and time formats)
    • LC_NUMERIC (= Non-monetary numeric formats)
    • LC_MONETARY (= Monetary formats -- country specific)
    • LC_PAPER (= Paper size -- US vs. European paper formats)
    • LC_ADDRESS (= Address formats and location information -- i.e. in which country are you residing?)
    • LC_TELEPHONE (= Telephone number formats -- country specific)
    • LC_MEASUREMENT (= Measurement units, metric or other)
  3. 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

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.


CategorySpec

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