summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanilo Šegan <danilo@src.gnome.org>2005-04-01 21:22:37 +0000
committerDanilo Šegan <danilo@src.gnome.org>2005-04-01 21:22:37 +0000
commit776600a08f9c3ed6aa65bda163d86ec3cbba209c (patch)
tree8821f71cd19482db960bae832e2abe8b0d8b5ecb
parent551cea635d7c8702aeca2b65c76e1775d1477914 (diff)
downloadgnome-doc-utils-776600a08f9c3ed6aa65bda163d86ec3cbba209c.tar.gz
Fix handling of UTF-8 in original strings.
-rw-r--r--xml2po/ChangeLog5
-rwxr-xr-xxml2po/xml2po.py16
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':