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.:
https://www.odoo.com/forum/help-1/question/how-to-edit-add-translations-5780
https://doc.odoo.com/v6.1/developer/14_appendice.html#translations
https://www.odoo.com/forum/help-1/question/correct-way-to-add-translations-to-odoo-through-po-files-72140
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>
[Q]
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.
[A]
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')"/>
</t>
</t>
</template>
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:
module
type
name
res_id
src
value
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