summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2012-05-11 15:13:46 -0400
committerShaun McCance <shaunm@gnome.org>2012-05-11 15:13:46 -0400
commita3b94bef85d9a96aec2656987d0910cc928573dc (patch)
tree9a7c9dc887b4c9907a88b5509020049939bd2fd2
parent4690db4df453dd79cc8df1bdf0ba49475fb6c83c (diff)
downloaditstool-a3b94bef85d9a96aec2656987d0910cc928573dc.tar.gz
Try to maintain indentation in join mode
-rwxr-xr-xitstool.in7
-rw-r--r--tests/IT-join-1.ll.xml30
2 files changed, 31 insertions, 6 deletions
diff --git a/itstool.in b/itstool.in
index 7fd6b1d..badc5c6 100755
--- a/itstool.in
+++ b/itstool.in
@@ -683,11 +683,18 @@ class Document (object):
for child in children:
self.join_translations(translations, node=child, strict=strict)
else:
+ prevnode = None
+ if node.prev is not None and node.prev.type == 'text':
+ prevtext = node.prev.content
+ if re.sub('\s+', '', prevtext) == '':
+ prevnode = node.prev
for lang in sorted(translations.keys(), reverse=True):
newnode = self.get_translated(node, translations[lang], strict=strict)
if newnode != node:
newnode.setProp('xml:lang', lang)
node.addNextSibling(newnode)
+ if prevnode is not None:
+ node.addNextSibling(prevnode.copyNode(0))
if is_root:
# Because of the way we create nodes and rewrite the document,
# we end up with lots of redundant namespace definitions. We
diff --git a/tests/IT-join-1.ll.xml b/tests/IT-join-1.ll.xml
index 0ee8a15..f1cd11e 100644
--- a/tests/IT-join-1.ll.xml
+++ b/tests/IT-join-1.ll.xml
@@ -3,16 +3,34 @@
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
<its:withinTextRule selector="//cat:span" withinText="yes"/>
</its:rules>
- <message>This is a plain message.</message><message xml:lang="cs">To je jednoduchý zpráva.</message><message xml:lang="de">Dies ist eine einfache Nachricht.</message><message xml:lang="fr">Ceci est un message clair.</message>
- <cat:message>This message uses a prefix.</cat:message><cat:message xml:lang="cs">Tato zpráva ma předpona.</cat:message><cat:message xml:lang="de">Diese Nachricht nutzt einen Präfix.</cat:message><cat:message xml:lang="fr">Ce message utilise un préfixe.</cat:message>
- <extra:alert>This message is in another namespace.</extra:alert><extra:alert xml:lang="cs">Tato zpráva ma jiný jmenný prostor.</extra:alert><extra:alert xml:lang="de">Diese Nachricht ist in einem anderen Namensraum.</extra:alert><extra:alert xml:lang="fr">Ce message se trouve dans un autre espace de nommage.</extra:alert>
+ <message>This is a plain message.</message>
+ <message xml:lang="cs">To je jednoduchý zpráva.</message>
+ <message xml:lang="de">Dies ist eine einfache Nachricht.</message>
+ <message xml:lang="fr">Ceci est un message clair.</message>
+ <cat:message>This message uses a prefix.</cat:message>
+ <cat:message xml:lang="cs">Tato zpráva ma předpona.</cat:message>
+ <cat:message xml:lang="de">Diese Nachricht nutzt einen Präfix.</cat:message>
+ <cat:message xml:lang="fr">Ce message utilise un préfixe.</cat:message>
+ <extra:alert>This message is in another namespace.</extra:alert>
+ <extra:alert xml:lang="cs">Tato zpráva ma jiný jmenný prostor.</extra:alert>
+ <extra:alert xml:lang="de">Diese Nachricht ist in einem anderen Namensraum.</extra:alert>
+ <extra:alert xml:lang="fr">Ce message se trouve dans un autre espace de nommage.</extra:alert>
<holder>
- <message>This message is in a holder element.</message><message xml:lang="cs">Tato zpráva je uvnitř okolního prvku.</message><message xml:lang="de">Diese Nachricht ist in einem umgebenden Element.</message><message xml:lang="fr">Ce message est un message porteur.</message>
+ <message>This message is in a holder element.</message>
+ <message xml:lang="cs">Tato zpráva je uvnitř okolního prvku.</message>
+ <message xml:lang="de">Diese Nachricht ist in einem umgebenden Element.</message>
+ <message xml:lang="fr">Ce message est un message porteur.</message>
</holder>
<holder>
- <message>This message has a block <footnote>footnote</footnote>.</message><message xml:lang="cs">Tato zpráva ma blok <footnote>Poznámka pod čarou</footnote>.</message><message xml:lang="de">Diese Nachricht hat einen Block <footnote>Fußnote</footnote>.</message><message xml:lang="fr">Ce message à un bloc <footnote>Note de bas de page</footnote>.</message>
+ <message>This message has a block <footnote>footnote</footnote>.</message>
+ <message xml:lang="cs">Tato zpráva ma blok <footnote>Poznámka pod čarou</footnote>.</message>
+ <message xml:lang="de">Diese Nachricht hat einen Block <footnote>Fußnote</footnote>.</message>
+ <message xml:lang="fr">Ce message à un bloc <footnote>Note de bas de page</footnote>.</message>
</holder>
<holder>
- <message>This message has some <span>inline markup</span>.</message><message xml:lang="cs">Tato zpráva ma <span>vložený značky</span>.</message><message xml:lang="de">Diese Nachricht hat <span>eingebettetes Markup</span>.</message><message xml:lang="fr">Ce message à quelque <span>balise en ligne</span>.</message>
+ <message>This message has some <span>inline markup</span>.</message>
+ <message xml:lang="cs">Tato zpráva ma <span>vložený značky</span>.</message>
+ <message xml:lang="de">Diese Nachricht hat <span>eingebettetes Markup</span>.</message>
+ <message xml:lang="fr">Ce message à quelque <span>balise en ligne</span>.</message>
</holder>
</catalog>