Fixed device notification email language translation, #3513
Ylian Saint-Hilaire committed
Jan 23, 2022 at 00:34 UTC
0817690eef0c5790a39935afbc1d59154ed9d708
2 files changed
+11
-5
meshmail.js
+1
-1
@@ -679,7 +679,7 @@ module.exports.CreateMeshMail = function (parent, domain) {
679
if (domain == null) return;
680
681
// Send the email
682
- obj.sendDeviceNotifyMail(domain, user.name, user.email, connections, disconnections, 'us-en', null);
682
+ obj.sendDeviceNotifyMail(domain, user.name, user.email, connections, disconnections, user.llang, null);
683
684
// Clean up
685
delete obj.deviceNotifications[userid];
webserver.js
+10
-4
@@ -2777,7 +2777,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
2777
webstate: encodeURIComponent(webstate).replace(/'/g, '%27'),
2778
amtscanoptions: amtscanoptions,
2779
pluginHandler: (parent.pluginHandler == null) ? 'null' : parent.pluginHandler.prepExports()
2780
- }, dbGetFunc.req, domain));
2780
+ }, dbGetFunc.req, domain), user);
2781
}
2782
xdbGetFunc.req = req;
2783
xdbGetFunc.res = res;
@@ -7616,7 +7616,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
7616
}
7617
7618
// Render a page using the proper language
7619
- function render(req, res, filename, args) {
7619
+ function render(req, res, filename, args, user) {
7620
if (obj.renderPages != null) {
7621
// Get the list of acceptable languages in order
7622
var acceptLanguages = obj.getLanguageCodes(req);
@@ -7625,19 +7625,25 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
7625
var fileOptions = obj.renderPages[obj.path.basename(filename)];
7626
if (fileOptions != null) {
7627
for (var i in acceptLanguages) {
7628
- if ((acceptLanguages[i] == 'en') || (acceptLanguages[i].startsWith('en-'))) { args.lang = 'en'; break; } // English requested, break out.
7628
+ if ((acceptLanguages[i] == 'en') || (acceptLanguages[i].startsWith('en-'))) {
7629
+ // English requested
7630
+ args.lang = 'en';
7631
+ if (user && (user.llang != 'en')) { user.llang = 'en'; obj.db.SetUser(user); } // Set user 'last language' used if needed.
7632
+ break;
7633
+ }
7634
if (fileOptions[acceptLanguages[i]] != null) {
7635
// Found a match. If the file no longer exists, default to English.
7636
obj.fs.exists(fileOptions[acceptLanguages[i]] + '.handlebars', function (exists) {
7637
if (exists) { args.lang = acceptLanguages[i]; res.render(fileOptions[acceptLanguages[i]], args); } else { args.lang = 'en'; res.render(filename, args); }
7638
});
7639
+ if (user && (user.llang != acceptLanguages[i])) { user.llang = acceptLanguages[i]; obj.db.SetUser(user); } // Set user 'last language' used if needed.
7640
return;
7641
}
7642
}
7643
}
7644
}
7645
7640
- // No matches found, render the default english page.
7646
+ // No matches found, render the default English page.
7647
res.render(filename, args);
7648
}
7649