// ==UserScript== // @name TransTweetX // @namespace http://tampermonkey.net/ // @version 1.1 // @description TransTweetX offers precise, emoji-friendly translations for Twitter/X feed. // @author Ian // @match https://twitter.com/* // @match https://x.com/* // @grant GM_xmlhttpRequest // @license MIT // @connect translate.googleapis.com // @require https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js // @downloadURL none // ==/UserScript== (function() { 'use strict'; const config = { tweetSelector: '[data-testid="tweetText"]', targetLang: 'zh-CN', languages: { 'zh-CN': '中文', 'en': 'English', 'ja': '日本語', 'ru': 'Русский', 'fr': 'Français', 'de': 'Deutsch' }, translationInterval: 200, maxRetry: 3, concurrentRequests: 2, // 同时进行的请求数 baseDelay: 100, // 基础间隔时间 translationStyle: { color: 'inherit', fontSize: '0.9em', borderLeft: '2px solid #1da1f2', padding: '0 10px', margin: '4px 0', whiteSpace: 'pre-wrap', opacity: '0.8' } }; let processingQueue = new Set(); let requestQueue = []; let isTranslating = false; // 初始化控制面板 function initControlPanel() { const panelHTML = `