This question has been flagged
2 Replies
3473 Views

I found a bug in greek translation. Whenever I navigate to Sales top menu I get the following error. In English it works without a problem.

Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 643, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 680, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 316, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 118, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 309, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 959, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 509, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 892, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 884, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 342, in old_api
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web_planner/models/web_planner.py", line 45, in render
    return self.env['ir.ui.view'].browse(template_id).render(values=values)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 562, in new_api
    result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web_editor/models/ir_ui_view.py", line 29, in render
    return super(view, self).render(cr, uid, id_or_xml_id, values=values, engine=engine, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 1065, in render
    return self.pool[engine].render(cr, uid, id_or_xml_id, qcontext, loader=loader, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_qweb.py", line 252, in render
    element = self.get_template(id_or_xml_id, qwebcontext)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_qweb.py", line 172, in get_template
    document = qwebcontext.loader(name)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 1063, in loader
    return self.read_template(cr, uid, name, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 938, in read_template
    return self._read_template(cr, uid, view_id, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
  File "<string>", line 2, in _read_template
  File "/usr/lib/python2.7/dist-packages/openerp/tools/cache.py", line 85, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 923, in _read_template
    arch = self.read_combined(cr, uid, view_id, fields=['arch'], context=context)['arch']
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_ui_view.py", line 635, in read_combined
    view_arch = etree.fromstring(view['arch'].encode('utf-8'))
  File "lxml.etree.pyx", line 3092, in lxml.etree.fromstring (src/lxml/lxml.etree.c:70691)
  File "parser.pxi", line 1828, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:106689)
  File "parser.pxi", line 1716, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:105478)
  File "parser.pxi", line 1086, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:100105)
  File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94543)
  File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:96003)
  File "parser.pxi", line 620, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:95050)
XMLSyntaxError: Opening and ending tag mismatch: strong line 264 and p, line 266, column 25


Avatar
Discard
Best Answer

Hello,


This is due to a planner wrongly translated. Most of the time it's either an XML tag not properly closed (eg <p>foo</ p>) or unescaped char (eg:"Foo < Bar" should be replaced by "Foo &lt; Bar").

It is a bit technical to fix it but you need to find the place where this report is wrongly translated. In this case, you know it is the sale planner and the error is line 264 of the rendered planner around a "strong" tag.


As it is a bit difficult to know which one is wrong, I have created a test to build all planners in all languages to print the one with issues.

Check the latest result (with this week translation).

I have fixed a lot of these but people with some free time are very welcome to submit fixes for the remaining one on Transifex (see translation wiki and Transifex project ).

The good news is that I have already fixed the one for Greek has been fixed. You only need to update your translations. In debug mode (top right corner menu > about > activate the developer mode), go to Settings > Translations > Load a translation and reload your language with the checkbox Overwrite Existing Terms checked.


Update 25/01/16: this error should no longer be met, we have published a fix that hides the error, even on badly translated terms. You still need to fix it on Transifexfor a proper formatting but this will prevent most errors for the user.

Avatar
Discard
Author

Thanks a lot for your time Martin. I tried to reload the language with the overwrite field checked but error is still there. Maybe it didnt got updated yet.

Ok I checked a bit too fast, indeed there was a remaining one (strangely my test did not fail) The wrong term was https://www.transifex.com/odoo/odoo-9/translate/#el/crm/60113413 with "<strong>Οι προσαρμογές γίνονται απο τους ειδικούς του Odoo</strong>" instead of "<strong>Οι προσαρμογές γίνονται απο τους ειδικούς του Odoo<strong>" it has been fixed and will be in next Sunday sync but you can correct it manually in your db (Settings > Translations > Translated Terms in debug mode)

Author

Thanks a lot again Martin. Could you also change the Date format to the correct %d/%m/%Y. It isnt editable in settings

You can change this in the language settings (Settings > Translations > Languages) but it usually use the locale of the computer so if you have the greek locale installed, it should take the correct one.

Author

Another problem now :D XMLSyntaxError: expected '>', line 357, column 67

I have explained how to find and correct the wrong terms, so now I invite you to submit your changes on Transifex. I have launched a rebuilt that will soon be done at http://runbot.odoo.com/runbot/build/123262 where you will even be able to see the full view to easily find the wrong line (by the way this planner is crm_planner).

Best Answer

I did send this to Martin Trigaux, translation coordinator of Odoo.

Avatar
Discard