Contents ...
udn網路城邦
低調使用!免費的Google Translate API
2023/08/13 08:07
瀏覽1,936
迴響0
推薦0
引用0


目前雖然 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?feed_id=462&_unique_id=64d99a6af1e60&utm_source=&utm_medium=ibook&utm_campaign=booooker

限會員,要發表迴響,請先登入