diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py index 34de366d56e..6929b31f954 100644 --- a/openerp/tools/translate.py +++ b/openerp/tools/translate.py @@ -305,12 +305,16 @@ def html_translate(callback, value): if not value: return value - parser = etree.HTMLParser(encoding='utf-8') - trans = XMLTranslator(callback, 'html', parser) - wrapped = "
%s
" % encode(value) - root = etree.fromstring(wrapped, parser) - trans.process(root[0][0]) # html > body > div - return trans.get_done()[5:-6] # remove tags
and
+ try: + parser = etree.HTMLParser(encoding='utf-8') + trans = XMLTranslator(callback, 'html', parser) + wrapped = "
%s
" % encode(value) + root = etree.fromstring(wrapped, parser) + trans.process(root[0][0]) # html > body > div + value = trans.get_done()[5:-6] # remove tags
and
+ except ValueError: + _logger.exception("Cannot translate malformed HTML, using source value instead") + return value #