"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HybridTranslateDeDe = void 0;
const HybridTranslate_1 = require("./HybridTranslate");
class HybridTranslateDeDe extends HybridTranslate_1.HybridTranslate {
async translate(text, sourceLang, targetLang) {
await this.resetDeepl();
const result = await this.translateViaDeepl(text, "en", "de-DE");
return result;
}
async prepare() {
await this.init();
this.browCore.headless = true;
this.deelPage = await this.browCore.browser.newPage();
this.redeeplPage = await this.browCore.browser.newPage();
await this.browCore.initPage(this.deelPage);
await this.browCore.initPage(this.redeeplPage);
await this.deelPage.goto("https://www.deepl.com/translator", { waitUntil: 'networkidle0' });
await this.redeeplPage.goto("https://www.deepl.com/translator", { waitUntil: 'networkidle0' });
}
async setTextInputValue(page, selector, value) {
await page.waitForSelector(selector);
await page.evaluate((data) => {
return document.querySelector(data.selector).value = data.value;
}, { selector, value });
}
async improveText(text, sourceLang, targetLang) {
const resultOfDeepl = await this.translateViaDeeplByPage(text, this.deelPage);
const result = await this.translateViaDeeplByPage(resultOfDeepl, this.redeeplPage);
return result;
}
async translateViaGoogle(text, sourceLang, targetLang) {
const textArea = await this.transGooglePage.$(".er8xn");
// await textArea?.type(text);
await this.setTextInputValue(this.transGooglePage, ".er8xn", text);
await (textArea === null || textArea === void 0 ? void 0 : textArea.type(" "));
await this.transGooglePage.waitForTimeout(1000);
let value = await this.transGooglePage.evaluate(() => {
const elements = document.querySelectorAll(".VIiyi span > span");
value = "";
elements.forEach(el => {
value += el.textContent;
});
return value;
});
return value;
}
}
exports.HybridTranslateDeDe = HybridTranslateDeDe;