创建HTML模板>翻译>将变量发布到模板(Google Apps脚本)

时间:2017-12-25 10:25:21

标签: google-apps-script

我希望在发送包含内容的电子邮件之前,使用HTMLService创建HTML模板,翻译模板内容,然后将变量发布到模板。

在翻译模板后发布变量很重要(变量将是用户提供的内容,因此不需要翻译)。

我很难在翻译后为模板添加变量。

HTML模板(test.html)

<table><tr><td>
 Text (in english) which needs to be translated.<br><br> 
 <?=variable?>
</td></tr></table>

GAS代码

var template = HtmlService.createTemplateFromFile('test').getRawContent();
var translatedmessage = LanguageApp.translate(template, 'en', 'es', {contentType: 'html'});
translatedmessage.variable = "service";

// I have a number of variables and do not want them translated.

MailApp.sendEmail({
  to: 'email address',
  subject: 'This subject',
  htmlBody: translatedmessage
})

1 个答案:

答案 0 :(得分:1)

最好将业务逻辑层(文本+转换)与构建视图(将文本推送到模板并添加变量)完全分开。在.gs代码中,将文本声明为全局变量或对象属性。

utf8

接下来,定义文本翻译功能:

var data = { text: “your text };

在模板中,添加容器以容纳translate函数和其他变量返回的文本,例如

function translate (text) {

  return LanguageApp.translate(text, sourceLang, targetLang);

  }

最后,从文件创建模板,设置变量并运行evaluate()方法转换为HtmlOutput。

<div><?!= translation ></div>
<div><?!= variable ></div>