diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
index c495a35..97484da 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
@@ -36,8 +36,8 @@
 			}
 		});
 
-		var help_content = '<i class="icon-hand-right"></i> Note:<br>'+
-			'<ul>If you are unable to match the exact amount, then amend your Journal Voucher and split rows such that payment amount match the invoice amount.</ul>';
+		var help_content = '<i class="icon-hand-right"></i> ' + __("Note") + ':<br>'+
+			'<ul>' + __("If you are unable to match the exact amount, then amend your Journal Voucher and split rows such that payment amount match the invoice amount.") + '</ul>';
 		this.frm.set_value("reconcile_help", help_content);
 	},
 	
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index ba8d747..8802093 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -45,7 +45,7 @@
 			'icon-plus');
 	}
 
-	wrapper.appframe.set_title_right('Refresh', function() {
+	wrapper.appframe.set_title_right(__('Refresh'), function() {
 			wrapper.$company_select.change();
 		});
 
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index 0d06de1..e394410 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -1,7 +1,7 @@
 frappe.pages['pos'].onload = function(wrapper) {
 	frappe.ui.make_app_page({
 		parent: wrapper,
-		title: 'Start POS',
+		title: __('Start POS'),
 		single_column: true
 	});
 
diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js
index ac44b4d..f50f6c8 100644
--- a/erpnext/home/page/activity/activity.js
+++ b/erpnext/home/page/activity/activity.js
@@ -20,7 +20,7 @@
 	});
 	list.run();
 
-	wrapper.appframe.set_title_right("Refresh", function() { list.run(); });
+	wrapper.appframe.set_title_right(__("Refresh"), function() { list.run(); });
 
 	// Build Report Button
 	if(frappe.boot.user.can_get_report.indexOf("Feed")!=-1) {
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index a8fd464..b5587ce 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -8,7 +8,7 @@
 
 	wrapper.appframe.add_module_icon("Selling")
 
-	wrapper.appframe.set_title_right('Refresh', function() {
+	wrapper.appframe.set_title_right(__('Refresh'), function() {
 			wrapper.make_tree();
 		});
 
@@ -44,7 +44,7 @@
 	// set route
 	var ctype = frappe.get_route()[1] || 'Territory';
 
-	wrapper.appframe.set_title(ctype+' Tree')
+	wrapper.appframe.set_title(__('{0} Tree',[__(ctype)]));
 
 	if(erpnext.sales_chart && erpnext.sales_chart.ctype != ctype) {
 		wrapper.make_tree();
@@ -64,7 +64,7 @@
 
 		this.tree = new frappe.ui.Tree({
 			parent: $(parent),
-			label: root,
+			label: __(root),
 			args: {ctype: ctype},
 			method: 'erpnext.selling.page.sales_browser.sales_browser.get_children',
 			toolbar: [
@@ -112,20 +112,20 @@
 
 		var fields = [
 			{fieldtype:'Data', fieldname: 'name_field',
-				label:'New ' + me.ctype + ' Name', reqd:true},
-			{fieldtype:'Select', fieldname:'is_group', label:'Group Node', options:'No\nYes',
+				label:__('New {0} Name',[me.ctype]), reqd:true},
+			{fieldtype:'Select', fieldname:'is_group', label:__('Group Node'), options:'No\nYes',
 				description: __("Further nodes can be only created under 'Group' type nodes")},
-			{fieldtype:'Button', fieldname:'create_new', label:'Create New' }
+			{fieldtype:'Button', fieldname:'create_new', label:__('Create New') }
 		]
 
 		if(me.ctype == "Sales Person") {
-			fields.splice(-1, 0, {fieldtype:'Link', fieldname:'employee', label:'Employee',
+			fields.splice(-1, 0, {fieldtype:'Link', fieldname:'employee', label:__('Employee'),
 				options:'Employee', description: __("Please enter Employee Id of this sales parson")});
 		}
 
 		// the dialog
 		var d = new frappe.ui.Dialog({
-			title: __('New ') + __(me.ctype),
+			title: __('New {0}',[__(me.ctype)]),
 			fields: fields
 		})
 
diff --git a/erpnext/selling/page/sales_funnel/sales_funnel.js b/erpnext/selling/page/sales_funnel/sales_funnel.js
index cc46c04..7670762 100644
--- a/erpnext/selling/page/sales_funnel/sales_funnel.js
+++ b/erpnext/selling/page/sales_funnel/sales_funnel.js
@@ -4,7 +4,7 @@
 frappe.pages['sales-funnel'].onload = function(wrapper) { 
 	frappe.ui.make_app_page({
 		parent: wrapper,
-		title: 'Sales Funnel',
+		title: __('Sales Funnel'),
 		single_column: true
 	});
 	
@@ -30,13 +30,13 @@
 		
 		this.elements = { 
 			layout: $(wrapper).find(".layout-main"),
-			from_date: wrapper.appframe.add_date("From Date"),
-			to_date: wrapper.appframe.add_date("To Date"),
-			refresh_btn: wrapper.appframe.set_title_right("Refresh", 
+			from_date: wrapper.appframe.add_date(__("From Date")),
+			to_date: wrapper.appframe.add_date(__("To Date")),
+			refresh_btn: wrapper.appframe.set_title_right(__("Refresh"), 
 				function() { me.get_data(); }, "icon-refresh"),
 		};
 		
-		this.elements.no_data = $('<div class="alert alert-warning">No Data</div>')
+		this.elements.no_data = $('<div class="alert alert-warning">' + __("No Data") + '</div>')
 			.toggle(false)
 			.appendTo(this.elements.layout);
 		
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 93c1191..b9b55cc 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -47,7 +47,7 @@
 }
 
 cur_frm.cscript.edit_prices_button = function() {
-	cur_frm.add_custom_button("Add / Edit Prices", function() {
+	cur_frm.add_custom_button(__("Add / Edit Prices)", function() {
 		frappe.set_route("Report", "Item Price", {"item_code": cur_frm.doc.name});
 	}, "icon-money");
 }
diff --git a/erpnext/stock/doctype/price_list/price_list.js b/erpnext/stock/doctype/price_list/price_list.js
index ea7b6db..125242f 100644
--- a/erpnext/stock/doctype/price_list/price_list.js
+++ b/erpnext/stock/doctype/price_list/price_list.js
@@ -7,7 +7,7 @@
 	},
 
 	refresh: function() {
-		cur_frm.add_custom_button("Add / Edit Prices", function() {
+		cur_frm.add_custom_button(__("Add / Edit Prices"), function() {
 			frappe.route_options = {
 				"price_list": cur_frm.doc.name
 			};
