summaryrefslogtreecommitdiff
path: root/itstool.in
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2011-05-31 22:46:29 +0200
committerShaun McCance <shaunm@gnome.org>2011-06-24 10:21:08 -0400
commit333218d4978a7b203252d35e7979f64cfb3b0c1c (patch)
treea326a5b2013b5317703bdd6deb2ad408f61b32c2 /itstool.in
parent7cda8e16e2281e0e6c42f1e47bfc98ee5e4fe4ae (diff)
downloaditstool-333218d4978a7b203252d35e7979f64cfb3b0c1c.tar.gz
Add itst drop rule
The itst Droprule is a rule allowing to ignore completely a tag from the translation, including its content. The resulting xml will not have the tag either.
Diffstat (limited to 'itstool.in')
-rwxr-xr-xitstool.in7
1 files changed, 6 insertions, 1 deletions
diff --git a/itstool.in b/itstool.in
index fcf2bf9..ece5a23 100755
--- a/itstool.in
+++ b/itstool.in
@@ -318,6 +318,7 @@ class Document (object):
self._its_within_text_nodes = {}
self._its_loc_notes = {}
self._itst_preserve_space_nodes = {}
+ self._itst_drop_nodes = []
self._its_lang = {}
self._itst_lang_attr = {}
self._itst_credits = None
@@ -338,6 +339,10 @@ class Document (object):
if rule.prop('selector') is not None:
for node in self._try_xpath_eval(xpath, rule.prop('selector')):
self._itst_preserve_space_nodes[node] = rule.prop('preserveSpace')
+ elif xml_is_ns_name(rule, NS_ITST, 'dropRule'):
+ if rule.prop('selector') is not None:
+ for node in self._try_xpath_eval(xpath, rule.prop('selector')):
+ self._itst_drop_nodes.append(node)
elif xml_is_ns_name(rule, NS_ITS, 'locNoteRule'):
locnote = None
for child in xml_child_iter(rule):
@@ -689,7 +694,7 @@ class Document (object):
if node.type in ('text', 'cdata') and msg is not None:
msg.add_text(node.content)
return
- if node.type != 'element':
+ if node.type != 'element' or node in self._itst_drop_nodes:
return
translate = self.get_its_translate(node)
if translate is None: