Comment 7 for bug 434266

Revision history for this message
Borja López Soilán (NeoPolus) (borjals) wrote :

As Albert said, the context is not being passed on the workflow 'executes'. Enabling the RPC debug output on the GTK Client, you get something like this:

For a normal action over an object:

DEBUG_RPC:rpc.request:('execute', 'test', 1, 'pass', ('account.invoice.line', 'read', [173], ['__last_update', 'uos_id', 'name', 'price_unit', 'price_subtotal', 'price_subtotal_incl', 'invoice_line_tax_id', 'product_id', 'account_analytic_id', 'quantity', 'account_id'], {'lang': u'es_ES', 'tz': False}))

The last dict is the context, and it contains a 'lang' key.

For an action over a workflow:

DEBUG_RPC:rpc.request:('exec_workflow', 'test', 1, 'pass', (u'account.invoice', 'invoice_open', 136L))

No context dict, so no 'lang' is defined here.

In some places, like the invoice.action_create, a new context is created with a new lang key IN INCONSISTENT WAYS: some actions will never get a lang, some actions will get an incorrect lang.

For example, in invoice.action_create the lang of the partner is used, instead of the lang of the current user, for displaying warnings.

That means, that:
  - Spanish users creating an (invalid) invoice for a spanish partner, will get a warning in spanish. (i.e. "¡Total erróneo!")
  - Spanish users creating an (invalid) invoice for a french partner, will get a warning in french. (I did get "Bad Total !", seems that it is not translated to french...)
  - Spanish users creating an (invalid) invoice for a partner with no language defined, will get a warning in english. (i.e. "Bad Total !")

In the end... those -put here whatever language you like- speaking users just get pissed! (and so do the translators that don't understand why some messages won't get propertly translated).