gnumed-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnumed-devel] GNUmed plugin development - part 12


From: Sebastian Hilbert
Subject: [Gnumed-devel] GNUmed plugin development - part 12
Date: Wed, 15 Jul 2009 13:07:53 +0200
User-agent: KMail/1.12.0 (Linux/2.6.27.23-0.1-default; KDE/4.2.95; i686; ; )

Show me the code. Part 11 talked about the xml handling. I put everything in 
the CVS to make it available.
That was almost two months ago. Due to time constraints I only recently picked 
up again. I had to realize that my python skills are very rusty and that I had 
to learn to read and write at the same time.

In the meantime both the XML files as well as the Parser have gone through 2 
rewrites. I threw the code out where I felt it became too complex for me to 
handle. Check out the latest version now.

now run:

    python GNUmedDeviceParserElementTree.py

and observe the following output:

    -------------------------------------------------------------
    Device(ICD): St. Jude Medical Atlas DR (active)   Battery: St. Jude 
Medical (St. Jude Medical)  Implanted: 23.03.2002


    RA-lead in RA-position: Medtronic Sprint XL (active,no comment on lead) 
Implanted: 23.04.2009
    last check: 23.04.2004 Sensing: 7mV Threshold 1.4mV Impedance: 300 Ohm

    RV-lead in RV-position: Medtronic Sprint fidelis (inactive,no comment on 
lead) Implanted: 23.04.2009
    last check: 23.04.2009" Sensing: 7mV Threshold 1.4mV Impedance: 300 Ohm

    LV-lead in LV-position: St. Jude QuickSite XL (active,no comment on LV 
lead) Implanted: 23.04.2009
    last check: 23.03.2004 Sensing: 7mV Threshold 1.4mV Impedance: 300 Ohm

Now what you see here has been parsed from the XML. No more fake input. Next 
step is to first replace all hardcoded English strings with gettext-
equivalents so translators can have a go at them. To achieve that we will take 
a look at other plugins that already have that feature.

Take a look at gmMeasurementsGridPlugin.py. The first few lines look like 
this.

    import logging

    from Gnumed.wxpython import gmPlugin, gmMeasurementWidgets
    from Gnumed.pycommon import gmI18N

    _log = logging.getLogger('gm.ui')
    _log.info(__version__)

All of the above but the second and third line were added to the top of the 
parser. To tell gettext where to replace I marked them like this:

    _('this is a string that needs a translation') vs. 'this is a string that 
needs a translation'

So the _() construct identifies the strings to gettext. The following lines 
were added to the main section.

    from Gnumed.pycommon import gmI18N
    gmI18N.activate_locale()
    gmI18N.install_domain()

Running the parser now displayes the same result even after all 'I am a 
string' occurences having been replaced by _('I am a string'). The next part 
will try to get the parser connected to gmCardiacDevicePlugin and get this 
plugin displayed in GNUmed. Once this has been accomplished the XML needs to 
be read from the database instead of a file.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]