diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js
index 7373648..481a003 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -48,13 +48,13 @@
 			this.show_download_template();
 			this.show_upload();
 			if(this.frm.doc.reconciliation_json) {
-				this.frm.set_intro("You can submit this Stock Reconciliation.");
+				this.frm.set_intro(wn._("You can submit this Stock Reconciliation."));
 			} else {
-				this.frm.set_intro("Download the Template, fill appropriate data and \
-					attach the modified file.");
+				this.frm.set_intro(wn._("Download the Template, fill appropriate data and \
+					attach the modified file."));
 			}
 		} else if(this.frm.doc.docstatus == 1) {
-			this.frm.set_intro("Cancelling this Stock Reconciliation will nullify its effect.");
+			this.frm.set_intro(wn._("Cancelling this Stock Reconciliation will nullify its effect."));
 			this.show_stock_ledger();
 			this.show_general_ledger();
 		} else {
@@ -66,20 +66,20 @@
 	
 	show_download_template: function() {
 		var me = this;
-		this.frm.add_custom_button("Download Template", function() {
-			this.title = "Stock Reconcilation Template";
-			wn.tools.downloadify([["Stock Reconciliation"],
+		this.frm.add_custom_button(wn._("Download Template"), function() {
+			this.title = wn._("Stock Reconcilation Template");
+			wn.tools.downloadify([[wn._("Stock Reconciliation")],
 				["----"],
-				["Stock Reconciliation can be used to update the stock on a particular date,"
-					+ " usually as per physical inventory."],
-				["When submitted, the system creates difference entries"
-					+ " to set the given stock and valuation on this date."],
-				["It can also be used to create opening stock entries and to fix stock value."],
+				[wn._("Stock Reconciliation can be used to update the stock on a particular date, ")
+					+ wn._("usually as per physical inventory.")],
+				[wn._("When submitted, the system creates difference entries ")
+					+ wn._("to set the given stock and valuation on this date.")],
+				[wn._("It can also be used to create opening stock entries and to fix stock value.")],
 				["----"],
-				["Notes:"],
-				["Item Code and Warehouse should already exist."],
-				["You can update either Quantity or Valuation Rate or both."],
-				["If no change in either Quantity or Valuation Rate, leave the cell blank."],
+				[wn._("Notes:")],
+				[wn._("Item Code and Warehouse should already exist.")],
+				[wn._("You can update either Quantity or Valuation Rate or both.")],
+				[wn._("If no change in either Quantity or Valuation Rate, leave the cell blank.")],
 				["----"],
 				["Item Code", "Warehouse", "Quantity", "Valuation Rate"]], null, this);
 			return false;
@@ -113,8 +113,8 @@
 	show_download_reconciliation_data: function() {
 		var me = this;
 		if(this.frm.doc.reconciliation_json) {
-			this.frm.add_custom_button("Download Reconcilation Data", function() {
-				this.title = "Stock Reconcilation Data";
+			this.frm.add_custom_button(wn._("Download Reconcilation Data"), function() {
+				this.title = wn._("Stock Reconcilation Data");
 				wn.tools.downloadify(JSON.parse(me.frm.doc.reconciliation_json), null, this);
 				return false;
 			}, "icon-download");
