HTMLService를 사용하여 HTML 템플릿을 만들고 템플릿 콘텐츠를 번역 한 다음 변수를 템플릿에 게시 한 다음 콘텐츠가 포함 된 이메일을 보내려합니다.HTML 템플릿 만들기> 번역> 변수를 템플릿에 게시하기 (Google Apps Script)
변수가 템플릿이 번역 된 후에 게시되는 것이 중요합니다 (변수는 사용자가 제공 한 내용이므로 번역 할 필요가 없습니다).
템플릿을 번역 한 후에 변수를 추가하는 데 어려움을 겪고 있습니다.
HTML 템플릿 (test.html를)
<table><tr><td>
Text (in english) which needs to be translated.<br><br>
<?=variable?>
</td></tr></table>
가스 코드가 완전히 뷰를 건물에서 비즈니스 로직 계층 (텍스트 + 번역)을 분리하는 것이 좋습니다
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
})
감사합니다. Anton. 콘텐츠를 개별적으로 번역하는 대신 전체 HTML 템플릿을 먼저 번역하면 더 쉬운 방법이되기를 바랍니다. 그러나 이것은 다른 프로젝트를 설정하고 여전히 작동하는 방식 인 것이 좋습니다. – Johnny
나는 그것이 더 쉬울 것이라고 생각하지 않는다. 예를 들어 변수가 HtmlTemplate 유형이 아닌 String 유형이므로 JavaScript에서이 번역 된 행인 message.variable = "service"가 작동하지 않습니다. HtmlService.getRawContent()의 반환 유형은 '문자열'입니다. 템플릿에 대해이 메소드를 실행하면 더 이상 스크립트 릿의 변수를 설정할 수 없습니다. ?> –
템플릿을 번역하려는 이유는 이미 구현했기 때문입니다. 콘텐츠가 많은 템플릿을 사용하므로 모든 콘텐츠를 개별 변수로 추출한 다음 변수를 변환하는 대신 나중에 템플릿을 번역 한 다음 나중에 사용자 별 변수를 추가하는 것이 더 쉬울 것이라고 생각했습니다. 그게 말이 되니? 그럼에도 불구하고 템플릿을 컨테이너/변수로 변환하여 번역해야하는 변수 만 번역 할 수 있습니다. Anton에게 도움을 주셔서 대단히 감사합니다. – Johnny