diff --git a/erpnext/hr/doctype/training_event/training_event.js b/erpnext/hr/doctype/training_event/training_event.js
index 24760b0..c3bb5b1 100644
--- a/erpnext/hr/doctype/training_event/training_event.js
+++ b/erpnext/hr/doctype/training_event/training_event.js
@@ -19,7 +19,7 @@
 		}
 	},
 	onload: function(frm) {
-		var params = getSearchParameters();
+		var params = get_search_parameters();
 		if (params.hasOwnProperty('employee') && params.hasOwnProperty('status')) {
 			var newTemp = frm.doc.employees.filter(function(obj) {
 				return obj.name == params.employee;
@@ -27,8 +27,7 @@
 			if (newTemp) {
 				newTemp[0].status = params.status;
 				frm.refresh_field("employees");
-				frappe.msgprint(__(frm.doc.name + ": Status for " + newTemp[0].employee_name +
-					" is updated to " + newTemp[0].status));
+				frappe.msgprint(__('{0}: Status for {1} is updated to {2}', [frm.doc.name, newTemp[0].employee_name, newTemp[0].status]));
 				frappe.route_options = {};
 				frappe.set_route("List", "Training Event");
 			}
@@ -36,7 +35,7 @@
 	}
 });
 
-function getSearchParameters() {
+function get_search_parameters() {
 	var prmstr = window.location.href.split('?')[2];
 	return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
 }
diff --git a/erpnext/hr/doctype/training_event/training_event.py b/erpnext/hr/doctype/training_event/training_event.py
index c35f595..4323f3a 100644
--- a/erpnext/hr/doctype/training_event/training_event.py
+++ b/erpnext/hr/doctype/training_event/training_event.py
@@ -62,8 +62,8 @@
 	def send_invitation_email(self, data, sender, subject, message, attachments):
 		email = frappe.db.get_value("Employee", data.employee, "company_email")
 		if email:
-			make(subject = subject, content=message,recipients=email,
-				sender=sender,attachments = attachments, send_email=True,
+			make(subject=subject, content=message, recipients=email,
+				sender=sender, attachments=attachments, send_email=True,
 					doctype=self.doctype, name=self.name)
 			frappe.msgprint(_("Email sent to {0}").format(data.employee_name))
 
@@ -81,4 +81,4 @@
 	if doc:
 		doc.status = response
 		doc.save()
-		frappe.msgprint("Status for this training event as been updated")
\ No newline at end of file
+		frappe.msgprint(_("Status for this training event as been updated"))
\ No newline at end of file
