5 def merge_events(master, localization):
7 Merge two event definition files
10 master_xml = xml.dom.minidom.parse(master)
11 l10n_xml = xml.dom.minidom.parse(localization)
12 impl = xml.dom.minidom.getDOMImplementation()
14 merged = impl.createDocument(None, 'ils_events', None)
17 notes = master_xml.getElementsByTagName('notes')[0]
18 merged.documentElement.appendChild(notes)
20 events = master_xml.getElementsByTagName('event')
22 merged.documentElement.appendChild(event)
23 event.appendChild(get_l10n_event_desc(l10n_xml, event.getAttribute('code')))
27 def get_l10n_event_desc(l10n_xml, code):
29 Gets a localized event description
34 events = l10n_xml.getElementsByTagName('event')
36 if event.getAttribute('code') == code:
37 for node in event.childNodes:
38 if node.nodeName == 'desc':
45 Determine what action to take
47 opts = optparse.OptionParser()
48 opts.add_option('-m', '--master', action='store', \
49 help='Master ils_events.xml file into which we are merging our additional localized strings', \
51 opts.add_option('-l', '--localization', action='store', \
52 help='Localized ils_events.xml file', \
54 opts.add_option('-o', '--output', dest='outfile', \
55 help='Write output to FILE (defaults to STDOUT)', metavar='FILE')
56 (options, args) = opts.parse_args()
58 if not options.master:
59 opts.error('Must specify the master ils_events file (-m option)')
60 elif not options.localization:
61 opts.error('Must specify the localized ils_events file to merge (-l option)')
63 merged = merge_events(options.master, options.localization)
66 outfile = open(options.outfile, 'w')
67 outfile.write(merged.toprettyxml(encoding='utf-8'))
69 print merged.toprettyxml(encoding='utf-8')
71 if __name__ == '__main__':