您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Translates http://chaosmemo.net/bunnyblack/
// ==UserScript== // @name Bunny Black Anti-Ching-Chong // @namespace http://userscripts.org/users/33432 // @include http://chaosmemo.net/bunnyblack/* // @version 1 // @grant none // @description Translates http://chaosmemo.net/bunnyblack/ // ==/UserScript== var translations={ // General 嵐の塔: "Tower of Storms", 禍根の地下迷宮: "Den of Malevolence", 銅魔の穴: "Cave of Bueroza", 魔窟園: "Garden Lair", "[[D]]階": "[[D]]F", }; function defined(v){ return v!=undefined; } function translate(text){ var numbers=[]; var no; if(!defined(text) || !text.match) return undefined; text=text.replace(/^\s*/,"").replace(/\s*$/,""); if(text=="") return undefined; while(defined(no=text.match(/\d+/))) numbers.push(no[0]),text=text.replace(/\d+/,"[[D]]"); var translation=translations[text]; if(defined(translation)){ while(numbers.length) translation=translation.replace(/\[\[D\]\]/,numbers.shift()); } return translation; } function translateTree(a){ var items=document.evaluate("descendant::*",a,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); for(var i=0;i<items.snapshotLength;i++){ var e=items.snapshotItem(i); for(var j=0;j<e.childNodes.length;j++){ var elem=e.childNodes[j]; if(elem.nodeType==3){ var text=translate(elem.wholeText); if(defined(text)) elem.nodeValue=text; } else{ var text=translate(elem.value); if(defined(text)) elem.value=text; } } } } document.body.addEventListener("DOMNodeInserted",function(a){translateTree(a.relatedNode);},false); translateTree(document);