解析服务器电子邮件模板多语言
Parse Server Email Template Multiple Languages
我正在使用 Parse Server for an app that is offered in different languages. For sending verification and password reset emails I am using the parse-server-mailgun 电子邮件适配器。这很好用,但不支持不同语言的电子邮件模板。因此,我目前在同一封电子邮件中包含不同语言的多个文本。
由于这看起来不太专业,我正在寻找一种本地化电子邮件的解决方案。
我考虑过构建自己的电子邮件适配器,但仍然存在服务器生成的 link 重定向到也必须本地化的网页的问题。
有谁知道实现此功能的最佳方法是什么?
任何帮助,将不胜感激。
我通过修改电子邮件适配器来检查我在注册时设置的用户对象上的 'locale' 属性 来解决这个问题。然后,适配器将根据用户区域设置提供所需的模板。在我的例子中,如果语言环境以 'de'.
开头,它将使用德语模板
sendVerificationEmail({ link, appName, user }) {
let locale = user.get('locale');
let templateName = 'verificationEmail';
if (locale && locale.startsWith('de')) {
templateName = 'verificationEmailDE';
}
return this._sendMail({
templateName: templateName,
link,
appName,
user
});
}
此外,我将脚本附加到 public html 文件,例如 choose-password.html
以根据浏览器语言翻译页面:
<script language='javascript' type='text/javascript'>
window.onload = function() {
var userLang = navigator.language || navigator.userLanguage;
if (userLang.startsWith('de')) {
document.getElementById('label').textContent = "Translated text";
}
}
</script>
我希望这个回答能帮助遇到同样问题的人。
我正在使用 Parse Server for an app that is offered in different languages. For sending verification and password reset emails I am using the parse-server-mailgun 电子邮件适配器。这很好用,但不支持不同语言的电子邮件模板。因此,我目前在同一封电子邮件中包含不同语言的多个文本。
由于这看起来不太专业,我正在寻找一种本地化电子邮件的解决方案。
我考虑过构建自己的电子邮件适配器,但仍然存在服务器生成的 link 重定向到也必须本地化的网页的问题。
有谁知道实现此功能的最佳方法是什么? 任何帮助,将不胜感激。
我通过修改电子邮件适配器来检查我在注册时设置的用户对象上的 'locale' 属性 来解决这个问题。然后,适配器将根据用户区域设置提供所需的模板。在我的例子中,如果语言环境以 'de'.
开头,它将使用德语模板sendVerificationEmail({ link, appName, user }) {
let locale = user.get('locale');
let templateName = 'verificationEmail';
if (locale && locale.startsWith('de')) {
templateName = 'verificationEmailDE';
}
return this._sendMail({
templateName: templateName,
link,
appName,
user
});
}
此外,我将脚本附加到 public html 文件,例如 choose-password.html
以根据浏览器语言翻译页面:
<script language='javascript' type='text/javascript'>
window.onload = function() {
var userLang = navigator.language || navigator.userLanguage;
if (userLang.startsWith('de')) {
document.getElementById('label').textContent = "Translated text";
}
}
</script>
我希望这个回答能帮助遇到同样问题的人。