File size: 906 Bytes
bee21e8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
id: "traduzir-area",
title: "Traduzir área selecionada",
contexts: ["all"]
});
});
chrome.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === "traduzir-area") {
chrome.tabs.sendMessage(tab.id, { action: "capturar-area" });
}
});
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.action === "traduzir-texto") {
traduzirTexto(request.texto).then(sendResponse);
return true;
}
});
async function traduzirTexto(texto) {
try {
const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=zh-CN&tl=pt&dt=t&q=${encodeURIComponent(texto)}`;
const response = await fetch(url);
const data = await response.json();
return data[0].map(item => item[0]).join('');
} catch (error) {
return texto;
}
}
|