您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Translate selected WhatsApp messages
当前为
// ==UserScript== // @name WhatsApp Translator // @namespace http://tampermonkey.net/ // @version 1.2 // @description Translate selected WhatsApp messages // @author HeT // @match https://web.whatsapp.com/* // @grant GM_xmlhttpRequest // @connect translator-api-lovat.vercel.app // @license MIT // ==/UserScript== (function() { 'use strict'; const serverUrl = 'https://translator-api-lovat.vercel.app/api/translate'; document.body.addEventListener('click', function (e) { const bubble = e.target.closest('.message-in, .message-out'); if (!bubble) return; const messageTextElement = bubble.querySelector('span.selectable-text span'); if (!messageTextElement) return; const originalText = messageTextElement.innerText.trim(); if (!originalText) return; translate(originalText, (translated) => { if (translated) { messageTextElement.innerText = translated; } }); }); function translate(text, callback) { GM_xmlhttpRequest({ method: 'POST', url: serverUrl, headers: { 'Content-Type': 'application/json' }, data: JSON.stringify({ q: text, to: 'zh-CHS' }), onload: function(response) { try { const data = JSON.parse(response.responseText); if (data.translation && data.translation.length) { callback(data.translation[0]); } else { console.error("翻译API返回异常", data); callback(null); } } catch (e) { console.error("解析返回数据失败", e, response.responseText); callback(null); } }, onerror: function(err) { console.error("请求失败", err); callback(null); } }); } // ============================== // 🔥 预热 API,避免第一次延迟 // ============================== setTimeout(() => { translate("ping", () => { }); }, 2000); })();