summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-08-16 14:59:12 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-08-16 14:59:12 +0200
commit5a34b9fee1eac75d724ea459a65e6d4792b39f0d (patch)
tree320e586cbdc3ad8debcc6ebb1dfa907c573caf62 /addons
parent81ea898b8c0a05e2f538bb7450e9d64e4ef8c470 (diff)
[imp] added fallback support for translations
bzr revid: nicolas.vanhoren@openerp.com-20110816125912-5fkm71nb4y6yp3d0
Diffstat (limited to 'addons')
-rw-r--r--addons/base/controllers/main.py39
-rw-r--r--addons/base/static/src/js/core.js1
2 files changed, 24 insertions, 16 deletions
diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py
index 71f2d480dd2..e73e281ce3a 100644
--- a/addons/base/controllers/main.py
+++ b/addons/base/controllers/main.py
@@ -160,21 +160,6 @@ class WebClient(openerpweb.Controller):
@openerpweb.jsonrequest
def translations(self, req, mods, lang):
- transs = {}
- for addon_name in mods:
- transl = {"messages":[]}
- transs[addon_name] = transl
- f_name = os.path.join(openerpweb.path_addons, addon_name, "po", lang + ".po")
- if not os.path.exists(f_name):
- continue
- try:
- with open(f_name) as t_file:
- po = read_po(t_file)
- except:
- continue
- for x in po:
- if x.id:
- transl["messages"].append({'id': x.id, 'string': x.string})
lang_model = req.session.model('res.lang')
ids = lang_model.search([("code", "=", lang)])
if ids:
@@ -182,6 +167,30 @@ class WebClient(openerpweb.Controller):
"grouping", "decimal_point", "thousands_sep"])
else:
lang_obj = None
+
+ if lang.count("_") > 0:
+ separator = "_"
+ else:
+ separator = "@"
+ langs = lang.split(separator)
+ langs = [separator.join(langs[:x]) for x in range(1, len(langs) + 1)]
+
+ transs = {}
+ for addon_name in mods:
+ transl = {"messages":[]}
+ transs[addon_name] = transl
+ for l in langs:
+ f_name = os.path.join(openerpweb.path_addons, addon_name, "po", l + ".po")
+ if not os.path.exists(f_name):
+ continue
+ try:
+ with open(f_name) as t_file:
+ po = read_po(t_file)
+ except:
+ continue
+ for x in po:
+ if x.id and x.string:
+ transl["messages"].append({'id': x.id, 'string': x.string})
return {"modules": transs,
"lang_parameters": lang_obj}
diff --git a/addons/base/static/src/js/core.js b/addons/base/static/src/js/core.js
index b7fc7704c10..9c5bf358d7b 100644
--- a/addons/base/static/src/js/core.js
+++ b/addons/base/static/src/js/core.js
@@ -893,7 +893,6 @@ openerp.base.Session = openerp.base.CallbackEnabled.extend( /** @lends openerp.b
openerp[mod] = {};
// init module mod
if(openerp._openerp[mod] != undefined) {
- openerp._openerp[mod]._T = openerp.base._t.database.build_translation_function();
openerp._openerp[mod](openerp);
this.module_loaded[mod] = true;
}