[IMP] ir_translation only display installed lang, 10% speedup in translation loading
authorAntony Lesuisse <al@openerp.com>
Wed, 1 Jun 2011 16:34:55 +0000 (18:34 +0200)
committerAntony Lesuisse <al@openerp.com>
Wed, 1 Jun 2011 16:34:55 +0000 (18:34 +0200)
bzr revid: al@openerp.com-20110601163455-2o732ssum24kwshu

openerp/addons/base/ir/ir_translation.py
openerp/tools/translate.py

index eb90036..85b3e8f 100644 (file)
@@ -44,15 +44,11 @@ class ir_translation(osv.osv):
     _log_access = False
 
     def _get_language(self, cr, uid, context):
-        lang_obj = self.pool.get('res.lang')
-        lang_ids = lang_obj.search(cr, uid, [('translatable', '=', True)],
-                context=context)
-        langs = lang_obj.browse(cr, uid, lang_ids, context=context)
-        res = [(lang.code, lang.name) for lang in langs]
-        for lang_dict in tools.scan_languages():
-            if lang_dict not in res:
-                res.append(lang_dict)
-        return res
+        lang_model = self.pool.get('res.lang')
+        lang_ids = lang_model.search(cr, uid, [('translatable', '=', True)], context=context)
+        lang_data = lang_model.read(cr, uid, lang_ids, ['code','name'])
+        l = [(d['code'],d['name']) for d in lang_data]
+        return l
 
     _columns = {
         'name': fields.char('Field Name', size=128, required=True),
index 5761ba8..c9f6951 100644 (file)
@@ -864,7 +864,6 @@ def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True,
     pool = pooler.get_pool(db_name)
     lang_obj = pool.get('res.lang')
     trans_obj = pool.get('ir.translation')
-    model_data_obj = pool.get('ir.model.data')
     iso_lang = misc.get_iso_codes(lang)
     try:
         uid = 1