diff --git a/erpnext/accounts/report/accounts_payable/accounts_payable.py b/erpnext/accounts/report/accounts_payable/accounts_payable.py
index b65c1e8..3ae741e 100644
--- a/erpnext/accounts/report/accounts_payable/accounts_payable.py
+++ b/erpnext/accounts/report/accounts_payable/accounts_payable.py
@@ -67,12 +67,12 @@
 	
 def get_columns(supplier_naming_by):
 	columns = [
-		"Posting Date:Date:80", "Account:Link/Account:150", "Voucher Type::110", 
-		"Voucher No::120", "::30", "Due Date:Date:80", "Bill No::80", "Bill Date:Date:80", 
-		"Invoiced Amount:Currency:100", "Paid Amount:Currency:100", 
-		"Outstanding Amount:Currency:100", "Age:Int:50", "0-30:Currency:100", 
-		"30-60:Currency:100", "60-90:Currency:100", "90-Above:Currency:100",
-		"Supplier:Link/Supplier:150"
+		_("Posting Date") + ":Date:80", _("Account") + ":Link/Account:150", _("Voucher Type") + "::110", 
+		_("Voucher No") + "::120", "::30", _("Due Date") + ":Date:80", _("Bill No") + "::80", _("Bill Date") + ":Date:80", 
+		_("Invoiced Amount") + ":Currency:100", _("Paid Amount") + ":Currency:100", 
+		_("Outstanding Amount") + ":Currency:100", _("Age") + ":Int:50", "0-30:Currency:100", 
+		"30-60:Currency:100", "60-90:Currency:100", _("90-Above") + ":Currency:100",
+		_("Supplier") + ":Link/Supplier:150"
 	]
 
 	if supplier_naming_by == "Naming Series":
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 427669f..2891b05 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -20,13 +20,13 @@
 		
 	def get_columns(self, customer_naming_by):
 		columns = [
-			"Posting Date:Date:80", "Account:Link/Account:150",
-			"Voucher Type::110", "Voucher No::120", "::30",
-			"Due Date:Date:80",  
-			"Invoiced Amount:Currency:100", "Payment Received:Currency:100", 
-			"Outstanding Amount:Currency:100", "Age:Int:50", "0-30:Currency:100",
-			"30-60:Currency:100", "60-90:Currency:100", "90-Above:Currency:100",
-			"Customer:Link/Customer:200"
+			_("Posting Date") + ":Date:80", _("Account") + ":Link/Account:150",
+			_("Voucher Type") + "::110", _("Voucher No") + "::120", "::30",
+			_("Due Date") + ":Date:80",  
+			_("Invoiced Amount") + ":Currency:100", _("Payment Received") + ":Currency:100", 
+			_("Outstanding Amount") + ":Currency:100", _("Age") + ":Int:50", "0-30:Currency:100",
+			"30-60:Currency:100", "60-90:Currency:100", _("90-Above") + ":Currency:100",
+			_("Customer") + ":Link/Customer:200"
 		]
 
 		if customer_naming_by == "Naming Series":
diff --git a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
index f86c932..dbf86e3 100644
--- a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
+++ b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
@@ -14,9 +14,9 @@
 	return columns, data
 	
 def get_columns():
-	return ["Journal Voucher:Link/Journal Voucher:140", "Account:Link/Account:140", 
-		"Posting Date:Date:100", "Clearance Date:Date:110", "Against Account:Link/Account:200", 
-		"Debit:Currency:120", "Credit:Currency:120"
+	return [_("Journal Voucher") + ":Link/Journal Voucher:140", _("Account") + ":Link/Account:140", 
+		_("Posting Date") + ":Date:100", _("Clearance Date") + ":Date:110", _("Against Account") + ":Link/Account:200", 
+		_("Debit") + ":Currency:120", _("Credit") + ":Currency:120"
 	]
 
 def get_conditions(filters):
diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
index 923aa34..cbe5988 100644
--- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
+++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -47,9 +47,9 @@
 	return columns, data
 
 def get_columns():
-	return ["Posting Date:Date:100", "Journal Voucher:Link/Journal Voucher:220",
-		"Debit:Currency:120", "Credit:Currency:120",
-		"Against Account:Link/Account:200", "Reference::100", "Ref Date:Date:110", "Clearance Date:Date:110"
+	return [_("Posting Date") + ":Date:100", _("Journal Voucher") + ":Link/Journal Voucher:220",
+		_("Debit") + ":Currency:120", _("Credit") + ":Currency:120",
+		_("Against Account") + ":Link/Account:200", _("Reference") + "::100", _("Ref Date") + ":Date:110", _("Clearance Date") + ":Date:110"
 	]
 
 def get_entries(filters):
diff --git a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
index c98d205..fba4aa2 100644
--- a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
+++ b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py
@@ -44,21 +44,21 @@
 			msgprint(_("Please specify") + ": " + label,
 				raise_exception=True)
 
-	columns = ["Cost Center:Link/Cost Center:120", "Account:Link/Account:120"]
+	columns = [_("Cost Center") + ":Link/Cost Center:120", _("Account") + ":Link/Account:120"]
 
 	group_months = False if filters["period"] == "Monthly" else True
 
 	for from_date, to_date in get_period_date_ranges(filters["period"], filters["fiscal_year"]):
-		for label in ["Target (%s)", "Actual (%s)", "Variance (%s)"]:
+		for label in [_("Target") + " (%s)", _("Actual") + " (%s)", _("Variance") + " (%s)"]:
 			if group_months:
-				label = label % (from_date.strftime("%b") + " - " + to_date.strftime("%b"))
+				label = label % (_(from_date.strftime("%b")) + " - " + _(to_date.strftime("%b")))
 			else:
-				label = label % from_date.strftime("%b")
+				label = label % _(from_date.strftime("%b"))
 				
 			columns.append(label+":Float:120")
 
-	return columns + ["Total Target:Float:120", "Total Actual:Float:120", 
-		"Total Variance:Float:120"]
+	return columns + [_("Total Target") + ":Float:120", _("Total Actual") + ":Float:120", 
+		_("Total Variance") + ":Float:120"]
 
 #Get cost center & target details
 def get_costcenter_target_details(filters):
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index d1ea442..362f42e 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -34,9 +34,9 @@
 		frappe.throw(_("From Date must be before To Date"))
 
 def get_columns():
-	return ["Posting Date:Date:100", "Account:Link/Account:200", "Debit:Float:100",
-		"Credit:Float:100", "Voucher Type::120", "Voucher No::160", "Link::20",
-		"Against Account::120", "Cost Center:Link/Cost Center:100", "Remarks::400"]
+	return [_("Posting Date") + ":Date:100", _("Account") + ":Link/Account:200", _("Debit") + ":Float:100",
+		_("Credit") + ":Float:100", _("Voucher Type") + "::120", _("Voucher No") + "::160", _("Link") + "::20",
+		_("Against Account") + "::120", _("Cost Center") + ":Link/Cost Center:100", _("Remarks") + "::400"]
 
 def get_result(filters, account_details):
 	gl_entries = get_gl_entries(filters)
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 1bbf2d1..76e7b4a 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 from frappe.utils import flt
 from erpnext.stock.utils import get_buying_amount, get_sales_bom_buying_amount
 
@@ -13,11 +14,11 @@
 	source = get_source_data(filters)
 	item_sales_bom = get_item_sales_bom()
 	
-	columns = ["Delivery Note/Sales Invoice::120", "Link::30", "Posting Date:Date", "Posting Time", 
-		"Item Code:Link/Item", "Item Name", "Description", "Warehouse:Link/Warehouse",
-		"Qty:Float", "Selling Rate:Currency", "Avg. Buying Rate:Currency", 
-		"Selling Amount:Currency", "Buying Amount:Currency",
-		"Gross Profit:Currency", "Gross Profit %:Percent", "Project:Link/Project"]
+	columns = [__("Delivery Note/Sales Invoice") + "::120", _("Link") + "::30", _("Posting Date") + ":Date", _("Posting Time"), 
+		_("Item Code") + ":Link/Item", _("Item Name"), _("Description"), _("Warehouse") + ":Link/Warehouse",
+		_("Qty") + ":Float", _("Selling Rate") + ":Currency", _("Avg. Buying Rate") + ":Currency", 
+		_("Selling Amount") + ":Currency", _("Buying Amount") + ":Currency",
+		_("Gross Profit") + ":Currency", _("Gross Profit %") + ":Percent", _("Project") + ":Link/Project"]
 	data = []
 	for row in source:
 		selling_amount = flt(row.base_amount)
diff --git a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
index 8e74873..127e9cb 100644
--- a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
+++ b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import msgprint, _
 from frappe.utils import flt
 
 def execute(filters=None):
@@ -33,12 +34,12 @@
 	
 	
 def get_columns():
-	return ["Item Code:Link/Item:120", "Item Name::120", "Item Group:Link/Item Group:100", 
-		"Invoice:Link/Purchase Invoice:120", "Posting Date:Date:80", "Supplier:Link/Customer:120", 
-		"Supplier Account:Link/Account:120", "Project:Link/Project:80", "Company:Link/Company:100", 
-		"Purchase Order:Link/Purchase Order:100", "Purchase Receipt:Link/Purchase Receipt:100", 
-		"Expense Account:Link/Account:140", "Qty:Float:120", "Rate:Currency:120", 
-		"Amount:Currency:120"]
+	return [_("Item Code") + ":Link/Item:120", _("Item Name") + "::120", _("Item Group") + ":Link/Item Group:100", 
+		_("Invoice") + ":Link/Purchase Invoice:120", _("Posting Date") + ":Date:80", _("Supplier") + ":Link/Customer:120", 
+		_("Supplier Account") + ":Link/Account:120", _("Project") + ":Link/Project:80", _("Company") + ":Link/Company:100", 
+		_("Purchase Order") + ":Link/Purchase Order:100", _("Purchase Receipt") + ":Link/Purchase Receipt:100", 
+		_("Expense Account") + ":Link/Account:140", _("Qty") + ":Float:120", _("Rate") + ":Currency:120", 
+		_("Amount") + ":Currency:120"]
 	
 def get_conditions(filters):
 	conditions = ""
diff --git a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
index 6a0d051..2840291 100644
--- a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
+++ b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import msgprint, _
 from frappe.utils import flt
 
 def execute(filters=None):
@@ -32,12 +33,12 @@
 	
 def get_columns():
 	return [
-		"Item Code:Link/Item:120", "Item Name::120", "Item Group:Link/Item Group:100", 
-		"Invoice:Link/Sales Invoice:120", "Posting Date:Date:80", "Customer:Link/Customer:120", 
-		"Customer Account:Link/Account:120", "Territory:Link/Territory:80",
-		"Project:Link/Project:80", "Company:Link/Company:100", "Sales Order:Link/Sales Order:100", 
-		"Delivery Note:Link/Delivery Note:100", "Income Account:Link/Account:140", 
-		"Qty:Float:120", "Rate:Currency:120", "Amount:Currency:120"
+		_("Item Code") + ":Link/Item:120", _("Item Name") + "::120", _("Item Group") + ":Link/Item Group:100", 
+		_("Invoice") + ":Link/Sales Invoice:120", _("Posting Date") + ":Date:80", _("Customer") + ":Link/Customer:120", 
+		_("Customer Account") + ":Link/Account:120", _("Territory") + ":Link/Territory:80",
+		_("Project") + ":Link/Project:80", _("Company") + ":Link/Company:100", _("Sales Order") + ":Link/Sales Order:100", 
+		_("Delivery Note") + ":Link/Delivery Note:100", _("Income Account") + ":Link/Account:140", 
+		_("Qty") + ":Float:120", _("Rate") + ":Currency:120", _("Amount") + ":Currency:120"
 	]
 	
 def get_conditions(filters):
diff --git a/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py b/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py
index b70c1dd..b1d7437 100644
--- a/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py
+++ b/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py
@@ -37,11 +37,11 @@
 	return columns, data
 
 def get_columns():
-	return ["Journal Voucher:Link/Journal Voucher:140", "Account:Link/Account:140",
-		"Posting Date:Date:100", "Against Invoice:Link/Purchase Invoice:130",
-		"Against Invoice Posting Date:Date:130", "Debit:Currency:120", "Credit:Currency:120",
-		"Reference No::100", "Reference Date:Date:100", "Remarks::150", "Age:Int:40",
-		"0-30:Currency:100", "30-60:Currency:100", "60-90:Currency:100", "90-Above:Currency:100"
+	return [_("Journal Voucher") + ":Link/Journal Voucher:140", _("Account") + ":Link/Account:140",
+		_("Posting Date") + ":Date:100", _("Against Invoice") + ":Link/Purchase Invoice:130",
+		_("Against Invoice Posting Date") + ":Date:130", _("Debit") + ":Currency:120", _("Credit") + ":Currency:120",
+		_("Reference No") + "::100", _("Reference Date") + ":Date:100", _("Remarks") + "::150", _("Age") +":Int:40",
+		"0-30:Currency:100", "30-60:Currency:100", "60-90:Currency:100", _("90-Above") + ":Currency:100"
 	]
 
 def get_conditions(filters):
diff --git a/erpnext/accounts/report/purchase_register/purchase_register.py b/erpnext/accounts/report/purchase_register/purchase_register.py
index a82ec29..4000657 100644
--- a/erpnext/accounts/report/purchase_register/purchase_register.py
+++ b/erpnext/accounts/report/purchase_register/purchase_register.py
@@ -63,11 +63,11 @@
 def get_columns(invoice_list):
 	"""return columns based on filters"""
 	columns = [
-		"Invoice:Link/Purchase Invoice:120", "Posting Date:Date:80", "Supplier Id::120", 
-		"Supplier Name::120", "Supplier Account:Link/Account:120", 
-		"Account Group:LInk/Account:120", "Project:Link/Project:80", "Bill No::120", 
-		"Bill Date:Date:80", "Remarks::150", 
-		"Purchase Order:Link/Purchase Order:100", "Purchase Receipt:Link/Purchase Receipt:100"
+		_("Invoice") + ":Link/Purchase Invoice:120", _("Posting Date") + ":Date:80", _("Supplier Id") + "::120", 
+		_("Supplier Name") + "::120", _("Supplier Account") + ":Link/Account:120", 
+		_("Account Group") + ":Link/Account:120", _("Project") + ":Link/Project:80", _("Bill No") + "::120", 
+		_("Bill Date") + ":Date:80", _("Remarks") + "::150", 
+		_("Purchase Order") + ":Link/Purchase Order:100", _("Purchase Receipt") + ":Link/Purchase Receipt:100"
 	]
 	expense_accounts = tax_accounts = expense_columns = tax_columns = []
 	
diff --git a/erpnext/accounts/report/sales_register/sales_register.py b/erpnext/accounts/report/sales_register/sales_register.py
index 4131ee2..1bde110 100644
--- a/erpnext/accounts/report/sales_register/sales_register.py
+++ b/erpnext/accounts/report/sales_register/sales_register.py
@@ -63,10 +63,10 @@
 def get_columns(invoice_list):
 	"""return columns based on filters"""
 	columns = [
-		"Invoice:Link/Sales Invoice:120", "Posting Date:Date:80", "Customer Id::120", 
-		"Customer Name::120", "Customer Account:Link/Account:120", "Account Group:LInk/Account:120",
-		"Territory:Link/Territory:80", "Project:Link/Project:80", "Remarks::150", 
-		"Sales Order:Link/Sales Order:100", "Delivery Note:Link/Delivery Note:100"
+		_("Invoice") + ":Link/Sales Invoice:120", _("Posting Date") + ":Date:80", _("Customer Id") + "::120", 
+		_("Customer Name") + "::120", _("Customer Account") + ":Link/Account:120", _("Account Group") + ":Link/Account:120",
+		_("Territory") + ":Link/Territory:80", _("Project") + ":Link/Project:80", _("Remarks") + "::150", 
+		_("Sales Order") + ":Link/Sales Order:100", _("Delivery Note") + ":Link/Delivery Note:100"
 	]
 	
 	income_accounts = tax_accounts = income_columns = tax_columns = []
diff --git a/erpnext/buying/report/supplier_addresses_and_contacts/supplier_addresses_and_contacts.json b/erpnext/buying/report/supplier_addresses_and_contacts/supplier_addresses_and_contacts.json
index c9fd725..9ae1adc 100644
--- a/erpnext/buying/report/supplier_addresses_and_contacts/supplier_addresses_and_contacts.json
+++ b/erpnext/buying/report/supplier_addresses_and_contacts/supplier_addresses_and_contacts.json
@@ -5,12 +5,12 @@
  "doctype": "Report", 
  "idx": 1, 
  "is_standard": "Yes", 
- "modified": "2014-06-03 07:18:17.358554", 
- "modified_by": "Administrator", 
+ "modified": "2014-09-11 08:53:17.358554", 
+ "modified_by": "Administrator",
  "module": "Buying", 
  "name": "Supplier Addresses and Contacts", 
  "owner": "Administrator", 
- "query": "SELECT\n    `tabSupplier`.name as \"Supplier:Link/Supplier:120\",\n\t`tabSupplier`.supplier_name as \"Supplier Name::120\",\n\t`tabSupplier`.supplier_type as \"Supplier Type:Link/Supplier Type:120\",\n\tconcat_ws(', ', \n\t\ttrim(',' from `tabAddress`.address_line1), \n\t\ttrim(',' from tabAddress.address_line2), \n\t\ttabAddress.state, tabAddress.pincode, tabAddress.country\n\t) as 'Address::180',\n    concat_ws(', ', `tabContact`.first_name, `tabContact`.last_name) as 'Contact Name::180',\n\t`tabContact`.phone as \"Phone\",\n\t`tabContact`.mobile_no as \"Mobile No\",\n\t`tabContact`.email_id as \"Email Id::120\",\n\t`tabContact`.is_primary_contact as \"Is Primary Contact::120\"\nFROM\n\t`tabSupplier`\n\tleft join `tabAddress` on (\n\t\t`tabAddress`.supplier=`tabSupplier`.name\n\t)\n\tleft join `tabContact` on (\n\t\t`tabContact`.supplier=`tabSupplier`.name\n\t)\nWHERE\n\t`tabSupplier`.docstatus<2\nORDER BY\n\t`tabSupplier`.name asc", 
+ "query": "SELECT\n    `tabSupplier`.name as \"Supplier:Link/Supplier:120\",\n\t`tabSupplier`.supplier_name as \"Supplier Name::120\",\n\t`tabSupplier`.supplier_type as \"Supplier Type:Link/Supplier Type:120\",\n\tconcat_ws(', ', \n\t\ttrim(',' from `tabAddress`.address_line1), \n\t\ttrim(',' from tabAddress.address_line2), \n\t\ttabAddress.state, tabAddress.pincode, tabAddress.country\n\t) as 'Address::180',\n    concat_ws(', ', `tabContact`.first_name, `tabContact`.last_name) as \"Contact Name::180\",\n\t`tabContact`.phone as \"Phone\",\n\t`tabContact`.mobile_no as \"Mobile No\",\n\t`tabContact`.email_id as \"Email Id::120\",\n\t`tabContact`.is_primary_contact as \"Is Primary Contact::120\"\nFROM\n\t`tabSupplier`\n\tleft join `tabAddress` on (\n\t\t`tabAddress`.supplier=`tabSupplier`.name\n\t)\n\tleft join `tabContact` on (\n\t\t`tabContact`.supplier=`tabSupplier`.name\n\t)\nWHERE\n\t`tabSupplier`.docstatus<2\nORDER BY\n\t`tabSupplier`.name asc", 
  "ref_doctype": "Supplier", 
  "report_name": "Supplier Addresses and Contacts", 
  "report_type": "Query Report"
diff --git a/erpnext/controllers/trends.py b/erpnext/controllers/trends.py
index e62b661..c2d5e00 100644
--- a/erpnext/controllers/trends.py
+++ b/erpnext/controllers/trends.py
@@ -16,10 +16,10 @@
 	# get conditions for grouping filter cond
 	group_by_cols = group_wise_column(filters.get("group_by"))
 
-	columns = based_on_details["based_on_cols"] + period_cols + ["Total(Qty):Float:120", "Total(Amt):Currency:120"]
+	columns = based_on_details["based_on_cols"] + period_cols + [_("Total(Qty)") + ":Float:120", _("Total(Amt)") + ":Currency:120"]
 	if group_by_cols:
 		columns = based_on_details["based_on_cols"] + group_by_cols + period_cols + \
-			["Total(Qty):Float:120", "Total(Amt):Currency:120"]
+			[_("Total(Qty)") + ":Float:120", _("Total(Amt)") + ":Currency:120"]
 
 	conditions = {"based_on_select": based_on_details["based_on_select"], "period_wise_select": period_select,
 		"columns": columns, "group_by": based_on_details["based_on_group_by"], "grbc": group_by_cols, "trans": trans,
@@ -130,8 +130,8 @@
 			get_period_wise_columns(dt, filters.get("period"), pwc)
 			query_details = get_period_wise_query(dt, trans_date, query_details)
 	else:
-		pwc = [filters.get("fiscal_year") + " (Qty):Float:120",
-			filters.get("fiscal_year") + " (Amt):Currency:120"]
+		pwc = [_(filters.get("fiscal_year")) + " ("+_("Qty") + "):Float:120",
+			_(filters.get("fiscal_year")) + " ("+ _("Amt") + "):Currency:120"]
 		query_details = " SUM(t2.qty), SUM(t2.base_amount),"
 
 	query_details += 'SUM(t2.qty), SUM(t2.base_amount)'
@@ -139,11 +139,11 @@
 
 def get_period_wise_columns(bet_dates, period, pwc):
 	if period == 'Monthly':
-		pwc += [get_mon(bet_dates[0]) + " (Qty):Float:120",
-			get_mon(bet_dates[0]) + " (Amt):Currency:120"]
+		pwc += [_(get_mon(bet_dates[0])) + " (" + _("Qty") + "):Float:120",
+			_(get_mon(bet_dates[0])) + " (" + _("Amt") + "):Currency:120"]
 	else:
-		pwc += [get_mon(bet_dates[0]) + "-" + get_mon(bet_dates[1]) + " (Qty):Float:120",
-			get_mon(bet_dates[0]) + "-" + get_mon(bet_dates[1]) + " (Amt):Currency:120"]
+		pwc += [_(get_mon(bet_dates[0])) + "-" + _(get_mon(bet_dates[1])) + " (" + _("Qty") + "):Float:120",
+			_(get_mon(bet_dates[0])) + "-" + _(get_mon(bet_dates[1])) + " (" + _("Amt") + "):Currency:120"]
 
 def get_period_wise_query(bet_dates, trans_date, query_details):
 	query_details += """SUM(IF(t1.%(trans_date)s BETWEEN '%(sd)s' AND '%(ed)s', t2.qty, NULL)),
diff --git a/erpnext/hr/report/employee_birthday/employee_birthday.py b/erpnext/hr/report/employee_birthday/employee_birthday.py
index dfa6499..4ca97ce 100644
--- a/erpnext/hr/report/employee_birthday/employee_birthday.py
+++ b/erpnext/hr/report/employee_birthday/employee_birthday.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 from frappe.utils import flt
 
 def execute(filters=None):
@@ -15,9 +16,9 @@
 
 def get_columns():
 	return [
-		"Employee:Link/Employee:120", "Name:Data:200", "Date of Birth:Date:100",
-		"Branch:Link/Branch:120", "Department:Link/Department:120",
-		"Designation:Link/Designation:120", "Gender::60", "Company:Link/Company:120"
+		_("Employee") + ":Link/Employee:120", _("Name") + ":Data:200", _("Date of Birth")+ ":Date:100",
+		_("Branch") + ":Link/Branch:120", _("Department") + ":Link/Department:120",
+		_("Designation") + ":Link/Designation:120", _("Gender") + "::60", _("Company") + ":Link/Company:120"
 	]
 
 def get_employees(filters):
diff --git a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
index 62d819a..4b92848 100644
--- a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
+++ b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
@@ -39,13 +39,13 @@
 			','.join(['%s']*len(employee_names)), employee_names, as_dict=True)
 
 	columns = [
-		"Fiscal Year", "Employee:Link/Employee:150", "Employee Name::200", "Department::150"
+		_("Fiscal Year"), _("Employee") + ":Link/Employee:150", _("Employee Name") + "::200", _("Department") +"::150"
 	]
 
 	for leave_type in leave_types:
-		columns.append(leave_type + " Allocated:Float")
-		columns.append(leave_type + " Taken:Float")
-		columns.append(leave_type + " Balance:Float")
+		columns.append(_(leave_type) + " " + _("Allocated") + ":Float")
+		columns.append(_(leave_type) + " " + _("Taken") + ":Float")
+		columns.append(_(leave_type) + " " + _("Balance") + ":Float")
 
 	data = {}
 	for d in allocations:
diff --git a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
index bf15f88..ee113bf 100644
--- a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
+++ b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
@@ -45,15 +45,15 @@
 
 def get_columns(filters):
 	columns = [
-		"Employee:Link/Employee:120", "Employee Name::140", "Branch:Link/Branch:120",
-		"Department:Link/Department:120", "Designation:Link/Designation:120",
-		 "Company:Link/Company:120"
+		_("Employee") + ":Link/Employee:120", _("Employee Name") + "::140", _("Branch")+ ":Link/Branch:120",
+		_("Department") + ":Link/Department:120", _("Designation") + ":Link/Designation:120",
+		 _("Company") + ":Link/Company:120"
 	]
 
 	for day in range(filters["total_days_in_month"]):
 		columns.append(cstr(day+1) +"::20")
 
-	columns += ["Total Present:Float:80", "Total Absent:Float:80"]
+	columns += [_("Total Present") + ":Float:80", _("Total Absent") + ":Float:80"]
 	return columns
 
 def get_attendance_list(conditions, filters):
diff --git a/erpnext/hr/report/monthly_salary_register/monthly_salary_register.py b/erpnext/hr/report/monthly_salary_register/monthly_salary_register.py
index 4fc28e5..537c498 100644
--- a/erpnext/hr/report/monthly_salary_register/monthly_salary_register.py
+++ b/erpnext/hr/report/monthly_salary_register/monthly_salary_register.py
@@ -36,10 +36,10 @@
 	
 def get_columns(salary_slips):
 	columns = [
-		"Employee:Link/Employee:120", "Employee Name::140", "Branch:Link/Branch:120", 
-		"Department:Link/Department:120", "Designation:Link/Designation:120",
-		 "Company:Link/Company:120", "Month::80", "Leave Without pay:Float:130", 
-		"Payment Days:Float:120"
+		_("Employee") + ":Link/Employee:120", _("Employee Name") + "::140", _("Branch") + ":Link/Branch:120", 
+		_("Department") + ":Link/Department:120", _("Designation") + ":Link/Designation:120",
+		 _("Company") + ":Link/Company:120", _("Month") + "::80", _("Leave Without Pay") + ":Float:130", 
+		_("Payment Days") + ":Float:120"
 	]
 	
 	earning_types = frappe.db.sql_list("""select distinct e_type from `tabSalary Slip Earning`
diff --git a/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py b/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py
index 185bcd9..b8f746b 100644
--- a/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py
+++ b/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 from frappe.utils import flt
 
 def execute(filters=None):
@@ -12,9 +13,9 @@
 		filters["from_time"] = "00:00:00"
 		filters["to_time"] = "24:00:00"
 
-	columns = ["Time Log:Link/Time Log:120", "Employee::150", "From Datetime::140",
-		"To Datetime::140", "Hours::70", "Activity Type::120", "Task:Link/Task:150",
-		"Task Subject::180", "Project:Link/Project:120", "Status::70"]
+	columns = [_("Time Log") + ":Link/Time Log:120", _("Employee") + "::150", _("From Datetime") + "::140",
+		_("To Datetime") + "::140", _("Hours") + "::70", _("Activity Type") + "::120", _("Task") + ":Link/Task:150",
+		_("Task Subject") + "::180", _("Project") + ":Link/Project:120", _("Status") + "::70"]
 
 	user_map = get_user_map()
 	task_map = get_task_map()
diff --git a/erpnext/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py b/erpnext/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py
index daed4ab..69c1bbb 100644
--- a/erpnext/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py
+++ b/erpnext/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py
@@ -1,7 +1,8 @@
 # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
 
-import frappe 
+import frappe
+from frappe import _
 
 def execute(filters=None):
 	columns = get_columns()
@@ -21,11 +22,11 @@
 	return columns, data 
 
 def get_columns():
-	return ["Project Id:Link/Project:140", "Cost of Purchased Items:Currency:160",
-		"Cost of Issued Items:Currency:160", "Cost of Delivered Items:Currency:160", 
-		"Project Name::120", "Project Status::120", "Company:Link/Company:100", 
-		"Customer:Link/Customer:140", "Project Value:Currency:120", 
-		"Project Start Date:Date:120", "Completion Date:Date:120"]
+	return [_("Project Id") + ":Link/Project:140", _("Cost of Purchased Items") + ":Currency:160",
+		_("Cost of Issued Items") + ":Currency:160", _("Cost of Delivered Items") + ":Currency:160", 
+		_("Project Name") + "::120", _("Project Status") + "::120", _("Company") + ":Link/Company:100", 
+		_("Customer") + ":Link/Customer:140", _("Project Value") + ":Currency:120", 
+		_("Project Start Date") + ":Date:120", _("Completion Date") + ":Date:120"]+
 
 def get_project_details():
 	return frappe.db.sql(""" select name, project_name, status, company, customer, project_value,
diff --git a/erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.py b/erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.py
index 43c4e58..1ec9871 100644
--- a/erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.py
+++ b/erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 from frappe.utils import getdate, cint
 import calendar
 
@@ -52,13 +53,13 @@
 				new[1], repeat[1], new[1] + repeat[1]])
 					
 	return [
-		"Year", "Month", 
-		"New Customers:Int", 
-		"Repeat Customers:Int", 
-		"Total:Int",
-		"New Customer Revenue:Currency:150", 
-		"Repeat Customer Revenue:Currency:150", 
-		"Total Revenue:Currency:150"
+		_("Year"), _("Month"), 
+		_("New Customers") + ":Int", 
+		_("Repeat Customers") + ":Int", 
+		_("Total") + ":Int",
+		_("New Customer Revenue") + ":Currency:150", 
+		_("Repeat Customer Revenue") + ":Currency:150", 
+		_("Total Revenue") + ":Currency:150"
 	], out
 		
 		
diff --git a/erpnext/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py b/erpnext/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py
index 35cdf59..a87c4a1 100644
--- a/erpnext/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py
+++ b/erpnext/selling/report/customers_not_buying_since_long_time/customers_not_buying_since_long_time.py
@@ -50,14 +50,14 @@
 
 def get_columns():
 	return [
-		"Customer:Link/Customer:120",
-		"Customer Name:Data:120",
-		"Territory::120",
-		"Customer Group::120",
-		"Number of Order::120",
-		"Total Order Value:Currency:120",
-		"Total Order Considered:Currency:160",
-		"Last Order Amount:Currency:160",
-		"Last Sales Order Date:Date:160",
-		"Days Since Last Order::160"
+		_("Customer") + ":Link/Customer:120",
+		_("Customer Name") + ":Data:120",
+		_("Territory") + "::120",
+		_("Customer Group") + "::120",
+		_("Number of Order") + "::120",
+		_("Total Order Value") + ":Currency:120",
+		_("Total Order Considered") + ":Currency:160",
+		_("Last Order Amount") + ":Currency:160",
+		_("Last Sales Order Date") + ":Date:160",
+		_("Days Since Last Order") + "::160"
 	]
diff --git a/erpnext/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py b/erpnext/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py
index b272a83..00b4cde 100644
--- a/erpnext/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py
+++ b/erpnext/selling/report/sales_person_target_variance_item_group_wise/sales_person_target_variance_item_group_wise.py
@@ -43,21 +43,21 @@
 			msgprint(_("Please specify") + ": " + label,
 				raise_exception=True)
 
-	columns = ["Sales Person:Link/Sales Person:120", "Item Group:Link/Item Group:120"]
+	columns = [_("Sales Person") + ":Link/Sales Person:120", _("Item Group") + ":Link/Item Group:120"]
 
 	group_months = False if filters["period"] == "Monthly" else True
 
 	for from_date, to_date in get_period_date_ranges(filters["period"], filters["fiscal_year"]):
-		for label in ["Target (%s)", "Achieved (%s)", "Variance (%s)"]:
+		for label in [_("Target") + " (%s)", _("Achieved") + " (%s)", _("Variance") + " (%s)"]:
 			if group_months:
-				label = label % (from_date.strftime("%b") + " - " + to_date.strftime("%b"))
+				label = label % (_(from_date.strftime("%b")) + " - " + _(to_date.strftime("%b")))
 			else:
-				label = label % from_date.strftime("%b")
+				label = label % _(from_date.strftime("%b"))
 
 			columns.append(label+":Float:120")
 
-	return columns + ["Total Target:Float:120", "Total Achieved:Float:120",
-		"Total Variance:Float:120"]
+	return columns + [_("Total Target") + ":Float:120", _("Total Achieved") + ":Float:120",
+		_("Total Variance") + ":Float:120"]
 
 #Get sales person & item group details
 def get_salesperson_details(filters):
diff --git a/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py b/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
index c7ee35f..f0bed76 100644
--- a/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
+++ b/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
@@ -18,10 +18,10 @@
 		msgprint(_("Please select the document type first"), raise_exception=1)
 		
 	return [filters["doc_type"] + ":Link/" + filters["doc_type"] + ":140", 
-		"Customer:Link/Customer:140", "Territory:Link/Territory:100", "Posting Date:Date:100", 
-		"Item Code:Link/Item:120", "Qty:Float:100", "Amount:Currency:120", 
-		"Sales Person:Link/Sales Person:140", "Contribution %:Float:110", 
-		"Contribution Amount:Currency:140"]
+		_("Customer") + ":Link/Customer:140", _("Territory") + ":Link/Territory:100", _("Posting Date") + ":Date:100", 
+		_("Item Code") + ":Link/Item:120", _("Qty") + ":Float:100", _("Amount") + ":Currency:120", 
+		_("Sales Person") + ":Link/Sales Person:140", _("Contribution %") + ":Float:110", 
+		_("Contribution Amount") + ":Currency:140"]
 	
 def get_entries(filters):
 	date_field = filters["doc_type"] == "Sales Order" and "transaction_date" or "posting_date"
diff --git a/erpnext/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py b/erpnext/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py
index 831e6b7..0ceb2d9 100644
--- a/erpnext/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py
+++ b/erpnext/selling/report/territory_target_variance_item_group_wise/territory_target_variance_item_group_wise.py
@@ -43,20 +43,20 @@
 			label = (" ".join(fieldname.split("_"))).title()
 			msgprint(_("Please specify") + ": " + label, raise_exception=True)
 
-	columns = ["Territory:Link/Territory:120", "Item Group:Link/Item Group:120"]
+	columns = [_("Territory") + ":Link/Territory:120", _("Item Group") + ":Link/Item Group:120"]
 
 	group_months = False if filters["period"] == "Monthly" else True
 
 	for from_date, to_date in get_period_date_ranges(filters["period"], filters["fiscal_year"]):
-		for label in ["Target (%s)", "Achieved (%s)", "Variance (%s)"]:
+		for label in [_("Target") +" (%s)", _("Achieved") + " (%s)", _("Variance") + " (%s)"]:
 			if group_months:
-				label = label % (from_date.strftime("%b") + " - " + to_date.strftime("%b"))
+				label = label % (_(from_date.strftime("%b")) + " - " + _(to_date.strftime("%b")))
 			else:
-				label = label % from_date.strftime("%b")
+				label = label % _(from_date.strftime("%b"))
 			columns.append(label+":Float:120")
 
-	return columns + ["Total Target:Float:120", "Total Achieved:Float:120", 
-		"Total Variance:Float:120"]
+	return columns + [_("Total Target") + ":Float:120", _("Total Achieved") + ":Float:120", 
+		_("Total Variance") + ":Float:120"]
 
 #Get territory & item group details
 def get_territory_details(filters):
diff --git a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
index 1de86be..9b94ee6 100644
--- a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
+++ b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
@@ -29,9 +29,9 @@
 def get_columns(filters):
 	"""return columns based on filters"""
 
-	columns = ["Item:Link/Item:100"] + ["Item Name::150"] + ["Description::150"] + \
-	["Warehouse:Link/Warehouse:100"] + ["Batch:Link/Batch:100"] + ["Opening Qty::90"] + \
-	["In Qty::80"] + ["Out Qty::80"] + ["Balance Qty::90"]
+	columns = [_("Item") + ":Link/Item:100"] + [_("Item Name") + "::150"] + [_("Description") + "::150"] + \
+	[_("Warehouse") + ":Link/Warehouse:100"] + [_("Batch") + ":Link/Batch:100"] + [_("Opening Qty") + "::90"] + \
+	[_("In Qty") + "::80"] + [_("Out Qty") + "::80"] + [_("Balance Qty") + "::90"]
 
 	return columns
 
diff --git a/erpnext/stock/report/item_prices/item_prices.py b/erpnext/stock/report/item_prices/item_prices.py
index 6d75069..2b413fd 100644
--- a/erpnext/stock/report/item_prices/item_prices.py
+++ b/erpnext/stock/report/item_prices/item_prices.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import msgprint, _
 from frappe.utils import flt
 
 def execute(filters=None):
@@ -33,9 +34,9 @@
 def get_columns(filters):
 	"""return columns based on filters"""
 
-	columns = ["Item:Link/Item:100", "Item Name::150", "Description::150", "UOM:Link/UOM:80",
-		"Last Purchase Rate:Currency:90", "Valuation Rate:Currency:80",	"Sales Price List::80",
-		"Purchase Price List::80", "BOM Rate:Currency:90"]
+	columns = [_("Item") + ":Link/Item:100", _("Item Name") + "::150", _("Description") + "::150", _("UOM") + ":Link/UOM:80",
+		_("Last Purchase Rate") + ":Currency:90", _("Valuation Rate") + ":Currency:80",	_("Sales Price List") + "::80",
+		_("Purchase Price List") + "::80", _("BOM Rate") + ":Currency:90"]
 
 	return columns
 
diff --git a/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py b/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
index 9b4bb06..0ffe681 100644
--- a/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
+++ b/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
@@ -36,10 +36,10 @@
 
 def get_columns():
 	return[
-			"Item:Link/Item:120", "Item name:Data:120", "Description::160",
-			"Minimum Inventory Level:Float:160", "Lead Time Days:Float:120", "Consumed:Float:120",
-			"Delivered:Float:120", "Total Outgoing:Float:120", "Avg Daily Outgoing:Float:160",
-			"Reorder Level:Float:120"
+			_("Item") + ":Link/Item:120", _("Item Name") + ":Data:120", _("Description") + "::160",
+			_("Minimum Inventory Level") + ":Float:160", _("Lead Time Days") + ":Float:120", _("Consumed") + ":Float:120",
+			_("Delivered") + ":Float:120", _("Total Outgoing") + ":Float:120", _("Avg Daily Outgoing") + ":Float:160",
+			_("Reorder Level") + ":Float:120"
 	]
 
 def get_item_info():
diff --git a/erpnext/stock/report/stock_ageing/stock_ageing.py b/erpnext/stock/report/stock_ageing/stock_ageing.py
index d8a8dc7..fc47861 100644
--- a/erpnext/stock/report/stock_ageing/stock_ageing.py
+++ b/erpnext/stock/report/stock_ageing/stock_ageing.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 from frappe.utils import date_diff
 
 def execute(filters=None):
@@ -35,9 +36,9 @@
 	return (age_qty / total_qty) if total_qty else 0.0
 	
 def get_columns():
-	return ["Item Code:Link/Item:100", "Item Name::100", "Description::200", 
-		"Item Group:Link/Item Group:100", "Brand:Link/Brand:100", "Average Age:Float:100", 
-		"Earliest:Int:80", "Latest:Int:80", "UOM:Link/UOM:100"]
+	return [_("Item Code") + ":Link/Item:100", _("Item Name") + "::100", _("Description") + "::200", 
+		_("Item Group") + ":Link/Item Group:100", _("Brand") + ":Link/Brand:100", _("Average Age") + ":Float:100", 
+		_("Earliest") + ":Int:80", _("Latest") + ":Int:80", _("UOM") + ":Link/UOM:100"]
 		
 def get_fifo_queue(filters):
 	item_details = {}
diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py
index 73a2c2a..4c5458d 100644
--- a/erpnext/stock/report/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/report/stock_ledger/stock_ledger.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 
 def execute(filters=None):
 	columns = get_columns()
@@ -26,12 +27,12 @@
 	return columns, data
 
 def get_columns():
-	return ["Date:Datetime:95", "Item:Link/Item:130", "Item Name::100", "Item Group:Link/Item Group:100",
-		"Brand:Link/Brand:100", "Description::200", "Warehouse:Link/Warehouse:100",
-		"Stock UOM:Link/UOM:100", "Qty:Float:50", "Balance Qty:Float:100",
-		"Incoming Rate:Currency:110", "Valuation Rate:Currency:110", "Balance Value:Currency:110",
-		"Voucher Type::110", "Voucher #::100", "Link::30", "Batch:Link/Batch:100",
-		"Serial #:Link/Serial No:100", "Company:Link/Company:100"]
+	return [_("Date") + ":Datetime:95", _("Item") + ":Link/Item:130", _("Item Name") + "::100", _("Item Group") + ":Link/Item Group:100",
+		_("Brand") + ":Link/Brand:100", _("Description") + "::200", _("Warehouse") + ":Link/Warehouse:100",
+		_("Stock UOM") + ":Link/UOM:100", _("Qty") + ":Float:50", _("Balance Qty") + ":Float:100",
+		_("Incoming Rate") + ":Currency:110", _("Valuation Rate") + ":Currency:110", _("Balance Value") + ":Currency:110",
+		_("Voucher Type") + "::110", _("Voucher #") + "::100", _("Link") + "::30", _("Batch") + ":Link/Batch:100",
+		_("Serial #") + ":Link/Serial No:100", _("Company") + ":Link/Company:100"]
 
 def get_stock_ledger_entries(filters):
 	return frappe.db.sql("""select concat_ws(" ", posting_date, posting_time) as date,
diff --git a/erpnext/stock/report/stock_projected_qty/stock_projected_qty.py b/erpnext/stock/report/stock_projected_qty/stock_projected_qty.py
index 2a5eb50..ff43155 100644
--- a/erpnext/stock/report/stock_projected_qty/stock_projected_qty.py
+++ b/erpnext/stock/report/stock_projected_qty/stock_projected_qty.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 
 def execute(filters=None):
 	columns = get_columns()
@@ -26,12 +27,12 @@
 	return columns, data
 	
 def get_columns():
-	return ["Item Code:Link/Item:140", "Item Name::100", "Description::200", 
-		"Item Group:Link/Item Group:100", "Brand:Link/Brand:100", "Warehouse:Link/Warehouse:120", 
-		"UOM:Link/UOM:100", "Actual Qty:Float:100", "Planned Qty:Float:100", 
-		"Requested Qty:Float:110", "Ordered Qty:Float:100", "Reserved Qty:Float:100", 
-		"Projected Qty:Float:100", "Reorder Level:Float:100", "Reorder Qty:Float:100", 
-		"Shortage Qty:Float:100"]
+	return [_("Item Code") + ":Link/Item:140", _("Item Name") + "::100", _("Description") + "::200", 
+		_("Item Group") + ":Link/Item Group:100", _("Brand") + ":Link/Brand:100", _("Warehouse") + ":Link/Warehouse:120", 
+		_("UOM") + ":Link/UOM:100", _("Actual Qty") + ":Float:100", _("Planned Qty") + ":Float:100", 
+		_("Requested Qty") + ":Float:110", _("Ordered Qty") + ":Float:100", _("Reserved Qty") + ":Float:100", 
+		_("Projected Qty") + ":Float:100", _("Reorder Level") + ":Float:100", _("Reorder Qty") + ":Float:100", 
+		_("Shortage Qty") + ":Float:100"]
 	
 def get_item_conditions(filters):
 	conditions = []
diff --git a/erpnext/support/page/support_analytics/support_analytics.js b/erpnext/support/page/support_analytics/support_analytics.js
index b9db1f8..6676025 100644
--- a/erpnext/support/page/support_analytics/support_analytics.js
+++ b/erpnext/support/page/support_analytics/support_analytics.js
@@ -28,7 +28,7 @@
 	
 	filters: [
 		{fieldtype:"Select", label: __("Fiscal Year"), link:"Fiscal Year", 
-			default_value: "Select Fiscal Year..."},
+			default_value: __("Select Fiscal Year") + "..."},
 		{fieldtype:"Date", label: __("From Date")},
 		{fieldtype:"Label", label: __("To")},
 		{fieldtype:"Date", label: __("To Date")},
