summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2010-12-29 19:58:33 +0100
committerFabien Pinckaers <fp@tinyerp.com>2010-12-29 19:58:33 +0100
commit840e76b9ace851c3f12f031c486cbb1827e75d2e (patch)
treedfe77e598ad9670d37d3106f0d636e37a134a45d /bin
parent303c769a53ee548c1deb9d30577fd3b7075d19b7 (diff)
parent6f930404ed0d67116a30161a5827f61d57f7833b (diff)
merge
bzr revid: fp@tinyerp.com-20101229185833-ujdxwg5zyg2i3zf2
Diffstat (limited to 'bin')
-rw-r--r--bin/addons/__init__.py4
-rw-r--r--bin/addons/base/module/module.py2
-rwxr-xr-xbin/openerp-server.py6
-rw-r--r--bin/tools/config.py6
-rw-r--r--bin/tools/translate.py13
5 files changed, 28 insertions, 3 deletions
diff --git a/bin/addons/__init__.py b/bin/addons/__init__.py
index 29f81f97928..6e5bd3b567b 100644
--- a/bin/addons/__init__.py
+++ b/bin/addons/__init__.py
@@ -827,6 +827,10 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
raise osv.osv.except_osv(_('Could not load base module'), _('module base cannot be loaded! (hint: verify addons-path)'))
has_updates = load_module_graph(cr, graph, status, perform_checks=(not update_module), report=report, skip_cleanup=True)
+ if tools.config['load_language']:
+ for lang in tools.config['load_language'].split(','):
+ tools.load_language(cr, lang)
+
if update_module:
modobj = pool.get('ir.module.module')
logger.notifyChannel('init', netsvc.LOG_INFO, 'updating modules list')
diff --git a/bin/addons/base/module/module.py b/bin/addons/base/module/module.py
index 6bd92df83d4..d90ef415951 100644
--- a/bin/addons/base/module/module.py
+++ b/bin/addons/base/module/module.py
@@ -475,7 +475,7 @@ class module(osv.osv):
categs = categs[1:]
self.write(cr, uid, [mod_browse.id], {'category_id': p_id})
- def update_translations(self, cr, uid, ids, filter_lang=None, context=None):
+ def update_translations(self, cr, uid, ids, filter_lang=None, context={}):
logger = logging.getLogger('i18n')
if not filter_lang:
pool = pooler.get_pool(cr.dbname)
diff --git a/bin/openerp-server.py b/bin/openerp-server.py
index 72bc5d037d8..5c67c879d84 100755
--- a/bin/openerp-server.py
+++ b/bin/openerp-server.py
@@ -119,13 +119,17 @@ if not ( tools.config["stop_after_init"] or \
if tools.config['db_name']:
for dbname in tools.config['db_name'].split(','):
db,pool = pooler.get_db_and_pool(dbname, update_module=tools.config['init'] or tools.config['update'], pooljobs=False)
+ cr = db.cursor()
+
if tools.config["test_file"]:
logger.info('loading test file %s', tools.config["test_file"])
- cr = db.cursor()
tools.convert_yaml_import(cr, 'base', file(tools.config["test_file"]), {}, 'test', True)
cr.rollback()
+
pool.get('ir.cron')._poolJobs(db.dbname)
+ cr.close()
+
#----------------------------------------------------------
# translation stuff
#----------------------------------------------------------
diff --git a/bin/tools/config.py b/bin/tools/config.py
index 144ce3e1e98..12358beac34 100644
--- a/bin/tools/config.py
+++ b/bin/tools/config.py
@@ -59,6 +59,7 @@ class configmanager(object):
'translate_in': None,
'translate_out': None,
'overwrite_existing_translations': False,
+ 'load_language': None,
'language': None,
'pg_path': None,
'admin_passwd': 'admin',
@@ -210,6 +211,8 @@ class configmanager(object):
"Option '-l' is mandatory in case of importation"
)
+ group.add_option('--load-language', dest="load_language",
+ help="specifies the languages for the translations you want to be loaded")
group.add_option('-l', "--language", dest="language",
help="specify the language of the translation file. Use it with --i18n-export or --i18n-import")
group.add_option("--i18n-export", dest="translate_out",
@@ -291,7 +294,8 @@ class configmanager(object):
self.options[arg] = getattr(opt, arg)
keys = [
- 'language', 'translate_out', 'translate_in', 'overwrite_existing_translations', 'debug_mode', 'smtp_ssl',
+ 'language', 'translate_out', 'translate_in', 'overwrite_existing_translations',
+ 'debug_mode', 'smtp_ssl', 'load_language',
'stop_after_init', 'logrotate', 'without_demo', 'netrpc', 'xmlrpc', 'syslog',
'list_db', 'xmlrpcs',
'test_file', 'test_disable', 'test_commit', 'test_report_directory'
diff --git a/bin/tools/translate.py b/bin/tools/translate.py
index 5cc69f50530..e22c51af0fd 100644
--- a/bin/tools/translate.py
+++ b/bin/tools/translate.py
@@ -1007,5 +1007,18 @@ def resetlocale():
except locale.Error:
continue
+def load_language(cr, lang):
+ """Loads a translation terms for a language.
+ Used mainly to automate language loading at db initialization.
+
+ :param lang: language ISO code with optional _underscore_ and l10n flavor (ex: 'fr', 'fr_BE', but not 'fr-BE')
+ :type lang: str
+ """
+ pool = pooler.get_pool(cr.dbname)
+ language_installer = pool.get('base.language.install')
+ uid = 1
+ oid = language_installer.create(cr, uid, {'lang': lang})
+ language_installer.lang_install(cr, uid, [oid], context=None)
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: