40252492
发表于 2022-8-12 15:17:06
本帖最后由 40252492 于 2022-8-12 18:20 编辑
> 本帖最后由 40252492 于 2022-8-12 17:35 编辑
> 本帖最后由 40252492 于 2022-8-12 17:35 编辑
> 本帖最后由 40252492 于 2022-8-12 17:34 编辑
> 本帖最后由 40252492 于 2022-8-12 17:34 编辑
> (forum.php?mod=redirect&goto=findpost&pid=32539&ptid=2862)
> > 重复声明了,把46行那句删掉就行,在网页那里F12切换到控制台(Console),可以看到错误信息的。 ...
当当当当!锵锵锵!QVQ
现在卡名和阵营这两种我都搞明白了,再见到类似的应该也会写了,
但是这个卡片类型和种族的选择器,请问怎么写哇?
!(data/attachment/forum/202208/12/151641zbpze5gbpcfc9ehg.png)
```
// ==UserScript==
// @name dulst.com的CardFighit Vanguard OverDulst文本替换汉化
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.8
// @description 通过将英文替换为中文的方法,汉化卡片战斗先导者OD的网页游戏
// @author 库X崔羊羊
// @match https://dulst.com/overdulst/\*
// @icon https://www.google.com/s2/favicons?domain=dulst.com
// @require https://scriptcat.org/lib/513/1.1.1/ElementGetter.js
// ==/UserScript==
(function() {
'use strict';
const xiaoguo = {
'-"Trickstar", or a grade 3 or less unit in the state ': '【超限舞装】-「托里科斯塔」或处于【超限舞装】状态的等级3以下的后防者',
'(RC):This unit gets +5000 for each of this unit\'s originalDress.': '【永】【R】:这个单位的舞装源每有1张,这个单位的力量+5000。',
'(RC)1/Turn:When the attack of this unit in the state hits, COST , and this unit.': '【自】【R】【1回合1次】:处于【超限舞装】状态的这个单位的攻击击中时,通过【费用】[计数爆发1,将手牌中的1张卡舍弃],将这个单位重置。',
};
const qita = {
'Trickstar': '托里科斯塔',
'Vairina Valiente': '瓦尔里纳·勇气',
'Dragon Empire': '龙族帝国',
'Unit': '单位',
': Talisman': '护身符',
};
//能力.effect p
const getxiaoguo = new ElementGetter();
getxiaoguo.each('.effect p', document, p => {
if (p.innerText in xiaoguo) {
p.innerText = xiaoguo;
}
});
//卡名.name
//国家>.data
//卡片类型.name
//种族
const getqita = new ElementGetter();
getqita.each('.name, >.data,.name', document, p => {
if (p.innerText in qita) {
p.innerText = qita;
}
});
})();
```
cxxjackie
发表于 2022-8-12 22:21:50
40252492 发表于 2022-8-12 15:17
> 本帖最后由 40252492 于 2022-8-12 17:35 编辑
> 本帖最后由 40252492 于 2022-8-12 17:35 编辑
li.type span
li.rarity
自己学一下呗,又不难写。另外ElementGetter不用new这么多个的,只需要new一次,后面都用同一个变量名就可以了。
40252492
发表于 2022-8-15 12:31:45
steven026 发表于 2022-8-11 20:06
@王一之 这脚本猫编辑器竟然不报错,有点离谱了😳话说脚本猫能像油猴一样内置一个eslint吗?至少eslint ...
大佬,您好像没有@成功啊{:4_89:}
40252492
发表于 2022-8-15 12:36:10
本帖最后由 40252492 于 2022-8-15 13:23 编辑
cxxjackie 发表于 2022-8-12 22:21
li.type span
li.rarity
自己学一下呗,又不难写。另外ElementGetter不用new这么多个的,只需要new一次, ...
多谢大佬,我看了您发的《querySelector与css选择器入门》现在能大概通读一遍了
然后,请问有教程吗?我先从选择器的写法入手{:4_88:}百度查了查,甚至不知道应该查什么关键词。。。
然后就是,卡片类型翻译成功了,种族没有翻译成功,请您帮忙看看啦~
(我给代码合成一段了!Q3Q)
(function() {
'use strict';
const fanyi = {
'-"Trickstar", or a grade 3 or less unit in the state ': '【超限舞装】-「托里科斯塔」或处于【超限舞装】状态的等级3以下的后防者',
'(RC):This unit gets +5000 for each of this unit\'s originalDress.': '【永】【R】:这个单位的舞装源每有1张,这个单位的力量+5000。',
'(RC)1/Turn:When the attack of this unit in the state hits, COST , and this unit.': '【自】【R】【1回合1次】:处于【超限舞装】状态的这个单位的攻击击中时,通过【费用】[计数爆发1,将手牌中的1张卡舍弃],将这个单位重置。',
'Trickstar': '托里科斯塔',
'Vairina Valiente': '瓦尔里纳·勇气',
'Dragon Empire': '龙族帝国',
'Unit': '单位',
': Talisman': '护身符',
};
//能力.effect p
//卡名.name
//国家>.data
//卡片类型li.type span
//种族li.rarity
const getfanyi = new ElementGetter();
getfanyi.each('.effect p,.name, >.data,.name,li.type span,li.rarity', document, p => {
if (p.innerText in fanyi) {
p.innerText = fanyi;
}
});
})();
cxxjackie
发表于 2022-8-15 22:39:29
40252492 发表于 2022-8-15 12:36
多谢大佬,我看了您发的《querySelector与css选择器入门》现在能大概通读一遍了
然后,请问有教程吗?我先 ...
li.rarity不是种族,是右下角的稀有度,类型和种族我合一起了,就是li.type span,没有替换成功是因为没有完全匹配,冒号后面的空格不一样,在字符集里面有很多种空格,虽然看起来都一样但实际是不同的编码,最好用复制粘贴的,不要自己输入。
教程论坛里就有:https://bbs.tampermonkey.net.cn/thread-184-1-1.html
如果是要选择器的教程,那篇文章的基本够用了,要学更多的话:https://www.w3school.com.cn/cssref/css_selectors.asp
40252492
发表于 2022-8-16 10:01:19
本帖最后由 40252492 于 2022-8-16 10:15 编辑
cxxjackie 发表于 2022-8-15 22:39
li.rarity不是种族,是右下角的稀有度,类型和种族我合一起了,就是li.type span,没有替换成功是因为没 ...
多谢大佬的教程!我好好看看!QvQ
刚百度搜了一下nbsp,原来空格也不止一种啊,我复制一下试试
'Unit: Talisman': '单位:护身符',
我这样写的,但是没有生效哇(是复制的)
'Unit': '单位',
': Talisman': ': 护身符',
我又写成了2行,结果只有单位被翻译了,种族没有被翻译出来QAQ
cxxjackie
发表于 2022-8-16 11:51:50
40252492 发表于 2022-8-16 10:01
多谢大佬的教程!我好好看看!QvQ
刚百度搜了一下nbsp,原来空格也不止一种啊,我复制一下试试
应该是分开的,估计你复制的时候哪里弄错了,算了,你写成这样吧:
:\u00A0Talisman
后面要是再碰到这种空格就都替换成\u00A0。
40252492
发表于 2022-8-16 13:11:33
本帖最后由 40252492 于 2022-8-16 13:16 编辑
> 本帖最后由 40252492 于 2022-8-16 13:15 编辑
啊啊啊阿斯克编码?
6啊!谢谢大佬
!(data/attachment/forum/202208/16/131125dlc6f37k7sh36zvc.png)
我原本只是打算求程序的,结果怎么成了学习专业技能的了
!(data/attachment/forum/202208/16/131616cvc85p2pnl1vjenz.png)
40252492
发表于 2022-8-19 16:33:53
本帖最后由 40252492 于 2022-8-19 16:37 编辑
> 本帖最后由 40252492 于 2022-8-19 16:36 编辑
> 本帖最后由 40252492 于 2022-8-19 16:35 编辑
大佬大佬,我看了一遍CSS选择器的写法,已经能看得懂您写的那些选择器了。
然后我灵光一现,写成了'.effect p,:not(p)',结果出了点问题
目前可以通过:not(p)替换一切p以外的东西,但是会把a和div里的属性带着一起替换成中文
导致按钮、卡图没了
标题字少,拿标题举例
原本长这样
!(data/attachment/forum/202208/19/163637kjbyjb5626aay1zy.jpg)
替换之后成了这样
!(data/attachment/forum/202208/19/163644x5jl5lmm3ey1e5jg.jpg)
请问咋整哇?QAQ
```
// ==UserScript==
// @name dulst.com的CardFighit Vanguard OverDulst文本替换汉化
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.8
// @description通过将英文替换为中文的方法,汉化卡片战斗先导者OD的网页游戏
// @author 库X崔羊羊
// @match https://dulst.com/overdulst/*
// @icon https://www.google.com/s2/favicons?domain=dulst.com
// @require https://scriptcat.org/lib/513/1.2.0/ElementGetter.js
// ==/UserScript==
(function() {
'use strict';
const fanyi = {
'Play': '匹配',
'Home': '首页',
'Collectible': '收藏',
'Community': '论坛',
'Market': '商店',
};
const getwenben = new ElementGetter();
getwenben.each('.effect p,:not(p)', document, p => {
if (p.innerText in fanyi) {
p.innerText = fanyi;
}
});
})();
```
另外Play这个按钮没有替换成功,您知道咋回事嘛?Q3Q
cxxjackie
发表于 2022-8-19 20:59:28
40252492 发表于 2022-8-19 16:33
> 本帖最后由 40252492 于 2022-8-19 16:36 编辑
> 本帖最后由 40252492 于 2022-8-19 16:35 编辑
最好不要这么搞,这个写法就是会把元素下的子元素一起搞没的,前面效果对加粗倾斜的处理就是这个原理(加粗实际是p元素下的strong元素)。选择器还是老老实实手动写,上面这一排可以用#dulstMenu a,能看懂的话应该会举一反三吧,要测试选择器是否正确,可以在控制台那里执行这行代码看看:
$$('#dulstMenu a')