低調使用!免費的Google Translate API - officework的部落格 - udn部落格
officework的部落格
作家:officework
文章分類
    Top
    低調使用!免費的Google Translate API
    2023/08/13 08:07:00
    瀏覽:3346
    迴響: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

    回應

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