fix: make labels in error message translatable (backport #48327) (#48436)

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
fix: make labels in error message translatable (#48327)
This commit is contained in:
mergify[bot]
2025-07-07 22:36:48 +02:00
committed by GitHub
parent d4700e5560
commit 6b41dc2fed
11 changed files with 28 additions and 28 deletions

View File

@@ -147,8 +147,8 @@ class AccountsSettings(Document):
if self.add_taxes_from_item_tax_template and self.add_taxes_from_taxes_and_charges_template: if self.add_taxes_from_item_tax_template and self.add_taxes_from_taxes_and_charges_template:
frappe.throw( frappe.throw(
_("You cannot enable both the settings '{0}' and '{1}'.").format( _("You cannot enable both the settings '{0}' and '{1}'.").format(
frappe.bold(self.meta.get_label("add_taxes_from_item_tax_template")), frappe.bold(_(self.meta.get_label("add_taxes_from_item_tax_template"))),
frappe.bold(self.meta.get_label("add_taxes_from_taxes_and_charges_template")), frappe.bold(_(self.meta.get_label("add_taxes_from_taxes_and_charges_template"))),
), ),
title=_("Auto Tax Settings Error"), title=_("Auto Tax Settings Error"),
) )

View File

@@ -568,7 +568,7 @@ class PaymentEntry(AccountsController):
def validate_mandatory(self): def validate_mandatory(self):
for field in ("paid_amount", "received_amount", "source_exchange_rate", "target_exchange_rate"): for field in ("paid_amount", "received_amount", "source_exchange_rate", "target_exchange_rate"):
if not self.get(field): if not self.get(field):
frappe.throw(_("{0} is mandatory").format(self.meta.get_label(field))) frappe.throw(_("{0} is mandatory").format(_(self.meta.get_label(field))))
def validate_reference_documents(self): def validate_reference_documents(self):
valid_reference_doctypes = self.get_valid_reference_doctypes() valid_reference_doctypes = self.get_valid_reference_doctypes()

View File

@@ -589,7 +589,7 @@ class PaymentReconciliation(Document):
def check_mandatory_to_fetch(self): def check_mandatory_to_fetch(self):
for fieldname in ["company", "party_type", "party", "receivable_payable_account"]: for fieldname in ["company", "party_type", "party", "receivable_payable_account"]:
if not self.get(fieldname): if not self.get(fieldname):
frappe.throw(_("Please select {0} first").format(self.meta.get_label(fieldname))) frappe.throw(_("Please select {0} first").format(_(self.meta.get_label(fieldname))))
def validate_entries(self): def validate_entries(self):
if not self.get("invoices"): if not self.get("invoices"):

View File

@@ -169,7 +169,7 @@ class PricingRule(Document):
tocheck = frappe.scrub(self.get("applicable_for", "")) tocheck = frappe.scrub(self.get("applicable_for", ""))
if tocheck and not self.get(tocheck): if tocheck and not self.get(tocheck):
throw(_("{0} is required").format(self.meta.get_label(tocheck)), frappe.MandatoryError) throw(_("{0} is required").format(_(self.meta.get_label(tocheck))), frappe.MandatoryError)
if self.apply_rule_on_other: if self.apply_rule_on_other:
o_field = "other_" + frappe.scrub(self.apply_rule_on_other) o_field = "other_" + frappe.scrub(self.apply_rule_on_other)

View File

@@ -169,7 +169,7 @@ def validate_fiscal_year(date, fiscal_year, company, label="Date", doc=None):
if doc: if doc:
doc.fiscal_year = years[0] doc.fiscal_year = years[0]
else: else:
throw(_("{0} '{1}' not in Fiscal Year {2}").format(label, formatdate(date), fiscal_year)) throw(_("{0} '{1}' not in Fiscal Year {2}").format(_(label), formatdate(date), fiscal_year))
@frappe.whitelist() @frappe.whitelist()

View File

@@ -987,7 +987,7 @@ class BOM(WebsiteGenerator):
self.transfer_material_against = "Work Order" self.transfer_material_against = "Work Order"
if not self.transfer_material_against and not self.is_new(): if not self.transfer_material_against and not self.is_new():
frappe.throw( frappe.throw(
_("Setting {} is required").format(self.meta.get_label("transfer_material_against")), _("Setting {0} is required").format(_(self.meta.get_label("transfer_material_against"))),
title=_("Missing value"), title=_("Missing value"),
) )

View File

@@ -390,7 +390,7 @@ class WorkOrder(Document):
if qty > completed_qty: if qty > completed_qty:
frappe.throw( frappe.throw(
_("{0} ({1}) cannot be greater than planned quantity ({2}) in Work Order {3}").format( _("{0} ({1}) cannot be greater than planned quantity ({2}) in Work Order {3}").format(
self.meta.get_label(fieldname), qty, completed_qty, self.name _(self.meta.get_label(fieldname)), qty, completed_qty, self.name
), ),
StockOverProductionError, StockOverProductionError,
) )
@@ -1077,7 +1077,7 @@ class WorkOrder(Document):
self.transfer_material_against = "Work Order" self.transfer_material_against = "Work Order"
if not self.transfer_material_against: if not self.transfer_material_against:
frappe.throw( frappe.throw(
_("Setting {} is required").format(self.meta.get_label("transfer_material_against")), _("Setting {0} is required").format(_(self.meta.get_label("transfer_material_against"))),
title=_("Missing value"), title=_("Missing value"),
) )

View File

@@ -395,7 +395,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
"General Ledger", "General Ledger",
self.meta.get_label("income"), _(self.meta.get_label("income")),
filters={ filters={
"from_date": self.future_from_date, "from_date": self.future_from_date,
"to_date": self.future_to_date, "to_date": self.future_to_date,
@@ -427,7 +427,7 @@ class EmailDigest(Document):
filters = {"currency": self.currency} filters = {"currency": self.currency}
label = get_link_to_report( label = get_link_to_report(
"Profit and Loss Statement", "Profit and Loss Statement",
label=self.meta.get_label(root_type + "_year_to_date"), label=_(self.meta.get_label(root_type + "_year_to_date")),
filters=filters, filters=filters,
) )
@@ -435,7 +435,7 @@ class EmailDigest(Document):
filters = {"currency": self.currency} filters = {"currency": self.currency}
label = get_link_to_report( label = get_link_to_report(
"Profit and Loss Statement", "Profit and Loss Statement",
label=self.meta.get_label(root_type + "_year_to_date"), label=_(self.meta.get_label(root_type + "_year_to_date")),
filters=filters, filters=filters,
) )
@@ -466,7 +466,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
"General Ledger", "General Ledger",
self.meta.get_label("expenses_booked"), _(self.meta.get_label("expenses_booked")),
filters={ filters={
"company": self.company, "company": self.company,
"from_date": self.future_from_date, "from_date": self.future_from_date,
@@ -500,7 +500,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
"Sales Order", "Sales Order",
label=self.meta.get_label("sales_orders_to_bill"), label=_(self.meta.get_label("sales_orders_to_bill")),
report_type="Report Builder", report_type="Report Builder",
doctype="Sales Order", doctype="Sales Order",
filters={ filters={
@@ -526,7 +526,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
"Sales Order", "Sales Order",
label=self.meta.get_label("sales_orders_to_deliver"), label=_(self.meta.get_label("sales_orders_to_deliver")),
report_type="Report Builder", report_type="Report Builder",
doctype="Sales Order", doctype="Sales Order",
filters={ filters={
@@ -552,7 +552,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
"Purchase Order", "Purchase Order",
label=self.meta.get_label("purchase_orders_to_receive"), label=_(self.meta.get_label("purchase_orders_to_receive")),
report_type="Report Builder", report_type="Report Builder",
doctype="Purchase Order", doctype="Purchase Order",
filters={ filters={
@@ -578,7 +578,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
"Purchase Order", "Purchase Order",
label=self.meta.get_label("purchase_orders_to_bill"), label=_(self.meta.get_label("purchase_orders_to_bill")),
report_type="Report Builder", report_type="Report Builder",
doctype="Purchase Order", doctype="Purchase Order",
filters={ filters={
@@ -630,7 +630,7 @@ class EmailDigest(Document):
"company": self.company, "company": self.company,
} }
label = get_link_to_report( label = get_link_to_report(
"Account Balance", label=self.meta.get_label(fieldname), filters=filters "Account Balance", label=_(self.meta.get_label(fieldname)), filters=filters
) )
else: else:
filters = { filters = {
@@ -640,7 +640,7 @@ class EmailDigest(Document):
"company": self.company, "company": self.company,
} }
label = get_link_to_report( label = get_link_to_report(
"Account Balance", label=self.meta.get_label(fieldname), filters=filters "Account Balance", label=_(self.meta.get_label(fieldname)), filters=filters
) )
return {"label": label, "value": balance, "last_value": prev_balance} return {"label": label, "value": balance, "last_value": prev_balance}
@@ -648,17 +648,17 @@ class EmailDigest(Document):
if account_type == "Payable": if account_type == "Payable":
label = get_link_to_report( label = get_link_to_report(
"Accounts Payable", "Accounts Payable",
label=self.meta.get_label(fieldname), label=_(self.meta.get_label(fieldname)),
filters={"report_date": self.future_to_date, "company": self.company}, filters={"report_date": self.future_to_date, "company": self.company},
) )
elif account_type == "Receivable": elif account_type == "Receivable":
label = get_link_to_report( label = get_link_to_report(
"Accounts Receivable", "Accounts Receivable",
label=self.meta.get_label(fieldname), label=_(self.meta.get_label(fieldname)),
filters={"report_date": self.future_to_date, "company": self.company}, filters={"report_date": self.future_to_date, "company": self.company},
) )
else: else:
label = self.meta.get_label(fieldname) label = _(self.meta.get_label(fieldname))
return {"label": label, "value": balance, "last_value": prev_balance, "count": count} return {"label": label, "value": balance, "last_value": prev_balance, "count": count}
@@ -748,7 +748,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
"Quotation", "Quotation",
label=self.meta.get_label(fieldname), label=_(self.meta.get_label(fieldname)),
report_type="Report Builder", report_type="Report Builder",
doctype="Quotation", doctype="Quotation",
filters={ filters={
@@ -779,7 +779,7 @@ class EmailDigest(Document):
label = get_link_to_report( label = get_link_to_report(
doc_type, doc_type,
label=self.meta.get_label(fieldname), label=_(self.meta.get_label(fieldname)),
report_type="Report Builder", report_type="Report Builder",
filters=filters, filters=filters,
doctype=doc_type, doctype=doc_type,

View File

@@ -634,7 +634,7 @@ class Item(Document):
if new_properties != [cstr(self.get(field)) for field in field_list]: if new_properties != [cstr(self.get(field)) for field in field_list]:
msg = _("To merge, following properties must be same for both items") msg = _("To merge, following properties must be same for both items")
msg += ": \n" + ", ".join([self.meta.get_label(fld) for fld in field_list]) msg += ": \n" + ", ".join([_(self.meta.get_label(fld)) for fld in field_list])
frappe.throw(msg, title=_("Cannot Merge"), exc=DataValidationError) frappe.throw(msg, title=_("Cannot Merge"), exc=DataValidationError)
def validate_duplicate_product_bundles_before_merge(self, old_name, new_name): def validate_duplicate_product_bundles_before_merge(self, old_name, new_name):
@@ -981,7 +981,7 @@ class Item(Document):
return return
if linked_doc := self._get_linked_submitted_documents(changed_fields): if linked_doc := self._get_linked_submitted_documents(changed_fields):
changed_field_labels = [frappe.bold(self.meta.get_label(f)) for f in changed_fields] changed_field_labels = [frappe.bold(_(self.meta.get_label(f))) for f in changed_fields]
msg = _( msg = _(
"As there are existing submitted transactions against item {0}, you can not change the value of {1}." "As there are existing submitted transactions against item {0}, you can not change the value of {1}."
).format(self.name, ", ".join(changed_field_labels)) ).format(self.name, ", ".join(changed_field_labels))

View File

@@ -192,7 +192,7 @@ class StockLedgerEntry(Document):
mandatory = ["warehouse", "posting_date", "voucher_type", "voucher_no", "company"] mandatory = ["warehouse", "posting_date", "voucher_type", "voucher_no", "company"]
for k in mandatory: for k in mandatory:
if not self.get(k): if not self.get(k):
frappe.throw(_("{0} is required").format(self.meta.get_label(k))) frappe.throw(_("{0} is required").format(_(self.meta.get_label(k))))
if self.voucher_type != "Stock Reconciliation" and not self.actual_qty: if self.voucher_type != "Stock Reconciliation" and not self.actual_qty:
frappe.throw(_("Actual Qty is mandatory")) frappe.throw(_("Actual Qty is mandatory"))

View File

@@ -115,7 +115,7 @@ class StockReservationEntry(Document):
] ]
for d in mandatory: for d in mandatory:
if not self.get(d): if not self.get(d):
msg = _("{0} is required").format(self.meta.get_label(d)) msg = _("{0} is required").format(_(self.meta.get_label(d)))
frappe.throw(msg) frappe.throw(msg)
def validate_group_warehouse(self) -> None: def validate_group_warehouse(self) -> None: