Может кто-нибудь объяснить мне, как интернационализировать шаблоны электронной почты, отправленные с использованием библиотеки nodemailer на Node.js?
Мне нужно отправлять электронные письма, которые содержат много html-кода, поэтому я установил плагин « nodemailer-express-handlebars », как предложено в документации по nodemailer (https://nodemailer.com/plugins/),, но у меня нет ' ничего не нашел в документации по интернационализации (https://github.com/yads/nodemailer-express-handlebars).
Я пытался установить плагин i18n (https://www.npmjs.com/package/i18n), но у меня нет идеи, как интегрировать его с «nodemailer-express-handlebars». Вот мой код:
data.js
function sendEmail(){
var hbs = require('nodemailer-express-handlebars');
var exphbs = require('express-handlebars');
/*--------------------- e-mail configuration ---------------------*/
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
host: 'xxxxxxxxxx',
port: 465,
secure: true, // true for 465, false for other ports
auth: {
type: 'login',
user: 'xxxxxxxxxx', // generated ethereal user
pass: 'xxxxxxxxxx' // generated ethereal password
},
tls: {
rejectUnauthorized: false
}
});
var options = {
viewEngine: exphbs,
viewPath: './storage',
extName: '.html'
};
//attach the plugin to the nodemailer transporter
transporter.use('compile', hbs(options));
var senderAddr = '"Test sender" <no-reply@test.it>';
var mailOptions = {
from: senderAddr, // sender address
to: 'test@domain.com', // list of receivers
subject: 'Hello', // Subject line
template: 'test1',
context: {
name: 'Paul'
}
};
/*--------------------- end e-mail configuration ---------------------*/
// send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
// Preview only available when sending through an Ethereal account
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
});
}
test1.html
<h1>Welcome {{name}}! Here are your credentials:</h1>
<ul>
<li>username: xxxxxxxxxx</li>
<li>password: xxxxxxxxxx</li>
</ul>
<p>Thank you for registering.</p>
И это файл локализации, который я хочу получить (i18n):
it.json
{
"Welcome {{name}}! Here are your credentials:" : "Benvenuto {{name}}! Ecco le tue credenziali:",
"Thank you for registering.": "Grazie per esserti registrato."
}