From: Jérôme <rom...@ya...> - 2010-03-31 14:37:38
|
> Could this be a way to solve this request ? Request sounds like a lang selector ! Your patch seems to revert a previous change : to move this type of code from gramps.py to TransUtils.py ... Not tested, but : 1. on src/gui/configure.py and src/config.py, to set the lang selector * src/config.py register('interface.lang', 0) * src/gui/configure.py # langs: langs = [_("English") ,_("German"), _("French")] obox = gtk.combo_box_new_text() map(obox.append_text, langs) active = config.get('interface.lang') obox.connect('changed', self.lang_changed) lwidget = BasicLabel("%s: " % _('Language')) table.attach(lwidget, 0, 1, row, row+1, yoptions=0) table.attach(obox, 1, 3, row, row+1, yoptions=0) row += 1 2. set locale on gramps.py : _LANG_MAP = { _("English") : "C" , _("German") : "de_DE.UTF-8", _("French") : "fr_FR.UTF-8" } locale.setlocale(locale.LC_ALL,'value_of_config.get("interface.lang")') jerome a écrit : > Helge, > >> if Gramps uses the locale of the OS to select the language > > Gramps uses the locale of the OS, right ? > > LANG=fr_FR.UTF-8 > LC_MESSAGES="fr_FR.UTF-8" > LC_TIME="fr_FR.UTF-8" ? > LC_NUMERIC="fr_FR.UTF-8" ? > LC_CTYPE="fr_FR.UTF-8" ? > etc ... > > I had also used Gramps under a Windows (XP SP1), and have tried to help some people to set the prefered lang. But in some case, it was easy or natural (provided by installer and default installation) and sometimes this has never worked, it worked on some Windows version, UAC blocked variable on command line ! > > We also need to set two values, the LANG variable for the program and the country code for Relationships (de, sv, nl, etc ...) on the LANGUAGE variable. > > Maybe I am wrong, but Windows OS are not designed for be the same for all countries, isn't it ? There is no location for translations, no way to switch from german to english version. > > And I also do not often get the same behaviour between two Windows XP in french. Maybe for not be able to get a license in Senegal and to use it in Canada or France ? > > We can try to make a lang selector, but I do not know how you will know all possible configuration ? We can have a look at the way used for the Ahnentafel report (TransUtils/libtranslate.py), but this will need some testing under Windows OS. > > > Regards, > > Jérôme > > > --- En date de : Mar 30.3.10, Helge@GRAMPS <Helge.Privat@Kabelmail.de> a écrit : > >> De: Helge@GRAMPS <Helge.Privat@Kabelmail.de> >> Objet: [Gramps-windows] automatic selection of language for Gramps >> À: gra...@li... >> Date: Mardi 30 mars 2010, 23h13 >> >> Greetings, >> for a non-developer Windows user it would be very helpful >> if Gramps uses the >> locale of the OS to select the language (see >> http://old.nabble.com/Wrong-Language-on-Win-XP-ts28018607.html >> "Wrong >> Language on Win XP" ) >> I did provide a mock-up (for gramps.py based on trunk) >> running well on Vista >> (Home, German) to do this job. >> Could this be a way to solve this request? (May be it's not >> the best way, >> especially for other OS) >> http://old.nabble.com/file/p28088579/gramps_mock-up.patch >> gramps_mock-up.patch >> -Helge >> >> -- >> View this message in context: http://old.nabble.com/automatic-selection-of-language-for-Gramps-tp28088579p28088579.html >> Sent from the GRAMPS - Windows mailing list archive at >> Nabble.com. >> >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, >> find bugs >> proactively, and fine-tune applications for parallel >> performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> Gramps-windows mailing list >> Gra...@li... >> https://lists.sourceforge.net/lists/listinfo/gramps-windows >> > > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Gramps-windows mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-windows > |
From: Josip <jo...@pi...> - 2010-03-31 16:51:54
|
On 31.03.2010 16:37, Jérôme wrote: >> Could this be a way to solve this request ? > > Request sounds like a lang selector ! > > Your patch seems to revert a previous change : > to move this type of code from gramps.py to TransUtils.py ... > > > Not tested, but : > > 1. on src/gui/configure.py and src/config.py, to set the lang selector > > * src/config.py > register('interface.lang', 0) > > * src/gui/configure.py > # langs: > langs = [_("English") ,_("German"), _("French")] > obox = gtk.combo_box_new_text() > map(obox.append_text, langs) > active = config.get('interface.lang') > obox.connect('changed', self.lang_changed) > lwidget = BasicLabel("%s: " % _('Language')) > table.attach(lwidget, 0, 1, row, row+1, yoptions=0) > table.attach(obox, 1, 3, row, row+1, yoptions=0) > row += 1 > > 2. set locale on gramps.py : > _LANG_MAP = { > _("English") : "C" , > _("German") : "de_DE.UTF-8", > _("French") : "fr_FR.UTF-8" > } > locale.setlocale(locale.LC_ALL,'value_of_config.get("interface.lang")') > > In windows there are not "fr_FR.UTF-8" and we can set that in LANG var as it is not used by system. Expanded for win support: _LANG_MAP = {"French" : ("fr_FR.UTF-8", "French_France")} # set locale to French try: # for linux and like locale.setlocale(locale.LC_ALL, _LANG_MAP["French"][0]) except locale.Error: # for win locale.setlocale(locale.LC_ALL, _LANG_MAP["French"][1]) -- Josip |
From: jerome <rom...@ya...> - 2010-03-31 17:09:37
|
There was also some other limitations on previous given sample : 1. 'value_of_config.get' will not work, it was just an illustration. 2. I missed def lang_changed() but it is the same way as the others selectors on src/gui/configure.py Jérôme --- En date de : Mer 31.3.10, Josip <jo...@pi...> a écrit : > De: Josip <jo...@pi...> > Objet: Re: [Gramps-devel] [Gramps-windows] Re : automatic selection of language for Gramps > À: rom...@ya... > Cc: gra...@li..., "Helge@GRAMPS" <Helge.Privat@Kabelmail.de>, "Gramps developers" <gra...@li...> > Date: Mercredi 31 mars 2010, 18h48 > On 31.03.2010 16:37, Jérôme wrote: > >> Could this be a way to solve this request ? > > > > Request sounds like a lang selector ! > > > > Your patch seems to revert a previous change : > > to move this type of code from gramps.py to > TransUtils.py ... > > > > > > Not tested, but : > > > > 1. on src/gui/configure.py and src/config.py, to set > the lang selector > > > > * src/config.py > > register('interface.lang', 0) > > > > * src/gui/configure.py > > # langs: > > langs = > [_("English") ,_("German"), _("French")] > > obox = > gtk.combo_box_new_text() > > > map(obox.append_text, langs) > > active = > config.get('interface.lang') > > > obox.connect('changed', self.lang_changed) > > lwidget = > BasicLabel("%s: " % _('Language')) > > > table.attach(lwidget, 0, 1, row, row+1, yoptions=0) > > table.attach(obox, > 1, 3, row, row+1, yoptions=0) > > row += 1 > > > > 2. set locale on gramps.py : > > _LANG_MAP = { > > > _("English") : "C" , > > > _("German") : "de_DE.UTF-8", > > > _("French") : "fr_FR.UTF-8" > > > } > > > locale.setlocale(locale.LC_ALL,'value_of_config.get("interface.lang")') > > > > > > In windows there are not "fr_FR.UTF-8" and we can set that > in LANG var > as it is not used by system. > Expanded for win support: > > _LANG_MAP = {"French" : ("fr_FR.UTF-8", "French_France")} > # set locale to French > try: > # for linux and like > locale.setlocale(locale.LC_ALL, > _LANG_MAP["French"][0]) > except locale.Error: > # for win > locale.setlocale(locale.LC_ALL, > _LANG_MAP["French"][1]) > > > -- > Josip > |
From: Josip <jo...@pi...> - 2010-03-31 17:23:58
|
On 31.03.2010 19:09, jerome wrote: > There was also some other limitations on previous given sample : > > 1. 'value_of_config.get' will not work, it was just an illustration. > :-) I now and i didn't include it in example > 2. I missed def lang_changed() > but it is the same way as the others selectors on src/gui/configure.py > I just show windows way to set locale. But it will be nice to have something like that included because in windows translation don't works out-of-box and most user are not comfortable with starting it from console or writing their own launcher script -- Josip |
From: Benny M. <ben...@gm...> - 2010-04-01 09:50:09
|
2010/3/31 Josip <jo...@pi...> > On 31.03.2010 19:09, jerome wrote: > > There was also some other limitations on previous given sample : > > > > 1. 'value_of_config.get' will not work, it was just an illustration. > > > :-) I now and i didn't include it in example > > 2. I missed def lang_changed() > > but it is the same way as the others selectors on src/gui/configure.py > > > > I just show windows way to set locale. > But it will be nice to have something like that included because in > windows translation don't works out-of-box and most user are not > comfortable with starting it from console or writing their own launcher > script > Let's back up. The orginal change Helge did to have it working is: <snip> lang = ' ' try: lang = os.environ["LANG"] except: # if LANG is not set lang = locale.getlocale()[0] if not lang: # if lang is empty/None lang = locale.getdefaultlocale()[0] os.environ["LANG"] = lang os.environ["LANGUAGE"] = lang </snip> Being able to set language via the preferences is a different mechanism which I do not like. We want the environment to contain the language. Anyway, it is not related to having Gramps in the language of windows automatically. The question to solve is in the setup_windows_gettext function of TransUtils, section 4, combined with the setlocale >From the code of Helge, it seems that windows does now via locale.getdefaultlocale()[0] what the correct value of LANG should be, and that it can be set, after which setlocale would work. So, does this not mean in gramps.py, line 62, we can test on constfunc.win(), and do the above?? Benny > > > -- > Josip > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Gramps-devel mailing list > Gra...@li... > https://lists.sourceforge.net/lists/listinfo/gramps-devel > |
From: Josip <jo...@pi...> - 2010-04-01 12:43:22
|
On 01.04.2010 11:50, Benny Malengier wrote: > > The question to solve is in the setup_windows_gettext function of > TransUtils, section 4, combined with the setlocale > From the code of Helge, it seems that windows does now via > locale.getdefaultlocale()[0] what the correct value of LANG should be, > and that it can be set, after which setlocale would work. > > So, does this not mean in gramps.py, line 62, we can test on > constfunc.win(), and do the above?? > I don't know where should be written, only know that must be done before any call to gettext (before full path to translations is computed) otherwise will not work -- Josip |
From: guylinton <guy...@gm...> - 2010-04-01 13:18:38
|
Please also bear in mind that locale does not seem to be (usefully) set in Mac OS X (at least not in 10.4.11). >>> os.environ["LANG"] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/UserDict.py", line 22, in __getitem__ raise KeyError(key) KeyError: 'LANG' >>> locale.getdefaultlocale() (None, 'mac-roman') Most of the code in Gramps which use locale seems to have various work-arounds to cater for missing information - one such fix was recently put in for me in one of the start-up routines. Is there not an os independent method for setting language in one of the os modules (I haven't looked), but Mac OS certainly has preferences for language (though I am not sure how I manage to set British English (or English as we call it) rather than the US variant - but textedit does spell-check in British English). -- View this message in context: http://old.nabble.com/Re%3A--Gramps-windows--Re-%3A-automatic-selection-of-language-for-Gramps-tp28096844p28107787.html Sent from the GRAMPS - Dev mailing list archive at Nabble.com. |
From: Jérôme <rom...@ya...> - 2010-04-01 16:04:02
|
Under a console, you should get the LANG variable, no ? echo $LANG MacOS uses 'POSIX' locale. http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/locale.1.html > Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/UserDict.py Maybe something is not working on your python version. http://docs.python.org/library/locale.html guylinton a écrit : > Please also bear in mind that locale does not seem to be (usefully) set in > Mac OS X (at least not in 10.4.11). > >>>> os.environ["LANG"] > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File > "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/UserDict.py", > line 22, in __getitem__ > raise KeyError(key) > KeyError: 'LANG' > >>>> locale.getdefaultlocale() > (None, 'mac-roman') > > > Most of the code in Gramps which use locale seems to have various > work-arounds to cater for missing information - one such fix was recently > put in for me in one of the start-up routines. > > Is there not an os independent method for setting language in one of the os > modules (I haven't looked), but Mac OS certainly has preferences for > language (though I am not sure how I manage to set British English (or > English as we call it) rather than the US variant - but textedit does > spell-check in British English). > |
From: Tim L. <guy...@gm...> - 2010-04-01 18:17:35
|
On 1 Apr 2010, at 17:03, Jérôme wrote: > Under a console, you should get the LANG variable, no ? > > echo $LANG > No. The LANG environment variable is not set. (env shows no such variable) > MacOS uses 'POSIX' locale. > http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/ > Reference/ManPages/man1/locale.1.html locale says: [Thu Apr 01 19:03:59]G5:~ tim$ locale LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL="C" > >> Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ >> UserDict.py > > Maybe something is not working on your python version. > http://docs.python.org/library/locale.html > > So I don't think there is anything wrong with python. (YMMV - it may be different under different versions of Mac OS, or indeed if the user has set an environment variable!) Regards, Tim. > > guylinton a écrit : >> Please also bear in mind that locale does not seem to be >> (usefully) set in >> Mac OS X (at least not in 10.4.11). >>>>> os.environ["LANG"] >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> File >> "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/ >> python2.5/UserDict.py", >> line 22, in __getitem__ >> raise KeyError(key) >> KeyError: 'LANG' >>>>> locale.getdefaultlocale() >> (None, 'mac-roman') >> Most of the code in Gramps which use locale seems to have various >> work-arounds to cater for missing information - one such fix was >> recently >> put in for me in one of the start-up routines. >> Is there not an os independent method for setting language in one >> of the os >> modules (I haven't looked), but Mac OS certainly has preferences for >> language (though I am not sure how I manage to set British English >> (or >> English as we call it) rather than the US variant - but textedit does >> spell-check in British English). > |