解析服务器电子邮件模板多种语言

Posted

技术标签:

【中文标题】解析服务器电子邮件模板多种语言【英文标题】:Parse Server Email Template Multiple Languages 【发布时间】:2020-03-21 17:12:58 【问题描述】:

我正在为一个以不同语言提供的应用程序使用Parse Server。为了发送验证和密码重置电子邮件,我使用parse-server-mailgun 电子邮件适配器。这很好用,但不支持不同语言的电子邮件模板。因此,我目前在同一封电子邮件中包含不同语言的多个文本。

由于这看起来不太专业,我正在寻找一种本地化电子邮件的解决方案。

我考虑过构建自己的电子邮件适配器,但仍然存在服务器生成的链接重定向到必须本地化的网页的问题。

有没有人知道什么是让它工作的最佳方法? 任何帮助,将不胜感激。

【问题讨论】:

【参考方案1】:

我通过修改电子邮件适配器来检查我在注册时设置的用户对象上的“区域设置”属性来解决这个问题。然后,适配器将根据用户区域设置提供所需的模板。在我的情况下,如果语言环境以“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
   );

我还附加了一个脚本到公共 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>

我希望这个答案可以帮助遇到同样问题的人。

【讨论】:

以上是关于解析服务器电子邮件模板多种语言的主要内容,如果未能解决你的问题,请参考以下文章

Magento“忘记密码”电子邮件以错误的语言发送

Play Framework - 不同语言的 TemplateLoader

如何解析 Thymeleaf 模板以通过电子邮件发送?

播放框架 1.x 上的电子邮件模板国际化/本地化

如何让 Mandrill 解析模板中的 Handlebars 标签?

DNS正向域名解析,别名域名解析,泛域名域名解析,邮件域名解析和web服务网站搭建