UNPKG

@awesome-fe/translate

Version:
37 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GoogleTranslationEngine = void 0; const translation_engine_1 = require("./translation-engine"); const sentence_formatter_1 = require("./sentence-formatter"); const request_1 = require("request"); function fetch(url, data) { return new Promise((resolve, reject) => { (0, request_1.post)(url, { form: data }, (error, response, body) => { if (error) { reject(error); } else { resolve(JSON.parse(body)); } }); }); } class GoogleTranslationEngine extends translation_engine_1.TranslationEngine { async batchTranslate(pairs, format) { for (let pair of pairs) { const text = sentence_formatter_1.SentenceFormatter.toHtml(pair[0], format); if (!text.trim()) { continue; } const response = await fetch(`https://translate.googleapis.com/translate_a/t?anno=3&client=gtx&format=html&v=1.0&sl=auto&tl=zh-CN&tc=6&sr=1&mode=1`, { q: text, }); const multiSentencesPattern = /<i>(.*?)<\/i>\s*<b>(.*?)<\/b>/g; const translation = (response?.[0]?.[0] ?? '').replace(/^<p>([\s\S]*)<\/p>$/, '$1'); pair[1] = sentence_formatter_1.SentenceFormatter.fromHtml(translation.replace(multiSentencesPattern, '$2'), format); } return pairs; } } exports.GoogleTranslationEngine = GoogleTranslationEngine; //# sourceMappingURL=google-engine.js.map