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
})
ありがとうございました。私は、コンテンツを個別に翻訳するのではなく、HTMLテンプレート全体を最初に翻訳する方が簡単になることを望んでいました。しかし、これは私が別のプロジェクトを立ち上げて、まだ動作させている方法です。 – Johnny
私はそれがより簡単だとは思わない。たとえば、この変数は、JavaScriptではHtmlTemplate型ではなく、String型であるため、 "translatedmessage.variable =" service "は機能しません。 HtmlService.getRawContent()の戻り値の型は 'String'です。テンプレートに対してこのメソッドを実行すると、スクリプトレットの変数を設定することができなくなります ?> –
テンプレートを翻訳した理由は、テンプレートは大量のコンテンツを持つので、個々の変数としてすべてのコンテンツを取り出してから変数を翻訳するのではなく、テンプレートを翻訳して後でユーザー固有の変数を追加する方が簡単だと思いました。それは意味がありますか?それにもかかわらず、テンプレートをコンテナ/変数に変換したので、必要な変数だけを翻訳することができます。あなたのお手伝いをしてくれてありがとう。 – Johnny