#!/usr/bin/env python # -*- coding: UTF-8 -*- import sys import os from pology.file.catalog import Catalog import xml.parsers.expat if len(sys.argv) != 2: print "usage: %s " % os.path.basename(sys.argv[0]) sys.exit(1) fname = sys.argv[1] dirname = os.path.dirname(fname) filename, extension = os.path.splitext(fname) filename = os.path.basename(filename) cat_input = Catalog(fname) tagstack = 0 hadcdata = False output = "" def start_element(name, attrs): global output, tagstack, hadcdata if name == 'msgid' or name == 'msgids': return hadcdata = False output += "" % tagstack tagstack = tagstack + 1 def end_element(name): global output, tagstack, hadcdata if name == 'msgid' or name == 'msgids': tagstack = 0 return if hadcdata: output += "" # output += "" % (tagstack-1) else: output = output[:-1] + "/>" def char_data(data): global output, hadcdata hadcdata = True output += str(data) p = xml.parsers.expat.ParserCreate() p.StartElementHandler = start_element p.EndElementHandler = end_element p.CharacterDataHandler = char_data print """ """ % (filename, extension) p.Parse("") for msg in cat_input: if msg.translated: text = msg.msgstr else: text = msg.msgid text = "%s" % text.replace('&', '&') p.Parse(text, False) print """

%s

""" % (msg.source[0][0], output) output = "" p.Parse("
", True); print """ """