Kaynağa Gözat

Add C locale as alias of EN for GUI language switcher

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@52589 15284696-431f-4ddb-bdfa-cd5b030d7da7
Maris Nartiss 12 yıl önce
ebeveyn
işleme
577db6d50b

+ 1 - 0
gui/wxpython/core/settings.py

@@ -58,6 +58,7 @@ class Settings:
         
         try:
             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')

+ 10 - 2
gui/wxpython/gui_core/preferences.py

@@ -165,11 +165,17 @@ class PreferencesBaseDialog(wx.Dialog):
         Posts event EVT_SETTINGS_CHANGED.
         """
         if self._updateSettings():
-            if self.settings.Get(group = 'language', key = 'locale', subkey = 'lc_all') == 'system':
+            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:
@@ -449,6 +455,8 @@ class PreferencesDialog(PreferencesBaseDialog):
                                 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,