我希望在发送包含内容的电子邮件之前,使用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
})
答案 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>