目前雖然 Google Cloud 有贈送 300 美元的初始額度,但這個額度的時效只有三個月。即使您沒有用完這 300 美元的初始額度,在三個月後也會失效。對於只需要使用 Google 翻譯服務的使用者來說,是否有辦法免費使用 Google Translate 翻譯 API 呢?答案是有的!
您可以直接調用 translate.googleapis.com 的 API,因為這個 API 是 Google Chrome 翻譯擴展內部使用的,並且不需要身份驗證。您也可以將這個腳本部署為 Web 應用程序,並使用源語言和目標語言以及文本查詢的參數,還可以指定任何 ISO 語言對或u將目標語言設置auto
,Google 翻譯 API 將自動檢測源文本的語言。
/* Written by Amit Agarwal */ /* web: ctrlq.org */ function doGet(e) { var sourceText = ''; if (e.parameter.q) { sourceText = e.parameter.q; } var sourceLang = 'auto'; if (e.parameter.source) { sourceLang = e.parameter.source; } var targetLang = 'zh-tw'; if (e.parameter.target) { targetLang = e.parameter.target; } /* Option 1 */ var translatedText = LanguageApp.translate(sourceText, sourceLang, targetLang); /* Option 2 */ var url = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=' + sourceLang + '&tl=' + targetLang + '&dt=t&q=' + encodeURI(sourceText); var result = JSON.parse(UrlFetchApp.fetch(url).getContentText()); translatedText = result[0][0][0]; var json = { sourceText: sourceText, translatedText: translatedText, }; // set JSONP callback var callback = 'callback'; if (e.parameter.callback) { callback = e.parameter.callback; } // return JSONP return ContentService.createTextOutput(callback + '(' + JSON.stringify(json) + ')').setMimeType( ContentService.MimeType.JAVASCRIPT ); }
這是一個使用 Google Apps Script 創建的 Google Translate 翻譯 API。以下是代碼的解釋:
- doGet(e) 函数是這個腳本的主要功能。它將 HTTP GET 請求作為一個參數 e,並返回翻譯結果。
- sourceText 變量是要翻譯的文本字符串。如果 URL 中包含參數 q,則使用該參數的值。否則,sourceText 變量將保持為空字符串。
- sourceLang 變量是源語言代碼。如果 URL 中包含參數 source,則使用該參數的值。否則,sourceLang 變量將保持為 auto,表示自動檢測源語言。
- targetLang 變量是目標語言代碼。如果 URL 中包含參數 target,則使用該參數的值。否則,targetLang 變量將保持為 ja,表示日語。
- LanguageApp.translate() 函數是 Google Apps Script 提供的翻譯功能。它接受三個參數:源文本、源語言代碼和目標語言代碼。這是使用這個函數進行翻譯的選擇之一。
- 使用 UrlFetchApp.fetch() 函数發送 HTTP GET 請求到 translate.googleapis.com API,該 API 是 Google Chrome 翻譯擴展內部使用的。這是使用這個 API 進行翻譯的選擇之一。
- JSON.parse() 函數將從 API 返回的 JSON 字符串解析為 JavaScript 對象。
- translatedText 變量是翻譯後的文本字符串。這是從 LanguageApp.translate() 函數或 UrlFetchApp.fetch() 函數返回的結果中獲取的。
- json 變量是一個包含源文本和翻譯後文本的 JavaScript 對象。
- callback 變量是 JSONP 回調函數的名稱。如果 URL 中包含參數 callback,則使用該參數的值。
- ContentService.createTextOutput() 函数創建一個包含 JSONP 響應的 ContentService 對象。
- setMimeType() 函数設置 ContentService 對象的 MIME 類型為 JavaScript。
- 函数返回 JSONP 響應,其中包含源文本和翻譯後文本的 JSON 對象。
猜你喜歡
轉載請保留原文連結:https://www.booooker.com/314.html
- 本站所有文章,如無特殊說明或標註,均為本站原創釋出。在未徵得本站同意時,禁止複製、盜用、採集、釋出本站內容。
- 本站資源僅供研究、學習交流之用,若使用商業用途,請購買正版授權,否則產生的一切後果將由下載使用者自行承擔。
- 如若本站內容侵犯了原著者的合法權益,可聯絡我們進行處理。 聯絡方式(#替換成@):info#booooker.com
評論(0)