summaryrefslogtreecommitdiff
path: root/odoo/tools
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2019-10-16 12:05:02 +0200
committerMartin Trigaux <mat@odoo.com>2019-11-19 10:37:01 +0100
commit49fbab5329fb95e759c3f90d4e9efb1717a9695c (patch)
tree5ced82c181feb5f9155b27f7ac2aca7b824080c6 /odoo/tools
parent7bf6992869804973b41a785037fc176cd608320e (diff)
[IMP] base: split and deprecate load_lang
load_lang was a kind of hybrid method trying to active or creating a language if not found. This was error prone. Instead rely on two methods with clear purpose: ResLang._create_lang(lang, lang_name=None) - create a new res.lang entry using the locale of the server return the res.lang record to match the API of _activate_lang ResLang._active_lang(code) - activate the given code lang Most of the time, _active_lang is what is expected tools.trans_load_data and IrTranslation._load_module_terms no longer activate the language if not active. Loading the translations should be explicit on an activated language, it is too error prone to silently activate/create a language if not found. Remove lang_name from trans_load_data as no longer needed.
Diffstat (limited to 'odoo/tools')
-rw-r--r--odoo/tools/translate.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/odoo/tools/translate.py b/odoo/tools/translate.py
index e185f9c809c..cf40a326179 100644
--- a/odoo/tools/translate.py
+++ b/odoo/tools/translate.py
@@ -1046,7 +1046,7 @@ def trans_load(cr, filename, lang, verbose=True, module_name=None, context=None)
return None
-def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True, module_name=None, context=None):
+def trans_load_data(cr, fileobj, fileformat, lang, verbose=True, module_name=None, context=None):
"""Populates the ir_translation table."""
if verbose:
_logger.info('loading translation file for language %s', lang)
@@ -1056,9 +1056,9 @@ def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True,
Translation = env['ir.translation']
try:
- if not Lang.search_count([('code', '=', lang)]):
- # lets create the language with locale information
- Lang.load_lang(lang=lang, lang_name=lang_name)
+ if not Lang._lang_get(lang):
+ _logger.error("Couldn't read translation for lang '%s', language not found", lang)
+ return None
# now, the serious things: we read the language file
fileobj.seek(0)