From: Tim L. <guy...@gm...> - 2011-06-06 15:13:07
|
On 5 Jun 2011, at 21:52, Josip wrote: > On 05.06.2011 00:51, Tim Lyons wrote: >> >> At the same time as this change, I wonder whether someone from the >> Windows >> side (Josip?) could have a look at the code that was inserted in >> TransUtils.py for revision 16386 (bug 4532). At least this code >> would now be >> removed for Mac, but it would be there for Linux. >> >> It calls getlocale before the locale has even been set, and as John >> Ralls >> says: "I'll even amplify that: Setting $LANGUAGE = $LANG is downright >> anti-social: The user may have good reason for wanting translations >> for one >> locale and formatting for another. ". >> >> At the very least if it is really essential, could this be executed >> only for >> Windows? >> > > Not really sure what version i have to check. > Patched gramps33 r17689 with patch from bug# 4962 with result of: > The patch for bug 4962 is for mac only. What I mean is that the code below seems wrong: lang = ' ' try: lang = os.environ["LANG"] except: lang = locale.getlocale()[0] if not lang: lang = '.'.join((locale.getdefaultlocale()[0], 'utf-8')) os.environ["LANG"] = lang os.environ["LANGUAGE"] = lang - it calls getlocale before the locale has been set. - It sets both LANG and LANGUAGE the same. The user may have good reason for them being different. Perhaps it would be better if the code were only implemented for Windows, and then to only set LANG if not already set and only set LANGUAGE if not already set. But even for Windows, discussion groups seem to indicate that the locale should be set automatically (i.e. the locale.setlocale in gramps.py should set the locale to something meaningful without having to set LANG before). To illustrate how all the locale settings should be independent, I have a test case with: export LC_CTYPE=nl_BE.UTF-8 export LC_COLLATE=de_DE.UTF-8 export LC_TIME=it_IT.UTF-8 export LC_MONETARY=en_US.UTF-8 export LC_MESSAGES=fr_FR.UTF-8 export LC_NUMERIC=es_ES.UTF-8 unset LANG unset LANGUAGE This displays menus and wording (gettext) in French, dates in Italian (e.g. month names). Spellchecking defaults to en (not sure why). If I set os.environ["LANG"]="en_GB.UTF-8" within Gramps, spellchecking defaults to en_GB. I will work on verifying the other settings if possible. |