{{ __(field.label) || __(field.fieldname) }}
+ {{ __(field.label, context=field.parent) || __(field.fieldname) }}
({%= __("Table") %})
{%= __("Select Columns") %}
{% } else { %}
- {{ __(field.label) }}
+ {{ __(field.label, context=field.parent) }}
{% } %}
{% } %}
diff --git a/frappe/public/js/frappe/data_import/data_exporter.js b/frappe/public/js/frappe/data_import/data_exporter.js
index 894c028187..6cd0adf029 100644
--- a/frappe/public/js/frappe/data_import/data_exporter.js
+++ b/frappe/public/js/frappe/data_import/data_exporter.js
@@ -73,8 +73,11 @@ frappe.data_import.DataExporter = class DataExporter {
let child_fieldname = df.fieldname;
let label = df.reqd
? // prettier-ignore
- __('{0} ({1}) (1 row mandatory)', [__(df.label || df.fieldname), __(doctype)])
- : __("{0} ({1})", [__(df.label || df.fieldname), __(doctype)]);
+ __('{0} ({1}) (1 row mandatory)', [__(df.label || df.fieldname, null, df.parent), __(doctype)])
+ : __("{0} ({1})", [
+ __(df.label || df.fieldname, null, df.parent),
+ __(doctype),
+ ]);
return {
label,
fieldname: child_fieldname,
@@ -291,7 +294,7 @@ frappe.data_import.DataExporter = class DataExporter {
})
.map((df) => {
return {
- label: __(df.label),
+ label: __(df.label, null, df.parent),
value: df.fieldname,
danger: is_field_mandatory(df),
checked: false,
diff --git a/frappe/public/js/frappe/data_import/import_preview.js b/frappe/public/js/frappe/data_import/import_preview.js
index 2dcd22acf3..58b0cdb5c2 100644
--- a/frappe/public/js/frappe/data_import/import_preview.js
+++ b/frappe/public/js/frappe/data_import/import_preview.js
@@ -334,11 +334,11 @@ function get_fields_as_options(doctype, column_map) {
return [].concat(
...keys.map((key) => {
return column_map[key].map((df) => {
- let label = __(df.label);
+ let label = __(df.label, null, df.parent);
let value = df.fieldname;
if (doctype !== key) {
let table_field = frappe.meta.get_docfield(doctype, key);
- label = `${__(df.label)} (${__(table_field.label)})`;
+ label = `${__(df.label, null, df.parent)} (${__(table_field.label)})`;
value = `${table_field.fieldname}.${df.fieldname}`;
}
return {
diff --git a/frappe/public/js/frappe/form/column.js b/frappe/public/js/frappe/form/column.js
index 317679f829..1bb8a86c25 100644
--- a/frappe/public/js/frappe/form/column.js
+++ b/frappe/public/js/frappe/form/column.js
@@ -30,7 +30,7 @@ export default class Column {
if (this.df.label) {
$(`
`).prependTo(this.wrapper);
}
diff --git a/frappe/public/js/frappe/form/controls/autocomplete.js b/frappe/public/js/frappe/form/controls/autocomplete.js
index b7bf5687d6..344320c468 100644
--- a/frappe/public/js/frappe/form/controls/autocomplete.js
+++ b/frappe/public/js/frappe/form/controls/autocomplete.js
@@ -67,7 +67,7 @@ frappe.ui.form.ControlAutocomplete = class ControlAutoComplete extends frappe.ui
d.label = d.value;
}
- var _label = me.translate_values ? __(d.label) : d.label;
+ var _label = me.translate_values ? __(d.label, null, d.parent) : d.label;
var html = "" + _label + "";
if (d.description) {
html += '
' + __(d.description) + "";
diff --git a/frappe/public/js/frappe/form/controls/base_input.js b/frappe/public/js/frappe/form/controls/base_input.js
index c77565f2c7..044d587c71 100644
--- a/frappe/public/js/frappe/form/controls/base_input.js
+++ b/frappe/public/js/frappe/form/controls/base_input.js
@@ -160,7 +160,8 @@ frappe.ui.form.ControlInput = class ControlInput extends frappe.ui.form.Control
var icon = "";
this.label_span.innerHTML =
- (icon ? ' ' : "") + __(this.df.label) || " ";
+ (icon ? ' ' : "") +
+ __(this.df.label, null, this.df.parent) || " ";
this._label = this.df.label;
}
diff --git a/frappe/public/js/frappe/form/controls/button.js b/frappe/public/js/frappe/form/controls/button.js
index 8a654a6bd3..5c0cdc2fee 100644
--- a/frappe/public/js/frappe/form/controls/button.js
+++ b/frappe/public/js/frappe/form/controls/button.js
@@ -60,7 +60,9 @@ frappe.ui.form.ControlButton = class ControlButton extends frappe.ui.form.Contro
if (label) {
this.df.label = label;
}
- label = (this.df.icon ? frappe.utils.icon(this.df.icon) : "") + __(this.df.label);
+ label =
+ (this.df.icon ? frappe.utils.icon(this.df.icon) : "") +
+ __(this.df.label, null, this.df.parent);
$(this.label_span).html(" ");
this.$input && this.$input.html(label);
}
diff --git a/frappe/public/js/frappe/form/controls/heading.js b/frappe/public/js/frappe/form/controls/heading.js
index ccce412eaf..8089a2532c 100644
--- a/frappe/public/js/frappe/form/controls/heading.js
+++ b/frappe/public/js/frappe/form/controls/heading.js
@@ -1,5 +1,5 @@
frappe.ui.form.ControlHeading = class ControlHeading extends frappe.ui.form.ControlHTML {
get_content() {
- return "" + __(this.df.label) + "
";
+ return "" + __(this.df.label, null, this.df.parent) + "
";
}
};
diff --git a/frappe/public/js/frappe/form/controls/signature.js b/frappe/public/js/frappe/form/controls/signature.js
index f169ec748a..a25606a8e5 100644
--- a/frappe/public/js/frappe/form/controls/signature.js
+++ b/frappe/public/js/frappe/form/controls/signature.js
@@ -6,7 +6,7 @@ frappe.ui.form.ControlSignature = class ControlSignature extends frappe.ui.form.
super.make();
if (this.df.label) {
- $(this.wrapper).find("label").text(__(this.df.label));
+ $(this.wrapper).find("label").text(__(this.df.label, null, this.df.parent));
}
this.set_doc_url();
diff --git a/frappe/public/js/frappe/form/controls/table.js b/frappe/public/js/frappe/form/controls/table.js
index 777705634c..6b547bfbf0 100644
--- a/frappe/public/js/frappe/form/controls/table.js
+++ b/frappe/public/js/frappe/form/controls/table.js
@@ -110,7 +110,7 @@ frappe.ui.form.ControlTable = class ControlTable extends frappe.ui.form.Control
return (
field.fieldname.toLowerCase() === field_name ||
(field.label || "").toLowerCase() === field_name ||
- (__(field.label) || "").toLowerCase() === field_name
+ (__(field.label, null, field.parent) || "").toLowerCase() === field_name
);
};
diff --git a/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js b/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js
index 77e6cacd66..2072273b86 100644
--- a/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js
+++ b/frappe/public/js/frappe/form/footer/version_timeline_content_builder.js
@@ -92,7 +92,7 @@ function get_version_timeline_content(version_doc, frm) {
if (field_display_status === "Read" || field_display_status === "Write") {
parts.push(
__("{0} from {1} to {2}", [
- __(df.label),
+ __(df.label, null, df.parent),
format_content_for_timeline(p[1]),
format_content_for_timeline(p[2]),
])
diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js
index de870f02c0..69a7c6e366 100644
--- a/frappe/public/js/frappe/form/form.js
+++ b/frappe/public/js/frappe/form/form.js
@@ -1530,7 +1530,10 @@ frappe.ui.form.Form = class FrappeForm {
$.each(fields_list, function (i, fname) {
var docfield = frappe.meta.docfield_map[doctype][fname];
if (docfield) {
- var label = __(docfield.label || "").replace(/\([^\)]*\)/g, ""); // eslint-disable-line
+ var label = __(docfield.label || "", null, docfield.parent).replace(
+ /\([^\)]*\)/g,
+ ""
+ ); // eslint-disable-line
if (parentfield) {
grid_field_label_map[doctype + "-" + fname] =
label.trim() + " (" + __(currency) + ")";
diff --git a/frappe/public/js/frappe/form/grid_row.js b/frappe/public/js/frappe/form/grid_row.js
index 9442c27a0e..030dba80a5 100644
--- a/frappe/public/js/frappe/form/grid_row.js
+++ b/frappe/public/js/frappe/form/grid_row.js
@@ -546,7 +546,7 @@ export default class GridRow {
${frappe.utils.icon("drag", "xs")}
- ${__(docfield.label)}
+ ${__(docfield.label, null, docfield.parent)}