From ce281db084fd42eda67a288daa3f745e01d24d30 Mon Sep 17 00:00:00 2001 From: Naresh Choksy Date: Mon, 4 May 2009 15:52:51 +0530 Subject: [PATCH] bugfix:translation of reports bzr revid: nch@tinyerp.com-20090504102251-lbhux5vbdvjp33qp --- bin/report/report_sxw.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bin/report/report_sxw.py b/bin/report/report_sxw.py index 118133a5be1..aaa61cac0f0 100644 --- a/bin/report/report_sxw.py +++ b/bin/report/report_sxw.py @@ -179,6 +179,7 @@ class rml_parse(object): self.lang_dict = {} self.default_lang = {} self.lang_dict_called = False + self._transl_regex = re.compile('(\[\[.+?\]\])') def setTag(self, oldtag, newtag, attrs=None): return newtag, attrs @@ -264,10 +265,18 @@ class rml_parse(object): return ret_lst def _translate(self,text): - lang = self.localcontext.get('lang', False) - if lang and not text.isspace(): + lang = self.localcontext['lang'] + if lang and text and not text.isspace(): transl_obj = self.pool.get('ir.translation') - return transl_obj._get_source(self.cr, self.uid, self.name, 'rml', lang, text.replace('\n',' ').strip()) or text + piece_list = self._transl_regex.split(text) + for pn in range(len(piece_list)): + if not self._transl_regex.match(piece_list[pn]): + source_string = piece_list[pn].replace('\n', ' ').strip() + if len(source_string): + translated_string = transl_obj._get_source(self.cr, self.uid, self.name, 'rml', lang, source_string) + if translated_string: + piece_list[pn] = piece_list[pn].replace(source_string, translated_string) + text = ''.join(piece_list) return text def _add_header(self, rml_dom, header=1):