Я хочу изменить тело шаблона электронной почты, например, email_template_edi_sale
в модуле sale
.
Его объявление находится внутри тега <data no update="1">
, что означает, что я должен сделатьОбойти это, чтобы изменить его.Поэтому я решил создать метод Python, который делает трюк и вызывает его из XML:
XML
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<function model="mail.template" name="_update_existing_mail_templates"/>
</data>
</odoo>
Python
class MailTemplate(models.Model):
_inherit = 'mail.template'
@api.model
def _update_existing_mail_templates(self):
edi_sale = self.env.ref('sale.email_template_edi_sale', False)
if edi_sale:
body_html = _("""<p>Hello customer.</p>""")
edi_sale.write({
'body_html': body_html,
})
Это решение работает должным образом, поскольку при загрузке шаблона я вижу только Привет, клиент .Теперь я хочу экспортировать его перевод.Файл xx.po правильно экспортирован, поскольку у меня есть возможность перевести термин <p>Hello customer.</p>
.Я, например, перевожу его на испанский, поэтому создаю файл es.po .Затем я обновляю модуль и загружаю перевод на испанском языке.Чтобы убедиться, что это сработало, я ищу термин в меню Переведенные термины и считаю его правильно переведенным.Но затем я отправляю по электронной почте заказ на продажу клиента (у которого установлен испанский язык), и шаблон загружается с исходным текстом на английском языке.
Я не смог выяснить, что происходит.
Здесь есть похожий вопрос: Перевод шаблона электронной почты Odoo 10
Но парень, который спрашивает, решил проблему с переводом шаблона вручную через интерфейс.В моем случае я даже не могу применить это решение, поскольку термин правильно переведен в интерфейсе.
Есть идеи, чтобы сделать это нормально?