From 1296cd58b9bf99df0ed819b7f098bc0eedc5d544 Mon Sep 17 00:00:00 2001
From: barisusakli <barisusakli@gmail.com>
Date: Mon, 23 Jun 2014 19:45:45 -0400
Subject: [PATCH] closes #1723

---
 public/language/en_GB/email.json |  4 +++
 public/src/app.js                |  5 ++++
 public/src/forum/reset.js        |  5 +---
 public/src/modules/composer.js   |  2 --
 src/user/email.js                | 44 +++++++++++++++++---------------
 src/user/reset.js                | 35 +++++++++++++------------
 6 files changed, 52 insertions(+), 43 deletions(-)
 create mode 100644 public/language/en_GB/email.json

diff --git a/public/language/en_GB/email.json b/public/language/en_GB/email.json
new file mode 100644
index 0000000000..83c68d54ed
--- /dev/null
+++ b/public/language/en_GB/email.json
@@ -0,0 +1,4 @@
+{
+	"password-reset-requested": "Password Reset Requested - %1!",
+	"welcome-to": "Welcome to %1"
+}
\ No newline at end of file
diff --git a/public/src/app.js b/public/src/app.js
index a19de92132..7e6b5f4b70 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -164,6 +164,10 @@ var socket,
 			}
 
 			app.cacheBuster = config['cache-buster'];
+
+			bootbox.setDefaults({
+				locale: config.defaultLang
+			});
 		}
 	}
 
@@ -570,4 +574,5 @@ var socket,
 
 	app.loadConfig();
 	app.alternatingTitle('');
+
 }());
diff --git a/public/src/forum/reset.js b/public/src/forum/reset.js
index 3a0f4415ed..2cbad172ae 100644
--- a/public/src/forum/reset.js
+++ b/public/src/forum/reset.js
@@ -4,8 +4,7 @@ define('forum/reset', function() {
 	ResetPassword.init = function() {
 		var inputEl = $('#email'),
 			errorEl = $('#error'),
-			successEl = $('#success'),
-			errorTextEl = errorEl.find('p');
+			successEl = $('#success');
 
 		$('#reset').on('click', function() {
 			if (inputEl.val() && inputEl.val().indexOf('@') !== -1) {
@@ -16,13 +15,11 @@ define('forum/reset', function() {
 
 					errorEl.addClass('hide').hide();
 					successEl.removeClass('hide').show();
-					successEl.find('p').html('An email has been dispatched to "' + inputEl.val() + '" with instructions on setting a new password.');
 					inputEl.val('');
 				});
 			} else {
 				successEl.addClass('hide').hide();
 				errorEl.removeClass('hide').show();
-				errorTextEl.html('Please enter a valid email');
 			}
 		});
 	};
diff --git a/public/src/modules/composer.js b/public/src/modules/composer.js
index ea028edb00..ea565e929c 100644
--- a/public/src/modules/composer.js
+++ b/public/src/modules/composer.js
@@ -225,8 +225,6 @@ define('composer', dependencies, function(taskbar, controls, uploads, formatting
 					uploads.toggleThumbEls(postContainer, composer.posts[post_uuid].topic_thumb || '');
 				}
 
-
-
 				postContainer.on('change', 'input, textarea', function() {
 					composer.posts[post_uuid].modified = true;
 				});
diff --git a/src/user/email.js b/src/user/email.js
index d00b74a2dc..6ff114173a 100644
--- a/src/user/email.js
+++ b/src/user/email.js
@@ -5,12 +5,13 @@ var async = require('async'),
 	nconf = require('nconf'),
 	winston = require('winston'),
 
-	user = require('./../user'),
-	utils = require('./../../public/src/utils'),
-	plugins = require('./../plugins'),
-	db = require('./../database'),
-	meta = require('./../meta'),
-	emailer = require('./../emailer');
+	user = require('../user'),
+	utils = require('../../public/src/utils'),
+	translator = require('../../public/src/translator'),
+	plugins = require('../plugins'),
+	db = require('../database'),
+	meta = require('../meta'),
+	emailer = require('../emailer');
 
 (function(UserEmail) {
 
@@ -42,27 +43,30 @@ var async = require('async'),
 					db.expireAt('confirm:' + confirm_code, Math.floor(Date.now() / 1000 + 60 * 60 * 2), next);
 				}
 			], function(err) {
+
 				user.getUserField(uid, 'username', function(err, username) {
 					if (err) {
 						return winston.error(err.message);
 					}
 
-					var data = {
-						site_title: (meta.config.title || 'NodeBB'),
-						username: username,
-						confirm_link: confirm_link,
-						confirm_code: confirm_code,
+					translator.translate('[[email:welcome-to, ' + (meta.config.title || 'NodeBB') + ']]', meta.config.defaultLang, function(subject) {
+						var data = {
+							site_title: (meta.config.title || 'NodeBB'),
+							username: username,
+							confirm_link: confirm_link,
+							confirm_code: confirm_code,
 
-						subject: 'Welcome to ' + (meta.config.title || 'NodeBB') + '!',
-						template: 'welcome',
-						uid: uid
-					};
+							subject: subject,
+							template: 'welcome',
+							uid: uid
+						};
 
-					if (plugins.hasListeners('action:user.verify')) {
-						plugins.fireHook('action:user.verify', uid, data);
-					} else if (plugins.hasListeners('action:email.send')) {
-						emailer.send('welcome', uid, data);
-					}
+						if (plugins.hasListeners('action:user.verify')) {
+							plugins.fireHook('action:user.verify', uid, data);
+						} else if (plugins.hasListeners('action:email.send')) {
+							emailer.send('welcome', uid, data);
+						}
+					});
 				});
 			});
 		});
diff --git a/src/user/reset.js b/src/user/reset.js
index 2ceceaef02..542ad22d12 100644
--- a/src/user/reset.js
+++ b/src/user/reset.js
@@ -4,13 +4,15 @@
 var async = require('async'),
 	nconf = require('nconf'),
 
-	user = require('./../user'),
-	utils = require('./../../public/src/utils'),
+	user = require('../user'),
+	utils = require('../../public/src/utils'),
+	translator = require('../../public/src/translator'),
 
-	db = require('./../database'),
-	meta = require('./../meta'),
-	events = require('./../events'),
-	emailer = require('./../emailer');
+	db = require('../database'),
+	meta = require('../meta'),
+	events = require('../events'),
+	emailer = require('../emailer'),
+	tran;
 
 (function(UserReset) {
 
@@ -39,27 +41,26 @@ var async = require('async'),
 
 	UserReset.send = function(socket, email, callback) {
 		user.getUidByEmail(email, function(err, uid) {
-			if(err || !uid) {
+			if (err || !uid) {
 				return callback(err || new Error('[[error:invalid-email]]'));
 			}
 
-			// Generate a new reset code
 			var reset_code = utils.generateUUID();
 			db.setObjectField('reset:uid', reset_code, uid);
 			db.setObjectField('reset:expiry', reset_code, (60 * 60) + Math.floor(Date.now() / 1000));
 
 			var reset_link = nconf.get('url') + '/reset/' + reset_code;
 
-			emailer.send('reset', uid, {
-				site_title: (meta.config.title || 'NodeBB'),
-				reset_link: reset_link,
-
-				subject: 'Password Reset Requested - ' + (meta.config.title || 'NodeBB') + '!',
-				template: 'reset',
-				uid: uid
+			translator.translate('[[email:password-reset-requested, ' + (meta.config.title || 'NodeBB') + ']]', meta.config.defaultLang, function(subject) {
+				emailer.send('reset', uid, {
+					site_title: (meta.config.title || 'NodeBB'),
+					reset_link: reset_link,
+					subject: subject,
+					template: 'reset',
+					uid: uid
+				});
+				callback();
 			});
-
-			callback();
 		});
 	};