From 14ba615398c756364adafea94c7d63c9e6d9e647 Mon Sep 17 00:00:00 2001 From: Dennis Sluijk Date: Thu, 25 Apr 2019 18:14:42 +0200 Subject: [PATCH 01/18] [ADD] mail_template_attachment_i18n: Mail Template Language Dependent Attachments (#1367) --- mail_template_attachment_per_lang/README.rst | 99 +++++++++++++++++++ mail_template_attachment_per_lang/__init__.py | 1 + .../__manifest__.py | 18 ++++ .../models/__init__.py | 2 + .../models/ir_attachment_language.py | 28 ++++++ .../models/mail_template.py | 44 +++++++++ .../readme/CONFIGURE.rst | 6 ++ .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 3 + .../readme/USAGE.rst | 10 ++ .../security/ir.model.access.csv | 3 + .../views/mail_template_view.xml | 23 +++++ 12 files changed, 238 insertions(+) create mode 100644 mail_template_attachment_per_lang/README.rst create mode 100644 mail_template_attachment_per_lang/__init__.py create mode 100644 mail_template_attachment_per_lang/__manifest__.py create mode 100644 mail_template_attachment_per_lang/models/__init__.py create mode 100644 mail_template_attachment_per_lang/models/ir_attachment_language.py create mode 100644 mail_template_attachment_per_lang/models/mail_template.py create mode 100644 mail_template_attachment_per_lang/readme/CONFIGURE.rst create mode 100644 mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst create mode 100644 mail_template_attachment_per_lang/readme/DESCRIPTION.rst create mode 100644 mail_template_attachment_per_lang/readme/USAGE.rst create mode 100644 mail_template_attachment_per_lang/security/ir.model.access.csv create mode 100644 mail_template_attachment_per_lang/views/mail_template_view.xml diff --git a/mail_template_attachment_per_lang/README.rst b/mail_template_attachment_per_lang/README.rst new file mode 100644 index 00000000000..e49229353a6 --- /dev/null +++ b/mail_template_attachment_per_lang/README.rst @@ -0,0 +1,99 @@ +=========================================== +Mail Template Language Specific Attachments +=========================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github + :target: https://github.com/OCA/server-tools/tree/11.0/mail_template_attachment_i18n + :alt: OCA/server-tools +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-tools-11-0/server-tools-11-0-mail_template_attachment_i18n + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/149/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the functionality of mail templates. +It allows you to configure attachments based on the language of the partner. +For example you can use it to localize your company's terms of agreements. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure a language dependent attachment: + +#. Activate the developer mode; +#. go to *Settings > Technical > Email > Templates*; +#. go to the form view of the template you want to change; +#. change the field *Language Dependent Attachments* to what you want. + +Usage +===== + +When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. +The language of the recipients can be configured on the Partner form view. +When partners with different languages are selected all attachments of the partners languages will be added. + +To use the functionality: + +#. Configure a template (e.g. the sale order mail template) +#. go to a sale order; +#. click *Send by Email*; +#. the attachments are added based on the customer's language. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Onestein + +Contributors +~~~~~~~~~~~~ + +* Dennis Sluijk + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +This module is part of the `OCA/server-tools `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_template_attachment_per_lang/__init__.py b/mail_template_attachment_per_lang/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/mail_template_attachment_per_lang/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mail_template_attachment_per_lang/__manifest__.py b/mail_template_attachment_per_lang/__manifest__.py new file mode 100644 index 00000000000..95c8f7228cf --- /dev/null +++ b/mail_template_attachment_per_lang/__manifest__.py @@ -0,0 +1,18 @@ +{ + 'name': 'Mail Template Language Specific Attachments', + 'summary': 'Set language specific attachments on mail templates.', + 'author': 'Onestein,Odoo Community Association (OCA)', + 'website': 'https://github.com/oca/server-tools', + 'category': 'Localization', + 'version': '11.0.1.0.0', + 'license': 'AGPL-3', + 'depends': [ + 'mail' + ], + 'data': [ + 'views/mail_template_view.xml', + + 'security/ir.model.access.csv' + ], + 'installable': True, +} diff --git a/mail_template_attachment_per_lang/models/__init__.py b/mail_template_attachment_per_lang/models/__init__.py new file mode 100644 index 00000000000..3c0a006aade --- /dev/null +++ b/mail_template_attachment_per_lang/models/__init__.py @@ -0,0 +1,2 @@ +from . import ir_attachment_language +from . import mail_template diff --git a/mail_template_attachment_per_lang/models/ir_attachment_language.py b/mail_template_attachment_per_lang/models/ir_attachment_language.py new file mode 100644 index 00000000000..cd9575f7e16 --- /dev/null +++ b/mail_template_attachment_per_lang/models/ir_attachment_language.py @@ -0,0 +1,28 @@ +# Copyright 2018 Onestein +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class IrAttachmentLanguage(models.Model): + _name = 'ir.attachment.language' + + mail_template_id = fields.Many2one( + comodel_name='mail.template', + string='Template', + required=True, + ondelete='cascade', + ) + + lang = fields.Selection( + selection=lambda self: self.env['res.lang'].get_installed(), + string='Language', + required=True, + ) + + attachment_id = fields.Many2one( + comodel_name='ir.attachment', + string='Attachment', + required=True, + ondelete='cascade', + ) diff --git a/mail_template_attachment_per_lang/models/mail_template.py b/mail_template_attachment_per_lang/models/mail_template.py new file mode 100644 index 00000000000..4072704a4c6 --- /dev/null +++ b/mail_template_attachment_per_lang/models/mail_template.py @@ -0,0 +1,44 @@ +# Copyright 2018 Onestein +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class MailTemplate(models.Model): + _inherit = 'mail.template' + + ir_attachment_language_ids = fields.One2many( + string='Language Dependent Attachments', + comodel_name='ir.attachment.language', + inverse_name='mail_template_id', + ) + + @api.multi + def generate_email(self, res_ids, fields=None): + self.ensure_one() + multi = True + if isinstance(res_ids, int): + res_ids = [res_ids] + multi = False + res = super().generate_email( + res_ids, fields + ) + attached = [] + for res_id in res.keys(): + mail = res[res_id] + partner_ids = 'partner_ids' in mail and \ + mail['partner_ids'] or False + if not partner_ids: + continue + for partner in self.env['res.partner'].browse(partner_ids): + for lang_attach in self.ir_attachment_language_ids.filtered( + lambda a: a.lang == partner.lang): + if lang_attach.attachment_id.id in attached: + continue + if not res[res_id].get('attachments'): + res[res_id]['attachments'] = [] + res[res_id]['attachments'].append(( + lang_attach.attachment_id.name, + lang_attach.attachment_id.datas)) + attached.append(lang_attach.id) + return multi and res or res[res_ids[0]] diff --git a/mail_template_attachment_per_lang/readme/CONFIGURE.rst b/mail_template_attachment_per_lang/readme/CONFIGURE.rst new file mode 100644 index 00000000000..61d9eb9dc33 --- /dev/null +++ b/mail_template_attachment_per_lang/readme/CONFIGURE.rst @@ -0,0 +1,6 @@ +To configure a language dependent attachment: + +#. Activate the developer mode; +#. go to *Settings > Technical > Email > Templates*; +#. go to the form view of the template you want to change; +#. change the field *Language Dependent Attachments* to what you want. diff --git a/mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst b/mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..47b6403d06d --- /dev/null +++ b/mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Dennis Sluijk diff --git a/mail_template_attachment_per_lang/readme/DESCRIPTION.rst b/mail_template_attachment_per_lang/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..93cc3f8c025 --- /dev/null +++ b/mail_template_attachment_per_lang/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module extends the functionality of mail templates. +It allows you to configure attachments based on the language of the partner. +For example you can use it to localize your company's terms of agreements. diff --git a/mail_template_attachment_per_lang/readme/USAGE.rst b/mail_template_attachment_per_lang/readme/USAGE.rst new file mode 100644 index 00000000000..79c37e656e6 --- /dev/null +++ b/mail_template_attachment_per_lang/readme/USAGE.rst @@ -0,0 +1,10 @@ +When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. +The language of the recipients can be configured on the Partner form view. +When partners with different languages are selected all attachments of the partners languages will be added. + +To use the functionality: + +#. Configure a template (e.g. the sale order mail template) +#. go to a sale order; +#. click *Send by Email*; +#. the attachments are added based on the customer's language. diff --git a/mail_template_attachment_per_lang/security/ir.model.access.csv b/mail_template_attachment_per_lang/security/ir.model.access.csv new file mode 100644 index 00000000000..04a776e37d9 --- /dev/null +++ b/mail_template_attachment_per_lang/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_attachment_language_admin,ir.attachment.language admin,model_ir_attachment_language,base.group_no_one,1,1,1,1 +access_attachment_language_everyone,ir.attachment.language everyone,model_ir_attachment_language,,1,0,0,0 diff --git a/mail_template_attachment_per_lang/views/mail_template_view.xml b/mail_template_attachment_per_lang/views/mail_template_view.xml new file mode 100644 index 00000000000..e9e301dc6b5 --- /dev/null +++ b/mail_template_attachment_per_lang/views/mail_template_view.xml @@ -0,0 +1,23 @@ + + + + + + mail.template.form + mail.template + + + + + + + + + + + + + + + From 7e3081b46b8c7a94e03eacc24a428e832f5e3b5b Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 25 Apr 2019 16:20:17 +0000 Subject: [PATCH 02/18] [UPD] Update mail_template_attachment_i18n.pot --- .../i18n/mail_template_attachment_i18n.pot | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot diff --git a/mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot b/mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot new file mode 100644 index 00000000000..990b681aea9 --- /dev/null +++ b/mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot @@ -0,0 +1,81 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_template_attachment_i18n +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_attachment_id +msgid "Attachment" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_create_uid +msgid "Created by" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_create_date +msgid "Created on" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_display_name +msgid "Display Name" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model,name:mail_template_attachment_i18n.model_mail_template +msgid "Email Templates" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_id +msgid "ID" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_lang +msgid "Language" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_email_template_preview_ir_attachment_language_ids +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template_ir_attachment_language_ids +msgid "Language Dependent Attachments" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language___last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_write_date +msgid "Last Updated on" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language_mail_template_id +msgid "Template" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model,name:mail_template_attachment_i18n.model_ir_attachment_language +msgid "ir.attachment.language" +msgstr "" + From 258694be2e8fecda0e5f7cc2d669f743a899e96e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 11 May 2019 10:52:49 +0000 Subject: [PATCH 03/18] [UPD] README.rst --- .../static/description/index.html | 446 ++++++++++++++++++ 1 file changed, 446 insertions(+) create mode 100644 mail_template_attachment_per_lang/static/description/index.html diff --git a/mail_template_attachment_per_lang/static/description/index.html b/mail_template_attachment_per_lang/static/description/index.html new file mode 100644 index 00000000000..d11ff506669 --- /dev/null +++ b/mail_template_attachment_per_lang/static/description/index.html @@ -0,0 +1,446 @@ + + + + + + +Mail Template Language Specific Attachments + + + +
+

Mail Template Language Specific Attachments

+ + +

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runbot

+

This module extends the functionality of mail templates. +It allows you to configure attachments based on the language of the partner. +For example you can use it to localize your company’s terms of agreements.

+

Table of contents

+ +
+

Configuration

+

To configure a language dependent attachment:

+
    +
  1. Activate the developer mode;
  2. +
  3. go to Settings > Technical > Email > Templates;
  4. +
  5. go to the form view of the template you want to change;
  6. +
  7. change the field Language Dependent Attachments to what you want.
  8. +
+
+
+

Usage

+

When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. +The language of the recipients can be configured on the Partner form view. +When partners with different languages are selected all attachments of the partners languages will be added.

+

To use the functionality:

+
    +
  1. Configure a template (e.g. the sale order mail template)
  2. +
  3. go to a sale order;
  4. +
  5. click Send by Email;
  6. +
  7. the attachments are added based on the customer’s language.
  8. +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Onestein
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+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.

+

This module is part of the OCA/server-tools project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + From 545ae6474a2a392920aa04d18d5e76f4d05aa80e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 11 May 2019 10:52:49 +0000 Subject: [PATCH 04/18] [ADD] icon.png --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mail_template_attachment_per_lang/static/description/icon.png diff --git a/mail_template_attachment_per_lang/static/description/icon.png b/mail_template_attachment_per_lang/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From c9b7396443aa8f5cf58afafc995e601accb2c45c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 29 Jul 2019 03:39:00 +0000 Subject: [PATCH 05/18] [UPD] README.rst --- mail_template_attachment_per_lang/static/description/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_template_attachment_per_lang/static/description/index.html b/mail_template_attachment_per_lang/static/description/index.html index d11ff506669..f3b3621c7d4 100644 --- a/mail_template_attachment_per_lang/static/description/index.html +++ b/mail_template_attachment_per_lang/static/description/index.html @@ -3,7 +3,7 @@ - + Mail Template Language Specific Attachments -
-

Mail Template Language Specific Attachments

+
+ + +Odoo Community Association + +
+

Mail Template Language Specific Attachments

-

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runbot

-

This module extends the functionality of mail templates. -It allows you to configure attachments based on the language of the partner. -For example you can use it to localize your company’s terms of agreements.

+

Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

+

This module extends the functionality of mail templates.

+

It allows you to configure attachments based on the language of the partner +or the language configured in the mail template (which is some times different +from the partner’s language).

+
    +
  • The email template’s language could be {{ object.partner_id.lang }} or +{{ object.user_id.lang }}, where in the first case we want to send the +email in the partner’s language and in the second case we want to send the +email in the user’s language.
  • +
+

For example you can use it to localize your company’s terms of agreements.

Table of contents

-

Configuration

+

Configuration

To configure a language dependent attachment:

  1. Activate the developer mode;
  2. go to Settings > Technical > Email > Templates;
  3. go to the form view of the template you want to change;
  4. +
  5. choose the Language Attachment Method you want to use;
  6. change the field Language Dependent Attachments to what you want.
-

Usage

+

Usage

When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. The language of the recipients can be configured on the Partner form view. When partners with different languages are selected all attachments of the partners languages will be added.

@@ -405,42 +421,47 @@

Usage

  • Configure a template (e.g. the sale order mail template)
  • go to a sale order;
  • click Send by Email;
  • -
  • the attachments are added based on the customer’s language.
  • +
  • the attachments are added based on the email’s language or the customer’s +language (which might not be the same), depending on the configuration of +the template.
  • -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Onestein
    -

    Maintainers

    +

    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.

    -

    This module is part of the OCA/server-tools project on GitHub.

    +

    This module is part of the OCA/server-tools project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    From 6e384dd2448138ffd97686119893e49f2bca999a Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 26 Jan 2026 07:08:10 +0000 Subject: [PATCH 11/18] Added translation using Weblate (Italian) --- mail_template_attachment_per_lang/i18n/it.po | 171 +++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 mail_template_attachment_per_lang/i18n/it.po diff --git a/mail_template_attachment_per_lang/i18n/it.po b/mail_template_attachment_per_lang/i18n/it.po new file mode 100644 index 00000000000..a770ff9f692 --- /dev/null +++ b/mail_template_attachment_per_lang/i18n/it.po @@ -0,0 +1,171 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_template_attachment_i18n +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__assigned_attachment_ids +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__assigned_attachment_ids +msgid "Assigned Attachments" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__attachment_id +msgid "Attachment" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model,name:mail_template_attachment_i18n.model_ir_attachment_language +msgid "Attachment Language" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_change_ids +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_change_ids +msgid "Changeset Changes" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_ids +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_ids +msgid "Changesets" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_changesets +msgid "Count Changesets" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes +msgid "Count Pending Changeset Changes" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changesets +msgid "Count Pending Changesets" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_uid +msgid "Created by" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_date +msgid "Created on" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__display_name +msgid "Display Name" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model,name:mail_template_attachment_i18n.model_mail_template +msgid "Email Templates" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__id +msgid "ID" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__lang +msgid "Language" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_method +msgid "Language Attachment Method" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form +msgid "Language Attachments" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_ids +msgid "Language Dependent Attachments" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form +msgid "Method" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__partner_lang +msgid "Partner Language" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__smart_search +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__smart_search +msgid "Smart Search" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__mail_template_id +msgid "Template" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__template_lang +msgid "Template Language" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes +#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes +msgid "The number of pending changes of this record" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets +#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changesets +msgid "The number of pending changesets of this record" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets +#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_changesets +msgid "The overall number of changesets of this record" +msgstr "" + +#. module: mail_template_attachment_i18n +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__user_can_see_changeset +#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__user_can_see_changeset +msgid "User Can See Changeset" +msgstr "" From e10f205557f9176d707ef2a3adb1eb02c877ad87 Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 4 Feb 2026 15:48:53 +0000 Subject: [PATCH 12/18] Translated using Weblate (Italian) Currently translated at 100.0% (29 of 29 strings) Translation: server-tools-16.0/server-tools-16.0-mail_template_attachment_i18n Translate-URL: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-mail_template_attachment_i18n/it/ --- mail_template_attachment_per_lang/i18n/it.po | 62 ++++++++++---------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/mail_template_attachment_per_lang/i18n/it.po b/mail_template_attachment_per_lang/i18n/it.po index a770ff9f692..775341ca9a6 100644 --- a/mail_template_attachment_per_lang/i18n/it.po +++ b/mail_template_attachment_per_lang/i18n/it.po @@ -6,166 +6,168 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2026-02-04 18:09+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.15.2\n" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__assigned_attachment_ids #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__assigned_attachment_ids msgid "Assigned Attachments" -msgstr "" +msgstr "Allegati assegnati" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__attachment_id msgid "Attachment" -msgstr "" +msgstr "Allegato" #. module: mail_template_attachment_i18n #: model:ir.model,name:mail_template_attachment_i18n.model_ir_attachment_language msgid "Attachment Language" -msgstr "" +msgstr "Lingua allegato" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_change_ids #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_change_ids msgid "Changeset Changes" -msgstr "" +msgstr "Modifiche dell'insieme di modifiche" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_ids #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_ids msgid "Changesets" -msgstr "" +msgstr "Insieme di modifiche" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_changesets msgid "Count Changesets" -msgstr "" +msgstr "Conteggio insieme di modifiche" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes msgid "Count Pending Changeset Changes" -msgstr "" +msgstr "Conteggio modifiche dell'insieme di modifiche in attesa" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changesets msgid "Count Pending Changesets" -msgstr "" +msgstr "Conteggio insieme di modifiche in attesa" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_uid msgid "Created by" -msgstr "" +msgstr "Creata da" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_date msgid "Created on" -msgstr "" +msgstr "Creato il" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__display_name msgid "Display Name" -msgstr "" +msgstr "Nome visualizzato" #. module: mail_template_attachment_i18n #: model:ir.model,name:mail_template_attachment_i18n.model_mail_template msgid "Email Templates" -msgstr "" +msgstr "Modelli e-mail" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__id msgid "ID" -msgstr "" +msgstr "ID" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__lang msgid "Language" -msgstr "" +msgstr "Lingua" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_method msgid "Language Attachment Method" -msgstr "" +msgstr "Metodo allegato lingua" #. module: mail_template_attachment_i18n #: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form msgid "Language Attachments" -msgstr "" +msgstr "Allegati lingua" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_ids msgid "Language Dependent Attachments" -msgstr "" +msgstr "Allegati dipendenti dalla lingua" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language____last_update msgid "Last Modified on" -msgstr "" +msgstr "Ultima modifica il" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Ultimo aggiornamento di" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_date msgid "Last Updated on" -msgstr "" +msgstr "Ultimo aggiornamento il" #. module: mail_template_attachment_i18n #: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form msgid "Method" -msgstr "" +msgstr "Metodo" #. module: mail_template_attachment_i18n #: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__partner_lang msgid "Partner Language" -msgstr "" +msgstr "Lingua del partner" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__smart_search #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__smart_search msgid "Smart Search" -msgstr "" +msgstr "Ricerca intelligente" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__mail_template_id msgid "Template" -msgstr "" +msgstr "Modello" #. module: mail_template_attachment_i18n #: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__template_lang msgid "Template Language" -msgstr "" +msgstr "Lingua del modello" #. module: mail_template_attachment_i18n #: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes #: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes msgid "The number of pending changes of this record" -msgstr "" +msgstr "Numero di modifiche di questo record in attesa" #. module: mail_template_attachment_i18n #: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets #: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changesets msgid "The number of pending changesets of this record" -msgstr "" +msgstr "Numero di insiemi di modifiche in attesa di questo record" #. module: mail_template_attachment_i18n #: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets #: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_changesets msgid "The overall number of changesets of this record" -msgstr "" +msgstr "Numero totale di insiemi di modifiche di questo record" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__user_can_see_changeset #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__user_can_see_changeset msgid "User Can See Changeset" -msgstr "" +msgstr "L'utente può vedere l'insieme delle modifiche" From dc5a26ab186994cd76551b53c0b1f7c355d0fb02 Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 17 Feb 2026 07:28:53 +0000 Subject: [PATCH 13/18] Translated using Weblate (Italian) Currently translated at 100.0% (29 of 29 strings) Translation: server-tools-16.0/server-tools-16.0-mail_template_attachment_i18n Translate-URL: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-mail_template_attachment_i18n/it/ --- mail_template_attachment_per_lang/i18n/it.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_template_attachment_per_lang/i18n/it.po b/mail_template_attachment_per_lang/i18n/it.po index 775341ca9a6..ab6678f7d30 100644 --- a/mail_template_attachment_per_lang/i18n/it.po +++ b/mail_template_attachment_per_lang/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-02-04 18:09+0000\n" +"PO-Revision-Date: 2026-02-17 10:09+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -65,7 +65,7 @@ msgstr "Conteggio insieme di modifiche in attesa" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_uid msgid "Created by" -msgstr "Creata da" +msgstr "Creato da" #. module: mail_template_attachment_i18n #: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_date From 8d461379a0d2d3a45597f5d5e40d15fedbbaad17 Mon Sep 17 00:00:00 2001 From: LauraCForgeFlow Date: Mon, 16 Mar 2026 11:32:59 +0100 Subject: [PATCH 14/18] [IMP] mail_template_attachment_i18n: pre-commit auto fixes --- mail_template_attachment_per_lang/README.rst | 72 +++++++++---------- .../pyproject.toml | 3 + .../readme/CONFIGURE.md | 7 ++ .../readme/CONFIGURE.rst | 7 -- .../readme/CONTRIBUTORS.md | 1 + .../readme/CONTRIBUTORS.rst | 1 - .../readme/DESCRIPTION.md | 13 ++++ .../readme/DESCRIPTION.rst | 12 ---- .../readme/USAGE.md | 14 ++++ .../readme/USAGE.rst | 12 ---- .../static/description/index.html | 64 ++++++++--------- 11 files changed, 105 insertions(+), 101 deletions(-) create mode 100644 mail_template_attachment_per_lang/pyproject.toml create mode 100644 mail_template_attachment_per_lang/readme/CONFIGURE.md delete mode 100644 mail_template_attachment_per_lang/readme/CONFIGURE.rst create mode 100644 mail_template_attachment_per_lang/readme/CONTRIBUTORS.md delete mode 100644 mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst create mode 100644 mail_template_attachment_per_lang/readme/DESCRIPTION.md delete mode 100644 mail_template_attachment_per_lang/readme/DESCRIPTION.rst create mode 100644 mail_template_attachment_per_lang/readme/USAGE.md delete mode 100644 mail_template_attachment_per_lang/readme/USAGE.rst diff --git a/mail_template_attachment_per_lang/README.rst b/mail_template_attachment_per_lang/README.rst index cccb6bd6762..539f024c77b 100644 --- a/mail_template_attachment_per_lang/README.rst +++ b/mail_template_attachment_per_lang/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - =========================================== Mail Template Language Specific Attachments =========================================== @@ -17,33 +13,35 @@ Mail Template Language Specific Attachments .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github - :target: https://github.com/OCA/server-tools/tree/16.0/mail_template_attachment_i18n + :target: https://github.com/OCA/server-tools/tree/17.0/mail_template_attachment_i18n :alt: OCA/server-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-mail_template_attachment_i18n + :target: https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-0-mail_template_attachment_i18n :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| This module extends the functionality of mail templates. -It allows you to configure attachments based on the language of the partner -or the language configured in the mail template (which is some times different -from the partner's language). +It allows you to configure attachments based on the language of the +partner or the language configured in the mail template (which is some +times different from the partner's language). -- The email template's language could be ``{{ object.partner_id.lang }}`` or - ``{{ object.user_id.lang }}``, where in the first case we want to send the - email in the partner's language and in the second case we want to send the - email in the user's language. +- The email template's language could be + ``{{ object.partner_id.lang }}`` or ``{{ object.user_id.lang }}``, + where in the first case we want to send the email in the partner's + language and in the second case we want to send the email in the + user's language. -For example you can use it to localize your company's terms of agreements. +For example you can use it to localize your company's terms of +agreements. **Table of contents** @@ -55,27 +53,29 @@ Configuration To configure a language dependent attachment: -#. Activate the developer mode; -#. go to *Settings > Technical > Email > Templates*; -#. go to the form view of the template you want to change; -#. choose the *Language Attachment Method* you want to use; -#. change the field *Language Dependent Attachments* to what you want. +1. Activate the developer mode; +2. go to *Settings > Technical > Email > Templates*; +3. go to the form view of the template you want to change; +4. choose the *Language Attachment Method* you want to use; +5. change the field *Language Dependent Attachments* to what you want. Usage ===== -When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. -The language of the recipients can be configured on the Partner form view. -When partners with different languages are selected all attachments of the partners languages will be added. +When a template is selected in the mail composer, the attachments will +be automatically added based on the recipients language. The language of +the recipients can be configured on the Partner form view. When partners +with different languages are selected all attachments of the partners +languages will be added. To use the functionality: -#. Configure a template (e.g. the sale order mail template) -#. go to a sale order; -#. click *Send by Email*; -#. the attachments are added based on the email's language or the customer's - language (which might not be the same), depending on the configuration of - the template. +1. Configure a template (e.g. the sale order mail template) +2. go to a sale order; +3. click *Send by Email*; +4. the attachments are added based on the email's language or the + customer's language (which might not be the same), depending on the + configuration of the template. Bug Tracker =========== @@ -83,7 +83,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -91,17 +91,17 @@ Credits ======= Authors -~~~~~~~ +------- * Onestein Contributors -~~~~~~~~~~~~ +------------ -* Dennis Sluijk +- Dennis Sluijk Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -113,6 +113,6 @@ 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. -This module is part of the `OCA/server-tools `_ project on GitHub. +This module is part of the `OCA/server-tools `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_template_attachment_per_lang/pyproject.toml b/mail_template_attachment_per_lang/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/mail_template_attachment_per_lang/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mail_template_attachment_per_lang/readme/CONFIGURE.md b/mail_template_attachment_per_lang/readme/CONFIGURE.md new file mode 100644 index 00000000000..40c4a04feff --- /dev/null +++ b/mail_template_attachment_per_lang/readme/CONFIGURE.md @@ -0,0 +1,7 @@ +To configure a language dependent attachment: + +1. Activate the developer mode; +2. go to *Settings \> Technical \> Email \> Templates*; +3. go to the form view of the template you want to change; +4. choose the *Language Attachment Method* you want to use; +5. change the field *Language Dependent Attachments* to what you want. diff --git a/mail_template_attachment_per_lang/readme/CONFIGURE.rst b/mail_template_attachment_per_lang/readme/CONFIGURE.rst deleted file mode 100644 index 63af4c87e59..00000000000 --- a/mail_template_attachment_per_lang/readme/CONFIGURE.rst +++ /dev/null @@ -1,7 +0,0 @@ -To configure a language dependent attachment: - -#. Activate the developer mode; -#. go to *Settings > Technical > Email > Templates*; -#. go to the form view of the template you want to change; -#. choose the *Language Attachment Method* you want to use; -#. change the field *Language Dependent Attachments* to what you want. diff --git a/mail_template_attachment_per_lang/readme/CONTRIBUTORS.md b/mail_template_attachment_per_lang/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..76a1463d268 --- /dev/null +++ b/mail_template_attachment_per_lang/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Dennis Sluijk \<\> diff --git a/mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst b/mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst deleted file mode 100644 index 47b6403d06d..00000000000 --- a/mail_template_attachment_per_lang/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* Dennis Sluijk diff --git a/mail_template_attachment_per_lang/readme/DESCRIPTION.md b/mail_template_attachment_per_lang/readme/DESCRIPTION.md new file mode 100644 index 00000000000..df11bf531b6 --- /dev/null +++ b/mail_template_attachment_per_lang/readme/DESCRIPTION.md @@ -0,0 +1,13 @@ +This module extends the functionality of mail templates. + +It allows you to configure attachments based on the language of the +partner or the language configured in the mail template (which is some +times different from the partner's language). + +- The email template's language could be `{{ object.partner_id.lang }}` + or `{{ object.user_id.lang }}`, where in the first case we want to + send the email in the partner's language and in the second case we + want to send the email in the user's language. + +For example you can use it to localize your company's terms of +agreements. diff --git a/mail_template_attachment_per_lang/readme/DESCRIPTION.rst b/mail_template_attachment_per_lang/readme/DESCRIPTION.rst deleted file mode 100644 index 2082d31e939..00000000000 --- a/mail_template_attachment_per_lang/readme/DESCRIPTION.rst +++ /dev/null @@ -1,12 +0,0 @@ -This module extends the functionality of mail templates. - -It allows you to configure attachments based on the language of the partner -or the language configured in the mail template (which is some times different -from the partner's language). - -- The email template's language could be ``{{ object.partner_id.lang }}`` or - ``{{ object.user_id.lang }}``, where in the first case we want to send the - email in the partner's language and in the second case we want to send the - email in the user's language. - -For example you can use it to localize your company's terms of agreements. diff --git a/mail_template_attachment_per_lang/readme/USAGE.md b/mail_template_attachment_per_lang/readme/USAGE.md new file mode 100644 index 00000000000..4fe8ad0c497 --- /dev/null +++ b/mail_template_attachment_per_lang/readme/USAGE.md @@ -0,0 +1,14 @@ +When a template is selected in the mail composer, the attachments will +be automatically added based on the recipients language. The language of +the recipients can be configured on the Partner form view. When partners +with different languages are selected all attachments of the partners +languages will be added. + +To use the functionality: + +1. Configure a template (e.g. the sale order mail template) +2. go to a sale order; +3. click *Send by Email*; +4. the attachments are added based on the email's language or the + customer's language (which might not be the same), depending on the + configuration of the template. diff --git a/mail_template_attachment_per_lang/readme/USAGE.rst b/mail_template_attachment_per_lang/readme/USAGE.rst deleted file mode 100644 index 4c98c557a45..00000000000 --- a/mail_template_attachment_per_lang/readme/USAGE.rst +++ /dev/null @@ -1,12 +0,0 @@ -When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. -The language of the recipients can be configured on the Partner form view. -When partners with different languages are selected all attachments of the partners languages will be added. - -To use the functionality: - -#. Configure a template (e.g. the sale order mail template) -#. go to a sale order; -#. click *Send by Email*; -#. the attachments are added based on the email's language or the customer's - language (which might not be the same), depending on the configuration of - the template. diff --git a/mail_template_attachment_per_lang/static/description/index.html b/mail_template_attachment_per_lang/static/description/index.html index f9e02921606..d3ce736531b 100644 --- a/mail_template_attachment_per_lang/static/description/index.html +++ b/mail_template_attachment_per_lang/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +Mail Template Language Specific Attachments -
    +
    +

    Mail Template Language Specific Attachments

    - - -Odoo Community Association - -
    -

    Mail Template Language Specific Attachments

    -

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    This module extends the functionality of mail templates.

    -

    It allows you to configure attachments based on the language of the partner -or the language configured in the mail template (which is some times different -from the partner’s language).

    +

    It allows you to configure attachments based on the language of the +partner or the language configured in the mail template (which is some +times different from the partner’s language).

      -
    • The email template’s language could be {{ object.partner_id.lang }} or -{{ object.user_id.lang }}, where in the first case we want to send the -email in the partner’s language and in the second case we want to send the -email in the user’s language.
    • +
    • The email template’s language could be +{{ object.partner_id.lang }} or {{ object.user_id.lang }}, +where in the first case we want to send the email in the partner’s +language and in the second case we want to send the email in the +user’s language.
    -

    For example you can use it to localize your company’s terms of agreements.

    +

    For example you can use it to localize your company’s terms of +agreements.

    Table of contents

      @@ -401,7 +398,7 @@

      Mail Template Language Specific Attachments

    -

    Configuration

    +

    Configuration

    To configure a language dependent attachment:

    1. Activate the developer mode;
    2. @@ -412,44 +409,46 @@

      Configuration

    -

    Usage

    -

    When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. -The language of the recipients can be configured on the Partner form view. -When partners with different languages are selected all attachments of the partners languages will be added.

    +

    Usage

    +

    When a template is selected in the mail composer, the attachments will +be automatically added based on the recipients language. The language of +the recipients can be configured on the Partner form view. When partners +with different languages are selected all attachments of the partners +languages will be added.

    To use the functionality:

    1. Configure a template (e.g. the sale order mail template)
    2. go to a sale order;
    3. click Send by Email;
    4. -
    5. the attachments are added based on the email’s language or the customer’s -language (which might not be the same), depending on the configuration of -the template.
    6. +
    7. the attachments are added based on the email’s language or the +customer’s language (which might not be the same), depending on the +configuration of the template.
    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Onestein
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -457,11 +456,10 @@

    Maintainers

    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.

    -

    This module is part of the OCA/server-tools project on GitHub.

    +

    This module is part of the OCA/server-tools project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    -
    From c3404ee1c4c2ce31077195737c2978209b210c5c Mon Sep 17 00:00:00 2001 From: LauraCForgeFlow Date: Mon, 16 Mar 2026 15:24:20 +0100 Subject: [PATCH 15/18] [MIG] mail_template_attachment_i18n: Migration to 17.0 --- .../__manifest__.py | 2 +- .../models/mail_template.py | 47 ++-- .../tests/__init__.py | 1 + .../test_mail_template_attachment_i18n.py | 221 ++++++++++++++++++ .../views/mail_template_view.xml | 2 +- 5 files changed, 251 insertions(+), 22 deletions(-) create mode 100644 mail_template_attachment_per_lang/tests/__init__.py create mode 100644 mail_template_attachment_per_lang/tests/test_mail_template_attachment_i18n.py diff --git a/mail_template_attachment_per_lang/__manifest__.py b/mail_template_attachment_per_lang/__manifest__.py index 572b71efb6d..c6b6afb5e23 100644 --- a/mail_template_attachment_per_lang/__manifest__.py +++ b/mail_template_attachment_per_lang/__manifest__.py @@ -4,7 +4,7 @@ "author": "Onestein,Odoo Community Association (OCA)", "website": "https://github.com/OCA/server-tools", "category": "Localization", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "license": "AGPL-3", "depends": ["mail"], "data": ["views/mail_template_view.xml", "security/ir.model.access.csv"], diff --git a/mail_template_attachment_per_lang/models/mail_template.py b/mail_template_attachment_per_lang/models/mail_template.py index e4bdca5a368..22f080a9c74 100644 --- a/mail_template_attachment_per_lang/models/mail_template.py +++ b/mail_template_attachment_per_lang/models/mail_template.py @@ -21,37 +21,44 @@ class MailTemplate(models.Model): inverse_name="mail_template_id", ) - def generate_email(self, res_ids, fields=None): + def _generate_template_attachments( + self, res_ids, render_fields, render_results=None + ): self.ensure_one() - multi = True - if isinstance(res_ids, int): - res_ids = [res_ids] - multi = False - res = super().generate_email(res_ids, fields) + res = super()._generate_template_attachments( + res_ids, render_fields, render_results=render_results + ) + recipient_values = {} # Get recipients (to work with partner_lang) + if self.ir_attachment_language_method == "partner_lang": + recipient_fields = {"email_cc", "email_to", "partner_to"} + self._generate_template_recipients( + res_ids, + recipient_fields, + render_results=recipient_values, + ) lang_codes = dict(self._render_lang(res_ids)) - for res_id in res.keys(): + for res_id in res_ids: + values = res.setdefault(res_id, {}) attached = [] lang_code_list = [] - if self.ir_attachment_language_method == "partner_lang": - mail = res[res_id] - partner_ids = "partner_ids" in mail and mail["partner_ids"] or False + if self.env.context.get("template_preview_lang"): + lang = self.env.context.get("template_preview_lang") + lang_codes = {res_id: lang for res_id in res_ids} + lang_code_list = [lang_codes.get(res_id)] + elif self.ir_attachment_language_method == "partner_lang": + partner_ids = recipient_values.get(res_id, {}).get("partner_ids", []) partners = self.env["res.partner"].browse(partner_ids) lang_code_list = [p.lang for p in partners] elif self.ir_attachment_language_method == "template_lang": lang_code_list = [lang_codes.get(res_id)] for lang_code in lang_code_list: for lang_attach in self.ir_attachment_language_ids.filtered( - lambda a: a.lang == lang_code + lambda a, lc=lang_code: a.lang == lc ): if lang_attach.id in attached: continue - if not res[res_id].get("attachments"): - res[res_id]["attachments"] = [] - res[res_id]["attachments"].append( - ( - lang_attach.attachment_id.name, - lang_attach.attachment_id.datas, - ) - ) + if "attachment_ids" not in values: + values["attachment_ids"] = [] + values["attachment_ids"].append(lang_attach.attachment_id.id) attached.append(lang_attach.id) - return multi and res or res[res_ids[0]] + return res diff --git a/mail_template_attachment_per_lang/tests/__init__.py b/mail_template_attachment_per_lang/tests/__init__.py new file mode 100644 index 00000000000..5c817528c84 --- /dev/null +++ b/mail_template_attachment_per_lang/tests/__init__.py @@ -0,0 +1 @@ +from . import test_mail_template_attachment_i18n diff --git a/mail_template_attachment_per_lang/tests/test_mail_template_attachment_i18n.py b/mail_template_attachment_per_lang/tests/test_mail_template_attachment_i18n.py new file mode 100644 index 00000000000..5a16d82e6ae --- /dev/null +++ b/mail_template_attachment_per_lang/tests/test_mail_template_attachment_i18n.py @@ -0,0 +1,221 @@ +# Copyright 2024 Onestein +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import base64 + +from odoo.tests import tagged + +from odoo.addons.mail.tests.common import MailCommon + + +@tagged("mail_template", "-at_install", "post_install") +class TestMailTemplateAttachmentI18n(MailCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env["res.lang"]._activate_lang("fr_FR") + cls.partner_fr = cls.env["res.partner"].create( + { + "name": "French Partner", + "email": "french@example.com", + "lang": "fr_FR", + } + ) + cls.partner_en = cls.env["res.partner"].create( + { + "name": "English Partner", + "email": "english@example.com", + "lang": "en_US", + } + ) + + cls.attachment_fr = cls.env["ir.attachment"].create( + { + "name": "terms_fr.pdf", + "type": "binary", + "datas": base64.b64encode(b"French terms content"), + } + ) + cls.attachment_en = cls.env["ir.attachment"].create( + { + "name": "terms_en.pdf", + "type": "binary", + "datas": base64.b64encode(b"English terms content"), + } + ) + + cls.mail_template = cls.env["mail.template"].create( + { + "name": "Test i18n Template", + "model_id": cls.env.ref("base.model_res_partner").id, + "subject": "Test subject", + "body_html": "

    Test body

    ", + "partner_to": "{{ object.id }}", + "lang": "{{ object.lang }}", + "ir_attachment_language_method": "template_lang", + "ir_attachment_language_ids": [ + ( + 0, + 0, + { + "lang": "fr_FR", + "attachment_id": cls.attachment_fr.id, + }, + ), + ( + 0, + 0, + { + "lang": "en_US", + "attachment_id": cls.attachment_en.id, + }, + ), + ], + } + ) + + def test_template_lang_method_french(self): + # Sending to a French partner should attach the French file + render_results = self.mail_template._generate_template( + [self.partner_fr.id], + [ + "attachment_ids", + "body_html", + "email_from", + "partner_to", + "report_template_ids", + "subject", + ], + ) + attachments = render_results[self.partner_fr.id].get("attachment_ids", []) + attachment_records = self.env["ir.attachment"].browse(attachments) + attachment_names = attachment_records.mapped("name") + self.assertIn("terms_fr.pdf", attachment_names) + self.assertNotIn("terms_en.pdf", attachment_names) + + def test_template_lang_method_english(self): + # Sending to an English partner should attach the English file + render_results = self.mail_template._generate_template( + [self.partner_en.id], + [ + "attachment_ids", + "body_html", + "email_from", + "partner_to", + "report_template_ids", + "subject", + ], + ) + attachments = render_results[self.partner_en.id].get("attachment_ids", []) + attachment_records = self.env["ir.attachment"].browse(attachments) + attachment_names = attachment_records.mapped("name") + self.assertIn("terms_en.pdf", attachment_names) + self.assertNotIn("terms_fr.pdf", attachment_names) + + def test_partner_lang_method(self): + # With partner_lang method, attachments match partner language + self.mail_template.ir_attachment_language_method = "partner_lang" + render_results = self.mail_template._generate_template( + [self.partner_fr.id], + [ + "attachment_ids", + "body_html", + "email_from", + "partner_to", + "report_template_ids", + "subject", + ], + ) + attachments = render_results[self.partner_fr.id].get("attachment_ids", []) + attachment_records = self.env["ir.attachment"].browse(attachments) + attachment_names = attachment_records.mapped("name") + self.assertIn("terms_fr.pdf", attachment_names) + self.assertNotIn("terms_en.pdf", attachment_names) + + def test_no_method_set(self): + # With no method set, no language-specific attachments are added + self.mail_template.ir_attachment_language_method = False + render_results = self.mail_template._generate_template( + [self.partner_fr.id], + [ + "attachment_ids", + "body_html", + "email_from", + "partner_to", + "report_template_ids", + "subject", + ], + ) + attachments = render_results[self.partner_fr.id].get("attachment_ids", []) + self.assertFalse(attachments) + + def test_batch_multiple_partners(self): + # Batch rendering attaches correct files per language + render_results = self.mail_template._generate_template( + [self.partner_fr.id, self.partner_en.id], + [ + "attachment_ids", + "body_html", + "email_from", + "partner_to", + "report_template_ids", + "subject", + ], + ) + fr_attachments = render_results[self.partner_fr.id].get("attachment_ids", []) + fr_attachment_records = self.env["ir.attachment"].browse(fr_attachments) + fr_names = fr_attachment_records.mapped("name") + en_attachments = render_results[self.partner_en.id].get("attachment_ids", []) + en_attachment_records = self.env["ir.attachment"].browse(en_attachments) + en_names = en_attachment_records.mapped("name") + self.assertIn("terms_fr.pdf", fr_names) + self.assertNotIn("terms_en.pdf", fr_names) + self.assertIn("terms_en.pdf", en_names) + self.assertNotIn("terms_fr.pdf", en_names) + + def test_send_mail_with_lang_attachments(self): + # Full send_mail flow includes language-specific attachments + with self.mock_mail_gateway(): + mail = self.mail_template.send_mail(self.partner_fr.id) + mail_record = self.env["mail.mail"].browse(mail) + attachment_names = mail_record.attachment_ids.mapped("name") + self.assertIn("terms_fr.pdf", attachment_names) + self.assertNotIn("terms_en.pdf", attachment_names) + + def test_partner_lang_with_fixed_template_lang(self): + # Test that even if the template body is forced to English, + # the attachments follow the recipient's language. + self.mail_template.write( + { + "lang": "en_US", + "partner_to": str(self.partner_en.id), + "ir_attachment_language_method": "partner_lang", + } + ) + # English recipient --> Should get English attachment + render_results = self.mail_template._generate_template( + [self.partner_en.id], + ["attachment_ids"], + ) + result = render_results[self.partner_en.id] + attachments = self.env["ir.attachment"].browse(result.get("attachment_ids", [])) + attachment_names = attachments.mapped("name") + self.assertIn("terms_en.pdf", attachment_names) + self.assertNotIn("terms_fr.pdf", attachment_names) + # Change recipient to French partner + # The body remains English (lang='en_US'), but attachments must switch to French + self.mail_template.write( + { + "partner_to": str(self.partner_fr.id), + } + ) + render_results = self.mail_template._generate_template( + [self.partner_fr.id], + ["attachment_ids"], + ) + result = render_results[self.partner_fr.id] + attachments = self.env["ir.attachment"].browse(result.get("attachment_ids", [])) + attachment_names = attachments.mapped("name") + # Verify that the logic correctly prioritized the recipient's language + self.assertIn("terms_fr.pdf", attachment_names) + self.assertNotIn("terms_en.pdf", attachment_names) diff --git a/mail_template_attachment_per_lang/views/mail_template_view.xml b/mail_template_attachment_per_lang/views/mail_template_view.xml index adf4eb72445..45a9207f2ce 100644 --- a/mail_template_attachment_per_lang/views/mail_template_view.xml +++ b/mail_template_attachment_per_lang/views/mail_template_view.xml @@ -18,7 +18,7 @@ name="ir_attachment_language_ids" nolabel="1" colspan="2" - attrs="{'invisible': [('ir_attachment_language_method', '=', False)]}" + invisible="not ir_attachment_language_method" > From c5495fa02abe11fea1cdbe182c9983d918953247 Mon Sep 17 00:00:00 2001 From: LauraCForgeFlow Date: Wed, 15 Apr 2026 16:41:42 +0200 Subject: [PATCH 16/18] [IMP] mail_template_attachment_per_lang: handle module rename --- mail_template_attachment_per_lang/README.rst | 8 +- mail_template_attachment_per_lang/i18n/it.po | 140 +++++++-------- .../i18n/mail_template_attachment_i18n.pot | 170 ------------------ .../mail_template_attachment_per_lang.pot | 170 ++++++++++++++++++ .../static/description/index.html | 6 +- .../tests/__init__.py | 2 +- ...test_mail_template_attachment_per_lang.py} | 2 +- 7 files changed, 249 insertions(+), 249 deletions(-) delete mode 100644 mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot create mode 100644 mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot rename mail_template_attachment_per_lang/tests/{test_mail_template_attachment_i18n.py => test_mail_template_attachment_per_lang.py} (99%) diff --git a/mail_template_attachment_per_lang/README.rst b/mail_template_attachment_per_lang/README.rst index 539f024c77b..d34f707d21e 100644 --- a/mail_template_attachment_per_lang/README.rst +++ b/mail_template_attachment_per_lang/README.rst @@ -17,10 +17,10 @@ Mail Template Language Specific Attachments :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github - :target: https://github.com/OCA/server-tools/tree/17.0/mail_template_attachment_i18n + :target: https://github.com/OCA/server-tools/tree/17.0/mail_template_attachment_per_lang :alt: OCA/server-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-0-mail_template_attachment_i18n + :target: https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-0-mail_template_attachment_per_lang :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=17.0 @@ -83,7 +83,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -113,6 +113,6 @@ 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. -This module is part of the `OCA/server-tools `_ project on GitHub. +This module is part of the `OCA/server-tools `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_template_attachment_per_lang/i18n/it.po b/mail_template_attachment_per_lang/i18n/it.po index ab6678f7d30..7c586f9b5b6 100644 --- a/mail_template_attachment_per_lang/i18n/it.po +++ b/mail_template_attachment_per_lang/i18n/it.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * mail_template_attachment_i18n +# * mail_template_attachment_per_lang # msgid "" msgstr "" @@ -16,158 +16,158 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.15.2\n" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__assigned_attachment_ids -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__assigned_attachment_ids +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__assigned_attachment_ids +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__assigned_attachment_ids msgid "Assigned Attachments" msgstr "Allegati assegnati" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__attachment_id +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__attachment_id msgid "Attachment" msgstr "Allegato" -#. module: mail_template_attachment_i18n -#: model:ir.model,name:mail_template_attachment_i18n.model_ir_attachment_language +#. module: mail_template_attachment_per_lang +#: model:ir.model,name:mail_template_attachment_per_lang.model_ir_attachment_language msgid "Attachment Language" msgstr "Lingua allegato" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_change_ids -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_change_ids +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__changeset_change_ids +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__changeset_change_ids msgid "Changeset Changes" msgstr "Modifiche dell'insieme di modifiche" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_ids -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_ids +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__changeset_ids +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__changeset_ids msgid "Changesets" msgstr "Insieme di modifiche" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_changesets +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_changesets +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_changesets msgid "Count Changesets" msgstr "Conteggio insieme di modifiche" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changeset_changes +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_pending_changeset_changes msgid "Count Pending Changeset Changes" msgstr "Conteggio modifiche dell'insieme di modifiche in attesa" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changesets +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changesets +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_pending_changesets msgid "Count Pending Changesets" msgstr "Conteggio insieme di modifiche in attesa" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_uid +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__create_uid msgid "Created by" msgstr "Creato da" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_date +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__create_date msgid "Created on" msgstr "Creato il" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__display_name +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__display_name msgid "Display Name" msgstr "Nome visualizzato" -#. module: mail_template_attachment_i18n -#: model:ir.model,name:mail_template_attachment_i18n.model_mail_template +#. module: mail_template_attachment_per_lang +#: model:ir.model,name:mail_template_attachment_per_lang.model_mail_template msgid "Email Templates" msgstr "Modelli e-mail" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__id +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__id msgid "ID" msgstr "ID" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__lang +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__lang msgid "Language" msgstr "Lingua" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_method +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__ir_attachment_language_method msgid "Language Attachment Method" msgstr "Metodo allegato lingua" -#. module: mail_template_attachment_i18n -#: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form +#. module: mail_template_attachment_per_lang +#: model_terms:ir.ui.view,arch_db:mail_template_attachment_per_lang.mail_template_form msgid "Language Attachments" msgstr "Allegati lingua" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_ids +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__ir_attachment_language_ids msgid "Language Dependent Attachments" msgstr "Allegati dipendenti dalla lingua" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language____last_update +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language____last_update msgid "Last Modified on" msgstr "Ultima modifica il" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_uid +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__write_uid msgid "Last Updated by" msgstr "Ultimo aggiornamento di" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_date +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__write_date msgid "Last Updated on" msgstr "Ultimo aggiornamento il" -#. module: mail_template_attachment_i18n -#: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form +#. module: mail_template_attachment_per_lang +#: model_terms:ir.ui.view,arch_db:mail_template_attachment_per_lang.mail_template_form msgid "Method" msgstr "Metodo" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__partner_lang +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields.selection,name:mail_template_attachment_per_lang.selection__mail_template__ir_attachment_language_method__partner_lang msgid "Partner Language" msgstr "Lingua del partner" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__smart_search -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__smart_search +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__smart_search +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__smart_search msgid "Smart Search" msgstr "Ricerca intelligente" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__mail_template_id +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__mail_template_id msgid "Template" msgstr "Modello" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__template_lang +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields.selection,name:mail_template_attachment_per_lang.selection__mail_template__ir_attachment_language_method__template_lang msgid "Template Language" msgstr "Lingua del modello" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changeset_changes +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_pending_changeset_changes msgid "The number of pending changes of this record" msgstr "Numero di modifiche di questo record in attesa" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changesets +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changesets +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_pending_changesets msgid "The number of pending changesets of this record" msgstr "Numero di insiemi di modifiche in attesa di questo record" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_changesets +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_changesets +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_changesets msgid "The overall number of changesets of this record" msgstr "Numero totale di insiemi di modifiche di questo record" -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__user_can_see_changeset -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__user_can_see_changeset +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__user_can_see_changeset +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__user_can_see_changeset msgid "User Can See Changeset" msgstr "L'utente può vedere l'insieme delle modifiche" diff --git a/mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot b/mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot deleted file mode 100644 index c401ed46e23..00000000000 --- a/mail_template_attachment_per_lang/i18n/mail_template_attachment_i18n.pot +++ /dev/null @@ -1,170 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * mail_template_attachment_i18n -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__assigned_attachment_ids -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__assigned_attachment_ids -msgid "Assigned Attachments" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__attachment_id -msgid "Attachment" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model,name:mail_template_attachment_i18n.model_ir_attachment_language -msgid "Attachment Language" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_change_ids -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_change_ids -msgid "Changeset Changes" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__changeset_ids -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__changeset_ids -msgid "Changesets" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_changesets -msgid "Count Changesets" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes -msgid "Count Pending Changeset Changes" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__count_pending_changesets -msgid "Count Pending Changesets" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_uid -msgid "Created by" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__create_date -msgid "Created on" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__display_name -msgid "Display Name" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model,name:mail_template_attachment_i18n.model_mail_template -msgid "Email Templates" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__id -msgid "ID" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__lang -msgid "Language" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_method -msgid "Language Attachment Method" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form -msgid "Language Attachments" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__ir_attachment_language_ids -msgid "Language Dependent Attachments" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language____last_update -msgid "Last Modified on" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__write_date -msgid "Last Updated on" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model_terms:ir.ui.view,arch_db:mail_template_attachment_i18n.mail_template_form -msgid "Method" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__partner_lang -msgid "Partner Language" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__smart_search -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__smart_search -msgid "Smart Search" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__mail_template_id -msgid "Template" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields.selection,name:mail_template_attachment_i18n.selection__mail_template__ir_attachment_language_method__template_lang -msgid "Template Language" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changeset_changes -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changeset_changes -msgid "The number of pending changes of this record" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_pending_changesets -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_pending_changesets -msgid "The number of pending changesets of this record" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_ir_attachment_language__count_changesets -#: model:ir.model.fields,help:mail_template_attachment_i18n.field_mail_template__count_changesets -msgid "The overall number of changesets of this record" -msgstr "" - -#. module: mail_template_attachment_i18n -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_ir_attachment_language__user_can_see_changeset -#: model:ir.model.fields,field_description:mail_template_attachment_i18n.field_mail_template__user_can_see_changeset -msgid "User Can See Changeset" -msgstr "" diff --git a/mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot b/mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot new file mode 100644 index 00000000000..e1d38f6cc7f --- /dev/null +++ b/mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot @@ -0,0 +1,170 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_template_attachment_i18n +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__assigned_attachment_ids +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__assigned_attachment_ids +msgid "Assigned Attachments" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__attachment_id +msgid "Attachment" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model,name:mail_template_attachment_per_lang.model_ir_attachment_language +msgid "Attachment Language" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__changeset_change_ids +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__changeset_change_ids +msgid "Changeset Changes" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__changeset_ids +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__changeset_ids +msgid "Changesets" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_changesets +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_changesets +msgid "Count Changesets" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changeset_changes +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_pending_changeset_changes +msgid "Count Pending Changeset Changes" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changesets +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_pending_changesets +msgid "Count Pending Changesets" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__create_uid +msgid "Created by" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__create_date +msgid "Created on" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__display_name +msgid "Display Name" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model,name:mail_template_attachment_per_lang.model_mail_template +msgid "Email Templates" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__id +msgid "ID" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__lang +msgid "Language" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__ir_attachment_language_method +msgid "Language Attachment Method" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model_terms:ir.ui.view,arch_db:mail_template_attachment_per_lang.mail_template_form +msgid "Language Attachments" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__ir_attachment_language_ids +msgid "Language Dependent Attachments" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model_terms:ir.ui.view,arch_db:mail_template_attachment_per_lang.mail_template_form +msgid "Method" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields.selection,name:mail_template_attachment_per_lang.selection__mail_template__ir_attachment_language_method__partner_lang +msgid "Partner Language" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__smart_search +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__smart_search +msgid "Smart Search" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__mail_template_id +msgid "Template" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields.selection,name:mail_template_attachment_per_lang.selection__mail_template__ir_attachment_language_method__template_lang +msgid "Template Language" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changeset_changes +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_pending_changeset_changes +msgid "The number of pending changes of this record" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changesets +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_pending_changesets +msgid "The number of pending changesets of this record" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_changesets +#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_changesets +msgid "The overall number of changesets of this record" +msgstr "" + +#. module: mail_template_attachment_per_lang +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__user_can_see_changeset +#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__user_can_see_changeset +msgid "User Can See Changeset" +msgstr "" diff --git a/mail_template_attachment_per_lang/static/description/index.html b/mail_template_attachment_per_lang/static/description/index.html index d3ce736531b..5f18b683bc9 100644 --- a/mail_template_attachment_per_lang/static/description/index.html +++ b/mail_template_attachment_per_lang/static/description/index.html @@ -369,7 +369,7 @@

    Mail Template Language Specific Attachments

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:9063dbefbbb5c2cadc1fb5f77a822bb9ca5655e3709ffc549a4592d57273cce3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    This module extends the functionality of mail templates.

    It allows you to configure attachments based on the language of the partner or the language configured in the mail template (which is some @@ -430,7 +430,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -456,7 +456,7 @@

    Maintainers

    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.

    -

    This module is part of the OCA/server-tools project on GitHub.

    +

    This module is part of the OCA/server-tools project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/mail_template_attachment_per_lang/tests/__init__.py b/mail_template_attachment_per_lang/tests/__init__.py index 5c817528c84..67ff6ec1913 100644 --- a/mail_template_attachment_per_lang/tests/__init__.py +++ b/mail_template_attachment_per_lang/tests/__init__.py @@ -1 +1 @@ -from . import test_mail_template_attachment_i18n +from . import test_mail_template_attachment_per_lang diff --git a/mail_template_attachment_per_lang/tests/test_mail_template_attachment_i18n.py b/mail_template_attachment_per_lang/tests/test_mail_template_attachment_per_lang.py similarity index 99% rename from mail_template_attachment_per_lang/tests/test_mail_template_attachment_i18n.py rename to mail_template_attachment_per_lang/tests/test_mail_template_attachment_per_lang.py index 5a16d82e6ae..5debbb40f51 100644 --- a/mail_template_attachment_per_lang/tests/test_mail_template_attachment_i18n.py +++ b/mail_template_attachment_per_lang/tests/test_mail_template_attachment_per_lang.py @@ -9,7 +9,7 @@ @tagged("mail_template", "-at_install", "post_install") -class TestMailTemplateAttachmentI18n(MailCommon): +class TestMailTemplateAttachmentPerLang(MailCommon): @classmethod def setUpClass(cls): super().setUpClass() From 6d18bd350dbcf78329580fe0ffadb7cd16ef48ce Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 15 Apr 2026 16:14:16 +0000 Subject: [PATCH 17/18] [UPD] Update mail_template_attachment_per_lang.pot --- .../mail_template_attachment_per_lang.pot | 69 +------------------ 1 file changed, 2 insertions(+), 67 deletions(-) diff --git a/mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot b/mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot index e1d38f6cc7f..5f2c84a1ce2 100644 --- a/mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot +++ b/mail_template_attachment_per_lang/i18n/mail_template_attachment_per_lang.pot @@ -1,10 +1,10 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * mail_template_attachment_i18n +# * mail_template_attachment_per_lang # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,12 +13,6 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__assigned_attachment_ids -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__assigned_attachment_ids -msgid "Assigned Attachments" -msgstr "" - #. module: mail_template_attachment_per_lang #: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__attachment_id msgid "Attachment" @@ -29,36 +23,6 @@ msgstr "" msgid "Attachment Language" msgstr "" -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__changeset_change_ids -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__changeset_change_ids -msgid "Changeset Changes" -msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__changeset_ids -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__changeset_ids -msgid "Changesets" -msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_changesets -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_changesets -msgid "Count Changesets" -msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changeset_changes -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_pending_changeset_changes -msgid "Count Pending Changeset Changes" -msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changesets -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__count_pending_changesets -msgid "Count Pending Changesets" -msgstr "" - #. module: mail_template_attachment_per_lang #: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__create_uid msgid "Created by" @@ -104,11 +68,6 @@ msgstr "" msgid "Language Dependent Attachments" msgstr "" -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language____last_update -msgid "Last Modified on" -msgstr "" - #. module: mail_template_attachment_per_lang #: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__write_uid msgid "Last Updated by" @@ -144,27 +103,3 @@ msgstr "" #: model:ir.model.fields.selection,name:mail_template_attachment_per_lang.selection__mail_template__ir_attachment_language_method__template_lang msgid "Template Language" msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changeset_changes -#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_pending_changeset_changes -msgid "The number of pending changes of this record" -msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_pending_changesets -#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_pending_changesets -msgid "The number of pending changesets of this record" -msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_ir_attachment_language__count_changesets -#: model:ir.model.fields,help:mail_template_attachment_per_lang.field_mail_template__count_changesets -msgid "The overall number of changesets of this record" -msgstr "" - -#. module: mail_template_attachment_per_lang -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_ir_attachment_language__user_can_see_changeset -#: model:ir.model.fields,field_description:mail_template_attachment_per_lang.field_mail_template__user_can_see_changeset -msgid "User Can See Changeset" -msgstr "" From 638389dacddd1f2ace1992b4c91c5bd42dd7e78c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 15 Apr 2026 16:21:11 +0000 Subject: [PATCH 18/18] [BOT] post-merge updates --- README.md | 1 + mail_template_attachment_per_lang/README.rst | 20 ++++++++----- .../static/description/index.html | 30 +++++++++++-------- setup/_metapackage/pyproject.toml | 3 +- 4 files changed, 33 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index cd9211bc8c2..cbbb7f2f7fb 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ addon | version | maintainers | summary [html_text](html_text/) | 17.0.1.0.0 | | Generate excerpts from any HTML field [iap_alternative_provider](iap_alternative_provider/) | 17.0.1.0.0 | sebastienbeau | Base module for providing alternative provider for iap apps [jsonifier](jsonifier/) | 17.0.1.0.0 | | JSON-ify data for all models +[mail_template_attachment_per_lang](mail_template_attachment_per_lang/) | 17.0.1.0.0 | | Set language specific attachments on mail templates. [module_analysis](module_analysis/) | 17.0.1.0.3 | legalsylvain | Add analysis tools regarding installed modules to know which installed modules comes from Odoo Core, OCA, or are custom modules [module_auto_update](module_auto_update/) | 17.0.1.0.0 | | Automatically update Odoo modules [module_change_auto_install](module_change_auto_install/) | 17.0.1.0.2 | legalsylvain | Customize auto installables modules by configuration diff --git a/mail_template_attachment_per_lang/README.rst b/mail_template_attachment_per_lang/README.rst index d34f707d21e..4e95530b566 100644 --- a/mail_template_attachment_per_lang/README.rst +++ b/mail_template_attachment_per_lang/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =========================================== Mail Template Language Specific Attachments =========================================== @@ -7,13 +11,13 @@ Mail Template Language Specific Attachments !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:9063dbefbbb5c2cadc1fb5f77a822bb9ca5655e3709ffc549a4592d57273cce3 + !! source digest: sha256:a075fae834285057e4a0f26c055240e2bc3b4586363b66887e80386a793fd60f !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github @@ -34,11 +38,11 @@ It allows you to configure attachments based on the language of the partner or the language configured in the mail template (which is some times different from the partner's language). -- The email template's language could be - ``{{ object.partner_id.lang }}`` or ``{{ object.user_id.lang }}``, - where in the first case we want to send the email in the partner's - language and in the second case we want to send the email in the - user's language. +- The email template's language could be + ``{{ object.partner_id.lang }}`` or ``{{ object.user_id.lang }}``, + where in the first case we want to send the email in the partner's + language and in the second case we want to send the email in the + user's language. For example you can use it to localize your company's terms of agreements. @@ -98,7 +102,7 @@ Authors Contributors ------------ -- Dennis Sluijk +- Dennis Sluijk Maintainers ----------- diff --git a/mail_template_attachment_per_lang/static/description/index.html b/mail_template_attachment_per_lang/static/description/index.html index 5f18b683bc9..8b3909817ef 100644 --- a/mail_template_attachment_per_lang/static/description/index.html +++ b/mail_template_attachment_per_lang/static/description/index.html @@ -3,7 +3,7 @@ -Mail Template Language Specific Attachments +README.rst -
    -

    Mail Template Language Specific Attachments

    +
    + + +Odoo Community Association + +
    +

    Mail Template Language Specific Attachments

    -

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    +

    Beta License: AGPL-3 OCA/server-tools Translate me on Weblate Try me on Runboat

    This module extends the functionality of mail templates.

    It allows you to configure attachments based on the language of the partner or the language configured in the mail template (which is some @@ -398,7 +403,7 @@

    Mail Template Language Specific Attachments

    -

    Configuration

    +

    Configuration

    To configure a language dependent attachment:

    1. Activate the developer mode;
    2. @@ -409,7 +414,7 @@

      Configuration

    -

    Usage

    +

    Usage

    When a template is selected in the mail composer, the attachments will be automatically added based on the recipients language. The language of the recipients can be configured on the Partner form view. When partners @@ -426,7 +431,7 @@

    Usage

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -434,21 +439,21 @@

    Bug Tracker

    Do not contact contributors directly about support or help with technical issues.

    +
    diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index 4ea8ac45dbe..aab5f0b23c0 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-server-tools" -version = "17.0.20260125.0" +version = "17.0.20260415.0" dependencies = [ "odoo-addon-attachment_logging>=17.0dev,<17.1dev", "odoo-addon-attachment_queue>=17.0dev,<17.1dev", @@ -30,6 +30,7 @@ dependencies = [ "odoo-addon-html_text>=17.0dev,<17.1dev", "odoo-addon-iap_alternative_provider>=17.0dev,<17.1dev", "odoo-addon-jsonifier>=17.0dev,<17.1dev", + "odoo-addon-mail_template_attachment_per_lang>=17.0dev,<17.1dev", "odoo-addon-module_analysis>=17.0dev,<17.1dev", "odoo-addon-module_auto_update>=17.0dev,<17.1dev", "odoo-addon-module_change_auto_install>=17.0dev,<17.1dev",