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);
}