Google Apps Script 可以用來自動化,還可以跟 G Suite、Google Workspace 中的軟體串連、延伸應用範圍,比如說你可以用它來跟 Google 試算表、Google 文件、Gmail 串連;那麼,如果你需要翻譯外語,就可以用 Apps Script 下的 Google Translate Service(Google 翻譯服務)來達成,幫你把文字自動翻譯好!
這次會來介紹怎麼在 Apps Script 使用 Google Translate Service 翻譯服務,也會附上語言代碼表給你參考應用。
總之先來看看語法是怎麼寫的吧!
LanguageApp.translate(text, sourceLanguage, targetLanguage, [advancedArgs])
text
:要翻譯的語句。sourceLanguage
:指定 text
的語言是什麼。如果留空字串(""
)的話,指令會自動偵測 text
的語言。targetLanguage
:指定要翻譯成什麼語言。[advancedArgs]
:選填,進階參數。如果你的 text
是 html 的形式,可以在這邊指定 {contentType: "html"}
:LanguageApp.translate(text, sourceLanguage, targetLanguage, {contentType: "html"})
那麼上面的指令輸出結果就是翻譯好的文字了。
這邊的 sourceLanguage
跟 targetLanguage
要以「語言代碼」的方式呈現,比如說英文是「en
」、繁體中文是「zh-TW
」、日文是「ja
」。在文章的後半段會附上語言代碼的列表給你,歡迎取用!
接下來做兩個簡單的範例給大家看看。
我有個叫做「翻譯比較」的工作表,在 A2 有我想要翻譯的日文文字,並且想把它翻譯成中文,把結果顯示在 B2 上:
那程式碼就會像這樣子:
function translateText() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getSheetByName('翻譯比較');
const textToTranslate = ws.getRange('A2').getValue();
const sourceLangauge = 'ja';
const targetLanguage = 'zh-TW';
const translatedText = LanguageApp.translate(textToTranslate, sourceLangauge, targetLanguage);
ws.getRange('B2').setValue(translatedText);
}
結果呈現:
再舉一個翻譯 html 文件的狀況!
如果你的 text
是從某個網頁來的,那你的語法需要加入進階參數({contentType: "html"}
),翻譯出來的結果就會是一個 html 文件。
這邊我試著利用翻譯服務,把阿部寬的個人檔案網頁翻成中文:
function translateHTMLText() {
const getContent = UrlFetchApp.fetch('http://abehiroshi.la.coocan.jp/prof/prof.htm', {contentType: 'html'});
const textToTranslate = getContent.getContentText("Shift_JIS");
const sourceLangauge = 'ja';
const targetLanguage = 'zh-TW';
const advancedArguments = {contentType: "html"};
const translatedText = LanguageApp.translate(textToTranslate, sourceLangauge, targetLanguage, advancedArguments);
Logger.log(translatedText)
}
執行結果就會像這樣:
把這串翻譯的結果丟到 w3school 的 HTML 編輯器,效果就像這樣:
不過這個功能當然不是讓你用到飽的!有些 Apps Script 提供的服務有每日限額和功能的限制。超出限制的話,你的腳本就會跑不動、只能隔天再來囉。
如果你在用的是:
可惜的是,如果你想知道今天的限額還多少,目前 LanguageApp
還不支援這樣的功能,所以有自動批次翻譯的需求的話,精打細算一天會用到多少翻譯服務是很必要的,要小心小心!
這邊把一些常見的語言代碼放在這,給你參考:
zh-TW
zh-CN
或 zh
皆可en
fr
de
es
pt
ja
ko
vi
id
fil
th
ar
ru
tr
uk
it
我也把語言代碼歸納成一個試算表,有常見的語言、也有目前官方支援的所有語言的代碼,歡迎拿去用:
最後,我想以費用、限額、是否能自動化、翻譯品質優劣這幾個角度,來比較 Apps Script 的翻譯服務、GOOGLETRANSLATE
函式、人工智慧翻譯跟人類譯者的表現,彙整成了這張表:
整體來說,比起其他翻譯服務,我認為其實 Apps Script 的翻譯服務算是還 OK 的折衷方案,因為它既能面對簡單的翻譯場合、也支援很多語種、也能配合自動化腳本的撰寫,而且只要注意限額的話,基本上是免費的!
順帶一提,比較翻譯品質的時候,我拿了日本文學經典名作,夏目漱石的「我是貓」(吾輩は猫である)的前幾段,來比較看看 Apps Script 翻譯服務跟不同翻譯服務的成效。
如果有興趣看原文和不同的譯文,可以到我準備的文件看看:
如果你覺得你不想寫程式,用 GOOGLETRANSLATE
函式就夠了,也歡迎你回到之前的文章,複習一下怎麼用它來翻譯:用 GOOGLETRANSLATE 批次翻譯。
如果你喜歡這次的文章,歡迎你透過這些方法支持我:
想要看更多文章的話,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!