diff --git a/torn-trans-zhcn.user.js b/torn-trans-zhcn.user.js index 4dcb174..bec2d2b 100644 --- a/torn-trans-zhcn.user.js +++ b/torn-trans-zhcn.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Torn翻译 // @namespace WOOH -// @version 0.1 +// @version 0.1.1104a // @description UI翻译 // @author Woohoo- // @match https://www.torn.com/* @@ -9,10 +9,9 @@ // ==/UserScript== -!(function () { +!(function () { 'use strict'; const $ = window.jQuery; - let invervalID; /** * 飞行 @@ -261,30 +260,30 @@ */ if ($(e).text().indexOf('sent') >= 0) { - const isWithMsg= $(e).text().indexOf('message') >= 0; - const msg=isWithMsg?$(e).text().split(' with the message: ')[1]:null; - const wordsList=e.firstChild.nodeValue.split(' '); + const isWithMsg = $(e).text().indexOf('message') >= 0; + const msg = isWithMsg ? $(e).text().split(' with the message: ')[1] : null; + const wordsList = e.firstChild.nodeValue.split(' '); console.log(wordsList); // 发送的数量 let number; - if(wordsList[3]==='some'||wordsList[3]==='a') // 收到一个可数的不可堆叠或不可数的东西 - number='1x'; - else if(wordsList[3][wordsList[3].length-1]==='x') // 收到可数的可堆叠东西 - number=wordsList[3]; + if (wordsList[3] === 'some' || wordsList[3] === 'a') // 收到一个可数的不可堆叠或不可数的东西 + number = '1x'; + else if (wordsList[3][wordsList[3].length - 1] === 'x') // 收到可数的可堆叠东西 + number = wordsList[3]; else - number=null; - const item=number===null?wordsList.slice(3,wordsList.length-2):wordsList.slice(4,wordsList.length-2); + number = null; + const item = number === null ? wordsList.slice(3, wordsList.length - 2) : wordsList.slice(4, wordsList.length - 2); console.log(item); // 你收到了来自someone的【数量】物品,附带信息:xxx。 - e.firstChild.nodeValue='你收到了来自 '; - e.childNodes[2].nodeValue=' 的 '; - if(number) - e.childNodes[2].nodeValue+=number - e.childNodes[2].nodeValue+=' '+item; - if(isWithMsg) - e.childNodes[2].nodeValue+=',附带信息:'+msg; - e.childNodes[2].nodeValue+='。'; + e.firstChild.nodeValue = '你收到了来自 '; + e.childNodes[2].nodeValue = ' 的 '; + if (number) + e.childNodes[2].nodeValue += number + e.childNodes[2].nodeValue += ' ' + item; + if (isWithMsg) + e.childNodes[2].nodeValue += ',附带信息:' + msg; + e.childNodes[2].nodeValue += '。'; return; } @@ -296,49 +295,202 @@ * e.childNodes[1].nodeValue */ if ($(e).text().indexOf('bazaar') >= 0) { - const bazEN=e.childNodes[1].nodeValue; - const spl=bazEN.split(' '); + const bazEN = e.childNodes[1].nodeValue; + const spl = bazEN.split(' '); - const num=spl[2]; - const item=spl.slice(4,spl.indexOf('from')).join(' '); - const money=spl[spl.length-1].replace('.',''); + const num = spl[2]; + const item = spl.slice(4, spl.indexOf('from')).join(' '); + const money = spl[spl.length - 1].replace('.', ''); - e.childNodes[1].nodeValue=' 花费 '+money+' 从你的 bazaar 买了 '+num+' 个 '+' '+item+'。'; + e.childNodes[1].nodeValue = ' 花费 ' + money + ' 从你的 bazaar 买了 ' + num + ' 个 ' + ' ' + item + '。'; return; } - if ($(e).text().indexOf('trade') >= 0) { // 交易 - if ($(e).text().indexOf('You must now accept') >= 0) { // 接受交易 + /** + * 交易 + */ + if ($(e).text().indexOf('trade') >= 0) { + const PCHC = '点此继续'; + if ($(e).text().indexOf('You must now accept') >= 0) { + /** + * 接受交易 + * JNZR + * has accepted the trade titled "g't". You must now accept to finalize it. + * Please click here to continue. + * JNZR已经接受了名为 "g't "的交易。你现在必须接受以完成它。 + */ + const firstWords = e.childNodes[1].nodeValue.split('. You must')[0]; + const tradeName = firstWords.slice(31, firstWords.length); + e.childNodes[1].nodeValue = ' 已经接受了名为 ' + tradeName + ' 的交易。你现在必须接受以完成它。'; + e.childNodes[2].firstChild.nodeValue = PCHC; return; } - if ($(e).text().indexOf('expired') >= 0) { // 交易过期 + if ($(e).text().indexOf('expired') >= 0) { + /** + * 交易过期 + * The trade with + * sabrina_devil + * has expired + * 与sabrina_devil的交易已经过期。 + */ + e.firstChild.nodeValue = '与 '; + e.childNodes[2].nodeValue = ' 的交易已过期。'; return; } - if ($(e).text().indexOf('initiated') >= 0) { // 交易发起 + if ($(e).text().indexOf('initiated') >= 0) { + /** + * 交易发起 + * sabrina_devil + * has initiated a trade titled "gt". + * Please click here to continue. + * sabrina_devil发起了一项名为 "gt "的交易。 + */ + const node2 = e.childNodes[1].nodeValue; + const tradeName = node2.slice(30, node2.length - 2); + e.childNodes[1].nodeValue = ' 发起了标题为 ' + tradeName + ' 的交易。'; + e.childNodes[2].firstChild.nodeValue = PCHC; + return; + } + if ($(e).text().indexOf('now complete') >= 0) { + /** + * 交易完成 + * Tmipimlie + * has accepted the trade. The trade is now complete. + * Tmipimlie已经接受交易。现在交易已经完成。 + */ + e.childNodes[1].nodeValue = ' 已经接受交易。该交易现已完成。'; + return; + } + if ($(e).text().indexOf('canceled') >= 0) { + /** + * 交易完成 + * WOW + * has canceled the trade. + * WOW已经取消了这项交易。 + */ + e.childNodes[1].nodeValue = ' 已经取消了这个交易。'; + return; + } + if ($(e).text().indexOf('commented') >= 0) { + /** + * 交易评论 + * QIJI + * commented on your + * pending trade + * : "Thank you for trading with me! The total is $19,461,755 and you can view your receipt here: https://www.tornexchange.com/receipt/mhWuuL7hrE" + */ + e.childNodes[1].nodeValue = ' 对'; + e.childNodes[2].firstChild.nodeValue = '进行中的交易'; + e.childNodes[3].nodeValue = '添加了一条评论' + e.childNodes[3].nodeValue; return; } return; } - if ($(e).text().indexOf('mugged') >= 0) { // 被mug - if ($(e).text().indexOf('Someone') >= 0) { // 被匿名mug - return; + + /** + * 被mug + */ + if ($(e).text().indexOf('mugged') >= 0) { + const spl = $(e).text().trim().split(' '); + if (spl.length > 7) return; // 多人运动暂时跳过 + const money = spl[spl.length - 2]; + if (spl[0] === 'Someone') { // 被匿名mug + e.firstChild.nodeValue = '有人打劫了你 ' + money + ' ['; + e.childNodes[1].firstChild.nodeValue = '查看'; } else { - return; + e.childNodes[1].nodeValue = ' 打劫了你 ' + money + ' ['; + e.childNodes[2].firstChild.nodeValue = '查看'; } + return; } + + /** + * 被打 + */ if ($(e).text().indexOf('attacked') >= 0) { // 被打 - if ($(e).text().indexOf('Someone') >= 0) { // 被匿名 - if ($(e).text().indexOf('hospitalized') >= 0) { // 被打住院 + /** + * 攻击方式 词数=spl.length + * 匿名 4 Someone attacked you [view] + * - hosp 6 Someone attacked and hospitalized you [view] + * -- 有人袭击了你并安排你住院 + * 实名 4 EternalSoulFire attacked you [view] + * - lost 6 EternalSoulFire attacked you but lost [view] + * - hosp 6 + * - 逃跑esc 6 Dr_Bugsy_Siegel attacked you but escaped [view] + * - 25回合平手stale 6 Tharizdun attacked you but stalemated [view] + * - 起飞或bug 6 Mrew tried to attack you [view] + * + * You attacked Cherreh but timed out [view] + * + * 多人运动 todo + * 10 Pual (and 2 others) attached you and hospitalized you [view] + * 9 Argozdoc attacked you but Norm fought him off [view] + */ + const spl = $(e).text().trim().split(' '); + + if (spl.length > 6) { // 多人运动暂时跳过 + /** + * 超时自动失败 + */ + if (spl[4] === 'timed') { + if (e.firstChild.firstChild) { // 由第一个节点是否有子节点判断 被攻击 + e.childNodes[1].nodeValue = ' 袭击你但是超时了 ['; + e.childNodes[2].firstChild.nodeValue = '查看'; + return; + } + e.firstChild.nodeValue = '你袭击 '; + e.childNodes[2].nodeValue = ' 但是超时了 ['; + e.childNodes[3].firstChild.nodeValue = '查看'; return; } return; + ; } - if ($(e).text().indexOf('but lost') >= 0) { // 收lost + + if (spl[0] === 'Someone') { // 被匿名 + if (spl.length === 6 && spl[3] === 'hospitalized') { // 匿名hos + e.firstChild.nodeValue = '有人袭击你并安排你住院 ['; + e.childNodes[1].firstChild.nodeValue = '查看'; + return; + } + e.firstChild.nodeValue = '有人袭击了你 ['; + e.childNodes[1].firstChild.nodeValue = '查看'; return; } - if ($(e).text().indexOf('hospitalized') >= 0) { // 被实名打住院 + + if (spl.length === 4) { // 实名leave + e.childNodes[1].nodeValue = ' 袭击了你 ['; + e.childNodes[2].firstChild.nodeValue = '查看'; return; } + + if (spl.length === 6) { // 实名的情况 + switch (spl[4]) { + case 'lost': + e.childNodes[1].nodeValue = ' 袭击你但输了 ['; + e.childNodes[2].firstChild.nodeValue = '查看'; + return; + case 'escaped': + e.childNodes[1].nodeValue = ' 袭击你但逃跑了 ['; + e.childNodes[2].firstChild.nodeValue = '查看'; + return; + case 'stalemated': + e.childNodes[1].nodeValue = ' 袭击你但打成了平手 ['; + e.childNodes[2].firstChild.nodeValue = '查看'; + return; + } + switch (spl[3]) { + case 'attack': // Mrew tried to attack you [view] + e.childNodes[1].nodeValue = ' 尝试袭击你 ['; + e.childNodes[2].firstChild.nodeValue = '查看'; + return; + case 'hospitalized': + e.childNodes[1].nodeValue = ' 袭击你并安排你住院 ['; + e.childNodes[2].firstChild.nodeValue = '查看'; + return; + } + } + } /** @@ -347,11 +499,10 @@ * zstorm won $5,574,200 in the Daily Dime lottery! */ if ($(e).text().indexOf('lottery') >= 0) { - console.log('彩票') - const split=e.childNodes[1].nodeValue.split(' '); - const type=split[split.length-3]+' '+split[split.length-2]; - const money=split[2]; - e.childNodes[1].nodeValue=' 在 '+type+' 彩票中赢得了 '+money+'!'; + const split = e.childNodes[1].nodeValue.split(' '); + const type = split[split.length - 3] + ' ' + split[split.length - 2]; + const money = split[2]; + e.childNodes[1].nodeValue = ' 在 ' + type + ' 彩票中赢得了 ' + money + '!'; return; } @@ -368,10 +519,26 @@ */ if ($(e).text().indexOf('bust') >= 0) { // 劫狱成功 if ($(e).text().indexOf('to bust') >= 0) { // 劫狱失败 - e.childNodes[1].nodeValue=' 想捞你出来但是把自己搭进去了。'; + e.childNodes[1].nodeValue = ' 想捞你出来但是把自己搭了进去。'; return; } - e.childNodes[1].nodeValue=' 成功把你捞了出来。'; + e.childNodes[1].nodeValue = ' 成功把你捞了出来。'; + return; + } + + /** + * new virus病毒 + * You completed the Simple Virus which is now in your inventory. You can begin programming a new virus + * here + * . + * + * 你完成了 "简单病毒",它现在在你的库存中。你可以【点此】开始编程一个新的病毒。 + */ + if ($(e).text().indexOf('new virus') >= 0) { + const virusName = e.firstChild.nodeValue.split(' ').slice(3, 5).join(' '); + e.firstChild.nodeValue = '你完成了 ' + virusName + ' ,它现在在你的物品库存中。你可以'; + e.childNodes[1].firstChild.nodeValue = '点此'; + e.childNodes[2].nodeValue = '开始编程一个新的病毒。'; return; } diff --git a/zhcn_translate.js b/zhcn_translate.js index 53471d0..bec2d2b 100644 --- a/zhcn_translate.js +++ b/zhcn_translate.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Torn翻译 // @namespace WOOH -// @version 0.1 +// @version 0.1.1104a // @description UI翻译 // @author Woohoo- // @match https://www.torn.com/*