您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Yagi Sim 自动翻译
// ==UserScript== // @name Yagi Sim Auto Translater // @version 2022.11.07 // @description Yagi Sim 自动翻译 // @author 幸运的咸鱼 // @match *://yagi7mazu.webcrow.jp/compas-deck/* // @match *://yagitools.html.xdomain.jp/compas-deck/* // @namespace https://greasyfork.org/users/757656 // @license MIT // ==/UserScript== //Auto translator for //やぎシミュ【戦闘摂理解析システム #コンパス マルチシミュレーター】 //Yagi Sim【战斗天赋解析系统 #COMPASS 多功能模拟器】 var replaceArry = [ //长句翻译 [/通常攻撃の射程が長い順/gi,'按正常射程排行'], [/通常の移動速度が早い順/gi,'按正常移动速度排序'], [/最大拡張ポータルでの蓄積時間/gi,'在最大扩张的据点上的积攒时间'], [/が一覧で表示されます/gi,'会显示在列表中'], [/記録しといたわ!/gi,'记录下来了!'], [/カードを使うと0.5秒全てのカードが使えなくなる/gi,'当使用一张卡后,所有的卡都会在0.5秒内无法使用'], [/一度使ったカードは他のカードを使わないと使えなくなる/gi,'一旦你使用了一张卡,在你使用另一张卡之前,你不能再使用它'], [/全カードは3秒で効果が切れる/gi,'所有的卡都会在3秒内失效'], [/やぎシャドウは使っても何も起こらない/gi,'使用山羊鲶的话,什么事都不会发生'], [/クランク/gi,'Crank'], //这里是英雄,按网页顺序排列 [/十文字アタリ/gi,'十文字 雅达利'], [/ジャスティス ハンコック/gi,'正义 汉考克'], [/リリカ/gi,'莉莉卡'], [/双挽乃保/gi,'双挽乃保'], [/桜華忠臣/gi,'樱华忠臣'], [/ジャンヌ ダルク/gi,'圣女贞德'], [/マルコス/gi,'马尔克斯'], [/ルチアーノ/gi,'卢西安诺'], [/Voidoll/gi,'Voidoll'], [/ボイドール/gi,'Voidoll'], [/深川まとい/gi,'深川缠'], [/ソル=バッドガイ/gi,'索尔=巴得凯'], [/ディズィー/gi,'蒂姬'], [/グスタフ ハイドリヒ/gi,'古斯塔夫 海德里希'], [/ニコラ テスラ/gi,'尼古拉 特斯拉'], [/初音ミク/gi,'初音未来'], [/ミク/gi,'初音未来'], [/ヴィオレッタ ノワール/gi,'薇欧莉特 诺瓦露'], [/コクリコット ブランシュ/gi,'可可莉柯特 布兰琪'], [/リュウ/gi,'隆'], [/春麗/gi,'春丽'], [/マリア=S=レオンブルク/gi,'玛丽亚=S=莱昂布尔'], [/アダム=ユーリエフ/gi,'亚当=尤里耶夫'], [/サーティーン/gi,'13 Thirteen'], [/かけだし勇者/gi,'新手勇者'], [/エミリア/gi,'爱蜜莉雅'], [/レム/gi,'蕾姆'], [/カイ=キスク/gi,'Ky Kiske'], [/メグメグ/gi,'梅古梅古'], [/イスタカ/gi,'伊斯塔卡'], [/ザック&レイチェル/gi,'扎克&瑞吉尔'], [/輝龍院きらら/gi,'辉龙院 绮罗'], [/モノクマ/gi,'黑白熊'], [/ポロロッチョ/gi,'维纳斯 波罗罗乔'], [/アクア/gi,'阿库娅'], [/めぐみん/gi,'惠惠'], [/ソーン=ユーリエフ/gi,'索恩=尤里耶夫'], [/リヴァイ/gi,'利威尔'], [/デビルミント鬼龍 デルミン/gi,'薄荷恶魔鬼龙 黛露敏'], [/トマス/gi,'托马斯'], [/猫宮ひなた/gi,'猫宫日向'], [/岡部 倫太郎/gi,'冈部伦太郎'], [/零夜/gi,'零夜'], [/セイバーオルタ/gi,'Saber Alter'], [/ギルガメッシュ/gi,'吉尔伽美什'], [/ルルカ/gi,'露露卡'], [/ピエール77世/gi,'皮埃尔77世'], [/佐藤四郎兵衛忠信/gi,'左藤四郎兵卫忠信'], [/アイズ・ヴァレンシュタイン/gi,'艾丝・华伦斯坦'], [/狐ヶ咲 甘色/gi,'狐咲甘色'], [/ノクティス/gi,'诺克提斯'], [/ニーズヘッグ/gi,'HM-WA100'], [/中島 敦/gi,'中岛敦'], [/芥川 龍之介/gi,'芥川龙之介'], [/ゲームバズーカガール/gi,'GBG'], [/ライザリン・シュタウト/gi,'莱莎琳·斯托特'], [/アリス/gi,'爱丽丝'], [/ジョーカー/gi,'Joker'], [/イグニス=ウィル=ウィスプ/gi,'伊格尼丝=威尔=威斯普'], [/アインズ・ウール・ゴウン/gi,'安兹·乌尔·恭'], [/キリト/gi,'桐人'], [/アスナ/gi,'亚斯娜'], [/Bugdoll/gi,'Bugdoll'], [/ステリア・ララ・シルワ/gi,'丝黛莉娅・拉拉・席尔瓦'], [/ラム/gi,'拉姆'], [/2B/gi,'2B'], [/ラヴィ・シュシュマルシュ/gi,'拉薇・修修玛尔休'], [/リムル=テンペスト/gi,'利姆鲁=特恩佩斯特'], //HM-WA100 -> 尼德霍格 //加载页面 [/データ整形中/gi,'数据生成中'], //筛选 [/ソート/gi,'排序'], [/リセット/gi,'重置'], [/カード/gi,'卡牌'], [/ランク/gi,'Rank'], [/コラボ/gi,'联动'], [/文豪ストレイドッグス/gi,'文豪野犬'], [/ファイナルファンタジー/gi,'最终幻想'], [/ダンまち/gi,'地错'], [/超歌舞伎×千本桜/gi,'超歌舞伎×千本樱'], [/進撃の巨人/gi,'进击的巨人'], [/この素晴らしい世界に祝福を/gi,'为美好的世界献上祝福'], [/ダンガンロンパ/gi,'弹丸论破'], [/殺戮の天使/gi,'杀戮天使'], [/鏡音リン・レン/gi,'镜音铃・连'], [/ギルティギア/gi,'罪恶装备'], [/Re:ゼロから始める異世界生活/gi,'Re:从零开始的异世界生活'], [/ストリートファイター/gi,'街头霸王'], [/ハッカドール/gi,'骇客娃娃'], [/ライザのアトリエ/gi,'莱莎的炼金工房'], [/ペルソナ/gi,'女神异闻录'], [/オーバーロード/gi,'Overlord'], [/ソードアートオンライン/gi,'刀剑神域'], //角色数据 [/キャラクター/gi,'角色'], [/キャラ/gi,'角色'], [/データ/gi,'数据'], [/タメ/gi,'蓄力'], [/ヒーロースキル/gi,'必杀技'], [/ヒーローアクション/gi,'蓄力技'], [/アビリティ/gi,'被动技'], [/マス/gi,'格'], [/ロール/gi,'英雄'], [/ランキング/gi,'排行'], [/デッキ/gi,'卡组'], [/デッキ/gi,'卡组'], [/ノックバック/gi,'击退'], [/ダッシュ/gi,'冲刺'], [/アタック/gi,'攻击'], [/プッシュ/gi,'推动'], [/ブラスト/gi,'爆炸'], [/放物線/gi,'抛物线'], [/リスポーン/gi,'复活'], [/タンク/gi,'盾职'], [/ダメージ/gi,'伤害'], [/ブレイク時/gi,'破盾时'], [/ガード/gi,'护盾'], [/ブレイク/gi,'破坏'], [/バフ/gi,'Buff'], [/キャンセル/gi,'取消'], [/ms単位/gi,'单位:毫秒'], [/クールタイム/gi,'冷却时间'], [/サイレント/gi,'沉默'], [/スタン/gi,'眩晕'], [/フラッシュ/gi,'闪光'], [/防御ダウン/gi,'防御降低'], [/スーパー/gi,'超级'], //卡牌详情 [/プッシュ/gi,'推动'], [/タイプ/gi,'类型'], [/ノックバック/gi,'击退'], [/ダウン/gi,'击倒'], [/カット/gi,'减少'], [/ランチ/gi,'发射'], [/吹き飛ばし/gi,'击飞'], [/打ち上げ/gi,'发射'], [/ポータル/gi,'据点'], [/エリア/gi,'领域'], [/ライフ/gi,'生命'], //扭蛋模拟器 [/ガチャシミュレーター/gi,'扭蛋模拟器'], [/デイリー/gi,'每日'], [/ガチャ/gi,'扭蛋'], [/カスタムピックアップ/gi,'Custom pickup'], [/ボーカロイド/gi,'Vocaloid'], [/バナー/gi,'banner'], [/あくまで予測値による/gi,'基于估计值'], [/だからね/gi,'因此捏'], [/リスト/gi,'列表'], //反应速度测试? [/カノーネ/gi,'重炮'], [/アウト/gi,'出局'], [/ランダム/gi,'随机的'], [/チェック/gi,'测试'], [/がんばれ!/gi,'加油!'], [/タイム/gi,'时间'], [/スコア/gi,'得分'], //作战简报部分,btw因为猜拳测试全部都是长句所以放在开头了 [/ブリーフィング/gi,'作战简报'], [/マップ/gi,'地图'], [/でら/gi,'Dera'], [/ストリート/gi,'街道'], [/けっこい/gi,'绮丽'], [/スターパーク/gi,'星公园'], [/東西たかさん広場/gi,'东西高塔广场'], [/グレートウォール/gi,'长城'], [/立体交差のある風景/gi,'魔幻森林'], [/ライブステージ/gi,'演唱会'], [/ケルパーズ/gi,'凯尔帕斯'], [/ちゅら島/gi,'美丽岛'], [/リゾート/gi,'度假村'], [/つっぺる工事現場/gi,'危险的施工现场'], [/ドーン/gi,'黎明'], [/おいでやす鳥居通り/gi,'欢迎来到鸟居大道'], [/かけだせ!/gi,'开始吧!'], [/きてる/gi,'来到'], [/マジ/gi,'真正的'], [/モード切り替え/gi,'模式切换'], [/設定に戻る/gi,'返回设置'], [/アイコンモード/gi,'图标模式'], [/ベクトルモード/gi,'箭头模式'], //这块基本上没动,因为我根本没用过这玩意儿 [/カリキュレーター/gi,'计算器'], [/チームレベル/gi,'Team level'], [/サイド/gi,'side'], [/チーム/gi,'team'], [/アニメーション/gi,'动画'], //其他 [/チュートリアル/gi,'介绍'], [/オリジナル/gi,'原创'], [/ジェネレーター/gi,'生成器'], [/シミュ/gi,'模拟器'], //这俩简直是毒瘤,什么词都能插进去,所以放在最后面 [/リン/gi,'镜音铃'], [/レン/gi,'镜音连'], ]; var numTerms = replaceArry.length; //-- 5 times/second; Plenty fast. var transTimer = setInterval (translateTermsOnPage, 222); function translateTermsOnPage () { /*--- Replace text on the page without busting links or javascript functionality. */ var txtWalker = document.createTreeWalker ( document.body, NodeFilter.SHOW_TEXT, { acceptNode: function (node) { //-- Skip whitespace-only nodes if (node.nodeValue.trim() ) { if (node.tmWasProcessed) return NodeFilter.FILTER_SKIP; else return NodeFilter.FILTER_ACCEPT; } return NodeFilter.FILTER_SKIP; } }, false ); var txtNode = null; while (txtNode = txtWalker.nextNode () ) { txtNode.nodeValue = replaceAllTerms (txtNode.nodeValue); txtNode.tmWasProcessed = true; } // //--- Now replace user-visible attributes. // var placeholderNodes = document.querySelectorAll ("[placeholder]"); replaceManyAttributeTexts (placeholderNodes, "placeholder"); var titleNodes = document.querySelectorAll ("[title]"); replaceManyAttributeTexts (titleNodes, "title"); } function replaceAllTerms (oldTxt) { for (var J = 0; J < numTerms; J++) { oldTxt = oldTxt.replace (replaceArry[J][0], replaceArry[J][1]); } return oldTxt; } function replaceManyAttributeTexts (nodeList, attributeName) { for (var J = nodeList.length - 1; J >= 0; --J) { var node = nodeList[J]; var oldText = node.getAttribute (attributeName); if (oldText) { oldText = replaceAllTerms (oldText); node.setAttribute (attributeName, oldText); } else throw "attributeName does not match nodeList in replaceManyAttributeTexts"; } }