Commit 430896dc4a78f879fc48604c34dce3862e961c8c

Authored by tatiana
1 parent dedc2a7c

ENH: Translation (source code changes and mo)

.gitattributes
@@ -129,7 +129,6 @@ invesalius/gui/default_viewers.py -text @@ -129,7 +129,6 @@ invesalius/gui/default_viewers.py -text
129 invesalius/gui/dialogs.py -text 129 invesalius/gui/dialogs.py -text
130 invesalius/gui/dicom_preview_panel.py -text 130 invesalius/gui/dicom_preview_panel.py -text
131 invesalius/gui/frame.py -text 131 invesalius/gui/frame.py -text
132 -invesalius/gui/import_data_wizard.py -text  
133 invesalius/gui/import_panel.py -text 132 invesalius/gui/import_panel.py -text
134 invesalius/gui/language_dialog.py -text 133 invesalius/gui/language_dialog.py -text
135 invesalius/gui/task_exporter.py -text 134 invesalius/gui/task_exporter.py -text
invesalius/gui/data_notebook.py
  1 +#!/usr/bin/env python
  2 +# -*- coding: UTF-8 -*-
1 #-------------------------------------------------------------------------- 3 #--------------------------------------------------------------------------
2 # Software: InVesalius - Software de Reconstrucao 3D de Imagens Medicas 4 # Software: InVesalius - Software de Reconstrucao 3D de Imagens Medicas
3 # Copyright: (C) 2001 Centro de Pesquisas Renato Archer 5 # Copyright: (C) 2001 Centro de Pesquisas Renato Archer
@@ -161,7 +163,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -161,7 +163,7 @@ class MasksListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
161 wx_image.SetData(new_image.tostring()) 163 wx_image.SetData(new_image.tostring())
162 return wx.BitmapFromImage(wx_image.Scale(16, 16)) 164 return wx.BitmapFromImage(wx_image.Scale(16, 16))
163 165
164 - def InsertNewItem(self, index=0, label=_("Mask 1"), threshold="(1000, 4500)", 166 + def InsertNewItem(self, index=0, label=_("Mask"), threshold="(1000, 4500)",
165 colour=None): 167 colour=None):
166 self.InsertStringItem(index, "") 168 self.InsertStringItem(index, "")
167 self.SetStringItem(index, 1, label, 169 self.SetStringItem(index, 1, label,
@@ -232,7 +234,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin): @@ -232,7 +234,7 @@ class SurfacesListCtrlPanel(wx.ListCtrl, listmix.TextEditMixin):
232 234
233 self.InsertColumn(0, "", wx.LIST_FORMAT_CENTER) 235 self.InsertColumn(0, "", wx.LIST_FORMAT_CENTER)
234 self.InsertColumn(1, _("Name")) 236 self.InsertColumn(1, _("Name"))
235 - self.InsertColumn(2, _("Volume (mm3)")) 237 + self.InsertColumn(2, _(u"Volume (mm³)"))
236 self.InsertColumn(3, _("Transparency"), wx.LIST_FORMAT_RIGHT) 238 self.InsertColumn(3, _("Transparency"), wx.LIST_FORMAT_RIGHT)
237 239
238 self.SetColumnWidth(0, 20) 240 self.SetColumnWidth(0, 20)
invesalius/gui/default_viewers.py
@@ -86,7 +86,7 @@ class Panel(wx.Panel): @@ -86,7 +86,7 @@ class Panel(wx.Panel):
86 86
87 p3 = slice_viewer.Viewer(self, "SAGITAL") 87 p3 = slice_viewer.Viewer(self, "SAGITAL")
88 s3 = wx.aui.AuiPaneInfo().Centre().Row(1).\ 88 s3 = wx.aui.AuiPaneInfo().Centre().Row(1).\
89 - Name("Sagital Slice").Caption(_("Sagital slice")).\ 89 + Name("Sagittal Slice").Caption(_("Sagittal slice")).\
90 MaximizeButton(True).CloseButton(False) 90 MaximizeButton(True).CloseButton(False)
91 91
92 p4 = VolumeViewerCover(self) 92 p4 = VolumeViewerCover(self)
@@ -409,7 +409,7 @@ class VolumeToolPanel(wx.Panel): @@ -409,7 +409,7 @@ class VolumeToolPanel(wx.Panel):
409 d = wx.TextEntryDialog(self, _("Preset name")) 409 d = wx.TextEntryDialog(self, _("Preset name"))
410 if d.ShowModal() == wx.ID_OK: 410 if d.ShowModal() == wx.ID_OK:
411 preset_name = d.GetValue() 411 preset_name = d.GetValue()
412 - ps.Publisher().sendMessage('Save raycasting preset', 412 + ps.Publisher().sendMessage(_("Save raycasting preset"),
413 preset_name) 413 preset_name)
414 414
415 def __init_menus(self, pubsub_evt=None): 415 def __init_menus(self, pubsub_evt=None):
invesalius/gui/dialogs.py
@@ -48,7 +48,7 @@ class NumberDialog(wx.Dialog): @@ -48,7 +48,7 @@ class NumberDialog(wx.Dialog):
48 48
49 # Buttons 49 # Buttons
50 btn_ok = wx.Button(self, wx.ID_OK) 50 btn_ok = wx.Button(self, wx.ID_OK)
51 - btn_ok.SetHelpText(_("Above value will be applied.")) 51 + btn_ok.SetHelpText(_("Value will be applied."))
52 btn_ok.SetDefault() 52 btn_ok.SetDefault()
53 53
54 btn_cancel = wx.Button(self, wx.ID_CANCEL) 54 btn_cancel = wx.Button(self, wx.ID_CANCEL)
@@ -252,7 +252,7 @@ class MessageDialog(wx.Dialog): @@ -252,7 +252,7 @@ class MessageDialog(wx.Dialog):
252 self.Centre() 252 self.Centre()
253 253
254 def SaveChangesDialog__Old(filename): 254 def SaveChangesDialog__Old(filename):
255 - message = _("Save changes to %s?")%filename 255 + message = _("The project %s has been modified.\nSave changes?")%filename
256 dlg = MessageDialog(message) 256 dlg = MessageDialog(message)
257 257
258 answer = dlg.ShowModal() 258 answer = dlg.ShowModal()
@@ -291,7 +291,7 @@ def ImportInvalidFiles(): @@ -291,7 +291,7 @@ def ImportInvalidFiles():
291 291
292 def SaveChangesDialog(filename): 292 def SaveChangesDialog(filename):
293 current_dir = os.path.abspath(".") 293 current_dir = os.path.abspath(".")
294 - msg = _("Save changes to %s?")%filename 294 + msg = _("The project %s has been modified.\nSave changes?")%filename
295 if sys.platform == 'darwin': 295 if sys.platform == 'darwin':
296 dlg = wx.MessageDialog(None, "", msg, 296 dlg = wx.MessageDialog(None, "", msg,
297 wx.ICON_QUESTION | wx.YES_NO | wx.CANCEL) 297 wx.ICON_QUESTION | wx.YES_NO | wx.CANCEL)
@@ -313,7 +313,7 @@ def SaveChangesDialog(filename): @@ -313,7 +313,7 @@ def SaveChangesDialog(filename):
313 313
314 def SaveChangesDialog2(filename): 314 def SaveChangesDialog2(filename):
315 current_dir = os.path.abspath(".") 315 current_dir = os.path.abspath(".")
316 - msg = _("Save changes to %s?")%filename 316 + msg = _("The project %s has been modified.\nSave changes?")%filename
317 if sys.platform == 'darwin': 317 if sys.platform == 'darwin':
318 dlg = wx.MessageDialog(None, "", msg, 318 dlg = wx.MessageDialog(None, "", msg,
319 wx.ICON_QUESTION | wx.YES_NO) 319 wx.ICON_QUESTION | wx.YES_NO)
@@ -337,7 +337,7 @@ def ShowAboutDialog(parent): @@ -337,7 +337,7 @@ def ShowAboutDialog(parent):
337 info = wx.AboutDialogInfo() 337 info = wx.AboutDialogInfo()
338 info.Name = "InVesalius" 338 info.Name = "InVesalius"
339 info.Version = "3.a.1 - RP" 339 info.Version = "3.a.1 - RP"
340 - info.Copyright = _("(C) 2007 Renato Archer Research Centre") 340 + info.Copyright = _("(c) 2007 Center for Information Technology Renato Archer")
341 info.Description = wordwrap( 341 info.Description = wordwrap(
342 _("InVesalius is a software for medical imaging 3D reconstruction. ")+\ 342 _("InVesalius is a software for medical imaging 3D reconstruction. ")+\
343 _("Its input is a sequency of DICOM 2D image files acquired with CT or MR.\n\n")+\ 343 _("Its input is a sequency of DICOM 2D image files acquired with CT or MR.\n\n")+\
invesalius/gui/import_data_wizard.py
@@ -1,372 +0,0 @@ @@ -1,372 +0,0 @@
1 -#--------------------------------------------------------------------------  
2 -# Software: InVesalius - Software de Reconstrucao 3D de Imagens Medicas  
3 -# Copyright: (C) 2001 Centro de Pesquisas Renato Archer  
4 -# Homepage: http://www.softwarepublico.gov.br  
5 -# Contact: invesalius@cti.gov.br  
6 -# License: GNU - GPL 2 (LICENSE.txt/LICENCA.txt)  
7 -#--------------------------------------------------------------------------  
8 -# Este programa e software livre; voce pode redistribui-lo e/ou  
9 -# modifica-lo sob os termos da Licenca Publica Geral GNU, conforme  
10 -# publicada pela Free Software Foundation; de acordo com a versao 2  
11 -# da Licenca.  
12 -#  
13 -# Este programa eh distribuido na expectativa de ser util, mas SEM  
14 -# QUALQUER GARANTIA; sem mesmo a garantia implicita de  
15 -# COMERCIALIZACAO ou de ADEQUACAO A QUALQUER PROPOSITO EM  
16 -# PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais  
17 -# detalhes.  
18 -#--------------------------------------------------------------------------  
19 -import cStringIO  
20 -import wx  
21 -import widgets.foldpanelbar as fpb  
22 -import wx.lib.filebrowsebutton as filebrowse  
23 -import wx.lib.hyperlink as hl  
24 -import wx.wizard as wiz  
25 -  
26 -def getWizTest1Data():  
27 - return \  
28 -'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00t\x00\x00\x01\x04\x08\x02\  
29 -\x00\x00\x00v\xad\x87\x05\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\  
30 -\x00\x06\x06IDATx\x9c\xed\x9b\xc1\xcd\xdbF\x10FGA\xe0\xc0\x07]\x048M\xa8\x01\  
31 -\x9f\x9c\x02\xd4\x81\xd3\x84\x1a\x10\xec@\r\xa8\x89\xa4\x03\x15\x90\x9c\xd2\  
32 -\x80\x9aH\x00]t\x08\xec\x0bs`D\x04\xc9\x92\xe0\xee\xf2\xed\xceR\xdf;\x1a$\  
33 -\xbd\xf8\xf083\xbb?\xb5\xe9\xba\xce\x04\xc37\xb5\x17\xb0f\x14.\x88\xc2\x05Q\  
34 -\xb8 \n\x17D\xe1\x82(\\\x10\x85\x0b\xa2pA\x14.\x88\xc2\x05Q\xb8 \xdf\xe6?b\  
35 -\xb3\xd9\xa4\xdd\xb8\xfa3#\x99\x0b\xb2\x80\xb9O>c\x17\xb7\x8a\xcc\x05Y2\xdc\  
36 -\xae\xfb\xd4u\x9f\x16|`\xeb\xc8\\\x10\x85\x0b\xb2`C\x9b\xe6\xf3\xff\xffi\xce\  
37 -\x0c\xd7\xf4\xb8&sA\x8a\x99kf\x16ea\xea\xd6\xc4\x11\xb3\xc2M\xde\x83\xbd8*\  
38 -\x0b \x11ea\xec\x9d\x8e\xb4zx\xcc\xfa\xdf\x06\x99\x0b\x12\xd9\xd0\xfa\x964R\  
39 -\x827\x9b\x9f\xb2\xd7\xb3*d.\xc8f\xce\x94\xdeO\x0b\x9d\x85\xcd\x9d_;\xbb\xce\  
40 -\xe6\xd7\xdc\xfe?\xd1&B\x84Y`\x13\x11T\xab\xd7r\xf0\xee5\'e\x99\x0b\xa2pA\  
41 -\x8a\x9e-\x98\xd9+\xec\x1d\x06d.\x88\xc2\x05\x89,\x0byM\xff\xd5F\x06\x99\x0b\  
42 -\x12an\x8evMo\xb4\x92\x91\xb9 \xb3\xce\x16D\x1a2\x17D\xe1\x82(\\\x10\x85\x0b\  
43 -R\xfel\xe1\xbf\x1c\x0e\x87\xb4\x1b\xaf\xd7\xeb\xb2+Y\x1c\x99\x0bR\xdf\xdc\'?\  
44 -\xc6\\\xfc3\xb5\x8aE\x91\xb9 \x8e\xc2\xbd^?^\xaf\x1fk\xafbI\x1c\x85\xbb>\x14\  
45 -.\x88\x9f\x866M\xa0\x83\xcd\x99\xe1\xea\x8ek2\x17\xa4\x15s\xcd\xcc\xa2,L\xdd\  
46 -\x9a,I\x89p\x93\xf7`\xad\xa3\xb2\x00R\xae,\x8c\xbd\xd3\x91V\x0f\x8fi\xe0m\  
47 -\x90\xb9 e\x1bZ\xdf\x92FJ\xf0\xe1\xf0K\xd1\xc5\xf0\xc8\\\x10?\xa3X\x1b\x07]Q\  
48 -\xc8\\\x90\xfa\xe6\x06\xa7\x88\xbe*\x0f\x9b\xd7F\'e\x99\x0b\xa2pA\xea\x97\  
49 -\x85HZ\xaa\x0f2\x17D\xe1\x82\x94-\x0byM\xbf\xb9\x91A\xe6\x82\x9437G;\xff\x1f\  
50 -\xd7\x04\x91\xb9 \xfa\xf8\x19D\xe6\x82(\\\x10\x85\x0b\xa2pA\x14.\x88\xc2\x05\  
51 -Q\xb8 \n\x17\xa4\xb9\xf3\\3\xb3\xf3\xf9\x9cv\xe3\xe9tZv%\xd3\xc8\\\x90&\xcd}\  
52 -\xf2C\xcc\xc5\xbfR\xab\x18G\xe6\x82\xb4\x1d\xee\xe9\xf4\xe1t\xfaP{\x15\xa3\  
53 -\xb4\x1d\xaes\x14.H\xd3\rm\x9a@\x07\x9b3\xc3-8\xae\xc9\\\x90\x15\x9bkf\x16ea\  
54 -\xea\xd6d\x14\xa7\xe1&\xef\xc1\\\xa1\xb2\x00\xe2\xd4\xdc\x9e\xb1w:\xd2\xea\  
55 -\xe11\xa5\xdf\x06\x99\x0b\xe2\xda\\\xb3gK\x1a)\xc1\xe7\xf3oE\x17\x13\x89\xcc\  
56 -\x05qo\xee\x14\x15\x0e\xba\xa2\x90\xb9 M\x9a\x1b\x9c"\xfa\xaa<l^=L\xca2\x17D\  
57 -\xe1\x824Y\x16"\xa9V\x1fd.\x88\xc2\x05q_\x16\xf2\x9a~\xdd\x91A\xe6\x82\xb867\  
58 -G\xbb\xc2\x1f\xd7\x04\x91\xb9 \xfa\xc1\t\x88\xcc\x05Q\xb8 \n\x17D\xe1\x82(\\\  
59 -\x10\x85\x0b\xa2pA\\\xef\xd0\xe6s\xb9\\\xd2n<\x1e\x8f\xcb\xae\xe4\xdf\xc8\\\  
60 -\x90\x95\x98\xfb\xe4}\xcc\xc5\xbfS\xabx"sA\xd6\x16\xee\xf1\xf8\xfex\x8c\xf2\  
61 -\x17dm\xe1\xbaB\xe1\x82\xac\xac\xa1M\x13\xe8`sf\xb8\xe4qM\xe6\x82\xbc\x94\  
62 -\xb9ffQ\x16\xa6nM\xfe\xa1\x99p\x93\xf7`\x15QY\x00i\xc6\xdc\x9e\xb1w:\xd2\xea\  
63 -\xe11\xec\xdb sA\x1a3\xd7\xec\xd9\x92FJ\xf0\xe5\x82\x9f\x18\xccG\xe6\x824h\  
64 -\xee\x14\x8e\xb45\x99\x8b\xb2\x12s\x83SD_\x95\x87\xcdk\xf9IY\xe6\x82(\\\x90\  
65 -\x95\x94\x85H\n\xd5\x07\x99\x0b\xa2pA\x1a,\x0byM\xbf\xe4\xc8 sA\x1a37G;\xf4\  
66 -\xe3\x9a 2\x17D\xbf\x89\x00\x91\xb9 \n\x17D\xe1\x82(\\\x10\x85\x0b\xa2pA\x14\  
67 -.\x88\xc2\x05Q\xb8 \n\x17\xc4\xe3\xc1\xcd\xedvK\xbbq\xbf\xdf/\xbb\x92Ld.\x88\  
68 -Gs\x9f|\x1fs\xf1\x1f\xd4*2\x90\xb9 \xae\xc3\xdd\xef\xdf\xed\xf7\xefj\xaf"\  
69 -\x1d\xd7\xe1\xb6\x8e\xc2\x05\xf1\xdc\xd0\xa6\tt\xb093\\\xc9qM\xe6\x82\xb4k\  
70 -\xae\x99Y\x94\x85\xa9[\x93t\xea\x84\x9b\xbc\x07k\x0b\x95\x05\x90\x9aea\xec\  
71 -\x9d\x8e\xb4zx\x8c\xbb\xb7A\xe6\x82\xd4nh}K\x1a)\xc1\xb7\xdb\x9fE\x17\xb342\  
72 -\x17\xa4\xb6\xb9Sx<\xe8\x8aB\xe6\x82x478E\xf4Uy\xd8\xbc61)\xcb\\\x10\x85\x0b\  
73 -\xe2\xb1,D\xe2\xb7>\xc8\\\x10\x85\x0bR\xbb,\xe45}\xe7#\x83\xcc\x05\xa9in\x8e\  
74 -v\xde>\xae\t"sA\xf4S)\x10\x99\x0b\xa2pA\x14.\x88\xc2\x05Q\xb8 \n\x17D\xe1\  
75 -\x82\xd4\xd9\xa1\xdd\xef\xf7\xb4\x1bw\xbb\xdd\xb2+A\x91\xb9 uO\xc5\xde\xc6\\\  
76 -\xfc\x17\xb5\n\x0c\x99\x0bR9\xdc\xdd\xee\xedn\x17\xe5oK\xc8\\\x10\x85\x0bR\  
77 -\xfb\xcf<S\x04:\xd8\x9c\x19\xce\xcf\xb8&sA<\x9bkf\x16ea\xea\xd6\x84\x82\n7y\  
78 -\x0f\xb6&T\x16@\xd8\xb20\xf6NGZ=<\xa6\xb1\xb7A\xe6\x82\xf0\r\xadoI#%\xf8~o\  
79 -\xef\xc4`>2\x17\xa4\xee(\xb6fmM\xe6\xa2\xd4178E\xf4Uy\xd8\xbc\xae`R\x96\xb9 \  
80 -\n\x17\xc4\xfb\xd9\x82\x995\xb7w\x18\x90\xb9 \n\x17\x84/\x0byM\xbf\xe9\x91A\  
81 -\xe6\x82\xb0\xe6\xe6h\xe7\xe7\xaf5\xc9\xc8\\\x10\xfd&\x02D\xe6\x82(\\\x10\  
82 -\x85\x0b\xa2pA\x9c\x9e-<\x1e\x8f\xb4\x1b\xb7\xdb\xed\xb2+\xc9A\xe6\x8285\xf7\  
83 -\xc9w1\x17\x7f\xa1V\x91\x8a\xcc\x05\xf1\x1e\xeev\xfbf\xbb}S{\x15\x89x\x0f\  
84 -\xb7i\x14.\x88\xf3\x866M\xa0\x83\xcd\x99\xe1\x8a\x8dk2\x17\xa4is\xcd\xcc\xa2\  
85 -,L\xdd\x9a$R-\xdc\xe4=XC\xa8,\x80T.\x0bc\xeft\xa4\xd5\xc3c|\xbd\r2\x17\xc4AC\  
86 -\xeb[\xd2H\t~<\xbe\x16]\xcc\xa2\xc8\\\x10\x07\xe6N\xe1\xee\xa0+\n\x99\x0b\  
87 -\xe2\xd4\xdc\xe0\x14\xd1W\xe5a\xf3\xea\x7fR\x96\xb9 \n\x17\xc4iY\x88\xc4i}\  
88 -\x90\xb9 \n\x17\xc4AY\xc8k\xfa\x9eG\x06\x99\x0bR\xd9\xdc\x1c\xed\\}\\\x13D\  
89 -\xe6\x82\xe8\xe3g\x10\x99\x0b\xa2pA\x14.\x88\xc2\x05\xf9\x1b\xa1\x11\xf1\xe2\  
90 -?\xae\xd64\x00\x00\x00\x00IEND\xaeB`\x82'  
91 -  
92 -def getWizTest1Bitmap():  
93 - return wx.BitmapFromImage(getWizTest1Image())  
94 -  
95 -def getWizTest1Image():  
96 - stream = cStringIO.StringIO(getWizTest1Data())  
97 - return wx.ImageFromStream(stream)  
98 -  
99 -  
100 -def makePageTitle(wizPg, title):  
101 - sizer = wx.BoxSizer(wx.VERTICAL)  
102 - wizPg.SetSizer(sizer)  
103 - title = wx.StaticText(wizPg, -1, title)  
104 - title.SetFont(wx.Font(18, wx.SWISS, wx.NORMAL, wx.BOLD))  
105 - sizer.Add(title, 0, wx.ALIGN_CENTRE|wx.ALL, 5)  
106 - sizer.Add(wx.StaticLine(wizPg, -1), 0, wx.EXPAND|wx.ALL, 5)  
107 - return sizer  
108 -  
109 -class BasePage(wiz.PyWizardPage):  
110 - def __init__(self, parent, title, number):  
111 - wiz.PyWizardPage.__init__(self, parent)  
112 - # header data  
113 - self.title = title  
114 - self.number = number  
115 - # previous / next page data  
116 - self.next = self.prev = None  
117 - self.jump_next_page = False  
118 -  
119 - self.__init_gui()  
120 -  
121 - self.Update()  
122 - self.SetAutoLayout(1)  
123 - self.Fit()  
124 -  
125 - def __init_gui(self):  
126 - sizer = wx.BoxSizer(wx.VERTICAL)  
127 - self.SetSizer(sizer)  
128 -  
129 - # Build header  
130 - first_line = wx.BoxSizer(wx.HORIZONTAL)  
131 - number = wx.StaticText(self, -1, str(self.number)+".")  
132 - number.SetFont(wx.Font(20, wx.SWISS, wx.NORMAL, wx.BOLD))  
133 - self.header_number = number  
134 - title = wx.StaticText(self, -1, self.title)  
135 - title.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.NORMAL))  
136 - first_line.Add(number, 0, wx.ALIGN_LEFT|wx.ALIGN_BOTTOM|wx.RIGHT, 5)  
137 - first_line.Add(title, 0, wx.ALIGN_LEFT|wx.ALIGN_BOTTOM|wx.RIGHT|wx.BOTTOM, 2)  
138 - sizer.AddSizer(first_line, 0)  
139 - sizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.ALL, 5)  
140 -  
141 - self.sizer = sizer  
142 -  
143 - def DecreasePageNumber(self):  
144 - print "number before", self.number  
145 - self.number -= 1  
146 - self.header_number.SetLabel(str(self.number)+".")  
147 -  
148 - def SetNext(self, next):  
149 - self.next = next  
150 -  
151 - def SetPrev(self, prev):  
152 - self.prev = prev  
153 -  
154 - # Classes derived from wxPyWizardPanel must override  
155 - # GetNext and GetPrev, and may also override GetBitmap  
156 - # as well as all those methods overridable by  
157 - # wx.PyWindow.  
158 -  
159 - def GetNext(self):  
160 - return self.next  
161 -  
162 - def GetPrev(self):  
163 - return self.prev  
164 -  
165 -class RawDataPage(BasePage):  
166 - def __init__(self, parent, title, number):  
167 - BasePage.__init__(self, parent, title, number)  
168 -  
169 -class StudyPage(BasePage):  
170 - def __init__(self, parent, title, number):  
171 - BasePage.__init__(self, parent, title, number)  
172 -  
173 -class DirPage(BasePage):  
174 - """  
175 - Wizard page for selecting which directory or directories should be searched  
176 - for retrieving medical images.  
177 - """  
178 -  
179 - def __init__(self, parent, title, number):  
180 - BasePage.__init__(self, parent, title, number)  
181 - self.__init_specific_gui()  
182 -  
183 - self.selected_dir = []  
184 -  
185 - def __init_specific_gui(self):  
186 -  
187 - line1 = wx.StaticText(self, -1,_("Select the directory which ")+\  
188 - _("contains medical images of the study interest."))  
189 -  
190 -  
191 -  
192 - t1 = wx.TextCtrl(self, -1, "", size=(125, -1))  
193 -  
194 - dbb = filebrowse.DirBrowseButton(  
195 - self, -1, size=(450, -1), changeCallback = self.dbbCallback)  
196 - dbb.SetLabel("")  
197 - line2 = dbb  
198 - #line2 = wx.BoxSizer(wx.HORIZONTAL)  
199 -  
200 - #line3 = wx.BoxSizer(wx.VERTICAL)  
201 - #self.line3 = line3  
202 -  
203 - #link_add_another_dir = hl.HyperLinkCtrl(self, -1,"Add a new directory")  
204 - #link_add_another_dir.SetUnderlines(True, False, False)  
205 - #link_add_another_dir.SetColours("BLUE", "BLUE", "BLUE")  
206 - #link_add_another_dir.AutoBrowse(False)  
207 - #link_add_another_dir.UpdateLink()  
208 - #link_add_another_dir.Bind(hl.EVT_HYPERLINK_LEFT, self.OnAddDir)  
209 - #self.link_add_new = link_add_another_dir  
210 -  
211 -  
212 - # ADVANCED  
213 - # [] Save selected folders as default  
214 - # [] Consider files inside inner folders of the selected folder, using recursion  
215 -  
216 -  
217 - self.sizer.Add(line1, 0, wx.LEFT|wx.RIGHT|wx.TOP, 5)  
218 - self.sizer.Add(line2, 0, wx.ALL, 5)  
219 - #self.sizer.Add(line3, 0, wx.ALL, 5)  
220 - #self.sizer.Add(link_add_another_dir, 0, wx.LEFT|wx.BOTTOM, 10)  
221 -  
222 -  
223 - fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition,  
224 - (450, 100), 0,fpb.FPB_SINGLE_FOLD)  
225 -  
226 - # Fold panel style  
227 - style = fpb.CaptionBarStyle()  
228 - style.SetCaptionStyle(fpb.CAPTIONBAR_RECTANGLE)  
229 - style.SetSecondColour(wx.Colour(255,255,255))  
230 -  
231 - # Fold 1 - Surface properties  
232 - item = fold_panel.AddFoldPanel(_("Advanced options"),  
233 - collapsed=True)  
234 - fold_panel.ApplyCaptionStyle(item, style)  
235 - fold_panel.AddFoldPanelWindow(item,  
236 - wx.CheckBox(item, wx.ID_ANY, _("Use selected folder(s) as default")),  
237 - Spacing= 0, leftSpacing=0, rightSpacing=0)  
238 - fold_panel.AddFoldPanelWindow(item,  
239 - wx.CheckBox(item, wx.ID_ANY, _("Enable recursion in folder(s)")),  
240 - Spacing= 0, leftSpacing=0, rightSpacing=0)  
241 -  
242 -  
243 - self.sizer.Add(fold_panel, 0, wx.TOP|wx.LEFT, 5)  
244 -  
245 - self.sizer.Fit(self)  
246 - self.Update()  
247 - self.SetAutoLayout(1)  
248 -  
249 -  
250 - def JumpNextPage(self):  
251 - self.jump_next_page = True  
252 - self.next.GetNext().DecreasePageNumber()  
253 -  
254 - def OnAddDir(self, evt):  
255 - dlg = wx.DirDialog(self, _("Choose a directory:"),  
256 - style=wx.DD_DIR_MUST_EXIST)  
257 -  
258 - if dlg.ShowModal() == wx.ID_OK:  
259 - path = dlg.GetPath()  
260 - self.selected_dir.append(path)  
261 - self.link_add_new.SetLabel(_("Add another directory"))  
262 - self.AddNewDir(path)  
263 - dlg.Destroy()  
264 -  
265 - def OnChangeDir(self, prev_dir, text):  
266 - dlg = wx.DirDialog(self, _("Choose a directory:"),  
267 - style=wx.DD_DIR_MUST_EXIST)  
268 - dlg.SetPath(prev_dir)  
269 -  
270 - if dlg.ShowModal() == wx.ID_OK:  
271 - path = dlg.GetPath()  
272 - self.selected_dir.remove(prev_dir)  
273 - self.selected_dir.append(path)  
274 - text.SetValue(path)  
275 - dlg.Destroy()  
276 -  
277 -  
278 - def AddNewDir(self, path):  
279 - folder_bmp = wx.ArtProvider.GetBitmap(wx.ART_FOLDER_OPEN, wx.ART_BUTTON,  
280 - (12,12))  
281 - btn = wx.BitmapButton(self, -1, folder_bmp)  
282 -  
283 - text_dir_path = wx.StaticText(self, -1, path)  
284 -  
285 - tooltip = wx.ToolTip(_("Remove this directory from list"))  
286 - link_remove = hl.HyperLinkCtrl(self, -1,_("Remove"))  
287 - link_remove.SetUnderlines(True, False, False)  
288 - link_remove.SetColours("BLUE", "BLUE", "BLUE")  
289 - link_remove.SetToolTip(tooltip)  
290 - link_remove.AutoBrowse(False)  
291 - link_remove.UpdateLink()  
292 -  
293 - dir_line = wx.BoxSizer(wx.HORIZONTAL)  
294 - dir_line.Add(btn, 0, wx.LEFT|wx.RIGHT, 5)  
295 - dir_line.Add(text_dir_path, 0)  
296 - dir_line.Add(link_remove, 0, wx.ALIGN_RIGHT|wx.RIGHT|wx.LEFT, 5)  
297 -  
298 - link_remove.Bind(hl.EVT_HYPERLINK_LEFT, lambda e: self.RemoveDir(path, dir_line))  
299 - btn.Bind(wx.EVT_BUTTON, lambda e: self.OnChangeDir(path, link_remove))  
300 -  
301 - self.line3.Add(dir_line, 1, wx.LEFT, 2)  
302 - #self.line3.Add(text_dir_path, 0, wx.ALL, 5)  
303 -  
304 - self.Fit()  
305 -  
306 - def RemoveDir(self, path, sizer):  
307 - self.selected_dir.remove(path)  
308 - self.line3.Hide(sizer)  
309 - self.line3.RemoveSizer(sizer)  
310 - if not self.selected_dir:  
311 - self.link_add_new.SetLabel(_("Add another directory"))  
312 - self.Layout()  
313 - self.Fit()  
314 -  
315 -  
316 -  
317 -  
318 - def GetNext(self):  
319 - """If jump_next_page is true then return the next page's next page"""  
320 - if self.jump_next_page:  
321 - try:  
322 - self.next.GetNext().SetPrev(self)  
323 - except AttributeError:  
324 - print "Warning: Next is the last Wizard page."  
325 - return None  
326 - else:  
327 - return self.next.GetNext()  
328 - else:  
329 - try:  
330 - self.next.GetNext().SetPrev(self.next)  
331 - except AttributeError:  
332 - print "Worning: This is the last Wizard page"  
333 - return self.next  
334 -  
335 -  
336 - def dbbCallback(self, evt):  
337 - self.log.write('DirBrowseButton: %s\n' % evt.GetString())  
338 -  
339 -def CreateWizard(parent):  
340 - wizard = wiz.Wizard(parent, -1, _("Import medical images"), getWizTest1Bitmap())  
341 -  
342 - page1 = DirPage(wizard, _("Choose directory"), 1)  
343 - page2 = RawDataPage(wizard, _("Define RAW data"), 2)  
344 - page3 = StudyPage(wizard, _("Select study"), 3) # 2 can be 3  
345 -  
346 -  
347 - wizard.FitToPage(page1)  
348 - page3.sizer.Add(wx.StaticText(page3, -1, _("\nThis is the last page.")))  
349 -  
350 - # Set the initial order of the pages  
351 - page1.SetNext(page2)  
352 - page2.SetPrev(page1)  
353 - page2.SetNext(page3)  
354 - page3.SetPrev(page2)  
355 -  
356 - page1.JumpNextPage()  
357 -  
358 - wizard.GetPageAreaSizer().Add(page1)  
359 -  
360 - if wizard.RunWizard(page1):  
361 - print "Completed - Send message to import data"  
362 - else:  
363 - print "Canceled"  
364 -  
365 -class ImportApp(wx.App):  
366 - def OnInit(self):  
367 - CreateWizard(None)  
368 - return True  
369 -  
370 -if __name__ == '__main__':  
371 - app = ImportApp(0)  
372 - app.MainLoop()  
invesalius/gui/task_exporter.py
@@ -291,7 +291,7 @@ class InnerTaskPanel(wx.Panel): @@ -291,7 +291,7 @@ class InnerTaskPanel(wx.Panel):
291 dlg = wx.MessageDialog(None, 291 dlg = wx.MessageDialog(None,
292 _("You need to create a surface and make it ") + 292 _("You need to create a surface and make it ") +
293 _("visible before exporting it."), 293 _("visible before exporting it."),
294 - _('InVesalius Information'), 294 + 'InVesalius 3',
295 wx.OK | wx.ICON_INFORMATION) 295 wx.OK | wx.ICON_INFORMATION)
296 try: 296 try:
297 dlg.ShowModal() 297 dlg.ShowModal()
invesalius/gui/task_slice.py
@@ -135,7 +135,7 @@ class InnerTaskPanel(wx.Panel): @@ -135,7 +135,7 @@ class InnerTaskPanel(wx.Panel):
135 135
136 def OnLinkNewMask(self, evt=None): 136 def OnLinkNewMask(self, evt=None):
137 dlg = wx.TextEntryDialog(self, _('Name of new mask:'), 137 dlg = wx.TextEntryDialog(self, _('Name of new mask:'),
138 - _('InVesalius 3.0 - New mask')) 138 + _('InVesalius 3 - New mask'))
139 dlg.CenterOnScreen() 139 dlg.CenterOnScreen()
140 default_mask_name = const.MASK_NAME_PATTERN %(mask.Mask.general_index+2) 140 default_mask_name = const.MASK_NAME_PATTERN %(mask.Mask.general_index+2)
141 dlg.SetValue(default_mask_name) 141 dlg.SetValue(default_mask_name)
invesalius/gui/task_surface.py
@@ -128,7 +128,7 @@ class InnerTaskPanel(wx.Panel): @@ -128,7 +128,7 @@ class InnerTaskPanel(wx.Panel):
128 evt.Skip() 128 evt.Skip()
129 129
130 def OnLinkNewSurface(self, evt=None): 130 def OnLinkNewSurface(self, evt=None):
131 - dlg = NewSurfaceDialog(self, -1, _('InVesalius 3.0 - New surface')) 131 + dlg = NewSurfaceDialog(self, -1, _('InVesalius 3 - New surface'))
132 if dlg.ShowModal() == wx.ID_OK: 132 if dlg.ShowModal() == wx.ID_OK:
133 print "TODO: Send Signal - Create 3d surface %s \n" % dlg.GetValue() 133 print "TODO: Send Signal - Create 3d surface %s \n" % dlg.GetValue()
134 dlg.Destroy() 134 dlg.Destroy()
@@ -180,7 +180,7 @@ class NewSurfaceDialog(wx.Dialog): @@ -180,7 +180,7 @@ class NewSurfaceDialog(wx.Dialog):
180 180
181 text = wx.TextCtrl(self, -1, "", size=(80,-1)) 181 text = wx.TextCtrl(self, -1, "", size=(80,-1))
182 text.SetHelpText(_("Name the new surface to be created")) 182 text.SetHelpText(_("Name the new surface to be created"))
183 - text.SetValue(_("Default 3D")) 183 + text.SetValue(_("Surface"))
184 self.text = text 184 self.text = text
185 185
186 sizer = wx.BoxSizer(wx.VERTICAL) 186 sizer = wx.BoxSizer(wx.VERTICAL)
@@ -208,8 +208,8 @@ class NewSurfaceDialog(wx.Dialog): @@ -208,8 +208,8 @@ class NewSurfaceDialog(wx.Dialog):
208 self.SetSizer(sizer) 208 self.SetSizer(sizer)
209 sizer.Fit(self) 209 sizer.Fit(self)
210 210
211 - def GetValue(self):  
212 - return self.text.GetValue() + _("| mask: ") + MASK_LIST[self.combo_surface_name.GetSelection()] 211 + #def GetValue(self):
  212 + # return self.text.GetValue() + _("| mask: ") + MASK_LIST[self.combo_surface_name.GetSelection()]
213 213
214 class FoldPanel(wx.Panel): 214 class FoldPanel(wx.Panel):
215 def __init__(self, parent): 215 def __init__(self, parent):
invesalius/i18n.py
@@ -49,4 +49,4 @@ def InstallLanguage(language): @@ -49,4 +49,4 @@ def InstallLanguage(language):
49 languages=[language], codeset='utf8') 49 languages=[language], codeset='utf8')
50 # Using unicode 50 # Using unicode
51 lang.install(unicode=1) 51 lang.install(unicode=1)
52 - return lang.gettext 52 + return lang.ugettext
locale/en/LC_MESSAGES/invesalius.mo
No preview for this file type
locale/es/LC_MESSAGES/invesalius.mo
No preview for this file type
locale/pt_BR/LC_MESSAGES/invesalius.mo
No preview for this file type