From 64fef7e1081991a4c5c0ec37862b75e17c344d3d Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Thu, 25 Jun 2026 17:30:55 +0530 Subject: [PATCH] chore: rewrite user-facing JS messages in Projects module Conservative cleanup of frappe.throw/msgprint messages per the message style guide; meaning, severity, and .format() arguments are unchanged: - index bare {} placeholders as {0}/{1}/... so translators can reorder - move f-strings / .format() / concatenation out of _() (they break gettext extraction and never translate) - wrap translatable dynamic values (DocType/Select labels) in _() - fix grammar and colloquialisms - drop no-op _() wrapping runtime-built strings Part of #53976. --- erpnext/projects/doctype/project/project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js index c110857e935..92ceccca32a 100644 --- a/erpnext/projects/doctype/project/project.js +++ b/erpnext/projects/doctype/project/project.js @@ -137,7 +137,7 @@ frappe.ui.form.on("Project", { freeze_message: __("Updating Costing and Billing fields against this Project..."), callback: function (r) { if (r && !r.exc) { - frappe.msgprint(__("Costing and Billing fields has been updated")); + frappe.msgprint(__("Costing and Billing fields have been updated")); frm.refresh(); } },