上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

网页文本替换汉化的油猴脚本,支持包含加粗和斜体

[复制链接]
  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-8 22:07:12 | 显示全部楼层 | 阅读模式

    本帖最后由 40252492 于 2022-10-20 13:54 编辑

    汉化文本突破3000行!!!😜😜😜
    感谢cxxjackie大佬!
    https://greasyfork.org/zh-CN/scripts/450728-dulst-com%E7%9A%84cardfighit-vanguard-overdulst%E6%96%87%E6%9C%AC%E6%9B%BF%E6%8D%A2%E6%B1%89%E5%8C%96


    大家好,我想使用油猴脚本制作一个网页游戏“卡片战斗先导者OD”的汉化,采用将英文替换为中文的方法
    https://dulst.com/overdulst/cards/31853506/Vairina-Valiente
    如上↑,我要汉化这个网站的UI、卡名、效果等信息,大段的效果文本里会有加粗和斜体,举个例子(如图)
    045152268056177.png
    请看,这是一整句效果文本,但是被加粗(或斜体)给隔开了,如果分多段汉化,则没法阅读

    (我有做一个excel,A列英文原文,B列中文翻译,C列用公式合成需要的格式,粘到JS里)

    (我的excel里,效果文本以外的翻译都完成了,卡在这种被加粗隔开的句子,没法分开翻译,要是把加粗的<strong <i 啥的当做英文原文也可以,希望能把<p中的文本当成一段来翻译)
    求帮忙写一个油猴脚本啦,谢谢!QvQ

  • TA的每日心情
    慵懒
    16 小时前
  • 签到天数: 629 天

    [LV.9]以坛为家II

    30

    主题

    534

    回帖

    1404

    积分

    荣誉开发者

    积分
    1404

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-8-8 22:41:35 | 显示全部楼层

    本帖最后由 steven026 于 2022-8-8 22:43 编辑

    核心文件:https://g8hh.com/zh/core.js
    汉化文件(供参考):https://gltyx.github.io/immortality-idle/chs.js
    最终样品(供参考):https://www.gityx.com/g8hh/hanhuazhong/466.html

    有现成的汉化脚本,稍微改造一下可以变成油猴形式
    然后控制台输入cnItems._OTHER_能打印出需要汉化的文本

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1360

    积分

    荣誉开发者

    积分
    1360

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-8-8 23:29:25 | 显示全部楼层
    给你写个示例:
    1. // ==UserScript==
    2. // @name         汉化示例
    3. // @description  ...
    4. // @namespace    ...
    5. // @author       ...
    6. // @version      1.0
    7. // @match        https://dulst.com/overdulst/cards/31853506/Vairina-Valiente
    8. // @require      https://scriptcat.org/lib/513/1.1.1/ElementGetter.js
    9. // ==/UserScript==

    10. (function() {
    11.     'use strict';
    12.     const translation = {
    13.         '[overDress]-"Trickstar", or a grade 3 or less unit in the [overDress] state ': '这是',
    14.         '[CONT](RC):This unit gets [Power]+5000 for each of this unit\'s originalDress.': '一段',
    15.         '[AUTO](RC)1/Turn:When the attack of this unit in the [overDress] state hits, COST [Counter Blast (1) & discard a card from your hand], and [Stand] this unit.': '汉化文本',
    16.     };
    17.     const elmGetter = new ElementGetter();
    18.     elmGetter.each('.effect p', document, p => {
    19.         if (p.innerText in translation) {
    20.             p.innerText = translation[p.innerText];
    21.         }
    22.     });
    23. })();
    复制代码

    完整脚本还是自己写吧,汉化要做的细节挺多的。
    ElementGetter:https://bbs.tampermonkey.net.cn/thread-2726-1-1.html
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    636

    主题

    5185

    回帖

    6068

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6068

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-8-9 09:46:27 | 显示全部楼层

    分成多段没法阅读的话
    可以考虑给抽成虚拟dom那样?
    感觉好像知乎见过这个问题...
    比如
    图片.png
    给搞成
    [
    {
    label:'strong',
    text:'[AUTO]RC:'
    },
    {
    label:'text',
    text:'When this unit boosts, this unit gets '
    },
    {
    label:'strong',
    text:'[Power]+2000:'
    },
    {
    label:'text',
    text:' until end of turn.'
    }
    ]

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-9 12:56:16 | 显示全部楼层
    本帖最后由 40252492 于 2022-8-9 13:01 编辑
    cxxjackie 发表于 2022-8-8 23:29
    给你写个示例:

    完整脚本还是自己写吧,汉化要做的细节挺多的。

    多谢大佬,请问这个油猴脚本能汉化UI吗,还是只能汉化卡片的效果?
    目前有个报错,没有生效
    您看图鸭~我上面已经加上了
    // @require      https://scriptcat.org/lib/513/1.1.1/ElementGetter.js
    但是它还报eslint : no-undef - ‘ElementGetter’ is not defined.
    image.png
    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-9 12:59:56 | 显示全部楼层

    本帖最后由 40252492 于 2022-8-9 13:17 编辑

    本帖最后由 40252492 于 2022-8-9 13:17 编辑

    本帖最后由 40252492 于 2022-8-9 13:17 编辑

    多谢大佬提供思路,但是我完全是个外行,我是学设计的,就是PS AI Flash 3Dmax那种,DW是用图形化界面学的。。。

    我非常喜欢这个TCG卡牌游戏,我已经在excel里写了942行翻译了,这绝不是一时兴起!

    请问能否帮我写油猴脚本哇QAQ,楼上的我正准备试试,但是加粗和斜体好像全都去掉了,还报了个错

    是的,我是去知乎问了,但是邀请了200多人,没人搭理我鸭

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    636

    主题

    5185

    回帖

    6068

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6068

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-8-9 14:21:02 | 显示全部楼层
    function Generate_vitural_text_message(dom){
        let entity_text=""
        let text_json=Generate_virtual_text_struct(dom,[],(text)=>{
            entity_text+=text
        })
        return {
            text_json_struct:text_json,
            entity_text:entity_text
        }
    
    }
    function Generate_virtual_text_struct(dom,parent=[],callback){
        debugger;
        if(dom.childNodes.length!==0){
            dom.childNodes.forEach((item)=>{
                if(item.childNodes.length!==0){
                    let inject_dom={
                        name:item.nodeName,
                        children:[]
                    }
                    parent.push(inject_dom)
                    Generate_virtual_text_struct(item,inject_dom.children,callback)
                }else{
                    Generate_virtual_text_struct(item,parent,callback)
                }
            })
        }else{
            if(dom.nodeName==='#text'){
                debugger;
                callback&&callback(dom.data)
                parent.push({
                    name:'#text',
                    text:dom.data,
                    dom:dom,
                })
            }
        }
        return parent
    }
    window.Generate_virtual_text_struct=Generate_virtual_text_struct
    window.Generate_vitural_text_message=Generate_vitural_text_message

    可以生成每个strong和p标签内的结构和数据
    以及附带了完整的段落
    具体翻译还是要哥哥去搞的
    因为一个完整的脚本不只是翻译
    各种页面的判断和持久性维护很麻烦的
    还是推荐自己动手学一阵
    图片.png

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    636

    主题

    5185

    回帖

    6068

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6068

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-8-9 14:28:11 | 显示全部楼层

    关于json格式会翻译有个比较简单地操作
    就是利用json序列函数来做text翻译工作,发现匹配直接操作dom

        JSON.stringify(json,(key,value)=>{
            console.log('key,value',key,value)
              return value;
        })

    图片.png

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-9 14:28:55 | 显示全部楼层
    李恒道 发表于 2022-8-9 14:21
    [md]```
    function Generate_vitural_text_message(dom){
        let entity_text=""

    多谢大佬写的代码!!!请问怎么用在油猴脚本里哇?。。。
    (对不起我完全看不懂)
    我只会翻译,其实只是对着网站里的英文,粘到excel里,然后从中文wiki粘现成的翻译

    或者我换个问法
    我的英文和中文应该怎么写,放在那里?
    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-9 14:41:47 | 显示全部楼层
    李恒道 发表于 2022-8-9 14:28
    [md]关于json格式会翻译有个比较简单地操作
    就是利用json序列函数来做text翻译工作,发现匹配直接操作dom
    ` ...

    太感谢了,但是我是0基础的。。。我没学过编程,我完全看不懂
    请问能麻烦您帮忙写一个油猴脚本吗?Q3Q
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表