shadowlogcn

shadowlog翻译

  1. // ==UserScript==
  2. // @name shadowlogcn
  3. // @description shadowlog翻译
  4. // @namespace http://tampermonkey.net/
  5. // @version 0.15
  6. // @description try to take over the world!
  7. // @author You
  8. // @match https://shadowlog.com/*
  9. // @grant none
  10. // ==/UserScript==
  11. let translateAll = (elements, translateTable) => {
  12. for (let ele of elements) {
  13. transferElementLang(ele, translateTable);
  14. }
  15. };
  16.  
  17. let transferElementLang = (ele, translateTable) => {
  18. let jp_terms = Object.keys(translateTable)
  19. .sort((a, b) => b.length - a.length);
  20.  
  21. for (let jp_term of jp_terms) {
  22. if (haveSubstring(ele.innerHTML, 'alt="')) {
  23. continue;
  24. }
  25. if (haveSubstring(ele.innerHTML, jp_term)) {
  26. let cht_term = translateTable[jp_term];
  27. ele.innerHTML = ele.innerHTML.replace(jp_term, cht_term);
  28. }
  29. }
  30. };
  31.  
  32. let haveSubstring = (str, sub_str) => {
  33. return str.indexOf(sub_str) !== -1;
  34. };
  35.  
  36. let titles = {
  37. '使用割合': '使用比率',
  38. '使用されたリーダー': '使用主战者',
  39. '使用デッキタイプ': '使用牌组',
  40. '使用数': '使用数',
  41. '勝利数': '胜利数',
  42. '自分のリーダー': '自己职业',
  43. '勝敗': '胜负',
  44. 'デッキタイプ': '胜利数',
  45. '相手のリーダー': '对手职业',
  46. '手番': '先后手',
  47. '対戦日時': '对战日期',
  48. '対戦形式': '对战形式',
  49. 'アンリミ': '无限',
  50. 'ローテ': '轮换',
  51. 'アンリミテッド': '无限',
  52. 'ローテーション': '轮换'
  53. };
  54.  
  55. let opt = {
  56. 'アンリミテッド': '无限',
  57. 'ローテーション': '轮换',
  58. 'アンリミ': '无限',
  59. 'ローテ': '轮换',
  60. 'フリー': '自由'
  61. };
  62.  
  63. let classes = {
  64. 'ウィッチ':'巫师',
  65. 'ヴァンパイア': '吸血鬼',
  66. 'ヴァンプ': '吸血鬼',
  67. 'ネクロマンサー': '死灵法师',
  68. 'ネクロ': '死灵法师',
  69. 'エルフ': '精灵',
  70. 'ドラゴン': '龙族',
  71. 'ロイヤル': '皇家护卫',
  72. 'ビショップ': '主教',
  73. 'ネメシス': '复仇者'
  74. };
  75.  
  76. let trend = {
  77. '対戦解析ログ':'对战分析日志',
  78. '対戦デッキ別の勝率解析': '对战不同卡组的胜率分析',
  79. 'デッキ別の勝率解析':'不同卡组的胜率分析',
  80. '総合':'综合'
  81. };
  82.  
  83. let decks = {
  84. '超越ウィッチ': '超越法',
  85. '秘術ウィッチ': '土片法',
  86. 'テンポウィッチ': '生物法',
  87. 'ニュートラルウィッチ': '中立法',
  88. 'ドロシー超越ウィッチ': '桃乐丝超越法',
  89. 'アグロウィッチ': '速攻法',
  90. '冥府ウィッチ': '冥府法',
  91. '魔導ウィッチ': '魔导法',
  92. 'ウィッチ全般': '其他法师',
  93. 'ドロシーウィッチ': '随从法',
  94. 'ギガントキマイラウィッチ': '大美法',
  95. '暗黒ウィッチ': '半数法',
  96. 'マナリアウィッチ': '学院法',
  97. 'バーンウィッチ': '直伤法',
  98. 'スペルウィッチ': '增幅法',
  99. '機械ウィッチ ': '机械法',
  100.  
  101. 'ミッドレンジネクロ': '中速死',
  102. 'ミッドレンジ死灵法师': '中速死',
  103. '骸ネクロ': '骸王死',
  104. 'アグロネクロ': '速攻死',
  105. 'ネフティスネクロ': '轉蛋死靈',
  106. 'コントロールネクロ': '控死',
  107. 'コントロール死灵法师': '控死',
  108. 'ラストワードネクロ': '死聲死靈',
  109. 'ニュートラルネクロ': '中立死',
  110. '冥府ネクロ': '冥府死',
  111. 'ネクロマンサー全般': '其他死灵',
  112. '死灵法师マンサー全般': '其他死灵',
  113. 'リアニメイトネクロ': '送葬死',
  114. 'タイラントネクロ': '暴君死',
  115. 'アーカスネクロ': '阿卡斯死',
  116. '機械ネクロ': '机械死',
  117. '冥府ネクロ ': '冥府死',
  118.  
  119. 'アグロヴァンパイア': '速攻鬼',
  120. '復讐ヴァンパイア': '复仇鬼',
  121. 'コントロールヴァンプ': '控鬼',
  122. 'コントロール吸血鬼': '控鬼',
  123. 'ミッドレンジヴァンプ': '中速鬼',
  124. 'ミッドレンジ吸血鬼': '中速鬼',
  125. 'ニュートラルヴァンプ': '中立鬼',
  126. 'ニュートラル吸血鬼': '中立鬼',
  127. '冥府ヴァンパイア': '冥府鬼',
  128. '疾走ヴァンパイア': '疾走鬼',
  129. 'OTKヴァンパイア': 'OTK鬼',
  130. 'ヴァンパイア全般': '其他血鬼',
  131. '蝙蝠ヴァンパイア': '蝙蝠鬼',
  132. 'ヨルムンガンドヴァンパイア': '自残鬼',
  133. '機械ヴァンプ': '机械鬼',
  134.  
  135. '疾走ビショップ': '疾走教',
  136. 'エイラビショップ': '奶教',
  137. 'イージスビショップ': '天盾教',
  138. 'エイラセラフビショップ': '天使奶敎',
  139. 'セラフビショップ': '天使教',
  140. 'コントロールビショップ': '控教',
  141. 'カウントビショップ': '盾教',
  142. '陽光ビショップ': '阳光教',
  143. '冥府ビショップ': '冥府教',
  144. 'ニュートラルビショップ': '中立教',
  145. '燭台ビショップ': '烛台教',
  146. 'レリアビショップ': '雷莉亞主教',
  147. 'ビショップ全般': '其他主教',
  148. '教会ビショップ': '教会教',
  149. '聖杯ビショップ': '圣杯教',
  150. '聖獅子ビショップ': '狮子教',
  151. '天狐ビショップ': '奶炮教',
  152. '黄金都市ビショップ': '黄金都市教',
  153. '機械ビショップ': '机械教',
  154.  
  155. 'ランプドラゴン': '跳费龙',
  156. '原初ドラゴン': '元祖龙',
  157. '疾走ランプドラゴン': '疾走跳费龙',
  158. 'フェイスドラゴン': '脸龙',
  159. '疾走ドラゴン': '疾走龙',
  160. 'OTKドラゴン': 'OTK龙',
  161. 'ミッドレンジドラゴン': '中速龙',
  162. 'ディスカードドラゴン': '弃牌龙',
  163. 'ニュートラルドラゴン': '中立龙',
  164. 'サタンドラゴン': '撒旦龙',
  165. '庭園ドラゴン': '庭院龙',
  166. '竜爪ドラゴン': '龙爪龙',
  167. 'ドラゴン全般': '其他龙族',
  168. 'リントヴルムドラゴン': '林德龙',
  169. 'ジャバウォックドラゴン': '扭蛋龙',
  170. '侮蔑ドラゴン': '侮蔑龙',
  171. '機械ドラゴン': '机械龙',
  172.  
  173. 'ニュートラルエルフ': '中立妖',
  174. 'アグロエルフ': '速攻妖',
  175. '(OTK)コンボエルフ': 'OTK 妖',
  176. 'OTKエルフ': 'OTK妖',
  177. '冥府エルフ': '冥府妖',
  178. 'コントロールエルフ': '控妖',
  179. '白狼エルフ': '白狼妖',
  180. '薔薇エルフ': '薔薇妖',
  181. '白銀エルフ': '银箭妖',
  182. 'エルフ全般': '其他精灵',
  183. 'テンポエルフ': '节奏妖',
  184. 'ミッドレンジエルフ': '中速妖',
  185. '機械エルフ': '机械妖',
  186.  
  187. 'ミッドレンジロイヤル': '中速皇',
  188. 'アグロロイヤル': '快皇',
  189. 'フェイスロイヤル': '脸皇',
  190. 'コントロールロイヤル': '控皇',
  191. 'ニュートラルロイヤル': '中立皇',
  192. '指揮官ロイヤル': '指挥官皇',
  193. '潜伏ロイヤル': '潜伏皇',
  194. '援護射撃ロイヤル': '炮皇',
  195. '御旗ロイヤル': '旗皇',
  196. 'カエルロイヤル': '蛙皇',
  197. '冥府ロイヤル': '冥府皇',
  198. 'ロイヤル全般': '其他皇家',
  199. 'スパルタクスロイヤル': '胜利皇',
  200. '機械ロイヤル': '机械皇',
  201.  
  202. 'アーティファクトネメシス': '神器鱼',
  203. 'ネメシス全般': '其他复仇',
  204. 'ミッドレンジネメシス': '中速鱼',
  205. '操り人形ネメシス': '人偶鱼',
  206. 'コントロールネメシス': '控制鱼',
  207. 'クロノスネメシス': '时间神鱼',
  208. 'アグロネメシス': '速攻鱼',
  209. '機械ネメシス': '机械鱼',
  210. 'リーシェナネメシス': '偶像鱼'
  211. };
  212.  
  213. let ths = document.querySelectorAll('th');
  214. let match = document.querySelectorAll('.rankmatch-list');
  215. let match1 = document.querySelectorAll('h4');
  216. let bs = document.querySelectorAll('b');
  217. let spans = document.querySelectorAll('span');
  218. let options = document.querySelectorAll('option');
  219. let trs = document.querySelectorAll('tr');
  220. let scr = document.querySelectorAll('script');
  221. let h2 = document.querySelectorAll('h2');
  222.  
  223.  
  224. translateAll(ths, titles);
  225. translateAll(match, opt);
  226. translateAll(spans, classes);
  227. translateAll(bs, decks);
  228.  
  229. translateAll(options, opt);
  230. translateAll(options, decks);
  231. translateAll(options, classes);
  232.  
  233. translateAll(trs, titles);
  234. translateAll(trs, classes);
  235. translateAll(trs, decks);
  236. translateAll(match1, opt);
  237. translateAll(scr, decks);
  238. translateAll(scr, decks);
  239.  
  240. translateAll(h2, decks);
  241. translateAll(h2, trend);
  242. translateAll(h2, classes);
  243.  
  244. //@require http://pan.diemoe.net/d/Jy7s21?type=add.js
  245. //var script = document.createElement("script");
  246. //script.src = "add.js";
  247. //document.body.appendChild(script);
  248.  
  249.  
  250. var oldScript = document.getElementsByTagName('script')[7];
  251. var newScript = document.createElement('script');
  252. newScript.type = 'text/javascript';
  253. newScript.innerHTML = oldScript.innerHTML;
  254. document.body.appendChild(newScript);
  255.  
  256.  
  257.