diff --git a/odoo/addons/base/tests/test_translate.py b/odoo/addons/base/tests/test_translate.py index e542a4116e9..c502776dcf3 100644 --- a/odoo/addons/base/tests/test_translate.py +++ b/odoo/addons/base/tests/test_translate.py @@ -1139,6 +1139,16 @@ class TestXMLTranslation(TransactionCase): self.assertEqual(view.with_context(lang='fr_FR').arch_db, '
Pain et fromage
Fourchette2
') self.assertEqual(view.with_context(lang='nl_NL').arch_db, view_nl) + # update translations for fallback values and en_US + self.env['res.lang']._activate_lang('es_ES') + self.assertEqual(view.with_context(lang='es_ES').arch_db, '
Bread and cheese
Fork2
') + view.update_field_translations('arch_db', { + 'en_US': {'Fork2': 'Fork3'}, + 'es_ES': {'Fork2': 'Tenedor3'} + }) + self.assertEqual(view.with_context(lang='en_US').arch_db, '
Bread and cheese
Fork3
') + self.assertEqual(view.with_context(lang='es_ES').arch_db, '
Bread and cheese
Tenedor3
') + class TestHTMLTranslation(TransactionCase): def test_write_non_existing(self): diff --git a/odoo/models.py b/odoo/models.py index cc98824c9bf..4df1724d87c 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -3558,8 +3558,9 @@ class BaseModel(metaclass=MetaModel): if not old_translations: return False new_translations = old_translations + old_value_en = old_translations.get('en_US') for lang, translation in translations.items(): - old_value = new_translations.get(lang) or new_translations.get('en_US') + old_value = new_translations.get(lang, old_value_en) if digest: old_terms = field.get_trans_terms(old_value) old_terms_digested2value = {digest(old_term): old_term for old_term in old_terms}