summaryrefslogtreecommitdiff
path: root/bin/addons/base/module/module.py
diff options
context:
space:
mode:
authorVo Minh Thu <vmt@openerp.com>2010-12-29 15:53:13 +0100
committerOlivier Dony <odo@openerp.com>2010-12-29 15:53:13 +0100
commit3ecea6df634cd7ae1a0c9d6034002b21a79773f8 (patch)
tree746e7c8c6f5e42d856caf4cb5c9156f53c0cafb0 /bin/addons/base/module/module.py
parentcffcef1a9dab854b11db91b35af368d24afd22b5 (diff)
parent799ef1b9884364ccdff01e1d6764ca9e52950bee (diff)
[MERGE] tools.translate, module: load generic PO files before specific ones (e.g fr.po before fr_BE.po)
bzr revid: odo@openerp.com-20101229145313-7v7rv3ntmqehzdyi
Diffstat (limited to 'bin/addons/base/module/module.py')
-rw-r--r--bin/addons/base/module/module.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/bin/addons/base/module/module.py b/bin/addons/base/module/module.py
index ba79dea4e13..6bd92df83d4 100644
--- a/bin/addons/base/module/module.py
+++ b/bin/addons/base/module/module.py
@@ -495,15 +495,23 @@ class module(osv.osv):
for lang in filter_lang:
iso_lang = tools.get_iso_codes(lang)
f = addons.get_module_resource(mod.name, 'i18n', iso_lang + '.po')
+ context2 = context and context.copy() or {}
+ if f and '_' in iso_lang:
+ iso_lang2 = iso_lang.split('_')[0]
+ f2 = addons.get_module_resource(mod.name, 'i18n', iso_lang2 + '.po')
+ if f2:
+ logger.info('module %s: loading base translation file %s for language %s', mod.name, iso_lang2, lang)
+ tools.trans_load(cr.dbname, f2, lang, verbose=False, context=context)
+ context2['overwrite'] = True
# Implementation notice: we must first search for the full name of
# the language derivative, like "en_UK", and then the generic,
# like "en".
if (not f) and '_' in iso_lang:
- f = addons.get_module_resource(mod.name, 'i18n', iso_lang.split('_')[0] + '.po')
iso_lang = iso_lang.split('_')[0]
+ f = addons.get_module_resource(mod.name, 'i18n', iso_lang + '.po')
if f:
- logger.info('module %s: loading translation file for language %s', mod.name, iso_lang)
- tools.trans_load(cr.dbname, f, lang, verbose=False, context=context)
+ logger.info('module %s: loading translation file (%s) for language %s', mod.name, iso_lang, lang)
+ tools.trans_load(cr.dbname, f, lang, verbose=False, context=context2)
elif iso_lang != 'en':
logger.warning('module %s: no translation for language %s', mod.name, iso_lang)