GAS

GASのLanguageAppでスプシの内容を一括翻訳する

GASのLanguageAppを使う機会があった。

簡単な翻訳くらいしかできないし、今後もあまり使うこともないと思うけど、
初めて使ったので基本的な使い方をメモ。

LanguageAppについて

基本的な使い方

LanguageApp に用意されている唯一のメソッドが translate(text, sourceLanguage, targetLanguage[, advancedArgs]) 。言語名は Google Translate で指定されている略語 の文字列で指定。翻訳元言語に空文字列を指定すると、自動判別が効く。

const txt = LanguageApp.translate("これは日本語です。", "ja", "en");

advanceArgsについて

入力データがプレーンテキスト (txt) か HTML かを選択できるだけで、デフォルトでは txtが設定されている。HTML 指定をするとタグを省いたテキスト部分だけ翻訳され、タグは可能な範囲で対応する箇所に残る。

const html = "これは<strong>日本語</strong>です。";
const txt = LanguageApp.translate(html,"ja", "en", {contentType: 'html'});

今回作ったコード

スプシのA列の英語を日本語に翻訳して、B列に吐き出すというだけのシンプルな処理

とりあえずデフォルトで英語から日本語への設定をしているが、
他の言語でも使える(対応している言語→言語サポート

/**
 * シートを一括で翻訳する
 * @param {string} source - 変換元の言語
 * @param {string} target - 変換後の言語
 */
function translateSheet(source="en",target="ja") {
  var data = activeSpredSheet.getSheetByName("シート名").getDataRange().getValues();
  var sheet = activeSpredSheet.getSheetByName("シート名");
  var result = [];
  for(var i of data){
    var translated_text = LanguageApp.translate(i[0], source, target);
    result.push([i[0],translated_text]);
  }
  sheet.getRange(1, 1, result.length, result[0].length).setValues(result);
}

公式ドキュメント

ABOUT ME
ytakeuchi
都内在住のフロントエンドエンジニア。2016年からフリーランスとして活動中。座右の銘は「昨日よりも楽に」。好きな言葉は「効率化」。こんな性格なのでプライベートではGoogle Apps Scriptばかり触っています。