您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a auto-translate messages for character messages in the chat for beta.character.ai
当前为
// ==UserScript== // @name Auto-Translate Messages for beta.character.ai // @namespace AutoTranslateMessagesForBetaCharacterAI // @description Adds a auto-translate messages for character messages in the chat for beta.character.ai // @version 3.0.0 // @author CriDos // @icon https://www.google.com/s2/favicons?sz=64&domain=beta.character.ai // @match https://beta.character.ai/chat?char=* // @grant GM_xmlhttpRequest // @run-at document-end // @require https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js // @license MIT // ==/UserScript== 'use strict'; console.log(`Auto-Translate Messages initializing...`); let debug = true; setInterval(addAutoTranslate, 500); async function addAutoTranslate() { var charMessages = document.getElementsByClassName("char-msg"); for (var i = 0; i < charMessages.length; i++) { const node = charMessages[i].querySelector(".markdown-wrapper"); if (node == null) { continue; } const parentNode = node.parentElement; if (parentNode.isAutoTranslate) { continue; } parentNode.isAutoTranslate = true; setInterval(async () => { await translateNode(node); }, 500); } } async function translateNode(node) { const translateClassName = "translate-markdown"; const parentNode = node.parentElement; const nodeContent = $(node).html(); if (node.storeContent == nodeContent) { return; } node.storeContent = nodeContent; var translateNode = parentNode.querySelector(`.${translateClassName}`); if (translateNode == null) { translateNode = node.cloneNode(true); translateNode.classList.add(translateClassName); parentNode.insertBefore(translateNode, parentNode.firstChild); } var translateContent = await translate(nodeContent, "auto", navigator.language, false, "html"); translateContent = translateContent.replace(/<\/div>$/, ''); $(translateNode).html(translateContent + `<p>.......... end_translate ..........</p></div>`); } async function translate(text, sLang, tLang, encode, format) { try { if (debug) { console.log(`preTranslate: ${text}`); } if (encode === true) { text = he.encode(text); } if (format == null) { format = "text"; } const result = await new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "POST", url: "https://translate.google.com/translate_a/single", data: `format=${format}&client=gtx&sl=${sLang}&tl=${tLang}&dt=t&q=${encodeURIComponent(text)}`, headers: { "Content-Type": "application/x-www-form-urlencoded", // "Authorization": `Bearer ${API_KEY}` }, onload: response => { const translatedText = JSON.parse(response.responseText)[0] .map(text => text[0]) .join(" "); resolve(translatedText); }, onerror: response => { reject(response.statusText); } }); }); if (debug) { console.log(`postTranslate: ${result}`); } return result; } catch (error) { console.error(error); } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址