您需要先安装一个扩展,例如 篡改猴、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);