diff options
| author | Vo Minh Thu <vmt@openerp.com> | 2010-12-29 15:53:13 +0100 |
|---|---|---|
| committer | Olivier Dony <odo@openerp.com> | 2010-12-29 15:53:13 +0100 |
| commit | 3ecea6df634cd7ae1a0c9d6034002b21a79773f8 (patch) | |
| tree | 746e7c8c6f5e42d856caf4cb5c9156f53c0cafb0 /bin/addons/base/module/module.py | |
| parent | cffcef1a9dab854b11db91b35af368d24afd22b5 (diff) | |
| parent | 799ef1b9884364ccdff01e1d6764ca9e52950bee (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.py | 14 |
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) |
