您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a translate buttons for character messages in the chat for beta.character.ai
当前为
// ==UserScript== // @name Translate Buttons for beta.character.ai // @namespace TranslateButtonsForBetaCharacterAI // @version 1.5 // @description Adds a translate buttons for character messages in the chat for beta.character.ai // @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 // @license MIT // ==/UserScript== function addButtons() { var elements = document.getElementsByClassName("msg char-msg"); for (var i = 0; i < elements.length; i++) { const charMsg = elements[i]; if (charMsg.querySelector(".translate-button") === null) { var btn = document.createElement("button"); btn.innerHTML = "Tr"; btn.classList.add("translate-button"); btn.style.cssText = "width: 30px; height: 30px;"; // Add event listener for click event on translate button btn.addEventListener("click", function() { const msgElements = charMsg.querySelectorAll('p, li'); for (var j = 0; j < msgElements.length; j++) { const msgElement = msgElements[j]; const text = msgElement.innerHTML; if (msgElement.originalText != null) { console.log("Return original message text: " + msgElement.originalText); msgElement.innerHTML = msgElement.originalText; msgElement.originalText = null; continue; } console.log("Message text: " + text); msgElement.originalText = text; // Use the user's language as the target language in the API request var url = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=" + navigator.language + "&dt=t&q=" + encodeURIComponent(text); GM_xmlhttpRequest({ method: "GET", url: url, onload: function(response) { const responseText = JSON.parse(response.responseText); let translation = ""; responseText[0].forEach((part) => { translation += part[0]; }); // Log the translation console.log("Translated text: " + translation); // Replace the original text with the translated text msgElement.innerHTML = translation; } }); } }); // Log the button being added console.log("Added translate button for element: " + charMsg); charMsg.insertBefore(btn, charMsg.firstChild); } } } // Check every second setInterval(addButtons, 1000);