From 428fbd0381385f9b7cec83a1a2b9240e192abc21 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Thu, 2 Aug 2018 16:50:05 +0200 Subject: [PATCH] [FIX] tools: skip bad translations --- odoo/tools/translate.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/odoo/tools/translate.py b/odoo/tools/translate.py index f69d37214bd..e92555f0109 100644 --- a/odoo/tools/translate.py +++ b/odoo/tools/translate.py @@ -1098,10 +1098,14 @@ def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True, # discard the target from the POT targets. src = dic['src'] - if src in pot_targets: - target = pot_targets[src] - target.value = dic['value'] - target.targets.discard((dic['type'], dic['name'], dic['res_id'])) + target = pot_targets.get(src) + if not target or (dic['type'], dic['name'], dic['res_id']) not in target.targets: + _logger.info("Translation '%s' (%s, %s, %s) not found in reference pot, skipping", + src[:60], dic['type'], dic['name'], dic['res_id']) + return + + target.value = dic['value'] + target.targets.discard((dic['type'], dic['name'], dic['res_id'])) # This would skip terms that fail to specify a res_id res_id = dic['res_id']