[GRASS-SVN] r53041 - in grass/branches/releasebranch_6_4/gui/wxpython: core gui_core
svn_grass at osgeo.org
svn_grass at osgeo.org
Sat Sep 1 01:13:25 PDT 2012
Author: marisn
Date: 2012-09-01 01:13:25 -0700 (Sat, 01 Sep 2012)
New Revision: 53041
Modified:
grass/branches/releasebranch_6_4/gui/wxpython/core/settings.py
grass/branches/releasebranch_6_4/gui/wxpython/gui_core/preferences.py
Log:
Better language switching in wxgui. Backport of r52589 r52582 r52548 and r52517. Requested by #1699
Modified: grass/branches/releasebranch_6_4/gui/wxpython/core/settings.py
===================================================================
--- grass/branches/releasebranch_6_4/gui/wxpython/core/settings.py 2012-09-01 08:06:41 UTC (rev 53040)
+++ grass/branches/releasebranch_6_4/gui/wxpython/core/settings.py 2012-09-01 08:13:25 UTC (rev 53041)
@@ -54,25 +54,20 @@
def _generateLocale(self):
"""!Generate locales
"""
- # collect available locales
- self.locs = list(set(locale.locale_alias.values()))
- self.locs.append('en_GB.UTF-8')
- self.locs.sort()
+ import os
try:
- loc = list(locale.getdefaultlocale())
- except ValueError, e:
- sys.stderr.write(_('ERROR: %s\n') % str(e))
- return 'C'
+ self.locs = os.listdir(os.path.join(os.environ['GISBASE'], 'locale'))
+ self.locs.append('en') # GRASS doesn't ship EN po files
+ self.locs.sort()
+ # Add a default choice to not override system locale
+ self.locs.insert(0, 'system')
+ except:
+ # No NLS
+ self.locs = ['system']
- if loc[1] == 'UTF8':
- loc[1] = 'UTF-8'
- code_loc = "%s.%s" % (loc[0], loc[1])
- if code_loc in self.locs:
- return code_loc
-
- return 'C'
-
+ return 'system'
+
def _defaultSettings(self):
"""!Define default settings
"""
Modified: grass/branches/releasebranch_6_4/gui/wxpython/gui_core/preferences.py
===================================================================
--- grass/branches/releasebranch_6_4/gui/wxpython/gui_core/preferences.py 2012-09-01 08:06:41 UTC (rev 53040)
+++ grass/branches/releasebranch_6_4/gui/wxpython/gui_core/preferences.py 2012-09-01 08:13:25 UTC (rev 53041)
@@ -162,11 +162,21 @@
Posts event EVT_SETTINGS_CHANGED.
"""
if self._updateSettings():
+ lang = self.settings.Get(group = 'language', key = 'locale', subkey = 'lc_all')
+ if lang == 'system':
+ # Most fool proof way to use system locale is to not provide any locale info at all
+ self.settings.Set(group = 'language', key = 'locale', subkey = 'lc_all', value = None)
+ lang = None
+ if lang == 'en':
+ # GRASS doesn't ship EN translation, default texts have to be used instead
+ self.settings.Set(group = 'language', key = 'locale', subkey = 'lc_all', value = 'C')
+ lang = 'C'
self.settings.SaveToFile()
self.parent.goutput.WriteLog(_('Settings saved to file \'%s\'.') % self.settings.filePath)
- lang = UserSettings.Get(group = 'language', key = 'locale', subkey = 'lc_all')
if lang:
RunCommand('g.gisenv', set = 'LANG=%s' % lang)
+ else:
+ RunCommand('g.gisenv', set = 'LANG=')
event = wxSettingsChanged()
wx.PostEvent(self, event)
self.Close()
@@ -448,6 +458,8 @@
choices = locales, name = "GetStringSelection")
if loc in locales:
elementList.SetStringSelection(loc)
+ if loc == 'C':
+ elementList.SetStringSelection('en')
self.winId['language:locale:lc_all'] = elementList.GetId()
gridSizer.Add(item = elementList,
More information about the grass-commit
mailing list