Commit 946105095d62b1101200a18e28e07167a78302c6

Authored by Paulo Henrique Junqueira Amorim
1 parent 9f47af27

ADD: support internationalization, reffer ticket fix #52

Showing 2 changed files with 32 additions and 22 deletions   Show diff stats
invesalius/i18n.py
... ... @@ -17,12 +17,12 @@
17 17 # detalhes.
18 18 #--------------------------------------------------------------------------
19 19  
  20 +import ConfigParser
20 21 import locale
21   -import sys
22 22 import gettext
23 23 import os
24   -import ConfigParser
25 24  
  25 +import constants as const
26 26  
27 27 def GetLocales():
28 28 """Return a dictionary which defines supported languages"""
... ... @@ -36,11 +36,10 @@ def GetLocaleOS():
36 36 os_language = locale.getdefaultlocale()[0]
37 37 return os_language
38 38  
39   -def InstallLanguage(lang):
  39 +def InstallLanguage(language):
40 40  
41   - lang = gettext.translation('invesalius', lang_dir,\
  41 + lang = gettext.translation('invesalius', const.LANGUAGE_DIR,\
42 42 languages=[language])
43 43 lang.install()
44   - _ = lang.gettext
45   - return _
46   -
  44 + return lang.gettext
  45 +
47 46 \ No newline at end of file
... ...
invesalius/invesalius.py
... ... @@ -31,6 +31,7 @@ from session import Session
31 31 # ----------------------------------------------------------------------
32 32  
33 33 path = os.path.join(os.path.expanduser('~'), ".invesalius", "presets")
  34 +
34 35 try:
35 36 os.makedirs(path)
36 37 except OSError:
... ... @@ -44,13 +45,32 @@ import wx.lib.pubsub as ps
44 45  
45 46 class SplashScreen(wx.SplashScreen):
46 47 def __init__(self):
  48 +
  49 + session = Session()
  50 + if not (session.ReadSession()):
  51 + session.CreateItens()
  52 +
  53 + lang = session.GetLanguage()
  54 +
  55 + if not(lang):
  56 +
  57 + ldlg = lang_dlg.create(parent=None)
  58 + ldlg.Show()
  59 +
  60 + if (ldlg.ShowModal() == wx.ID_OK):
  61 + lang = ldlg.GetSelectedLanguage()
  62 + session.SetLanguage(lang)
  63 + _ = i18n.InstallLanguage(lang)
  64 + else:
  65 + _ = i18n.InstallLanguage(lang)
  66 +
  67 +
47 68 bmp = wx.Image("../icons/splash_en.png").ConvertToBitmap()
48 69 wx.SplashScreen.__init__(self, bitmap=bmp,
49 70 splashStyle=wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,
50 71 milliseconds=1500, id=-1, parent=None)
51 72 self.Bind(wx.EVT_CLOSE, self.OnClose)
52   -
53   -
  73 +
54 74 from gui.frame import Frame
55 75 from control import Controller
56 76 from project import Project
... ... @@ -77,8 +97,7 @@ class SplashScreen(wx.SplashScreen):
77 97 session.CreateItens()
78 98  
79 99 lang = session.GetLanguage()
80   - #TODO: temporary
81   - lang = "pt_BR"
  100 +
82 101 if not(lang):
83 102  
84 103 ldlg = lang_dlg.create(parent=None)
... ... @@ -88,12 +107,10 @@ class SplashScreen(wx.SplashScreen):
88 107 lang = ldlg.GetSelectedLanguage()
89 108 session.SetLanguage(lang)
90 109 i18n.InstallLanguage(lang)
  110 + self.ShowMain()
91 111 else:
92   - #i18n.InstallLanguage(lang)
  112 + i18n.InstallLanguage(lang)
93 113 self.ShowMain()
94   -
95   - #print "not....."
96   - #self.ShowMain()
97 114  
98 115  
99 116 def ShowMain(self):
... ... @@ -101,11 +118,9 @@ class SplashScreen(wx.SplashScreen):
101 118  
102 119 if self.fc.IsRunning():
103 120 self.Raise()
104   -
  121 +
105 122 class InVesalius(wx.App):
106 123 def OnInit(self):
107   - #self.main = Frame(None)
108   - #self.control = Controller(self.main)
109 124 self.SetAppName("InVesalius 3")
110 125 splash = SplashScreen()
111 126 self.control = splash.control
... ... @@ -113,10 +128,6 @@ class InVesalius(wx.App):
113 128 splash.Show()
114 129  
115 130 return True
116   -
117   - #def ShowFrame(self):
118   - # self.main.Show()
119   - # self.SetTopWindow(self.main)
120 131  
121 132 def parse_comand_line():
122 133 """
... ...