[FIX] translate: inline elements with translatable attributes only

This commit is contained in:
Raphael Collet
2019-01-03 13:46:27 +00:00
committed by Martin Trigaux
parent 22637aadec
commit cd4080839f
2 changed files with 18 additions and 1 deletions
+14
View File
@@ -114,6 +114,20 @@ class TranslationToolsTestCase(unittest.TestCase):
self.assertItemsEqual(terms,
['Form stuff', 'Blah blah blah'])
def test_translate_xml_inline4(self):
""" Test xml_translate() with inline elements with translated attrs only. """
terms = []
source = """<form string="Form stuff">
<div>
<label for="stuff"/>
<span class="fa fa-globe" title="Title stuff"/>
</div>
</form>"""
result = xml_translate(terms.append, source)
self.assertEquals(result, source)
self.assertItemsEqual(terms,
['Form stuff', '<span class="fa fa-globe" title="Title stuff"/>'])
def test_translate_xml_t(self):
""" Test xml_translate() with t-* attributes. """
terms = []
+4 -1
View File
@@ -251,7 +251,10 @@ def translate_xml_node(node, callback, parse, serialize):
# complete result and return it
append_content(result, todo)
result.tail = node.tail
has_text = todo_has_text or nonspace(result.text) or nonspace(result.tail)
has_text = (
todo_has_text or nonspace(result.text) or nonspace(result.tail)
or any(name in TRANSLATED_ATTRS for name in result.attrib)
)
return (has_text, result)
# translate the content of todo and append it to result