[Bug 553162] Re: Set $LANGUAGE if the user picks a different locale in gdm, so that language-selector and gdm stop disagreeing

Martin Pitt martin.pitt at ubuntu.com
Wed Nov 24 09:40:16 UTC 2010


Gunnar,

finally I have some time to get back to this. I looked at your recent
gdm patch, and have some questions:

 - in language_update(), why do we need the "en" special case?

 - in the second part of language_update(), why would $GDM_LANG not be a
valid locale? this does some rather expensive things like locale -a and
grep and iterating over all available locales. So far we trusted that
$GDM_LANG was the format of a locale name, and also a valid locale (gdm
already tests that); under that assumption, couldn't we simply set
$LC_MESSAGES to $GDM_LANG?

 - in the new_language check at the bottom, I think we should
additionally check that $GDM_LANG != $LANG; for people who already have
$LANG set to $GDM_LANG (as we do in our installer by default, etc.)
there is IMHO no reason to change anything in the environment or do any
expensive operations.

 - in the final patch I'd like to replace some external program calls
(expr, grep) with internal shell constructs for efficiency; that's just
a FYI, though

Thanks!

Martin

-- 
Set $LANGUAGE if the user picks a different locale in gdm, so that language-selector and gdm stop disagreeing
https://bugs.launchpad.net/bugs/553162
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is a direct subscriber.

Status in GDM: The Gnome Display Manager: New
Status in Ubuntu Translations: Triaged
Status in “gdm” package in Ubuntu: In Progress
Status in “language-selector” package in Ubuntu: In Progress

Bug description:
Binary package hint: gdm

This is a follow-up to bug 407300, which has been fixed but a separate issue remains. I'm opening a separate task for language-selector, as it refers to the interaction between it and gdm.

The problem is basically that GDM seems to always override the LANG values set by language selector, and quite easily one can get to a situation where LANGUAGE and LANG differ and the desktop is a mixture of two languages.

Steps to reproduce (a):

 * New install, choosing Catalan in the installer
 * I log in without doing any changes to the language in GDM
 * I start System > Administration > Language support
 * I choose English there
 * I log out
 * I log back in without doing any changes in the GDM language chooser
 * My session is half English and half Catalan due to LANGUAGE=en and LANG=ca_ES.utf8 (Firefox in Catalan, gnome-panel in English, gnome-menus in Catalan).

Steps to reproduce (b):

 * Perform a full installation in English, as per http://testcases.qa.ubuntu.com/Install/NonEnglishLanguage#Installation%20Full%20Network%20Support
 * Go to System > Administration > Language Support
 * Install the Traditional Chinese language
 * Bring Traditional Chinese to the top of the list to become the main desktop language
 * Press the "Apply System-wide..." button
 * Reboot
 * When entering the session, you'll notice the desktop half translated in English, half in Chinese. The most noticeable parts shown in English are all the menus and Firefox. These applications seem to ignore the LANGUAGE variable
 * Running 'locale' on the terminal shows that LANG=en_US.UTF-8 and LANGUAGE=zh_K:en_US:en

I understand that this might be a problem in each application, as they should give LANGUAGE preference. Rather than filing a bug in each app right now, would it not make more sense to ensure that at least the first locale in LANGUAGE, the one in LANG and LC_MESSAGES are the same? (assuming it is possible to do such a thing, of course).

Also see the related bug 552664







More information about the Ubuntu-sponsors mailing list