diff options
author | Shaun McCance <shaunm@gnome.org> | 2012-05-11 15:13:46 -0400 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2012-05-11 15:13:46 -0400 |
commit | a3b94bef85d9a96aec2656987d0910cc928573dc (patch) | |
tree | 9a7c9dc887b4c9907a88b5509020049939bd2fd2 | |
parent | 4690db4df453dd79cc8df1bdf0ba49475fb6c83c (diff) | |
download | itstool-a3b94bef85d9a96aec2656987d0910cc928573dc.tar.gz |
Try to maintain indentation in join mode
-rwxr-xr-x | itstool.in | 7 | ||||
-rw-r--r-- | tests/IT-join-1.ll.xml | 30 |
2 files changed, 31 insertions, 6 deletions
@@ -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> |