跳至内容
菜单
此问题已终结
2 回复
4334 查看

形象
丢弃

Hi Lukas, 

Everything great!

Thanks so much for the answer, it seems like I have a few more things to take care of before I can actually translate it, but that's ok. 

Thanks so much again!

Have a great day, 

George

编写者 最佳答案

Problem: A custom made report (with Studio) is printed (or the pdf is generated) with all the fields translated into the language of the user in Odoo, instead of the language of the contact for whom the report is intended.

Use case: A newsletter is sent to the contacts of a company. Of course, this should be in the language of the contact that will receive the letter. The goal is that fields like for example the title of a contact (mister, miss) are translated into the language of the receiving person.

Cause: In reports such as an invoice (translated into the contact’s language by default), a context is added in the XML code to indicate this. This XML code is missing if you create a report in Studio from scratch.

Solution: Add this piece of code in the XML code:

<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)" />

What it means in human language: we’re adding a context to this report, which sets the language of the report to the language of the partner that’s present in the document from which we’re generating the report.

How to get the language?

If you are generating a report from the contacts app (as in the example above), you just need the value of the language field -> doc.lang

If you are generating a report from an app like accounting, there is an extra step to go through the contact itself -> doc.partner_id.lang

 

Step by step guide

1) Go to the report you created in Studio

2) Go to Report -> XML (the developer mode has to be activated)

3) In the dropdown, select the one that starts by studio_customization. and ends with _document.

 

4) Copy the entire thing: “studio_customization.studio_report_docume_c8a3a442-df5c-4463-96cd-c90eb64439cb_document

5) Go (in debug mode) to the views in the technical settings

6) Search for the line you copied in step 4

7) Open the one where the ‘key’ is the same as the line you copied

8) Add the piece of code

形象
丢弃

Great article, thank you Lukas, unblocked me with a report I had this issue with!

Hi Lukas,

Hope all is good!
Your post seems to be exactly what I have been looking for.
Unfortunately, I get stuck at step 3.
If you could help, I would be grateful!
What should I chose?
https://drive.google.com/file/d/17iWtKPasTfv7lpuOj3RsjoFUE12Y-jB1/view?usp=sharing

Thanks in advance!

Kind regards,
George

编写者

Hi George! All fine here, hope the same for you.

This should be the one: https://tinyurl.com/2mp86ah6
Let me know if it works!

Kind regards,
Lukas

最佳答案

Hi Lukas,


I am trying to translate my delivery slip (created in Odoo Studio) into the customers language.

However, it keeps generating it in Dutch.

I have added the formula:

t t-name="studio_report_document">

 

                 

 

               


Seems like I am doing something incorrect.


Thanks, Ellen


形象
丢弃
相关帖文 回复 查看 活动
1
3月 24
2558
1
10月 21
4791
0
11月 19
8
5
10月 24
12022
3
2月 25
28748