problem with selecting the language on the login screen



If one selects for example the language "Japanese" or "Deutsch" from
the menu of the login screen of gdm, this language name is written
exacly like this to the configuration file ~/.gnome/gdm, i.e. this
file then contains

    [session]
    last=fvwm2
    lang=Japanese

    [session]
    last=fvwm2
    lang=Deutsch

Not the capital first letter! Neither of these two is a valid locale
name. According to the contents of /usr/share/locale/locale.alias,
both should start with a lower cast first letter:

/usr/share/locale.alias:

    japanese	ja_JP.eucJP
    deutsch     de_DE.ISO-8859-1

But in slave.c, this language name with the capital first letter is
used to set the environment variable LANG:

slave.c, line 346:

    /* Set locale */
    if (!strcasecmp (language, "english"))
	setenv ("LANG", "C", TRUE);
    else
	setenv ("LANG", language, TRUE);


This causes problems for the programs started later within this
environment, because this value of LANG is unsupported and the
setlocale call fails.  For example:

    mfabian gregory:~$ LANG=Japanese gjiten

    Gdk-WARNING **: locale not supported by Xlib, locale set to C

    mfabian gregory:~/.gnome$ LANG=Japanese kterm
    Couldn't set locale: Japanese
    Couldn't set locale modifiers: @@

    mfabian gregory:~/.gnome$ LANG=Japanese netscape
    netscape: locale `Japanese' not supported by Xlib; trying `C'.

Same problem with all other programs which try to set the locale.

Can you please change this to use the correct locale aliases
in the setenv ("LANG", language, TRUE) call, according to
the list in /usr/share/locale/locale.aliases?

Thank you very much,

        Mike

-- 
Mike Fabian   <mfabian suse de>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]