调整通知,更新报纸、房屋交易
This commit is contained in:
parent
c603a85c8d
commit
51a709047a
@ -1,7 +1,7 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name Torn翻译
|
// @name Torn翻译
|
||||||
// @namespace WOOH
|
// @namespace WOOH
|
||||||
// @version 0.1.1106b
|
// @version 0.1.1108a
|
||||||
// @description UI翻译
|
// @description UI翻译
|
||||||
// @author Woohoo-[2687093] sabrina_devil[2696209]
|
// @author Woohoo-[2687093] sabrina_devil[2696209]
|
||||||
// @match https://www.torn.com/*
|
// @match https://www.torn.com/*
|
||||||
@ -9,8 +9,12 @@
|
|||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
|
|
||||||
!(function () {
|
(function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
const ___win_WHTRANS = window || window.unsafeWindow;
|
||||||
|
if (___win_WHTRANS.WHTRANS) return;
|
||||||
|
___win_WHTRANS.WHTRANS = true;
|
||||||
|
|
||||||
const $ = window.jQuery;
|
const $ = window.jQuery;
|
||||||
const sidebarDict = { // todo 从json加载
|
const sidebarDict = { // todo 从json加载
|
||||||
'Money': '现金',
|
'Money': '现金',
|
||||||
@ -143,20 +147,29 @@
|
|||||||
'Tutorial': '教程',
|
'Tutorial': '教程',
|
||||||
};
|
};
|
||||||
const newspaperDict = {
|
const newspaperDict = {
|
||||||
'front page': '报纸头版',
|
'front page': '头版',
|
||||||
'archive': '归档',
|
'archive': '归档',
|
||||||
'job listing': '工作清单',
|
'job listing': '工作',
|
||||||
'properties': '房产信息',
|
'properties': '房产',
|
||||||
'freebies': '赠品',
|
'freebies': '赠品',
|
||||||
'classified ads': '分类广告',
|
'classified ads': '广告',
|
||||||
'personals': '个人情感',
|
'personals': '情感',
|
||||||
'bounties': '悬赏',
|
'bounties': '悬赏',
|
||||||
'comics': '漫画',
|
'comics': '漫画',
|
||||||
'chronicles': '纪事档案馆',
|
'chronicles': '纪事档案馆',
|
||||||
|
'TCSE Market Index':'TCSE 股票指数',
|
||||||
|
'Weekly bazaars':'每周小店',
|
||||||
|
'LOTTERY':'幸运彩票',
|
||||||
|
'BOUNTIES':'精选悬赏',
|
||||||
|
'TC PERSONALS':'托恩情感',
|
||||||
|
'Why not visit our sponsor?':'为什么不访问我们的赞助商呢?',
|
||||||
|
'View all':'查看所有',
|
||||||
|
'Advertise here':'在此刊登广告',
|
||||||
};
|
};
|
||||||
const titleDict = {
|
const titleDict = {
|
||||||
'Home': '主页',
|
'Home': '主页',
|
||||||
'Estate Agents': '地产中介',
|
'Estate Agents': '地产中介',
|
||||||
|
'Newspaper':'报纸',
|
||||||
};
|
};
|
||||||
const propertyDict = {
|
const propertyDict = {
|
||||||
'Trailer': '拖车',
|
'Trailer': '拖车',
|
||||||
@ -174,13 +187,18 @@
|
|||||||
'Castle': '城堡',
|
'Castle': '城堡',
|
||||||
'Private Island': '私人岛屿(PI)',
|
'Private Island': '私人岛屿(PI)',
|
||||||
'Owner': '所有人',
|
'Owner': '所有人',
|
||||||
|
'Owner:': '所有人:',
|
||||||
'Happiness': '快乐值',
|
'Happiness': '快乐值',
|
||||||
|
'Happiness:': '快乐值:',
|
||||||
'Cost': '花费',
|
'Cost': '花费',
|
||||||
|
'Cost:': '花费:',
|
||||||
'Cost per Day': '平均日花费',
|
'Cost per Day': '平均日花费',
|
||||||
'Rental Period': '租期',
|
'Rental Period': '租期',
|
||||||
'Rent': '租赁',
|
'Rent': '租赁',
|
||||||
'Info': '信息',
|
'Info': '信息',
|
||||||
'Buy': '购买',
|
'Buy': '购买',
|
||||||
|
'Property:': '房屋:',
|
||||||
|
'Modifications': '改造设施',
|
||||||
};
|
};
|
||||||
const travelingDict = { // todo jsonify
|
const travelingDict = { // todo jsonify
|
||||||
'Recruit Citizens': '招募玩家',
|
'Recruit Citizens': '招募玩家',
|
||||||
@ -301,7 +319,7 @@
|
|||||||
|
|
||||||
// 手机 区域菜单
|
// 手机 区域菜单
|
||||||
$('div[class*="areas-mobile"] span:nth-child(2)').contents().each((i, e) => {
|
$('div[class*="areas-mobile"] span:nth-child(2)').contents().each((i, e) => {
|
||||||
console.log(e);
|
//console.log(e);
|
||||||
if (sidebarDict[e.nodeValue])
|
if (sidebarDict[e.nodeValue])
|
||||||
e.nodeValue = sidebarDict[e.nodeValue];
|
e.nodeValue = sidebarDict[e.nodeValue];
|
||||||
});
|
});
|
||||||
@ -368,44 +386,50 @@
|
|||||||
/**
|
/**
|
||||||
* 报纸菜单
|
* 报纸菜单
|
||||||
*/
|
*/
|
||||||
if (window.location.href.indexOf('newspaper.php') >= 0 ||
|
if (window.location.href.indexOf('newspaper.php') >= 0 || window.location.href.indexOf('joblist.php') >= 0 ||
|
||||||
window.location.href.indexOf('joblist.php') >= 0 ||
|
window.location.href.indexOf('freebies.php') >= 0 || window.location.href.indexOf('newspaper_class.php') >= 0 ||
|
||||||
window.location.href.indexOf('freebies.php') >= 0 ||
|
window.location.href.indexOf('personals.php') >= 0 || window.location.href.indexOf('bounties.php') >= 0 ||
|
||||||
window.location.href.indexOf('newspaper_class.php') >= 0 ||
|
|
||||||
window.location.href.indexOf('personals.php') >= 0 ||
|
|
||||||
window.location.href.indexOf('bounties.php') >= 0 ||
|
|
||||||
window.location.href.indexOf('comics.php') >= 0) {
|
window.location.href.indexOf('comics.php') >= 0) {
|
||||||
|
const newspaperOB = new MutationObserver(newspaperOBInit);
|
||||||
|
function newspaperOBInit(){
|
||||||
|
newspaperOB.disconnect();
|
||||||
|
newspaperTrans();
|
||||||
|
newspaperOB.observe($('div.content-wrapper')[0], {childList: true, subtree: true});
|
||||||
|
}
|
||||||
|
function newspaperTrans(){
|
||||||
titleTrans();
|
titleTrans();
|
||||||
let newspaperMenuOB = new MutationObserver(newspaperFunc);
|
contentTitleLinksTrans();
|
||||||
const isOnBountyPage = window.location.href.indexOf('bounties.php') >= 0;
|
|
||||||
|
|
||||||
function newspaperFunc(isOBRunning = true) {
|
|
||||||
if ($('a.newspaper-link').length === 0) return;
|
if ($('a.newspaper-link').length === 0) return;
|
||||||
// 报纸菜单
|
// 导航菜单
|
||||||
$('a.newspaper-link').contents().each((i, e) => {
|
$('a.newspaper-link').contents().each((i, e) => {
|
||||||
if (newspaperDict[e.nodeValue])
|
if (newspaperDict[e.nodeValue])
|
||||||
e.nodeValue = newspaperDict[e.nodeValue];
|
e.nodeValue = newspaperDict[e.nodeValue];
|
||||||
});
|
});
|
||||||
// 公众号广告
|
// 公众号广告
|
||||||
$('div.price.left').contents()[2].nodeValue = '文章翻译请关注中文公众号Torncity';
|
$('div.price.left').contents()[2].nodeValue = '文章翻译请关注中文公众号Torncity';
|
||||||
if (isOBRunning && !isOnBountyPage) {
|
// 日期翻译
|
||||||
newspaperMenuOB.disconnect();
|
const date = new Date($('span.date-label').text());
|
||||||
|
if(date.format('yyyy')!=='NaN')
|
||||||
|
$('span.date-label').text(date.format('yyyy年MM月dd日'));
|
||||||
|
// 右边栏
|
||||||
|
$('div[class^="sideCont"] [class^="title"]').contents().each((i, e) => {
|
||||||
|
if(newspaperDict[e.nodeValue])
|
||||||
|
e.nodeValue=newspaperDict[e.nodeValue];
|
||||||
|
});
|
||||||
|
// 彩票信息
|
||||||
|
$('span[class^="winner"]').each((i,e)=>{});
|
||||||
|
// 底部链接
|
||||||
|
// Why not visit our sponsor?
|
||||||
|
if(newspaperDict[$('div.link-left').text().trim()])
|
||||||
|
$('div.link-left').text(newspaperDict[$('div.link-left').text().trim()]);
|
||||||
|
// View all | Advertise here
|
||||||
|
$('div.link-right a').contents().each((i,e)=>{
|
||||||
|
if(newspaperDict[e.nodeValue.trim()])
|
||||||
|
e.nodeValue=newspaperDict[e.nodeValue.trim()];
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if (isOnBountyPage) {
|
newspaperTrans();
|
||||||
let btInterval = setInterval(() => {
|
newspaperOB.observe($('div.content-wrapper')[0], {childList: true, subtree: true});
|
||||||
newspaperMenuOB.disconnect();
|
|
||||||
clearInterval(btInterval);
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($('a.newspaper-link').length === 0 || isOnBountyPage) {
|
|
||||||
newspaperMenuOB.observe($('div.content-wrapper')[0], {childList: true, subtree: true});
|
|
||||||
} else {
|
|
||||||
newspaperFunc(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
contentTitleLinksTrans();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -443,13 +467,15 @@
|
|||||||
if (propertyDict[e.nodeValue])
|
if (propertyDict[e.nodeValue])
|
||||||
e.nodeValue = propertyDict[e.nodeValue];
|
e.nodeValue = propertyDict[e.nodeValue];
|
||||||
});
|
});
|
||||||
|
//搜索按钮
|
||||||
$('div.btn-search button').text('搜索');
|
$('div.btn-search button').text('搜索');
|
||||||
|
$('div.search-text a').text('搜索');
|
||||||
// 表头信息
|
// 表头信息
|
||||||
$('div.users-list-title div').each((i, e) => {
|
$('div.users-list-title div').each((i, e) => {
|
||||||
if (propertyDict[$(e).text()])
|
if (propertyDict[$(e).text()])
|
||||||
$(e).text(propertyDict[$(e).text()]);
|
$(e).text(propertyDict[$(e).text()]);
|
||||||
});
|
});
|
||||||
// 提示确认购买
|
// 确认购买提示
|
||||||
/**
|
/**
|
||||||
<span class="question">
|
<span class="question">
|
||||||
<p>Are you sure you want to rent this Castle</p>
|
<p>Are you sure you want to rent this Castle</p>
|
||||||
@ -466,8 +492,6 @@
|
|||||||
</span>
|
</span>
|
||||||
*/
|
*/
|
||||||
$('div[class="confirm-text"] span.question').each((i, e) => {
|
$('div[class="confirm-text"] span.question').each((i, e) => {
|
||||||
//const cost=e.children[1].innerText.trim().split(' ')[1];
|
|
||||||
//const period=isRent?e.children[1].innerText.trim().split(' ')[6]:null;
|
|
||||||
const propName = e.firstElementChild.innerText.trim().split(' ').slice(8).join(' ');
|
const propName = e.firstElementChild.innerText.trim().split(' ').slice(8).join(' ');
|
||||||
|
|
||||||
const hasAnother = $(e).text().indexOf('another') > 0;
|
const hasAnother = $(e).text().indexOf('another') > 0;
|
||||||
@ -476,8 +500,7 @@
|
|||||||
e.firstElementChild.firstChild.nodeValue += isRent ? '租用' : '购买';
|
e.firstElementChild.firstChild.nodeValue += isRent ? '租用' : '购买';
|
||||||
e.firstElementChild.childNodes[1].firstChild.nodeValue = '另一个';
|
e.firstElementChild.childNodes[1].firstChild.nodeValue = '另一个';
|
||||||
e.firstElementChild.childNodes[2].nodeValue = propertyDict[propName];
|
e.firstElementChild.childNodes[2].nodeValue = propertyDict[propName];
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
e.firstElementChild.firstChild.nodeValue = '你确定要';
|
e.firstElementChild.firstChild.nodeValue = '你确定要';
|
||||||
e.firstElementChild.firstChild.nodeValue += isRent ? '租用' : '购买';
|
e.firstElementChild.firstChild.nodeValue += isRent ? '租用' : '购买';
|
||||||
e.firstElementChild.firstChild.nodeValue += propertyDict[propName];
|
e.firstElementChild.firstChild.nodeValue += propertyDict[propName];
|
||||||
@ -488,6 +511,38 @@
|
|||||||
e.children[1].childNodes[4].nodeValue = ' 天?';
|
e.children[1].childNodes[4].nodeValue = ' 天?';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 房屋详情表格
|
||||||
|
$('div.info-block span.bold').each((i, e) => {
|
||||||
|
// 2 6 10 14 18 22 26 30 ...
|
||||||
|
if (i % 4 === 2) {
|
||||||
|
/**
|
||||||
|
* <span class="bold">
|
||||||
|
<span class="title-laptop">On </span>
|
||||||
|
"Market"
|
||||||
|
<span class="title-desktop"> Price</span>
|
||||||
|
":"
|
||||||
|
</span>
|
||||||
|
*/
|
||||||
|
e.firstElementChild.firstChild.nodeValue = '';
|
||||||
|
e.childNodes[2].nodeValue = '市场价';
|
||||||
|
e.childNodes[3].firstChild.nodeValue = '';
|
||||||
|
e.childNodes[4].nodeValue = ':';
|
||||||
|
} else {
|
||||||
|
if (propertyDict[e.firstChild.nodeValue.trim()])
|
||||||
|
e.firstChild.nodeValue = propertyDict[e.firstChild.nodeValue.trim()];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// 窄边 cost happy
|
||||||
|
$('span.title-laptop.bold').each((i, e) => {
|
||||||
|
if (propertyDict[$(e).text().trim()])
|
||||||
|
$(e).text(propertyDict[$(e).text().trim()]);
|
||||||
|
});
|
||||||
|
// modification
|
||||||
|
$('div.title.bold.left').each((i, e) => {
|
||||||
|
if (propertyDict[e.firstChild.nodeValue])
|
||||||
|
e.firstChild.nodeValue = propertyDict[e.firstChild.nodeValue];
|
||||||
|
});
|
||||||
|
|
||||||
propertyOB.observe($('div#properties-page-wrap')[0], {childList: true, subtree: true});
|
propertyOB.observe($('div#properties-page-wrap')[0], {childList: true, subtree: true});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -559,20 +614,20 @@
|
|||||||
const pos = e.childNodes[1].firstChild.nodeValue.match(/[0-9]+/)[0];
|
const pos = e.childNodes[1].firstChild.nodeValue.match(/[0-9]+/)[0];
|
||||||
|
|
||||||
const splitList = e.childNodes[2].nodeValue.split(' ');
|
const splitList = e.childNodes[2].nodeValue.split(' ');
|
||||||
const bestLap = e.childNodes[2].nodeValue.split(' best lap was ')[1].split(' ')[0];
|
const bestLap = e.childNodes[2].nodeValue.split(' best lap was ')[1].slice(0, 8);//.split(' ')[0];
|
||||||
|
|
||||||
let map = splitList[3];
|
let map = splitList[3];
|
||||||
map = map === 'Two' ? 'Two Islands' : map;
|
map = map === 'Two' ? 'Two Islands' : map;
|
||||||
map = map === 'Stone' ? 'Stone Park' : map;
|
map = map === 'Stone' ? 'Stone Park' : map;
|
||||||
|
|
||||||
e.firstChild.nodeValue = '你在赛车比赛 ' + map + ' 中获得了第 ';
|
e.firstChild.nodeValue = '你在赛车比赛 ' + map + ' 中获得第 ';
|
||||||
e.childNodes[1].firstChild.nodeValue = pos;
|
e.childNodes[1].firstChild.nodeValue = pos;
|
||||||
e.childNodes[2].nodeValue = ' 名。';
|
e.childNodes[2].nodeValue = ' 名,';
|
||||||
if (isGainRacingPoint >= 0) {
|
if (isGainRacingPoint >= 0) {
|
||||||
e.childNodes[2].nodeValue += '你获得了' + racingPoint + '赛车点数。';
|
e.childNodes[2].nodeValue += '获得' + racingPoint + '赛车点数(Racing Points)。';
|
||||||
}
|
}
|
||||||
|
|
||||||
e.childNodes[2].nodeValue += '你的最佳成绩是 ' + bestLap;
|
e.childNodes[2].nodeValue += '你的最佳圈速是 ' + bestLap;
|
||||||
if (isBeat)
|
if (isBeat)
|
||||||
e.childNodes[2].nodeValue += ',比之前最佳 ' + record + ' 快 ' + bestBy;
|
e.childNodes[2].nodeValue += ',比之前最佳 ' + record + ' 快 ' + bestBy;
|
||||||
e.childNodes[2].nodeValue += '。'
|
e.childNodes[2].nodeValue += '。'
|
||||||
@ -913,13 +968,19 @@
|
|||||||
* failed to bust you out of jail.
|
* failed to bust you out of jail.
|
||||||
*/
|
*/
|
||||||
if ($(e).text().indexOf('bust') >= 0) {
|
if ($(e).text().indexOf('bust') >= 0) {
|
||||||
if ($(e).text().indexOf('to bust') >= 0) { // 失败
|
if (e.childNodes[1].nodeValue[1] === 'f') { // 失败
|
||||||
e.childNodes[1].nodeValue = ' 尝试把你从监狱里救出来,但是失败了。';
|
e.childNodes[1].nodeValue = ' 没能把你从监狱救出来。';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (e.childNodes[1].nodeValue[1] === 'w') { // 失败被抓
|
||||||
|
e.childNodes[1].nodeValue = ' 在尝试救你出狱时被抓了。';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (e.childNodes[1].nodeValue[1] === 's') {
|
||||||
e.childNodes[1].nodeValue = ' 成功把你从监狱里救了出来。';
|
e.childNodes[1].nodeValue = ' 成功把你从监狱里救了出来。';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保释
|
* 保释
|
||||||
@ -930,6 +991,30 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收到帮派的pt
|
||||||
|
*/
|
||||||
|
if ($(e).text().indexOf('points from') >= 0) {
|
||||||
|
const pt = e.firstChild.nodeValue.split(' ')[3];
|
||||||
|
e.firstChild.nodeValue = '你得到了从帮派取出的 ' + pt + ' PT。'
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收到帮派的钱
|
||||||
|
*/
|
||||||
|
if ($(e).text().indexOf('given $') >= 0) {
|
||||||
|
const money = e.firstChild.nodeValue.split(' ')[3];
|
||||||
|
let isNamed = e.childNodes.length > 1;
|
||||||
|
if (isNamed) {
|
||||||
|
e.firstChild.nodeValue = '';
|
||||||
|
e.childNodes[2].nodeValue = ' 为你从帮派取了 ' + money + '。';
|
||||||
|
} else {
|
||||||
|
e.firstChild.nodeValue = '你得到了从帮派取出的 ' + money + '。';
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 教育完成
|
* 教育完成
|
||||||
* <a href="/education.php" i-data="i_199_234_363_14">The education course you were taking has ended. Please click here.</a>
|
* <a href="/education.php" i-data="i_199_234_363_14">The education course you were taking has ended. Please click here.</a>
|
||||||
@ -1035,4 +1120,4 @@
|
|||||||
$('h4#skip-to-content').text(titleDict[$('h4#skip-to-content').text().trim()]);
|
$('h4#skip-to-content').text(titleDict[$('h4#skip-to-content').text().trim()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
})();
|
}());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user