Odoo Help


Translations, best way to manage them

Giovanni Bianchi
on 6/20/16, 6:05 AM 1,090 views

I need to print the company documents (price lists, orders, invoices, etc) in different languages, depending on the customers language (and not the logged user language). I don't need (yet) to translate the user interface since English is the standard for internal use. I created in Settings, Translations, Languages five more languages (German, Italian, Spanish, French, Dutch) and will insert some more when available (Chinese, Korean, etc)

Since we are trying to migrate from the old software (based on DBF archives), I was used to have a translation table with all the report texts; they were coded using:

- a table number (i.e. 0023 = Week days, 0012 = Service, etc)

- a table record number (i.e. [0023]0001 = Monday, [0023]0002 = Tuesday, or [0012]0004 = Excluded, [0012]0003 = Replacement, etc)

- a language code ([0023][0001]0001 = English = Monday, [0023][0001]0002 = German = Montag, [0023][0001]0003 = Italian = Lunedì, etc or [0012][0004]0001 = English = Excluded, [0012][0004]0002 = German = Ohne, [0012][0004]0003 = Italian = Esclusa, etc)

Now, based on your experience with Odoo (my skills are still near zero), which is the best approach to this? keep the old "Translation table" and build my reports/printouts using some code to link the proper translated texts or use the internal langage management? In the second case, that I think is the proper way, can you provide a link to a basic procedure to import all my existing texts in a "texts table" to use in my reports? I have 35 different tables, from Weekdays, to Service, to Product types, to Colors, to Payment methods, Qualifications, Discounts, Months, Countries, Transport means, etc. Everything that could be translated, had been translated, to give to the customer the best and most understandable document, to avoid translation errors.

I had a look to the forum, searching "language" and getting 371 posts, i.e.:




I think the most interesting should be this:

Address : <https://www.odoo.com/forum/help-1/question/translation-of-custom-report-to-multi-languages-in-odoo8-94784>



I have created one custom report in odoo 8.And wish to print report in more than one language (e.g. English & Dutch) on single report.Is it possible with odoo8, if yes please suggest how to achieve. Thanks in advance.


Yes you can achieve the report in multi-language please refer sale order report

<template id="report_saleorder">

<t t-call="report.html_container">

<t t-foreach="doc_ids" t-as="doc_id">

<t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'sale.report_saleorder_document')"/>




You can print report in partner language using template.

Also you can define the po file for the words are used in your report. In Setting->Import/Export->Export Translation where you can export the translation file of your module and put that file into i18n folder. then upgrade the module and load the translation again you will get the translation words from the po file.

This custom defined po file is interesting... If I give a look to the exported translation (I used reports) I can see 6 columns:







So what now? let me try with the "Payment terms"

module is the name of my module, i.e. "MyCompanyName", where I'll put all my custom data, models, views, etc

type is "model" (or "selection" or "code", I haven't yet studied this: selection looks like a list of selectable options, i.e. the paper format; code is used to run a command, .py or .js or else)

name can be "ir.model.fields,field_description" that identifies the field title

res_id is consequently "MyCompanyName.field_order_payment_term_id" that is the field I'm working on

src is "Payment Term" (English)

value is "Condizioni di pagamento" (example for Italian)

with such line, I'm able to print "Payment term" in the English report and "Condizioni di pagamento" in the Italian version, ok?

but what about the list of "payment terms"? We coded 250-more different payment terms, and even if most of them are obsolete or never used, I still have a lot of different values, i.e.:

30 Days shipment date net net by swift transfer

60 Days delivery date net net by Swift transfer

90 Days shipment date 5% by Swift transfer

Cash in advance 3%

At receipt of goods by cheque

14 Days shipment date 3% by Swift transfer

Confirmed irrevoc.L/C at 120 days shipment date to be opened 30 days in advance of scheduled shipment

Conf.irrevoc.L/C at 60 days shipment date

By telegraphic transfer on receipt of proof of shipment

Payment on delivery

50% at the order, 50% bill of lading

30% at order, 50% at delivery, 20% at 30 days after installation

...and many more I don't put here

Question is: where can I store all those items, each one with its translation in 6 different languages?

Should I create 35 different modules, one for each type of texts, or can I put all of them together in a single module, using a field to separate them?

I'm sorry I'm a "little" confused, but I hope I have explained my needs.

Thank you

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)


Asked: 6/20/16, 6:05 AM
Seen: 1090 times
Last updated: 6/21/16, 3:58 AM