您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Google Translate API Library for UserScripts
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/521561/1508083/Google%20Translate%20API%20Library.js
// ==UserScript== // @name Google Translate API Library // @namespace http://tampermonkey.net/ // @version 2024.12.23.1 // @description Google Translate API Library for UserScripts // @author Yuusei // @grant GM_xmlhttpRequest // ==/UserScript== // Đóng gói trong module để các script khác có thể require const GoogleTranslateAPI = (function () { 'use strict'; const languages = { auto: 'Automatic', af: 'Afrikaans', sq: 'Albanian', am: 'Amharic', ar: 'Arabic', hy: 'Armenian', az: 'Azerbaijani', eu: 'Basque', be: 'Belarusian', bn: 'Bengali', bs: 'Bosnian', bg: 'Bulgarian', ca: 'Catalan', ceb: 'Cebuano', ny: 'Chichewa', 'zh-cn': 'Chinese Simplified', 'zh-tw': 'Chinese Traditional', co: 'Corsican', hr: 'Croatian', cs: 'Czech', da: 'Danish', nl: 'Dutch', en: 'English', eo: 'Esperanto', et: 'Estonian', tl: 'Filipino', fi: 'Finnish', fr: 'French', fy: 'Frisian', gl: 'Galician', ka: 'Georgian', de: 'German', el: 'Greek', gu: 'Gujarati', ht: 'Haitian Creole', ha: 'Hausa', haw: 'Hawaiian', iw: 'Hebrew', hi: 'Hindi', hmn: 'Hmong', hu: 'Hungarian', is: 'Icelandic', ig: 'Igbo', id: 'Indonesian', ga: 'Irish', it: 'Italian', ja: 'Japanese', jw: 'Javanese', kn: 'Kannada', kk: 'Kazakh', km: 'Khmer', ko: 'Korean', ku: 'Kurdish (Kurmanji)', ky: 'Kyrgyz', lo: 'Lao', la: 'Latin', lv: 'Latvian', lt: 'Lithuanian', lb: 'Luxembourgish', mk: 'Macedonian', mg: 'Malagasy', ms: 'Malay', ml: 'Malayalam', mt: 'Maltese', mi: 'Maori', mr: 'Marathi', mn: 'Mongolian', my: 'Myanmar (Burmese)', ne: 'Nepali', no: 'Norwegian', ps: 'Pashto', fa: 'Persian', pl: 'Polish', pt: 'Portuguese', pa: 'Punjabi', ro: 'Romanian', ru: 'Russian', sm: 'Samoan', gd: 'Scots Gaelic', sr: 'Serbian', st: 'Sesotho', sn: 'Shona', sd: 'Sindhi', si: 'Sinhala', sk: 'Slovak', sl: 'Slovenian', so: 'Somali', es: 'Spanish', su: 'Sundanese', sw: 'Swahili', sv: 'Swedish', tg: 'Tajik', ta: 'Tamil', te: 'Telugu', th: 'Thai', tr: 'Turkish', uk: 'Ukrainian', ur: 'Urdu', uz: 'Uzbek', vi: 'Vietnamese', cy: 'Welsh', xh: 'Xhosa', yi: 'Yiddish', yo: 'Yoruba', zu: 'Zulu', }; function getISOCode(language) { if (!language) return false; language = language.toLowerCase(); if (language in languages) return language; let keys = Object.keys(languages).filter(key => { if (typeof languages[key] !== 'string') return false; return languages[key].toLowerCase() === language; }); return keys[0] || false; } function isSupported(language) { return Boolean(getISOCode(language)); } async function translate(text, options = {}) { if (!text) throw new Error('Text không được để trống'); options.from = options.from || 'auto'; options.to = options.to || 'en'; let baseUrl = 'https://translate.googleapis.com/translate_a/single'; let data = { client: 'gtx', sl: getISOCode(options.from), tl: getISOCode(options.to), dt: 't', q: text, }; let url = `${baseUrl}?` + new URLSearchParams(data).toString(); return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'GET', url: url, headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', Accept: '*/*', }, onload: function (response) { try { if (response.status !== 200) { throw new Error(`HTTP Error: ${response.status}`); } const body = JSON.parse(response.responseText); if (!body || !Array.isArray(body) || !body[0]) { throw new Error('Invalid response structure'); } let result = { text: '', from: { language: { didYouMean: false, iso: body[2] || options.from, }, text: { autoCorrected: false, value: '', didYouMean: false, }, }, raw: body, }; result.text = body[0] .filter(chunk => chunk && chunk[0]) .map(chunk => decodeURIComponent(chunk[0].trim())) .join(' ') .trim(); resolve(result); } catch (error) { reject(new Error('Lỗi xử lý response: ' + error.message)); } }, onerror: function (error) { reject(new Error('Lỗi kết nối: ' + error)); }, }); }); } async function translateWithRetry(text, options = {}, maxRetries = 3) { let lastError; for (let i = 0; i < maxRetries; i++) { try { return await translate(text, options); } catch (error) { lastError = error; console.log(`Lần thử ${i + 1} thất bại:`, error); if (i < maxRetries - 1) { await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1))); } } } throw lastError; } // Export các hàm và biến cần thiết return { translate, translateWithRetry, languages, getISOCode, isSupported, }; })(); // Export cho môi trường module if (typeof module !== 'undefined' && module.exports) { module.exports = GoogleTranslateAPI; }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址