details:   https://code.tryton.org/translations/commit/9b3c189bed6c
branch:    default
user:      Weblate <[email protected]>
date:      Wed Apr 01 12:40:05 2026 +0200
description:
        Prepare release 8.0
diffstat:

 templates/account.pot                       |    4 +-
 templates/account_eu.pot                    |  300 +++++++++++-
 templates/account_fr.pot                    |  159 ++++++
 templates/account_invoice.pot               |   96 +++-
 templates/account_payment.pot               |   11 +
 templates/account_payment_check.pot         |  126 ++++
 templates/account_payment_sepa.pot          |    5 +
 templates/account_stock_eu_excise.pot       |  739 ++++++++++++++++++++++++++++
 templates/commission.pot                    |    2 +-
 templates/document_incoming_ocr_typless.pot |   24 +
 templates/edocument_peppol.pot              |   20 +-
 templates/edocument_ubl.pot                 |   23 +-
 templates/inbound_email.pot                 |    8 +
 templates/incoterm.pot                      |   24 +
 templates/ir.pot                            |  124 ++++-
 templates/marketing_campaign.pot            |    4 +-
 templates/party.pot                         |   48 +
 templates/party_relationship.pot            |    2 +-
 templates/production_ethanol.pot            |   15 +
 templates/project.pot                       |   56 ++
 templates/purchase.pot                      |   14 +-
 templates/quality.pot                       |    4 +
 templates/res.pot                           |    6 +
 templates/sale.pot                          |   20 +-
 templates/sale_project_task.pot             |  146 +++++
 templates/sao.pot                           |   34 +-
 templates/stock.pot                         |    9 +-
 templates/stock_ethanol.pot                 |  189 +++++++
 templates/stock_package.pot                 |   90 +++
 templates/tryton.pot                        |   24 +-
 templates/web_shop.pot                      |    8 +
 templates/web_shop_shopify.pot              |   27 +-
 templates/web_user.pot                      |    2 +-
 33 files changed, 2308 insertions(+), 55 deletions(-)

diffs (3257 lines):

diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account.pot
--- a/templates/account.pot     Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account.pot     Wed Apr 01 12:40:05 2026 +0200
@@ -2587,7 +2587,7 @@
 msgstr ""
 
 msgctxt "model:account.balance_sheet.comparison.context,string:"
-msgid "Account Balance Sheet Context"
+msgid "Account Balance Sheet Comparison Context"
 msgstr ""
 
 msgctxt "model:account.balance_sheet.context,string:"
@@ -2663,7 +2663,7 @@
 msgstr ""
 
 msgctxt "model:account.general_ledger.line.context,string:"
-msgid "Account General Ledger Account Context"
+msgid "Account General Ledger Line Context"
 msgstr ""
 
 msgctxt "model:account.income_statement.context,string:"
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account_eu.pot
--- a/templates/account_eu.pot  Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account_eu.pot  Wed Apr 01 12:40:05 2026 +0200
@@ -42,10 +42,22 @@
 msgid "EC Sales List Code"
 msgstr ""
 
+msgctxt "field:account.tax,vatex_code:"
+msgid "Tax Exemption Code"
+msgstr ""
+
 msgctxt "field:account.tax.template,ec_sales_list_code:"
 msgid "EC Sales List Code"
 msgstr ""
 
+msgctxt "field:account.tax.template,vatex_code:"
+msgid "Tax Exemption Code"
+msgstr ""
+
+msgctxt "help:account.tax,vatex_code:"
+msgid "The reason why the amount is exempted from VAT."
+msgstr ""
+
 msgctxt "model:account.ec_sales_list,string:"
 msgid "Account Ec Sales List"
 msgstr ""
@@ -62,10 +74,294 @@
 msgid "EC Sales List"
 msgstr ""
 
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 132 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (a) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (b) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (c) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (d) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (e) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (f) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (g) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (h) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (i) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (j) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (k) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (l) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (m) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (n) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (o) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (p) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 132, section 1 (q) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 143 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (a) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (b) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (c) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (d) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (e) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (f) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (fa) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (g) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (h) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (i) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (j) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (k) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 143, section 1 (l) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 144 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 146 section 1 (e) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 148 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 148, section (a) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 148, section (b) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 148, section (c) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 148, section (d) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 148, section (e) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 148, section (f) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 148, section (g) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 151 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 151, section 1 (a) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 151, section 1 (aa) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 151, section 1 (b) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 151, section 1 (c) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 151, section 1 (d) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 151, section 1 (e) of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 159 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 309 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 79, point c of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Export outside the EU"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Intra-Community acquisition from second hand means of transport"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Intra-Community acquisition of collectors items and antiques"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Intra-Community acquisition of second hand goods"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Intra-Community acquisition of works of art"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Intra-Community supply"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Not subject to VAT"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Reverse charge"
+msgstr ""
+
 msgctxt "view:account.tax.template:"
-msgid "EC Sales List"
+msgid "European Codes"
 msgstr ""
 
 msgctxt "view:account.tax:"
-msgid "EC Sales List"
+msgid "European Codes"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account_fr.pot
--- a/templates/account_fr.pot  Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account_fr.pot  Wed Apr 01 12:40:05 2026 +0200
@@ -48,6 +48,165 @@
 msgid "IS-BIC"
 msgstr ""
 
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+" Exempt based on 2 of article 283 of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+" Exempt based on article 275 of the Code Général des Impôts (CGI ; General "
+"tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+" Exempt based on article 298 sexdecies A of the Code Général des Impôts (CGI"
+" ; General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 1 of article 261 of the Code Général des Impôts (CGI; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 1° of article 261 C of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 1° of article 261 D of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 1° of article 261 E of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 1°bis of article 261 D of the Code Général des Impôts (CGI ;"
+" General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 2 of article 261 of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 2° of article 261 C of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 2° of article 261 D of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 2° of article 261 E of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 3 of article 261 of the Code Général des Impôts (CGI ; "
+"General tax code"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 3° of article 261 C of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 3° of article 261 D of the Code Général des Impôts (CGI ; "
+"General tax code) Exonération de TVA - Article 261 D-3° du Code Général des "
+"Impôts"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 4 of article 261 of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 4° of article 261 D of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 5 of article 261 of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 7 of article 261 of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on 8 of article 261 of the Code Général des Impôts (CGI ; "
+"General tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "Exempt based on article 153 of Council Directive 2006/112/EC"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 261 A of the Code Général des Impôts (CGI ; General "
+"tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 261 B of the Code Général des Impôts (CGI ; General "
+"tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 277 A of the Code Général des Impôts (CGI ; General "
+"tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"Exempt based on article 295 of the Code Général des Impôts (CGI ; General "
+"tax code)"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid ""
+"France domestic Credit Notes without VAT, due to supplier forfeit of VAT for"
+" discount"
+msgstr ""
+
+msgctxt "selection:account.tax,vatex_code:"
+msgid "France domestic VAT franchise in base"
+msgstr ""
+
 msgctxt "wizard_button:account.fr.fec,result,end:"
 msgid "Close"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account_invoice.pot
--- a/templates/account_invoice.pot     Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account_invoice.pot     Wed Apr 01 12:40:05 2026 +0200
@@ -188,6 +188,10 @@
 msgid "Number Digit"
 msgstr ""
 
+msgctxt "field:account.invoice,origin_invoices:"
+msgid "Origin Invoices"
+msgstr ""
+
 msgctxt "field:account.invoice,origins:"
 msgid "Origins"
 msgstr ""
@@ -208,6 +212,10 @@
 msgid "Payment Lines"
 msgstr ""
 
+msgctxt "field:account.invoice,payment_means:"
+msgid "Payment Means"
+msgstr ""
+
 msgctxt "field:account.invoice,payment_term:"
 msgid "Payment Term"
 msgstr ""
@@ -240,6 +248,18 @@
 msgid "Sequence Type Cache"
 msgstr ""
 
+msgctxt "field:account.invoice,source_tax_amount:"
+msgid "Source Tax"
+msgstr ""
+
+msgctxt "field:account.invoice,source_total_amount:"
+msgid "Source Total"
+msgstr ""
+
+msgctxt "field:account.invoice,source_untaxed_amount:"
+msgid "Source Untaxed"
+msgstr ""
+
 msgctxt "field:account.invoice,state:"
 msgid "State"
 msgstr ""
@@ -544,6 +564,42 @@
 msgid "Payment Method"
 msgstr ""
 
+msgctxt "field:account.invoice.payment.mean,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean,instrument:"
+msgid "Instrument"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean,invoice:"
+msgid "Invoice"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean,payees:"
+msgid "Payees"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean,payers:"
+msgid "Payers"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean.rule,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean.rule,currency:"
+msgid "Currency"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean.rule,instrument:"
+msgid "Instrument"
+msgstr ""
+
+msgctxt "field:account.invoice.payment.mean.rule,payee:"
+msgid "Payee"
+msgstr ""
+
 msgctxt "field:account.invoice.payment.method,company:"
 msgid "Company"
 msgstr ""
@@ -868,6 +924,14 @@
 msgid "Account Invoice Pay Start"
 msgstr ""
 
+msgctxt "model:account.invoice.payment.mean,string:"
+msgid "Account Invoice Payment Mean"
+msgstr ""
+
+msgctxt "model:account.invoice.payment.mean.rule,string:"
+msgid "Account Invoice Payment Mean Rule"
+msgstr ""
+
 msgctxt "model:account.invoice.payment.method,string:"
 msgid "Account Invoice Payment Method"
 msgstr ""
@@ -952,6 +1016,10 @@
 msgid "Customer Invoices"
 msgstr ""
 
+msgctxt "model:ir.action,name:act_invoice_payment_mean_rule_form"
+msgid "Payment Means Rules"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_relate"
 msgid "Invoices"
 msgstr ""
@@ -1190,6 +1258,13 @@
 msgstr ""
 
 #, python-format
+msgctxt "model:ir.message,text:msg_invoice_source_mismatch"
+msgid ""
+"The \"%(field)s\" value of the invoice \"%(invoice)s\", %(value)s, must "
+"equal the source value, %(source)s."
+msgstr ""
+
+#, python-format
 msgctxt "model:ir.message,text:msg_invoice_supplier_payment_reference_invalid"
 msgid "The %(type)s \"%(reference)s\" on invoice \"%(invoice)s\" is not valid."
 msgstr ""
@@ -1294,6 +1369,11 @@
 msgid "User in companies"
 msgstr ""
 
+msgctxt ""
+"model:ir.rule.group,name:rule_group_invoice_payment_mean_rule_companies"
+msgid "User in companies"
+msgstr ""
+
 msgctxt "model:ir.rule.group,name:rule_group_invoice_sequence_companies"
 msgid "User in companies"
 msgstr ""
@@ -1314,6 +1394,10 @@
 msgid "Customer Invoices"
 msgstr ""
 
+msgctxt "model:ir.ui.menu,name:menu_invoice_payment_mean_rule"
+msgid "Payment Means Rules"
+msgstr ""
+
 msgctxt "model:ir.ui.menu,name:menu_invoices"
 msgid "Invoices"
 msgstr ""
@@ -1330,8 +1414,8 @@
 msgid "Test Payment Term"
 msgstr ""
 
-msgctxt "model:ir.ui.menu,name:menu_payment_terms_configuration"
-msgid "Payment Terms"
+msgctxt "model:ir.ui.menu,name:menu_payments_configuration"
+msgid "Invoice Payments"
 msgstr ""
 
 msgctxt "model:party.party.payment_term,string:"
@@ -1375,6 +1459,10 @@
 msgstr ""
 
 msgctxt "report:account.invoice:"
+msgid "Payment Means"
+msgstr ""
+
+msgctxt "report:account.invoice:"
 msgid "Payment Term"
 msgstr ""
 
@@ -1560,6 +1648,10 @@
 msgid "Tax Identifier:"
 msgstr ""
 
+msgctxt "view:account.invoice:"
+msgid "expected"
+msgstr ""
+
 msgctxt "view:company.company:"
 msgid "Invoice"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account_payment.pot
--- a/templates/account_payment.pot     Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account_payment.pot     Wed Apr 01 12:40:05 2026 +0200
@@ -503,6 +503,10 @@
 "company \"%(company)s\"."
 msgstr ""
 
+msgctxt "model:ir.message,text:msg_invoice_payment_mean_direct_debit"
+msgid "Direct debit"
+msgstr ""
+
 #, python-format
 msgctxt "model:ir.message,text:msg_move_cancel_payments"
 msgid ""
@@ -556,6 +560,13 @@
 msgstr ""
 
 #, python-format
+msgctxt "model:ir.message,text:msg_payment_means"
+msgid ""
+"The journal \"%(journal)s\" of payment \"%(payment)s\" is not valid with the"
+" payment means of invoice \"%(invoice)s\"."
+msgstr ""
+
+#, python-format
 msgctxt "model:ir.message,text:msg_payment_overpay"
 msgid "Payment \"%(payment)s\" overpays line \"%(line)s\"."
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account_payment_check.pot
--- a/templates/account_payment_check.pot       Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account_payment_check.pot       Wed Apr 01 12:40:05 2026 +0200
@@ -0,0 +1,126 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "field:account.payment,check_number:"
+msgid "Check Number"
+msgstr ""
+
+msgctxt "field:account.payment,check_printed:"
+msgid "Check Printed"
+msgstr ""
+
+msgctxt "field:account.payment.check.print.number,start_number:"
+msgid "Start Number"
+msgstr ""
+
+msgctxt "field:account.payment.group,check_printed:"
+msgid "Check Printed"
+msgstr ""
+
+msgctxt "field:account.payment.journal,check_format:"
+msgid "Check Format"
+msgstr ""
+
+msgctxt "field:account.payment.journal,check_max_number:"
+msgid "Maximum Check Number"
+msgstr ""
+
+msgctxt "field:account.payment.journal,check_sequence:"
+msgid "Check Sequence"
+msgstr ""
+
+msgctxt "help:account.payment.journal,check_format:"
+msgid "The report layout for printing checks."
+msgstr ""
+
+msgctxt "help:account.payment.journal,check_max_number:"
+msgid "The highest check number allowed for this journal."
+msgstr ""
+
+msgctxt "help:account.payment.journal,check_sequence:"
+msgid "Leave empty for manual numbering."
+msgstr ""
+
+msgctxt "help:account.statement.rule,description:"
+msgid ""
+"\n"
+"'check'"
+msgstr ""
+
+msgctxt "model:account.payment.check.print.number,string:"
+msgid "Account Payment Check Print Number"
+msgstr ""
+
+msgctxt "model:ir.action,name:account_payment_check_print"
+msgid "Print Check"
+msgstr ""
+
+msgctxt "model:ir.action,name:report_account_payment_check_print"
+msgid "Check"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_payment_group_form_domain_check_to_print"
+msgid "Check to Print"
+msgstr ""
+
+#, python-format
+msgctxt "model:ir.message,text:msg_payment_group_journal_max_number"
+msgid ""
+"The number of checks available for the journal \"%(journal)s\" exceeds the "
+"number of payments in the group \"%(group)s\"."
+msgstr ""
+
+msgctxt ""
+"model:ir.model.button,string:account_payment_group_check_print_button"
+msgid "Print Checks"
+msgstr ""
+
+msgctxt "model:ir.sequence.type,name:sequence_type_account_payment_check"
+msgid "Account Payment Check"
+msgstr ""
+
+msgctxt "report:account.payment.check:"
+msgid "check.check_number if check.journal.check_sequence else ''"
+msgstr ""
+
+msgctxt "report:account.payment.check:"
+msgid "check.currency.name"
+msgstr ""
+
+msgctxt "report:account.payment.check:"
+msgid "check.party.name"
+msgstr ""
+
+msgctxt "report:account.payment.check:"
+msgid "format_currency(check.amount, None, check.currency, symbol=False)"
+msgstr ""
+
+msgctxt "report:account.payment.check:"
+msgid "format_date(check.date)"
+msgstr ""
+
+msgctxt "report:account.payment.check:"
+msgid "num2words(check.amount)"
+msgstr ""
+
+msgctxt "selection:account.payment.journal,process_method:"
+msgid "Check"
+msgstr ""
+
+msgctxt "view:account.payment.journal:"
+msgid "Check"
+msgstr ""
+
+msgctxt "view:account.payment:"
+msgid "Check"
+msgstr ""
+
+msgctxt "wizard_button:account.payment.check.print,number,end:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "wizard_button:account.payment.check.print,number,print_:"
+msgid "Print"
+msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account_payment_sepa.pot
--- a/templates/account_payment_sepa.pot        Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account_payment_sepa.pot        Wed Apr 01 12:40:05 2026 +0200
@@ -273,6 +273,11 @@
 msgstr ""
 
 #, python-format
+msgctxt "model:ir.message,text:msg_invoice_payment_mean_direct_debit"
+msgid "SEPA direct debit using mandate %(mandate)s on %(account_number)s"
+msgstr ""
+
+#, python-format
 msgctxt "model:ir.message,text:msg_mandate_authorisation_statement"
 msgid ""
 "By signing this mandate form, you authorise (A) %(creditor)s to send "
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/account_stock_eu_excise.pot
--- a/templates/account_stock_eu_excise.pot     Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/account_stock_eu_excise.pot     Wed Apr 01 12:40:05 2026 +0200
@@ -0,0 +1,739 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "field:account.stock.eu.excise.declaration,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,end_quantity:"
+msgid "End Quantity"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,eu_excise_tax:"
+msgid "Excise Tax"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,input_duty_suspension:"
+msgid "Input Duty Suspension"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,input_other:"
+msgid "Input Other"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,input_production:"
+msgid "Input Production"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,input_replacement:"
+msgid "Input Replacement"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,input_total:"
+msgid "Input Total"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,output_duty_free:"
+msgid "Output Duty Free"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,output_duty_suspension:"
+msgid "Output Duty Suspension"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,output_other:"
+msgid "Output Other"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,output_production:"
+msgid "Output Production"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,output_total:"
+msgid "Output Total"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,output_with_duty:"
+msgid "Output with Duty"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,products:"
+msgid "Products"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,start_quantity:"
+msgid "Start Quantity"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration,unit:"
+msgid "Unit"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.context,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.context,from_date:"
+msgid "From Date"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.context,to_date:"
+msgid "To Date"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.context,warehouse:"
+msgid "Warehouse"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,end_quantity:"
+msgid "End Quantity"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,eu_excise_code:"
+msgid "Excise Code"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,eu_excise_tax:"
+msgid "Excise Tax"
+msgstr ""
+
+msgctxt ""
+"field:account.stock.eu.excise.declaration.product,input_duty_suspension:"
+msgid "Input Duty Suspension"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,input_other:"
+msgid "Input Other"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,input_production:"
+msgid "Input Production"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,input_replacement:"
+msgid "Input Replacement"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,input_total:"
+msgid "Input Total"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,output_duty_free:"
+msgid "Output Duty Free"
+msgstr ""
+
+msgctxt ""
+"field:account.stock.eu.excise.declaration.product,output_duty_suspension:"
+msgid "Output Duty Suspension"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,output_other:"
+msgid "Output Other"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,output_production:"
+msgid "Output Production"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,output_total:"
+msgid "Output Total"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,output_with_duty:"
+msgid "Output with Duty"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,product:"
+msgid "Product"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,start_quantity:"
+msgid "Start Quantity"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product,unit:"
+msgid "Unit"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,date:"
+msgid "Date"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,direction:"
+msgid "Direction"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,document:"
+msgid "Document"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,duty:"
+msgid "Duty"
+msgstr ""
+
+msgctxt ""
+"field:account.stock.eu.excise.declaration.product.line,eu_excise_code:"
+msgid "Excise Code"
+msgstr ""
+
+msgctxt ""
+"field:account.stock.eu.excise.declaration.product.line,eu_excise_tax:"
+msgid "Excise Tax"
+msgstr ""
+
+msgctxt ""
+"field:account.stock.eu.excise.declaration.product.line,internal_quantity:"
+msgid "Internal Quantity"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,location:"
+msgid "Location"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,move:"
+msgid "Move"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,origin:"
+msgid "Origin"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,product:"
+msgid "Product"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,quantity:"
+msgid "Quantity"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.declaration.product.line,unit:"
+msgid "Unit"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax,code:"
+msgid "Code"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax,country:"
+msgid "Country"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax,currency:"
+msgid "Currency"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax,description:"
+msgid "Description"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax,quantity:"
+msgid "Quantity"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax,tax_rates:"
+msgid "Tax Rates"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax,uom:"
+msgid "UoM"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax.rate,end_date:"
+msgid "End Date"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax.rate,excise_tax:"
+msgid "Excise Tax"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax.rate,formula:"
+msgid "Formula"
+msgstr ""
+
+msgctxt "field:account.stock.eu.excise.tax.rate,start_date:"
+msgid "Start Date"
+msgstr ""
+
+msgctxt "field:party.identifier,eu_excise_codes:"
+msgid "Excise Codes"
+msgstr ""
+
+msgctxt "field:party.identifier-product.eu.excise_code,excise_code:"
+msgid "Excise Code"
+msgstr ""
+
+msgctxt "field:party.identifier-product.eu.excise_code,identifier:"
+msgid "Identifier"
+msgstr ""
+
+msgctxt "field:product-account.stock.eu.excise.tax,country:"
+msgid "Country"
+msgstr ""
+
+msgctxt "field:product-account.stock.eu.excise.tax,excise_tax:"
+msgid "Tax"
+msgstr ""
+
+msgctxt "field:product-account.stock.eu.excise.tax,template:"
+msgid "Product"
+msgstr ""
+
+msgctxt "field:product.eu.excise_code,code:"
+msgid "Code"
+msgstr ""
+
+msgctxt "field:product.eu.excise_code,description:"
+msgid "Description"
+msgstr ""
+
+msgctxt "field:product.price_list.line,eu_excise_duty:"
+msgid "Excise Duty Suspension"
+msgstr ""
+
+msgctxt "field:product.price_list.line,eu_excise_tax:"
+msgid "Excise Tax"
+msgstr ""
+
+msgctxt "field:product.product,eu_excise_code:"
+msgid "Excise Code"
+msgstr ""
+
+msgctxt "field:product.product,eu_excise_taxes:"
+msgid "Excise Tax"
+msgstr ""
+
+msgctxt "field:product.template,eu_excise_code:"
+msgid "Excise Code"
+msgstr ""
+
+msgctxt "field:product.template,eu_excise_taxes:"
+msgid "Excise Tax"
+msgstr ""
+
+msgctxt "field:sale.line,eu_excise_duty_amount:"
+msgid "Excise Duty Amount"
+msgstr ""
+
+msgctxt "field:sale.sale,eu_excise_duty_amount:"
+msgid "Excise Duty Amount"
+msgstr ""
+
+msgctxt "field:sale.sale,eu_excise_number:"
+msgid "Excise Number"
+msgstr ""
+
+msgctxt "field:sale.sale,eu_excise_types:"
+msgid "Excise Types"
+msgstr ""
+
+msgctxt "field:sale.sale,warehouse_eu_excise_number:"
+msgid "Warehouse Excise Number"
+msgstr ""
+
+msgctxt "field:stock.location,eu_excise_numbers:"
+msgid "Excise Number"
+msgstr ""
+
+msgctxt "field:stock.location.eu_excise_number,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:stock.location.eu_excise_number,company_party:"
+msgid "Company Party"
+msgstr ""
+
+msgctxt "field:stock.location.eu_excise_number,eu_excise_number:"
+msgid "Excise Number"
+msgstr ""
+
+msgctxt "field:stock.location.eu_excise_number,warehouse:"
+msgid "Warehouse"
+msgstr ""
+
+msgctxt "field:stock.location.eu_excise_number,warehouse_address:"
+msgid "Warehouse Address"
+msgstr ""
+
+msgctxt "field:stock.move,eu_excise_duty:"
+msgid "Excise Duty"
+msgstr ""
+
+msgctxt "field:stock.move,eu_excise_duty_applicable:"
+msgid "Excise Duty Applicable"
+msgstr ""
+
+msgctxt "field:stock.shipment.in,eu_excise_number:"
+msgid "Excise Number"
+msgstr ""
+
+msgctxt "field:stock.shipment.in,eu_excise_party:"
+msgid "Excise Party"
+msgstr ""
+
+msgctxt "field:stock.shipment.in,eu_excise_types:"
+msgid "Excise Types"
+msgstr ""
+
+msgctxt "field:stock.shipment.in,has_eu_excise_goods:"
+msgid "Has Excise Goods"
+msgstr ""
+
+msgctxt "field:stock.shipment.in,warehouse_eu_excise_number:"
+msgid "Warehouse Excise Number"
+msgstr ""
+
+msgctxt "field:stock.shipment.in.return,eu_excise_number:"
+msgid "Excise Number"
+msgstr ""
+
+msgctxt "field:stock.shipment.in.return,eu_excise_party:"
+msgid "Excise Party"
+msgstr ""
+
+msgctxt "field:stock.shipment.in.return,eu_excise_types:"
+msgid "Excise Types"
+msgstr ""
+
+msgctxt "field:stock.shipment.in.return,has_eu_excise_goods:"
+msgid "Has Excise Goods"
+msgstr ""
+
+msgctxt "field:stock.shipment.in.return,warehouse_eu_excise_number:"
+msgid "Warehouse Excise Number"
+msgstr ""
+
+msgctxt "field:stock.shipment.out,eu_excise_number:"
+msgid "Excise Number"
+msgstr ""
+
+msgctxt "field:stock.shipment.out,eu_excise_party:"
+msgid "Excise Party"
+msgstr ""
+
+msgctxt "field:stock.shipment.out,eu_excise_types:"
+msgid "Excise Types"
+msgstr ""
+
+msgctxt "field:stock.shipment.out,has_eu_excise_goods:"
+msgid "Has Excise Goods"
+msgstr ""
+
+msgctxt "field:stock.shipment.out,warehouse_eu_excise_number:"
+msgid "Warehouse Excise Number"
+msgstr ""
+
+msgctxt "field:stock.shipment.out.return,eu_excise_number:"
+msgid "Excise Number"
+msgstr ""
+
+msgctxt "field:stock.shipment.out.return,eu_excise_party:"
+msgid "Excise Party"
+msgstr ""
+
+msgctxt "field:stock.shipment.out.return,eu_excise_types:"
+msgid "Excise Types"
+msgstr ""
+
+msgctxt "field:stock.shipment.out.return,has_eu_excise_goods:"
+msgid "Has Excise Goods"
+msgstr ""
+
+msgctxt "field:stock.shipment.out.return,warehouse_eu_excise_number:"
+msgid "Warehouse Excise Number"
+msgstr ""
+
+msgctxt "help:account.stock.eu.excise.tax,quantity:"
+msgid "Define which quantity to use for excise declaration."
+msgstr ""
+
+msgctxt "help:account.stock.eu.excise.tax,uom:"
+msgid "The Unit of Measure for excise declaration."
+msgstr ""
+
+msgctxt "help:account.stock.eu.excise.tax.rate,formula:"
+msgid ""
+"A python expression that will be evaluated with:\n"
+"-quantity: the quantity of product"
+msgstr ""
+
+msgctxt "help:party.identifier,eu_excise_codes:"
+msgid "Authorized codes for the excise number."
+msgstr ""
+
+msgctxt "help:product.eu.excise_code,code:"
+msgid "The code from the System for Exchange of Excise Data"
+msgstr ""
+
+msgctxt "model:account.stock.eu.excise.declaration,string:"
+msgid "Account Stock Eu Excise Declaration"
+msgstr ""
+
+msgctxt "model:account.stock.eu.excise.declaration.context,string:"
+msgid "Account Stock Eu Excise Declaration Context"
+msgstr ""
+
+msgctxt "model:account.stock.eu.excise.declaration.product,string:"
+msgid "Account Stock Eu Excise Declaration Product"
+msgstr ""
+
+msgctxt "model:account.stock.eu.excise.declaration.product.line,string:"
+msgid "Account Stock Eu Excise Declaration Product Line"
+msgstr ""
+
+msgctxt "model:account.stock.eu.excise.tax,string:"
+msgid "Account Stock Eu Excise Tax"
+msgstr ""
+
+msgctxt "model:account.stock.eu.excise.tax.rate,string:"
+msgid "Account Stock Eu Excise Tax Rate"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_account_stock_eu_excise_declaration_form"
+msgid "Excise Declarations"
+msgstr ""
+
+msgctxt ""
+"model:ir.action,name:act_account_stock_eu_excise_declaration_product_form"
+msgid "Excise Declaration Products"
+msgstr ""
+
+msgctxt ""
+"model:ir.action,name:act_account_stock_eu_excise_declaration_product_line_form"
+msgid "Excise Declaration Product Lines"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_account_stock_eu_excise_tax_form"
+msgid "Excise Taxes"
+msgstr ""
+
+msgctxt "model:ir.action,name:act_product_eu_excise_code_form"
+msgid "Excise Codes"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_all"
+msgid "All"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_input_duty_suspension"
+msgid "Input Duty Suspension"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_input_other"
+msgid "Input Other"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_input_production"
+msgid "Input Production"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_input_replacement"
+msgid "Input Replacement"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_output_duty_free"
+msgid "Output Duty Free"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_output_duty_suspension"
+msgid "Output Duty Suspension"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_output_other"
+msgid "Output Other"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_output_production"
+msgid "Output Production"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_account_stock_eu_excise_declaration_product_line_form_output_with_duty"
+msgid "Output with Duty"
+msgstr ""
+
+msgctxt "model:ir.message,text:msg_excise_tax_template_country_unique"
+msgid "Only one excise tax per country can be applied to a product."
+msgstr ""
+
+#, python-format
+msgctxt "model:ir.message,text:msg_invalid_formula"
+msgid ""
+"Invalid formula \"%(formula)s\" in excise tax rate \"%(tax_rate)s\" with "
+"exception \"%(exception)s\"."
+msgstr ""
+
+msgctxt "model:ir.message,text:msg_warehouse_excise_company_unique"
+msgid "Only one excise number is allowed for a warehouse per company."
+msgstr ""
+
+msgctxt ""
+"model:ir.rule.group,name:rule_group_account_stock_eu_excise_declaration_companies"
+msgid "User in companies"
+msgstr ""
+
+msgctxt ""
+"model:ir.rule.group,name:rule_group_account_stock_eu_excise_declaration_product_companies"
+msgid "User in companies"
+msgstr ""
+
+msgctxt ""
+"model:ir.rule.group,name:rule_group_account_stock_eu_excise_declaration_product_line_companies"
+msgid "User in companies"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_account_stock_eu_excise_declaration_form"
+msgid "Excise Declarations"
+msgstr ""
+
+msgctxt ""
+"model:ir.ui.menu,name:menu_account_stock_eu_excise_declaration_product_form"
+msgid "Excise Declaration Products"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_account_stock_eu_excise_tax_form"
+msgid "Excise Taxes"
+msgstr ""
+
+msgctxt "model:ir.ui.menu,name:menu_product_eu_excise_code_form"
+msgid "Excise Codes"
+msgstr ""
+
+msgctxt "model:party.identifier-product.eu.excise_code,string:"
+msgid "Party Identifier - Product Eu Excise Code"
+msgstr ""
+
+msgctxt "model:product-account.stock.eu.excise.tax,string:"
+msgid "Product - Account Stock Eu Excise Tax"
+msgstr ""
+
+msgctxt "model:product.eu.excise_code,string:"
+msgid "Product Eu Excise Code"
+msgstr ""
+
+msgctxt "model:stock.location.eu_excise_number,string:"
+msgid "Stock Location Eu Excise Number"
+msgstr ""
+
+msgctxt ""
+"selection:account.stock.eu.excise.declaration.product.line,direction:"
+msgid "Input"
+msgstr ""
+
+msgctxt ""
+"selection:account.stock.eu.excise.declaration.product.line,direction:"
+msgid "Output"
+msgstr ""
+
+msgctxt "selection:account.stock.eu.excise.declaration.product.line,duty:"
+msgid "Free"
+msgstr ""
+
+msgctxt "selection:account.stock.eu.excise.declaration.product.line,duty:"
+msgid "Suspension"
+msgstr ""
+
+msgctxt "selection:account.stock.eu.excise.tax,quantity:"
+msgid "Volume Measurements"
+msgstr ""
+
+msgctxt "selection:account.stock.eu.excise.tax,quantity:"
+msgid "Weight Measurements"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
+msgid "European Excise Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
+msgid "French Excise Number"
+msgstr ""
+
+msgctxt "selection:product.price_list.line,eu_excise_duty:"
+msgid "Suspension"
+msgstr ""
+
+msgctxt "selection:sale.sale,eu_excise_types:"
+msgid "European Excise Number"
+msgstr ""
+
+msgctxt "selection:sale.sale,eu_excise_types:"
+msgid "French Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.move,eu_excise_duty:"
+msgid "Free"
+msgstr ""
+
+msgctxt "selection:stock.move,eu_excise_duty:"
+msgid "Suspension"
+msgstr ""
+
+msgctxt "selection:stock.shipment.in,eu_excise_types:"
+msgid "European Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.shipment.in,eu_excise_types:"
+msgid "French Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.shipment.in.return,eu_excise_types:"
+msgid "European Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.shipment.in.return,eu_excise_types:"
+msgid "French Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.shipment.out,eu_excise_types:"
+msgid "European Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.shipment.out,eu_excise_types:"
+msgid "French Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.shipment.out.return,eu_excise_types:"
+msgid "European Excise Number"
+msgstr ""
+
+msgctxt "selection:stock.shipment.out.return,eu_excise_types:"
+msgid "French Excise Number"
+msgstr ""
+
+msgctxt "view:account.stock.eu.excise.declaration.product:"
+msgid "Input"
+msgstr ""
+
+msgctxt "view:account.stock.eu.excise.declaration.product:"
+msgid "Output"
+msgstr ""
+
+msgctxt "view:account.stock.eu.excise.declaration:"
+msgid "Input"
+msgstr ""
+
+msgctxt "view:account.stock.eu.excise.declaration:"
+msgid "Output"
+msgstr ""
+
+msgctxt "view:product.template:"
+msgid "Excise"
+msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/commission.pot
--- a/templates/commission.pot  Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/commission.pot  Wed Apr 01 12:40:05 2026 +0200
@@ -424,7 +424,7 @@
 msgstr ""
 
 msgctxt "model:commission.reporting.agent.time_series,string:"
-msgid "Commission Reporting Agent"
+msgid "Commission Reporting Agent Time Series"
 msgstr ""
 
 msgctxt "model:commission.reporting.context,string:"
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/document_incoming_ocr_typless.pot
--- a/templates/document_incoming_ocr_typless.pot       Wed Apr 01 11:40:20 
2026 +0200
+++ b/templates/document_incoming_ocr_typless.pot       Wed Apr 01 12:40:05 
2026 +0200
@@ -10,6 +10,18 @@
 msgid "Document Type"
 msgstr ""
 
+msgctxt "field:document.incoming.ocr.service,typless_fields:"
+msgid "Fields"
+msgstr ""
+
+msgctxt "field:document.incoming.ocr.service,typless_line_item_fields:"
+msgid "Line Item Fields"
+msgstr ""
+
+msgctxt "field:document.incoming.ocr.service,typless_vat_rates:"
+msgid "VAT Rates"
+msgstr ""
+
 msgctxt "help:document.incoming.ocr.service,typless_api_key:"
 msgid "The standard token from Typless settings page."
 msgstr ""
@@ -18,6 +30,18 @@
 msgid "The name of the document type on Typless."
 msgstr ""
 
+msgctxt "help:document.incoming.ocr.service,typless_fields:"
+msgid "The metadata fields setup for this document type."
+msgstr ""
+
+msgctxt "help:document.incoming.ocr.service,typless_line_item_fields:"
+msgid "The line item fields setup for this document type."
+msgstr ""
+
+msgctxt "help:document.incoming.ocr.service,typless_vat_rates:"
+msgid "Check if the vat rate net plugin is activated for this document type."
+msgstr ""
+
 msgctxt "model:ir.message,text:msg_typless_credential_modified"
 msgid "Are you sure you want to modify Typless credentials?"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/edocument_peppol.pot
--- a/templates/edocument_peppol.pot    Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/edocument_peppol.pot    Wed Apr 01 12:40:05 2026 +0200
@@ -6,6 +6,10 @@
 msgid "Peppol"
 msgstr ""
 
+msgctxt "field:account.invoice,send_via_peppol:"
+msgid "Send via Peppol"
+msgstr ""
+
 msgctxt "field:edocument.peppol,company:"
 msgid "Company"
 msgstr ""
@@ -122,13 +126,15 @@
 msgstr ""
 
 msgctxt ""
-"model:ir.action.act_window.domain,name:act_edocument_peppol_domain_pending"
-msgid "Pending"
+"model:ir.action.act_window.domain,name:act_edocument_peppol_domain_processing"
+msgid "Processing"
 msgstr ""
 
-msgctxt ""
-"model:ir.action.act_window.domain,name:act_edocument_peppol_domain_processing"
-msgid "Processing"
+#, python-format
+msgctxt "model:ir.message,text:msg_invoice_line_unit_price_not_negative"
+msgid ""
+"In order to post the invoice \"%(invoice)s\" on the Peppol network, the unit"
+" price of the line \"%(line)s\" must not be negative."
 msgstr ""
 
 #, python-format
@@ -162,6 +168,10 @@
 msgid "Submit"
 msgstr ""
 
+msgctxt "model:ir.model.button,string:edocument_peppol_update_status_button"
+msgid "Update Status"
+msgstr ""
+
 msgctxt "model:ir.rule.group,name:rule_group_edocument_peppol_companies"
 msgid "User in companies"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/edocument_ubl.pot
--- a/templates/edocument_ubl.pot       Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/edocument_ubl.pot       Wed Apr 01 12:40:05 2026 +0200
@@ -24,20 +24,6 @@
 msgstr ""
 
 #, python-format
-msgctxt "model:ir.message,text:msg_invoice_tax_amount_different"
-msgid ""
-"The tax amount %(tax_amount)s of the invoice \"%(invoice)s\" is different "
-"from the tax total %(tax_total)s."
-msgstr ""
-
-#, python-format
-msgctxt "model:ir.message,text:msg_invoice_total_amount_different"
-msgid ""
-"The total amount %(total_amount)s of the invoice \"%(invoice)s\" is "
-"different from the amount %(amount)s."
-msgstr ""
-
-#, python-format
 msgctxt "model:ir.message,text:msg_invoice_type_code_unsupported"
 msgid "Unsupported invoice type code \"%(type_code)s\"."
 msgstr ""
@@ -51,8 +37,13 @@
 
 #, python-format
 msgctxt "model:ir.message,text:msg_unit_not_found"
-msgid "Could not find a unit with UNECE code \"%(code)s\"."
-msgstr ""
+msgid ""
+"Could not find a unit with UNECE code \"%(code)s\" and at least %(digits)s "
+"digit."
+msgid_plural ""
+"Could not find a unit with UNECE code \"%(code)s\" and at least %(digits)s "
+"digits."
+msgstr[0] ""
 
 msgctxt "selection:account.invoice.edocument.start,format:"
 msgid "UBL"
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/inbound_email.pot
--- a/templates/inbound_email.pot       Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/inbound_email.pot       Wed Apr 01 12:40:05 2026 +0200
@@ -138,6 +138,10 @@
 msgid "Inbox"
 msgstr ""
 
+msgctxt "model:ir.message,text:msg_reply_above"
+msgid "Please reply above the line."
+msgstr ""
+
 msgctxt ""
 "model:ir.model.button,confirm:inbound_email_inbox_new_identifier_button"
 msgid ""
@@ -160,3 +164,7 @@
 msgctxt "model:ir.ui.menu,name:menu_inbound_email_inbox_form"
 msgid "Inbox"
 msgstr ""
+
+msgctxt "selection:inbound.email.rule,action:"
+msgid "Post to Channel"
+msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/incoterm.pot
--- a/templates/incoterm.pot    Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/incoterm.pot    Wed Apr 01 12:40:05 2026 +0200
@@ -26,6 +26,14 @@
 msgid "Companies"
 msgstr ""
 
+msgctxt "field:incoterm.incoterm,export_duties:"
+msgid "Export Duties"
+msgstr ""
+
+msgctxt "field:incoterm.incoterm,import_duties:"
+msgid "Import Duties"
+msgstr ""
+
 msgctxt "field:incoterm.incoterm,location:"
 msgid "Location"
 msgstr ""
@@ -211,6 +219,22 @@
 msgid "Seller"
 msgstr ""
 
+msgctxt "selection:incoterm.incoterm,export_duties:"
+msgid "Buyer"
+msgstr ""
+
+msgctxt "selection:incoterm.incoterm,export_duties:"
+msgid "Seller"
+msgstr ""
+
+msgctxt "selection:incoterm.incoterm,import_duties:"
+msgid "Buyer"
+msgstr ""
+
+msgctxt "selection:incoterm.incoterm,import_duties:"
+msgid "Seller"
+msgstr ""
+
 msgctxt "selection:incoterm.incoterm,mode:"
 msgid "Any"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/ir.pot
--- a/templates/ir.pot  Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/ir.pot  Wed Apr 01 12:40:05 2026 +0200
@@ -514,6 +514,10 @@
 msgid "Followers"
 msgstr ""
 
+msgctxt "field:ir.chat.channel,identifier:"
+msgid "Identifier"
+msgstr ""
+
 msgctxt "field:ir.chat.channel,resource:"
 msgid "Resource"
 msgstr ""
@@ -554,6 +558,10 @@
 msgid "Email"
 msgstr ""
 
+msgctxt "field:ir.chat.message,reference:"
+msgid "Reference"
+msgstr ""
+
 msgctxt "field:ir.chat.message,user:"
 msgid "User"
 msgstr ""
@@ -822,6 +830,30 @@
 msgid "Name"
 msgstr ""
 
+msgctxt "field:ir.filestore.queue,field:"
+msgid "Field"
+msgstr ""
+
+msgctxt "field:ir.filestore.queue,field_ref:"
+msgid "Field"
+msgstr ""
+
+msgctxt "field:ir.filestore.queue,file_id:"
+msgid "File ID"
+msgstr ""
+
+msgctxt "field:ir.filestore.queue,model:"
+msgid "Model"
+msgstr ""
+
+msgctxt "field:ir.filestore.queue,model_ref:"
+msgid "Model"
+msgstr ""
+
+msgctxt "field:ir.filestore.queue,prefix:"
+msgid "Prefix"
+msgstr ""
+
 msgctxt "field:ir.lang,am:"
 msgid "AM"
 msgstr ""
@@ -1542,6 +1574,14 @@
 msgid "Data"
 msgstr ""
 
+msgctxt "field:ir.translation,field:"
+msgid "Field"
+msgstr ""
+
+msgctxt "field:ir.translation,field_ref:"
+msgid "Field"
+msgstr ""
+
 msgctxt "field:ir.translation,fuzzy:"
 msgid "Fuzzy"
 msgstr ""
@@ -1554,6 +1594,10 @@
 msgid "Model"
 msgstr ""
 
+msgctxt "field:ir.translation,model_ref:"
+msgid "Model"
+msgstr ""
+
 msgctxt "field:ir.translation,module:"
 msgid "Module"
 msgstr ""
@@ -1563,7 +1607,7 @@
 msgstr ""
 
 msgctxt "field:ir.translation,name:"
-msgid "Field Name"
+msgid "Name"
 msgstr ""
 
 msgctxt "field:ir.translation,overriding_module:"
@@ -1914,6 +1958,10 @@
 msgid "Model"
 msgstr ""
 
+msgctxt "field:ir.ui.view_tree_width,occurrence:"
+msgid "Occurrence"
+msgstr ""
+
 msgctxt "field:ir.ui.view_tree_width,screen_width:"
 msgid "Screen Width"
 msgstr ""
@@ -2190,6 +2238,10 @@
 msgid "Attachments"
 msgstr ""
 
+msgctxt "model:ir.action,name:act_chat_channel"
+msgid "Channels"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_config_wizard_item_form"
 msgid "Config Wizard Items"
 msgstr ""
@@ -2685,6 +2737,10 @@
 msgid "Export Line"
 msgstr ""
 
+msgctxt "model:ir.filestore.queue,string:"
+msgid "Filestore Queue"
+msgstr ""
+
 msgctxt "model:ir.lang,name:lang_bg"
 msgid "Bulgarian"
 msgstr ""
@@ -2895,6 +2951,11 @@
 msgid "The name of the button must be unique per model."
 msgstr ""
 
+#, python-format
+msgctxt "model:ir.message,text:msg_button_state_record"
+msgid "You can not call \"%(button)s\" on \"%(record)s\" of \"%(model)s\"."
+msgstr ""
+
 msgctxt "model:ir.message,text:msg_cache_name_unique"
 msgid "The name of cache must be unique."
 msgstr ""
@@ -2904,6 +2965,10 @@
 msgid "The email address \"%(email)s\" is not valid."
 msgstr ""
 
+msgctxt "model:ir.message,text:msg_chat_channel_identifier_unique"
+msgid "Identifier must be unique per channel."
+msgstr ""
+
 msgctxt "model:ir.message,text:msg_chat_channel_resource_unique"
 msgid "Only one channel per resource is allowed."
 msgstr ""
@@ -2916,6 +2981,16 @@
 msgid "A user can follow a channel only once."
 msgstr ""
 
+#, python-format
+msgctxt "model:ir.message,text:msg_chat_follower_joined"
+msgid "\"%(name)s\" joined"
+msgstr ""
+
+#, python-format
+msgctxt "model:ir.message,text:msg_chat_follower_left"
+msgid "\"%(name)s\" left"
+msgstr ""
+
 msgctxt "model:ir.message,text:msg_chat_user_or_email"
 msgid "Only user or email can be filled."
 msgstr ""
@@ -3199,6 +3274,10 @@
 "\"%(exception)s\" and n %(n)r."
 msgstr ""
 
+msgctxt "model:ir.message,text:msg_last_modified_at"
+msgid "Last Modified at"
+msgstr ""
+
 msgctxt "model:ir.message,text:msg_model_data_db_id_model_unique"
 msgid "The database ID must be unique per model."
 msgstr ""
@@ -3230,6 +3309,11 @@
 msgstr ""
 
 #, python-format
+msgctxt "model:ir.message,text:msg_order_function_missing"
+msgid "Missing order function for field \"%(field)s\" in \"%(model)s\"."
+msgstr ""
+
+#, python-format
 msgctxt "model:ir.message,text:msg_read_error"
 msgid "You are trying to read records \"%(ids)s\" of \"%(model)s\" that don't 
exist."
 msgstr ""
@@ -3367,6 +3451,11 @@
 msgstr ""
 
 #, python-format
+msgctxt "model:ir.message,text:msg_subject"
+msgid "%(resource)s: %(author)s left a message"
+msgstr ""
+
+#, python-format
 msgctxt "model:ir.message,text:msg_time_format_validation_record"
 msgid ""
 "The time value \"%(value)s\" for field \"%(field)s\" in record "
@@ -3458,6 +3547,11 @@
 msgid "You cannot store optional on view \"%(view)s\"."
 msgstr ""
 
+msgctxt ""
+"model:ir.message,text:msg_view_tree_width_field_occurrence_user_unique"
+msgid "A user can set only one width per occurrence of field."
+msgstr ""
+
 #, python-format
 msgctxt "model:ir.message,text:msg_write_error"
 msgid ""
@@ -3491,6 +3585,12 @@
 msgid "Model Access"
 msgstr ""
 
+msgctxt "model:ir.model.button,confirm:chat_channel_reset_identifier_button"
+msgid ""
+"This action will make previous entry point unusable. Do you want to "
+"continue?"
+msgstr ""
+
 msgctxt "model:ir.model.button,confirm:lang_load_translations_button"
 msgid "Are you sure you want to load languages' translations?"
 msgstr ""
@@ -3503,6 +3603,10 @@
 msgid "Model Button"
 msgstr ""
 
+msgctxt "model:ir.model.button,string:chat_channel_reset_identifier_button"
+msgid "Reset Identifier"
+msgstr ""
+
 msgctxt "model:ir.model.button,string:cron_run_once_button"
 msgid "Run Once"
 msgstr ""
@@ -3668,7 +3772,7 @@
 msgstr ""
 
 msgctxt "model:ir.sequence.strict,string:"
-msgid "Sequence"
+msgid "Sequence Strict"
 msgstr ""
 
 msgctxt "model:ir.sequence.type,string:"
@@ -3763,6 +3867,10 @@
 msgid "Attachments"
 msgstr ""
 
+msgctxt "model:ir.ui.menu,name:menu_chat_channel_form"
+msgid "Channels"
+msgstr ""
+
 msgctxt "model:ir.ui.menu,name:menu_config_wizard_item_form"
 msgid "Config Wizard Items"
 msgstr ""
@@ -4148,6 +4256,10 @@
 msgstr ""
 
 msgctxt "selection:ir.cron,method:"
+msgid "Remove Deleted Binaries"
+msgstr ""
+
+msgctxt "selection:ir.cron,method:"
 msgid "Run On Time Triggers"
 msgstr ""
 
@@ -4380,9 +4492,17 @@
 msgstr ""
 
 msgctxt "view:ir.error:"
+msgid "Date"
+msgstr ""
+
+msgctxt "view:ir.error:"
 msgid "Origin"
 msgstr ""
 
+msgctxt "view:ir.error:"
+msgid "Time"
+msgstr ""
+
 msgctxt "view:ir.lang.config.start:"
 msgid "You can now load additional translations to the system."
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/marketing_campaign.pot
--- a/templates/marketing_campaign.pot  Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/marketing_campaign.pot  Wed Apr 01 12:40:05 2026 +0200
@@ -115,7 +115,7 @@
 msgstr ""
 
 msgctxt "model:sale.opportunity.reporting.marketing.context,string:"
-msgid "Sale Opportunity Reporting Context"
+msgid "Sale Opportunity Reporting Marketing Context"
 msgstr ""
 
 msgctxt "model:sale.reporting.marketing,string:"
@@ -123,7 +123,7 @@
 msgstr ""
 
 msgctxt "model:sale.reporting.marketing.context,string:"
-msgid "Sale Reporting Context"
+msgid "Sale Reporting Marketing Context"
 msgstr ""
 
 msgctxt "selection:sale.opportunity.reporting.marketing.context,period:"
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/party.pot
--- a/templates/party.pot       Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/party.pot       Wed Apr 01 12:40:05 2026 +0200
@@ -6,6 +6,10 @@
 msgid "Contact Mechanism"
 msgstr ""
 
+msgctxt "field:party.address,attn:"
+msgid "Attn"
+msgstr ""
+
 msgctxt "field:party.address,building_name:"
 msgid "Building Name"
 msgstr ""
@@ -266,6 +270,10 @@
 msgid "Code"
 msgstr ""
 
+msgctxt "field:party.identifier,code_compact:"
+msgid "Code Compact"
+msgstr ""
+
 msgctxt "field:party.identifier,party:"
 msgid "Party"
 msgstr ""
@@ -558,6 +566,10 @@
 msgid "Contact Mechanisms"
 msgstr ""
 
+msgctxt "model:ir.action,name:act_identifier_form"
+msgid "Identifiers"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_party_by_category"
 msgid "Parties by Category"
 msgstr ""
@@ -709,6 +721,10 @@
 msgid "Contact Mechanisms"
 msgstr ""
 
+msgctxt "model:ir.ui.menu,name:menu_identifier_form"
+msgid "Identifiers"
+msgstr ""
+
 msgctxt "model:ir.ui.menu,name:menu_party"
 msgid "Parties"
 msgstr ""
@@ -838,6 +854,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "Azerbaijan Tax Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "Belarus VAT Number"
 msgstr ""
 
@@ -854,6 +874,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "Belgian Social Security Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "Belgian VAT Number"
 msgstr ""
 
@@ -1046,6 +1070,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "French Trade Registration Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "French VAT Number"
 msgstr ""
 
@@ -1206,6 +1234,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "Mozambique Tax Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "New Zealand Inland Revenue Department Number"
 msgstr ""
 
@@ -1270,6 +1302,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "Russian Primary State Registration Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "Russian Tax identifier"
 msgstr ""
 
@@ -1282,6 +1318,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "Senegal Tax Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "Serbian Tax Identification"
 msgstr ""
 
@@ -1302,6 +1342,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "Slovenian Corporate Registration Number"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "Slovenian Unique Master Citizen Number"
 msgstr ""
 
@@ -1326,6 +1370,10 @@
 msgstr ""
 
 msgctxt "selection:party.configuration,identifier_types:"
+msgid "Spanish Activity Establishment Code"
+msgstr ""
+
+msgctxt "selection:party.configuration,identifier_types:"
 msgid "Spanish Company Tax"
 msgstr ""
 
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/party_relationship.pot
--- a/templates/party_relationship.pot  Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/party_relationship.pot  Wed Apr 01 12:40:05 2026 +0200
@@ -95,7 +95,7 @@
 msgstr ""
 
 msgctxt "model:party.relation.all,string:"
-msgid "Party Relation"
+msgid "Party Relation All"
 msgstr ""
 
 msgctxt "model:party.relation.type,string:"
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/production_ethanol.pot
--- a/templates/production_ethanol.pot  Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/production_ethanol.pot  Wed Apr 01 12:40:05 2026 +0200
@@ -0,0 +1,15 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "field:production,ethanol_volume:"
+msgid "Alcohol Volume"
+msgstr ""
+
+msgctxt "field:production,ethanol_volume_unit:"
+msgid "Alcohol Volume UoM"
+msgstr ""
+
+msgctxt "help:production,ethanol_volume:"
+msgid "The volume of ethanol/alcohol gained or lost."
+msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/project.pot
--- a/templates/project.pot     Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/project.pot     Wed Apr 01 12:40:05 2026 +0200
@@ -2,6 +2,14 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=utf-8\n"
 
+msgctxt "field:project.configuration,work_sequence:"
+msgid "Work Effort Sequence"
+msgstr ""
+
+msgctxt "field:project.configuration.sequence,work_sequence:"
+msgid "Work Effort Sequence"
+msgstr ""
+
 msgctxt "field:project.work,children:"
 msgid "Children"
 msgstr ""
@@ -22,6 +30,14 @@
 msgid "Name"
 msgstr ""
 
+msgctxt "field:project.work,number:"
+msgid "Number"
+msgstr ""
+
+msgctxt "field:project.work,origin:"
+msgid "Origin"
+msgstr ""
+
 msgctxt "field:project.work,parent:"
 msgid "Parent"
 msgstr ""
@@ -98,10 +114,22 @@
 msgid "Types"
 msgstr ""
 
+msgctxt "help:project.configuration,work_sequence:"
+msgid "Used to generate the work number."
+msgstr ""
+
+msgctxt "help:project.configuration.sequence,work_sequence:"
+msgid "Used to generate the work number."
+msgstr ""
+
 msgctxt "help:project.work,effort_duration:"
 msgid "Estimated Effort for this work."
 msgstr ""
 
+msgctxt "help:project.work,origin:"
+msgid "The source of the task."
+msgstr ""
+
 msgctxt "help:project.work,progress:"
 msgid "Estimated progress for this work."
 msgstr ""
@@ -142,6 +170,10 @@
 msgid "Tasks"
 msgstr ""
 
+msgctxt "model:ir.action,name:act_project_configuration"
+msgid "Configuration"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_project_form"
 msgid "Projects"
 msgstr ""
@@ -193,6 +225,10 @@
 "progress up to at least %(progress)s."
 msgstr ""
 
+msgctxt "model:ir.message,text:msg_work_number_unique"
+msgid "The number on work must be unique."
+msgstr ""
+
 #, python-format
 msgctxt "model:ir.message,text:msg_work_parent_progress"
 msgid ""
@@ -204,6 +240,14 @@
 msgid "User in companies"
 msgstr ""
 
+msgctxt "model:ir.sequence,name:sequence_work"
+msgid "Work Effort"
+msgstr ""
+
+msgctxt "model:ir.sequence.type,name:sequence_type_work"
+msgid "Project Work Effort"
+msgstr ""
+
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
 msgstr ""
@@ -212,6 +256,10 @@
 msgid "Projects"
 msgstr ""
 
+msgctxt "model:ir.ui.menu,name:menu_project_configuration"
+msgid "Configuration"
+msgstr ""
+
 msgctxt "model:ir.ui.menu,name:menu_project_form"
 msgid "Projects"
 msgstr ""
@@ -240,6 +288,14 @@
 msgid "Works Efforts"
 msgstr ""
 
+msgctxt "model:project.configuration,string:"
+msgid "Project Configuration"
+msgstr ""
+
+msgctxt "model:project.configuration.sequence,string:"
+msgid "Project Configuration Sequence"
+msgstr ""
+
 msgctxt "model:project.work,string:"
 msgid "Project Work"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/purchase.pot
--- a/templates/purchase.pot    Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/purchase.pot    Wed Apr 01 12:40:05 2026 +0200
@@ -247,6 +247,10 @@
 msgid "Quantity"
 msgstr ""
 
+msgctxt "field:purchase.line,quantity_to_invoice:"
+msgid "Quantity to Invoice"
+msgstr ""
+
 msgctxt "field:purchase.line,summary:"
 msgid "Summary"
 msgstr ""
@@ -491,6 +495,10 @@
 msgid "Tax Cache"
 msgstr ""
 
+msgctxt "field:purchase.purchase,to_invoice:"
+msgid "To Invoice"
+msgstr ""
+
 msgctxt "field:purchase.purchase,total_amount:"
 msgid "Total"
 msgstr ""
@@ -1269,15 +1277,15 @@
 msgstr ""
 
 msgctxt "selection:purchase.purchase,invoice_method:"
-msgid "Based On Order"
+msgid "Manual"
 msgstr ""
 
 msgctxt "selection:purchase.purchase,invoice_method:"
-msgid "Based On Shipment"
+msgid "On Fulfillment"
 msgstr ""
 
 msgctxt "selection:purchase.purchase,invoice_method:"
-msgid "Manual"
+msgid "On Order"
 msgstr ""
 
 msgctxt "selection:purchase.purchase,invoice_state:"
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/quality.pot
--- a/templates/quality.pot     Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/quality.pot     Wed Apr 01 12:40:05 2026 +0200
@@ -142,6 +142,10 @@
 msgid "Processed by"
 msgstr ""
 
+msgctxt "field:quality.inspection,reference:"
+msgid "Reference"
+msgstr ""
+
 msgctxt "field:quality.inspection,state:"
 msgid "State"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/res.pot
--- a/templates/res.pot Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/res.pot Wed Apr 01 12:40:05 2026 +0200
@@ -259,6 +259,12 @@
 msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
 msgstr ""
 
+#, python-format
+msgctxt "model:ir.message,text:msg_notification_silenced"
+msgid "%(number)s notification silenced."
+msgid_plural "%(number)s notifications silenced."
+msgstr[0] ""
+
 msgctxt "model:ir.message,text:msg_password_email"
 msgid "The password cannot be the same as user's email address."
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/sale.pot
--- a/templates/sale.pot        Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/sale.pot        Wed Apr 01 12:40:05 2026 +0200
@@ -274,6 +274,14 @@
 msgid "Quantity"
 msgstr ""
 
+msgctxt "field:sale.line,quantity_to_invoice:"
+msgid "Quantity to Invoice"
+msgstr ""
+
+msgctxt "field:sale.line,quantity_to_ship:"
+msgid "Quantity to Ship"
+msgstr ""
+
 msgctxt "field:sale.line,sale:"
 msgid "Sale"
 msgstr ""
@@ -638,6 +646,14 @@
 msgid "Tax Cache"
 msgstr ""
 
+msgctxt "field:sale.sale,to_invoice:"
+msgid "To Invoice"
+msgstr ""
+
+msgctxt "field:sale.sale,to_ship:"
+msgid "To Ship"
+msgstr ""
+
 msgctxt "field:sale.sale,total_amount:"
 msgid "Total"
 msgstr ""
@@ -1515,11 +1531,11 @@
 msgstr ""
 
 msgctxt "selection:sale.sale,invoice_method:"
-msgid "On Order Processed"
+msgid "On Fulfillment"
 msgstr ""
 
 msgctxt "selection:sale.sale,invoice_method:"
-msgid "On Shipment Sent"
+msgid "On Order Processed"
 msgstr ""
 
 msgctxt "selection:sale.sale,invoice_state:"
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/sale_project_task.pot
--- a/templates/sale_project_task.pot   Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/sale_project_task.pot   Wed Apr 01 12:40:05 2026 +0200
@@ -0,0 +1,146 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "field:product.product,taskable:"
+msgid "Taskable"
+msgstr ""
+
+msgctxt "field:product.product,tasks:"
+msgid "Tasks"
+msgstr ""
+
+msgctxt "field:product.project_task,children:"
+msgid "Children"
+msgstr ""
+
+msgctxt "field:product.project_task,name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:product.project_task,parent:"
+msgid "Parent"
+msgstr ""
+
+msgctxt "field:product.project_task,product:"
+msgid "Product"
+msgstr ""
+
+msgctxt "field:product.project_task,template:"
+msgid "Template"
+msgstr ""
+
+msgctxt "field:product.project_task,timesheet_available:"
+msgid "Available on timesheets"
+msgstr ""
+
+msgctxt "field:product.template,taskable:"
+msgid "Taskable"
+msgstr ""
+
+msgctxt "field:product.template,tasks:"
+msgid "Tasks"
+msgstr ""
+
+msgctxt "field:sale.configuration,sale_task_creation_method:"
+msgid "Sale Task Creation Method"
+msgstr ""
+
+msgctxt "field:sale.configuration.sale_method,sale_task_creation_method:"
+msgid "Sale Task Creation Method"
+msgstr ""
+
+msgctxt "field:sale.line,quantity_task_to_create:"
+msgid "Quantity Task to Create"
+msgstr ""
+
+msgctxt "field:sale.line,tasks:"
+msgid "Tasks"
+msgstr ""
+
+msgctxt "field:sale.line,tasks_progress:"
+msgid "Tasks Progress"
+msgstr ""
+
+msgctxt "field:sale.line,tasks_revenue:"
+msgid "Tasks Revenue"
+msgstr ""
+
+msgctxt "field:sale.sale,task_creation_method:"
+msgid "Task Creation Method"
+msgstr ""
+
+msgctxt "field:sale.sale,tasks_state:"
+msgid "Tasks State"
+msgstr ""
+
+msgctxt "field:sale.sale,tasks_to_create:"
+msgid "Tasks to Create"
+msgstr ""
+
+msgctxt "help:product.product,taskable:"
+msgid "Create tasks on sale."
+msgstr ""
+
+msgctxt "help:product.template,taskable:"
+msgid "Create tasks on sale."
+msgstr ""
+
+msgctxt "model:ir.action,name:act_project_work_relate_sale"
+msgid "Tasks"
+msgstr ""
+
+#, python-format
+msgctxt "model:ir.message,text:msg_sale_invalid_method"
+msgid ""
+"You cannot use together invoice \"%(invoice_method)s\" and task creation "
+"\"%(task_creation_method)s\" on sale \"%(sale)s\"."
+msgstr ""
+
+msgctxt "model:ir.model.button,string:sale_manual_task_creation_button"
+msgid "Create Tasks"
+msgstr ""
+
+msgctxt "model:ir.model.button,string:sale_manual_task_invoice_button"
+msgid "Invoice Tasks"
+msgstr ""
+
+msgctxt "model:product.project_task,string:"
+msgid "Product Project Task"
+msgstr ""
+
+msgctxt "selection:sale.sale,task_creation_method:"
+msgid "Manual"
+msgstr ""
+
+msgctxt "selection:sale.sale,task_creation_method:"
+msgid "On Invoice Paid"
+msgstr ""
+
+msgctxt "selection:sale.sale,task_creation_method:"
+msgid "On Order Processed"
+msgstr ""
+
+msgctxt "selection:sale.sale,tasks_state:"
+msgid "None"
+msgstr ""
+
+msgctxt "selection:sale.sale,tasks_state:"
+msgid "Partially fulfilled"
+msgstr ""
+
+msgctxt "selection:sale.sale,tasks_state:"
+msgid "Waiting"
+msgstr ""
+
+msgctxt "selection:sale.sale,tasks_state:"
+msgid "fulfilled"
+msgstr ""
+
+msgctxt "view:product.project_task:"
+msgid "General"
+msgstr ""
+
+msgctxt "view:sale.line:"
+msgid "Tasks"
+msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/sao.pot
--- a/templates/sao.pot Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/sao.pot Wed Apr 01 12:40:05 2026 +0200
@@ -13,7 +13,13 @@
 msgid "Connection error"
 msgstr ""
 
-msgid "Logout"
+msgid "Check menu entries to add favorites"
+msgstr ""
+
+msgid "Add to favorites"
+msgstr ""
+
+msgid "Remove from favorites"
 msgstr ""
 
 msgid "Favorites"
@@ -765,7 +771,22 @@
 msgid "Wizard"
 msgstr ""
 
-msgid "Toggle notification"
+msgid "Add a follower"
+msgstr ""
+
+msgid "Subscribe a follower to this channel"
+msgstr ""
+
+msgid "Show followers"
+msgstr ""
+
+msgid "Unsubscribe"
+msgstr ""
+
+msgid "Subscribe"
+msgstr ""
+
+msgid "Are you sure to unsubscribe \"%1\" from this channel?"
 msgstr ""
 
 msgid "Enter a message"
@@ -777,11 +798,20 @@
 msgid "Make this an internal message"
 msgstr ""
 
+msgid "No notifications at this time"
+msgstr ""
+
 msgid "All Notifications..."
 msgstr ""
 
 msgid "Preferences..."
 msgstr ""
 
+msgid "Help..."
+msgstr ""
+
+msgid "Logout"
+msgstr ""
+
 msgid "Translate view"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/stock.pot
--- a/templates/stock.pot       Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/stock.pot       Wed Apr 01 12:40:05 2026 +0200
@@ -2360,11 +2360,6 @@
 msgstr ""
 
 #, python-format
-msgctxt "model:ir.message,text:msg_product_quantities_max"
-msgid "You cannot select more than %(max)s products to compute quantities."
-msgstr ""
-
-#, python-format
 msgctxt "model:ir.message,text:msg_shipment_check_quantity"
 msgid ""
 "The quantities of shipment \"%(shipment)s\" are different by %(quantities)s."
@@ -2911,6 +2906,10 @@
 msgid "Stock Administration"
 msgstr ""
 
+msgctxt "model:res.group,name:group_stock_cancellation"
+msgid "Stock Cancellation"
+msgstr ""
+
 msgctxt "model:res.group,name:group_stock_force_assignment"
 msgid "Stock Force Assignment"
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/stock_ethanol.pot
--- a/templates/stock_ethanol.pot       Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/stock_ethanol.pot       Wed Apr 01 12:40:05 2026 +0200
@@ -0,0 +1,189 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "field:product.price_list.line,ethanol_volume_uom:"
+msgid "AlcoholVolume UoM"
+msgstr ""
+
+msgctxt "field:product.product,contain_ethanol:"
+msgid "Contain Alcohol"
+msgstr ""
+
+msgctxt "field:product.product,ethanol_by_volume:"
+msgid "Alcohol By Volume"
+msgstr ""
+
+msgctxt "field:product.product,ethanol_by_volume_used:"
+msgid "Alcohol By Volume"
+msgstr ""
+
+msgctxt "field:product.product,ethanol_volume:"
+msgid "Alcohol Volume"
+msgstr ""
+
+msgctxt "field:product.product,ethanol_volume_unit:"
+msgid "Alcohol Volume UoM"
+msgstr ""
+
+msgctxt "field:product.template,contain_ethanol:"
+msgid "Contain Alcohol"
+msgstr ""
+
+msgctxt "field:product.template,ethanol_by_volume:"
+msgid "Alcohol By Volume"
+msgstr ""
+
+msgctxt "field:product.template,ethanol_volume:"
+msgid "Alcohol Volume"
+msgstr ""
+
+msgctxt "field:product.template,ethanol_volume_unit:"
+msgid "Alcohol Volume UoM"
+msgstr ""
+
+msgctxt "field:stock.configuration,ethanol_volume_uom:"
+msgid "Alcohol Volume UoM"
+msgstr ""
+
+msgctxt "field:stock.configuration.ethanol,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:stock.configuration.ethanol,ethanol_volume_uom:"
+msgid "Ethanol Volume UoM"
+msgstr ""
+
+msgctxt "field:stock.move,contain_ethanol:"
+msgid "Contain Alcohol"
+msgstr ""
+
+msgctxt "field:stock.move,ethanol_by_volume:"
+msgid "Alcohol By Volume"
+msgstr ""
+
+msgctxt "field:stock.move,ethanol_volume:"
+msgid "Alcohol Volume"
+msgstr ""
+
+msgctxt "field:stock.move,ethanol_volume_required:"
+msgid "Alcohol Volume Required"
+msgstr ""
+
+msgctxt "field:stock.move,ethanol_volume_unit:"
+msgid "Alcohol Volume UoM"
+msgstr ""
+
+msgctxt "field:stock.move,internal_ethanol_volume:"
+msgid "Internal Alcohol Volume"
+msgstr ""
+
+msgctxt "field:stock.products_by_locations,ethanol_volume:"
+msgid "Alcohol Volume"
+msgstr ""
+
+msgctxt "field:stock.products_by_locations,ethanol_volume_unit:"
+msgid "Alcohol Volume UoM"
+msgstr ""
+
+msgctxt "help:account.stock.eu.excise.tax.rate,formula:"
+msgid ""
+"\n"
+"-ethanol_by_volume: the percentage of alcohol by volume"
+msgstr ""
+
+msgctxt "help:product.price_list.line,ethanol_volume_uom:"
+msgid "Leave empty for liter."
+msgstr ""
+
+msgctxt "help:product.price_list.line,formula:"
+msgid ""
+"\n"
+"-ethanol_volume: the volume of alcohol in 1 unit of product"
+msgstr ""
+
+msgctxt "help:product.product,contain_ethanol:"
+msgid "Check if goods contain ethanol/alcohol."
+msgstr ""
+
+msgctxt "help:product.product,ethanol_by_volume:"
+msgid ""
+"How much ethanol/alcohol is contained in a given volume at 20°C.\n"
+"Leave empty to use the template value."
+msgstr ""
+
+msgctxt "help:product.product,ethanol_by_volume_used:"
+msgid "How much ethanol/alcohol is contained in a given volume at 20°C."
+msgstr ""
+
+msgctxt "help:product.product,ethanol_volume:"
+msgid "The volume of ethanol/alcohol in the location."
+msgstr ""
+
+msgctxt "help:product.template,contain_ethanol:"
+msgid "Check if goods contain ethanol/alcohol."
+msgstr ""
+
+msgctxt "help:product.template,ethanol_by_volume:"
+msgid "How much ethanol/alcohol is contained in a given volume at 20°C."
+msgstr ""
+
+msgctxt "help:product.template,ethanol_volume:"
+msgid "The volume of ethanol/alcohol in the location."
+msgstr ""
+
+msgctxt "help:stock.move,ethanol_by_volume:"
+msgid "How much ethanol/alcohol is contained in a given volume at 20°C."
+msgstr ""
+
+msgctxt "help:stock.move,ethanol_volume:"
+msgid "The volume of ethanol/alcohol moved."
+msgstr ""
+
+msgctxt "help:stock.move,internal_ethanol_volume:"
+msgid "The volume of ethanol/alcohol moved in liter."
+msgstr ""
+
+msgctxt "model:ir.message,text:msg_move_internal_ethanol_volume_positive"
+msgid "Internal ethanol volume must be positive."
+msgstr ""
+
+msgctxt "model:ir.message,text:msg_product_change_contain_ethanol"
+msgid ""
+"You cannot change the contain alcohol of a product which is associated with "
+"stock moves."
+msgstr ""
+
+msgctxt "model:ir.message,text:msg_product_change_ethanol_by_volume"
+msgid ""
+"You cannot change the alcohol by volume of a product which is associated "
+"with stock moves."
+msgstr ""
+
+msgctxt "model:stock.configuration.ethanol,string:"
+msgid "Stock Configuration Ethanol"
+msgstr ""
+
+msgctxt "selection:account.stock.eu.excise.tax,quantity:"
+msgid "Alcohol Volume"
+msgstr ""
+
+msgctxt "view:product.product:"
+msgid "%"
+msgstr ""
+
+msgctxt "view:product.template:"
+msgid "%"
+msgstr ""
+
+msgctxt "view:product.template:"
+msgid "Ethanol"
+msgstr ""
+
+msgctxt "view:stock.configuration:"
+msgid "Ethanol"
+msgstr ""
+
+msgctxt "view:stock.move:"
+msgid "%"
+msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/stock_package.pot
--- a/templates/stock_package.pot       Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/stock_package.pot       Wed Apr 01 12:40:05 2026 +0200
@@ -90,6 +90,26 @@
 msgid "Width UoM"
 msgstr ""
 
+msgctxt "field:stock.package.pack.move,allowed_moves:"
+msgid "Allowed Moves"
+msgstr ""
+
+msgctxt "field:stock.package.pack.move,move_quantity:"
+msgid "Move Quantity"
+msgstr ""
+
+msgctxt "field:stock.package.pack.move,quantity:"
+msgid "Quantity"
+msgstr ""
+
+msgctxt "field:stock.package.pack.move,source:"
+msgid "Source"
+msgstr ""
+
+msgctxt "field:stock.package.pack.move,unit:"
+msgid "Unit"
+msgstr ""
+
 msgctxt "field:stock.package.type,height:"
 msgid "Height"
 msgstr ""
@@ -158,6 +178,10 @@
 msgid "Packages"
 msgstr ""
 
+msgctxt "help:stock.package,children:"
+msgid "The packages contained in this package."
+msgstr ""
+
 msgctxt "help:stock.package,height:"
 msgid "The height of the package."
 msgstr ""
@@ -190,6 +214,10 @@
 msgid "The Unit of Measure for the packaging weight."
 msgstr ""
 
+msgctxt "help:stock.package,parent:"
+msgid "The package that contains this package."
+msgstr ""
+
 msgctxt "help:stock.package,width:"
 msgid "The width of the package."
 msgstr ""
@@ -198,6 +226,12 @@
 msgid "The Unit of Measure for the package width."
 msgstr ""
 
+msgctxt "help:stock.package.pack.move,quantity:"
+msgid ""
+"The quantity to pack from the move.\n"
+"Leave empty for the full quantity of the move."
+msgstr ""
+
 msgctxt "help:stock.package.type,height:"
 msgid "The height of the package."
 msgstr ""
@@ -242,6 +276,14 @@
 msgid "Package Types"
 msgstr ""
 
+msgctxt "model:ir.action,name:wizard_package_pack"
+msgid "Pack Package"
+msgstr ""
+
+msgctxt "model:ir.action,name:wizard_shipment_pack"
+msgid "Pack Shipment"
+msgstr ""
+
 #, python-format
 msgctxt "model:ir.message,text:msg_package_mismatch"
 msgid "To process shipment \"%(shipment)s\", you must pack all its moves."
@@ -254,6 +296,22 @@
 "volume (%(children_volume)s) of its children packages."
 msgstr ""
 
+msgctxt "model:ir.model.button,string:package_fill_button"
+msgid "Fill"
+msgstr ""
+
+msgctxt "model:ir.model.button,string:shipment_in_return_pack_wizard_button"
+msgid "Fill"
+msgstr ""
+
+msgctxt "model:ir.model.button,string:shipment_internal_pack_wizard_button"
+msgid "Add Package"
+msgstr ""
+
+msgctxt "model:ir.model.button,string:shipment_out_pack_wizard_button"
+msgid "Pack"
+msgstr ""
+
 msgctxt "model:ir.rule.group,name:rule_group_package_companies"
 msgid "User in companies"
 msgstr ""
@@ -274,6 +332,10 @@
 msgid "Stock Package"
 msgstr ""
 
+msgctxt "model:stock.package.pack.move,string:"
+msgid "Stock Package Pack Move"
+msgstr ""
+
 msgctxt "model:stock.package.type,string:"
 msgid "Stock Package Type"
 msgstr ""
@@ -299,5 +361,33 @@
 msgstr ""
 
 msgctxt "view:stock.package:"
+msgid "Containing"
+msgstr ""
+
+msgctxt "view:stock.package:"
+msgid "Is contained in:"
+msgstr ""
+
+msgctxt "view:stock.package:"
 msgid "Measurements"
 msgstr ""
+
+msgctxt "wizard_button:stock.package.pack,move,add_move:"
+msgid "Add"
+msgstr ""
+
+msgctxt "wizard_button:stock.package.pack,move,end:"
+msgid "End"
+msgstr ""
+
+msgctxt "wizard_button:stock.shipment.pack,package,add_fill_package:"
+msgid "Add Package and Fill"
+msgstr ""
+
+msgctxt "wizard_button:stock.shipment.pack,package,add_package:"
+msgid "Add Package"
+msgstr ""
+
+msgctxt "wizard_button:stock.shipment.pack,package,end:"
+msgid "End"
+msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/tryton.pot
--- a/templates/tryton.pot      Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/tryton.pot      Wed Apr 01 12:40:05 2026 +0200
@@ -1,4 +1,14 @@
-msgid "Toggle notification"
+msgid "Show followers"
+msgstr ""
+
+#, python-format
+msgid "Are you sure to unsubscribe \"%(name)s\" from this channel?"
+msgstr ""
+
+msgid "Unsubscribe"
+msgstr ""
+
+msgid "Subscribe"
 msgstr ""
 
 msgid "Make this an _internal message"
@@ -7,6 +17,12 @@
 msgid "Send"
 msgstr ""
 
+msgid "Add a follower"
+msgstr ""
+
+msgid "Subscribe a follower to this channel"
+msgstr ""
+
 msgid "specify alternate config file"
 msgstr ""
 
@@ -349,6 +365,9 @@
 msgid "No result found."
 msgstr ""
 
+msgid "Check menu entries to add favorites"
+msgstr ""
+
 msgid "Action"
 msgstr ""
 
@@ -513,6 +532,9 @@
 msgid "Close Tab"
 msgstr ""
 
+msgid "No notifications at this time"
+msgstr ""
+
 msgid "All Notifications..."
 msgstr ""
 
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/web_shop.pot
--- a/templates/web_shop.pot    Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/web_shop.pot    Wed Apr 01 12:40:05 2026 +0200
@@ -54,6 +54,10 @@
 msgid "Web Status URL"
 msgstr ""
 
+msgctxt "field:sale.sale,web_url:"
+msgid "Web URL"
+msgstr ""
+
 msgctxt "field:web.shop,attributes:"
 msgid "Attributes"
 msgstr ""
@@ -182,6 +186,10 @@
 msgid "The URL where the customer can check the order's current status."
 msgstr ""
 
+msgctxt "help:sale.sale,web_url:"
+msgid "The URL of the order on the web shop."
+msgstr ""
+
 msgctxt "help:web.shop,attributes:"
 msgid "The list of attributes to publish."
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/web_shop_shopify.pot
--- a/templates/web_shop_shopify.pot    Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/web_shop_shopify.pot    Wed Apr 01 12:40:05 2026 +0200
@@ -62,6 +62,10 @@
 msgid "Shopify Warehouse"
 msgstr ""
 
+msgctxt "field:sale.sale,shopify_amount_to_pay:"
+msgid "Shopify Amount to Pay"
+msgstr ""
+
 msgctxt "field:sale.sale,shopify_status_url:"
 msgid "Shopify Status URL"
 msgstr ""
@@ -78,26 +82,26 @@
 msgid "Shipment"
 msgstr ""
 
+msgctxt "field:web.shop,shopify_access_token:"
+msgid "Access Token"
+msgstr ""
+
 msgctxt "field:web.shop,shopify_fulfillment_notify_customer:"
 msgid "Notify Customer about Fulfillment"
 msgstr ""
 
-msgctxt "field:web.shop,shopify_password:"
-msgid "Access Token"
-msgstr ""
-
 msgctxt "field:web.shop,shopify_payment_journals:"
 msgid "Payment Journals"
 msgstr ""
 
+msgctxt "field:web.shop,shopify_shop_name:"
+msgid "Shop Name"
+msgstr ""
+
 msgctxt "field:web.shop,shopify_url:"
 msgid "Shop URL"
 msgstr ""
 
-msgctxt "field:web.shop,shopify_version:"
-msgid "Version"
-msgstr ""
-
 msgctxt "field:web.shop,shopify_warehouses:"
 msgid "Warehouses"
 msgstr ""
@@ -225,6 +229,13 @@
 msgid "Failed to find fulfillment order for %(quantity)s of move \"%(move)s\"."
 msgstr ""
 
+#, python-format
+msgctxt "model:ir.message,text:msg_fulfillment_prepared_for_pickup_fail"
+msgid ""
+"Failed to prepare for pickup fulfillments for shipments \"%(shipments)s\" and 
sales \"%(sales)s\" with error:\n"
+"%(error)s"
+msgstr ""
+
 msgctxt "model:ir.message,text:msg_identifier_payment_unique"
 msgid "A shopify transaction can only be imported as payment once."
 msgstr ""
diff -r 1da8d6b22f2a -r 9b3c189bed6c templates/web_user.pot
--- a/templates/web_user.pot    Wed Apr 01 11:40:20 2026 +0200
+++ b/templates/web_user.pot    Wed Apr 01 12:40:05 2026 +0200
@@ -120,7 +120,7 @@
 msgstr ""
 
 msgctxt "model:web.user.authenticate.attempt,string:"
-msgid "User Login Attempt"
+msgid "Web User Authenticate Attempt"
 msgstr ""
 
 msgctxt "model:web.user.session,string:"

Reply via email to