Master i18n fp

Improvements
-------------------

This branch improves the translation mechanism, mostly needed for frontend:

1/ Translation of XML/HTML fields: are managed like arch in ir.ui.view. Splited in smaller goups rather than having to translate the whole field (e.g. a blog, a product description, etc.)

2/ Typos management when translating from the website: if a typo is fixed on an english string, you do not have to translate the whole blog again in all languages. If you completely change a paragraph, it has to be translated again (only the paragraph, not the whole blog). If you just fix a typo, the translated versions remain.

3/ The translation of views is not a specific use case, it's now translate=True on the arch fields on ir.ui.view.

More efficient, less lines of code.

Changes
------------

* Fields support not only translate=True, but also translate=CHUNK_METHOD. This method takes a string in argument and return a list of strings to translate.
* From the client side point of view, translate=CHUNK_METHOD is like translate=False. (e.g. you can not modify the french version of the arch field of views)
* The context on translations changed in the exported .PO.   #: view:resource.calendar.leaves:0 is now  #: model:ir.ui.view,arch:resource.view_resource_calendar_leaves_search

Done
-------

- tested to import .PO
- tested to export .PO
- tested in the frontend

Todo
-------

- More tests
- put chunk_xml (in ir_ui_view) in tools/xml.py and use it in blogs, product description, ...
- improve chunk_xml to not split around \<b\>, \<i\> and \<strong\>, \<span\>, \<em\>
- Adapt the frontend to support translation of HTML fields like views
- Re-export .POs in all languages (ask ODO for this, he has his own script to do this)



If you are going to fix that then may as well fix algorithm.

Actually that misspelling also occurs here -
addons/website_sale/static/description/index.html
in a user facing description


On Thu, Jul 31, 2014 at 4:50 PM, Raphaël Valyi <notifications@github.com>
wrote:

> In addons/website/models/ir_ui_view.py:
>
> >
> >          view = self.browse(cr, SUPERUSER_ID, res_id, context=context)
> >          if view.model_data_id:
> >              view.model_data_id.write({'
> noupdate': True})
> > +
> > +    # When the english version of a field is modified, the algorythm tries to
> > +    # resync translation if the distance between modified strings is not too
> > +    # big. It allows to not retranslate data where a typo has been fixed in
> > +    # the english version.
>
> same here
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/odoo/odoo/pull/1464/files#r15626218>.
>