diff options
author | Danilo Šegan <danilo@src.gnome.org> | 2005-04-01 21:22:37 +0000 |
---|---|---|
committer | Danilo Šegan <danilo@src.gnome.org> | 2005-04-01 21:22:37 +0000 |
commit | 776600a08f9c3ed6aa65bda163d86ec3cbba209c (patch) | |
tree | 8821f71cd19482db960bae832e2abe8b0d8b5ecb | |
parent | 551cea635d7c8702aeca2b65c76e1775d1477914 (diff) | |
download | gnome-doc-utils-776600a08f9c3ed6aa65bda163d86ec3cbba209c.tar.gz |
Fix handling of UTF-8 in original strings.
-rw-r--r-- | xml2po/ChangeLog | 5 | ||||
-rwxr-xr-x | xml2po/xml2po.py | 16 |
2 files changed, 13 insertions, 8 deletions
diff --git a/xml2po/ChangeLog b/xml2po/ChangeLog index 1766352..3084802 100644 --- a/xml2po/ChangeLog +++ b/xml2po/ChangeLog @@ -1,3 +1,8 @@ +2005-04-01 Danilo Šegan <dsegan@gmx.net> + + * xml2po.py (getTranslation): decode lookup string from utf-8. + Make all .serialize() actually .serialize('utf-8') + 2005-03-27 Danilo Šegan <dsegan@gmx.net> * TODO (BUGS): Updated. diff --git a/xml2po/xml2po.py b/xml2po/xml2po.py index 1d50960..bf466cb 100755 --- a/xml2po/xml2po.py +++ b/xml2po/xml2po.py @@ -141,7 +141,7 @@ def normalizeString(text, ignorewhitespace = 1): try: # Lets add document DTD so entities are resolved dtd = doc.intSubset() - tmp = dtd.serialize() + tmp = dtd.serialize('utf-8') tmp = tmp + '<norm>%s</norm>' % text except: tmp = '<norm>%s</norm>' % text @@ -172,11 +172,11 @@ def normalizeString(text, ignorewhitespace = 1): def stringForEntity(node): """Replaces entities in the node.""" - text = node.serialize() + text = node.serialize('utf-8') try: # Lets add document DTD so entities are resolved dtd = node.doc.intSubset() - tmp = dtd.serialize() + '<norm>%s</norm>' % text + tmp = dtd.serialize('utf-8') + '<norm>%s</norm>' % text next = 1 except: tmp = '<norm>%s</norm>' % text @@ -220,7 +220,7 @@ def getTranslation(text, spacepreserve = 0): if file: gt = gettext.GNUTranslations(file) if gt: - return gt.gettext(text) + return gt.gettext(text.decode('utf-8')) return text def startTagForNode(node): @@ -233,7 +233,7 @@ def startTagForNode(node): for p in node.properties: if p.type == 'attribute': # FIXME: This part sucks - params += p.serialize() + params += p.serialize('utf-8') return result+params def endTagForNode(node): @@ -313,7 +313,7 @@ def replaceNodeContentsWithText(node,text): dtd = doc.intSubset() tmp = '' if expand_entities: # FIXME: we get a "Segmentation fault" in libxml2.parseMemory() when we include DTD otherwise - tmp = dtd.serialize() + tmp = dtd.serialize('utf-8') tmp = tmp + '<%s>%s</%s>' % (starttag, text, endtag) except: tmp = '<%s>%s</%s>' % (starttag, text, endtag) @@ -461,12 +461,12 @@ def doSerialize(node): if ignoreNode(node): return '' elif not node.children: - return node.serialize("utf-8") + return node.serialize('utf-8') elif node.type == 'entity_ref': if isExternalGeneralParsedEntity(node): return node.serialize('utf-8') else: - return stringForEntity(node) #content #content #serialize("utf-8") + return stringForEntity(node) #content #content #serialize() elif node.type == 'entity_decl': return node.serialize('utf-8') #'<%s>%s</%s>' % (startTagForNode(node), node.content, node.name) elif node.type == 'text': |