This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin started speaking German today


On Tue, Sep 13, 2011 at 09:45:37AM -0600, Eric Blake wrote:
> On 09/09/2011 08:59 AM, Corinna Vinschen wrote:
> >On Sep  9 13:33, Andy Koppe wrote:
> >>The 'C.UTF-8' default locale is not a bug, it was a deliberate design decision.
> >
> >Exactly.  And it has been discussed a lot on the cygwin-apps mailing
> >list.
> >
> >And above all, there *is* an official way for the user to align the
> >Cygwin locale with the Windows locale, see the -s and -u options
> >of the locale(1) command:
> >
> >   http://cygwin.com/cygwin-ug-net/using-utils.html#locale
> 
> On 09/09/2011 09:09 AM, Corinna Vinschen wrote:
> >> OK, then the following four facilities are needed in Cygwin.
> >>
> >> 1) We need the name of the locale which is in effect when the user has
> >>     not specified environment variables.
> >
> > In Fedora, for instance, the fallback is what is set as system default
> > in /etc/sysconfig/i18n.
> >
> > In Cygwin the fallback is the system default set in
> /etc/profile.d/lang.sh
> > or /etc/profile.d/lang.csh.
> >
> > Why should libintl use anything else on Cygwin, but not on Linux?
> >
> 
> Given this, I think the bug is in cygwin for having base files
> /etc/profile.d/lang.{sh,csh} which hardcode LANG to C.UTF-8 instead
> of using locale -s -u to default LANG to the preferred Windows
> settings. Libintl should NOT be second-guessing an explicit setting
> of LANG, but cygwin should NOT be explicitly setting LANG to C.UTF-8
> in its default startup scripts without any regards to the Windows
> settings.  Whether setlocale(LC_ALL,"") returns C.UTF-8 or a
> Windows-appropriate string _when LANG is undefined_ is still worth
> solving, but right now, an out-of-the-box cygwin installation
> _always has LANG defined_ by the default startup scripts.  So our
> first focus should be to get that setting of LANG fixed to honor
> Windows, and to teach libintl that when LANG is set we really meant
> it.

WRT the base-files package, would it be acceptable/does it make sense to set:

test -z "${LC_ALL:-${LC_CTYPE:-$LANG}}" && export LANG=${locale -sU}

in /etc/profile.d/lang.sh and

if ( $?LC_ALL == 0 && $?LC_CTYPE == 0 && $?LANG == 0 ) setenv LANG = `locale -sU`

in /etc/profile.d/lang.csh, both as proposed, _and_ a (possibly) commented-out

test -z "${LC_ALL:-${LC_CTYPE:-$LANG}}" && export LANG=${locale -uU}

in the skeletal .bash_profile and .profile (i.e. both system-wide and
user defined settings)?

-- 
Huella de clave primaria: AD8F BDC0 5A2C FD5F A179  60E7 F79B AB04 5299 EC56

Attachment: signature.asc
Description: Digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]