Set formats related LC_* variables when applicable instead of LC_MESSAGES, LC_CTYPE and LC_COLLATE
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Translations |
Fix Released
|
Undecided
|
Unassigned | ||
accountsservice (Ubuntu) |
Fix Released
|
High
|
Martin Pitt | ||
language-selector (Ubuntu) |
Fix Released
|
High
|
Martin Pitt | ||
localechooser (Ubuntu) |
Fix Released
|
High
|
Colin Watson | ||
ubiquity (Ubuntu) |
Fix Released
|
High
|
Colin Watson |
Bug Description
Up to Oneiric the LANG environment variable has in Ubuntu been considered to represent the regional formats. Hence, in cases where a user wants to use different locales for language respective formats, LC_MESSAGES, LC_CTYPE and LC_COLLATE has been set explicitly. Consequently the installer has set those three variables in /etc/default/locale when applicable.
In Precise we are making a conceptual change, meaning that LANG now is considered to represent the display language, and the formats related LC_* variables are set explicitly when needed to distinguish between language and formats. As mentioned at bug #590108, this is the rationale for the switch:
* It's how GNOME does it in g-c-c, and considering that we are moving
towards replacing the language-selector UI with "Region and Language"
in g-c-c, it would eliminate one of the current differences in
approach between Ubuntu and GNOME.
* There seems to be quite a few desktop apps/tools, or parts of apps,
that ignore both LANGUAGE and LC_MESSAGES for the display language,
and let LANG solely determine the display language. (My LANG usually
contains a Swedish locale, while my display language is English, and
I often see Swedish translations in dialogs and menus.)
* Some distributions may prefer the simplistic approach to equal l10n
with simply picking a locale name and assigning it to LANG. If we
would switch to let LANG represent the language, the LANG variable
would be used for language all over, which would reduce the risk for
confusion with respect to locale/language settings.
Changes reflecting this switch have recently been uploaded to accountsservice and language-selector. Previous settings in /etc/default/locale and /etc/environment of LC_MESSAGES, LC_CTYPE and LC_COLLATE are deleted via accountsservice
http://
For fresh installs that code is skipped, so it's important that the corresponding changes are made to the installer:
In cases when the user makes choices at installation meaning that the
locale for display language differs from the locale for regional
formats, the installer should set LC_NUMERIC, LC_TIME, LC_MONETARY,
LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT and
refrain from setting LC_MESSAGES, LC_CTYPE and LC_COLLATE.
tags: | added: rls-p-tracking |
tags: | removed: rls-p-tracking |
tags: | added: rls-p-tracking |
Changed in ubuntu-translations: | |
status: | New → Fix Released |
The eight formats related LC_* variables above are currently written to /etc/default/locale and /etc/environment by language-selector, and to ~/.pam_environment by accountsservice. One question is whether it's appropriate to 'pollute' the environment with all of them.
In GNOME these environment variables are set via g-s-d:
LC_TIME
LC_NUMERIC
LC_MONETARY
LC_MEASUREMENT
This is the set of formats related variables that I personally find most important:
LC_TIME
LC_NUMERIC
LC_PAPER
Or maybe it's unnecessary to exclude some of them, since the possibly redundant variables do no harm.