diff --git a/account_chart_update_multilang/static/description/index.html b/account_chart_update_multilang/static/description/index.html index d3bcbe7b8cf..a5a8b9be561 100644 --- a/account_chart_update_multilang/static/description/index.html +++ b/account_chart_update_multilang/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -434,7 +435,9 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

diff --git a/account_chart_update_multilang/wizards/wizard_chart_update.py b/account_chart_update_multilang/wizards/wizard_chart_update.py index 3c39f05ba96..105d4e64e42 100644 --- a/account_chart_update_multilang/wizards/wizard_chart_update.py +++ b/account_chart_update_multilang/wizards/wizard_chart_update.py @@ -1,28 +1,40 @@ # Copyright 2024 Moduon Team S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0) -from odoo import models +from odoo import fields, models from odoo.tools import ormcache class WizardUpdateChartsAccount(models.TransientModel): _inherit = "wizard.update.charts.accounts" + lang = fields.Selection(default="en_US") + @ormcache("self.lang") def _other_langs(self): return self.env["res.lang"].search([("code", "!=", self.lang)]).mapped("code") + def _get_lang_selection_options(self): + """Only can translate in base language by default.""" + en = self.env["res.lang"]._lang_get("en_US") + return [(en.code, en.name)] + def _update_other_langs(self, templates): - for _, tpl_xmlid in templates.get_external_id().items(): + for tpl_xmlid in templates.get_external_id().values(): template = self.env.ref(tpl_xmlid) module, xmlid = tpl_xmlid.split(".", 1) rec_xmlid = f"{module}.{self.company_id.id}_{xmlid}" rec = self.env.ref(rec_xmlid) + translations = {} for lang in self._other_langs(): - lang_tpl = template.with_context(lang=lang) for key in self._diff_translate_fields(template, rec): - lang_rec = rec.with_context(lang=lang) - lang_rec[key] = lang_tpl[key] + translated = template.with_context(lang=lang)[key] + translations[lang] = ( + {rec[key]: translated} + if callable(rec._fields[key].translate) + else translated + ) + rec.update_field_translations(key, translations) def _diff_translate_fields(self, template, real): """Find differences by comparing the translations of the fields."""