[DT]动态翻译 (DynTranslation)
模组属性评比

距离显示结果还剩1票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志更多
历史编辑记录更多
    管理组申请

      暂无管理组..

    编辑组申请

      暂无编辑组..

    活跃
    开源
    [DT]

    动态翻译

    DynTranslation

    0.5

    闻所未闻

    昨日指数: 148
    昨日平均指数: 87.416

    8.72万

    总浏览

    --

    资料填充率


    下载本模组
    • 动态翻译不是一个大众型的mod,他负责的是针对mod中无法通过lang/json语言文件翻译汉化的硬编码部分提供简洁有效的翻译,便于更新和修改,也适用于整合包进行特殊的操作。

      动态翻译通过名称映射表来映射所有游戏内被绘制的字符,从而达到替换/翻译的目标。


      [DT]动态翻译 (DynTranslation)-第1张图片

       

       

      在进行mod本地化 的时候,有时会遇到部分文本的硬编码无法简单国际化的问题,导致国际化工作比较困难,通常需要进行对源文件的注入进行修改,一方面对源文件造成了破坏性的改动,而且进行更新后又需要重复工作。

       

      这个mod的对象是mod汉化人员,和对应的使用玩家,主要针对部分国际化不完善的mod,提供流畅的汉化体验。

       

      同时在一些娱乐向方面,我们需要替换游戏内文本来达到一些特殊效果,这时候也需要对游戏内文本进行修改。

       

      置顶更新内容

      对应于mc1.16.x mod版本1.3.5 beta 以及之后版本更新物品的提示框联网翻译功能;

      使用神经翻译在主流mod的英译中集合上进行训练微调,在minecraft相关语料集上达到主流翻译器水平;

      感谢CFPA提供的语料库和参与翻译的所有译者。

      在线api使用 CC BY-NC-SA 4.0 协议发布。


      现阶段功能处于测试阶段,会对网络访问进行限制(每小时360次的访问),作者不保证翻译服务的稳定性,如有疑问请即时反馈。


      更新了新的数字匹配,在避免分词的情况下进行包含变动数字的快速匹配替换。


      使用方法

      悬浮指针在物品上,按住默认键位Alt以进行联网翻译,改功能无法对创造模式搜索栏进行翻译,因为他拦截了键盘事件。


      DynTranslation替换的时间节点

      DynTranslation通过映射表文件进行运行时文本替换来达到以上效果。

       

      通过介绍时间节点来避免不必要的问题产生,动态翻译在进行替换时,需要在Forge完成初始化时才能锁定配置文件位置,所以在初始化完成前无法加载配置文件,同时这样做也是减少CPU空转时间,因为在加载时间点会产生大量动态数字,造成翻译队列阻塞,过高的消耗CPU资源。


      所以在初始化完成前,动态翻译本身不能替换加载界面的文本。

       

      替换方法

      通过简单的文本替换,这里采用了json文件作为载体,对映射文件进行读取;

       

      关于映射文件命名如下:

      父文件夹:位于mod的config文件夹下,并且会创建子文件夹名为dyntranslation

      子文件命名:所有子文件,必须以形如 dyntranslation_{name}.json 的规范命名,其中{name}为所有系统文件可用字符。

      [DT]动态翻译 (DynTranslation)-第2张图片 

       

      替换内容:替换内容以 json 的标准格式为准的Map嵌套形式。

      {
          //容器(GUI)包名,“*”表示没有在任何容器(GUI)中,大部分在Tooltip中
        "*": { 
          "§f腐肉§r": "§d腐肉§r",
          "  盔甲": "",
          "§7穿在腿上时:": "§8穿在腿上时"
        },
          //这里表示字符显示在GuiEnchantment中
        "net.minecraft.client.gui.GuiEnchantment": {
          "附魔": "附魔"
        }
      }

       

      性能影响

      由于是每帧替换,所以其性能影响和帧数也是成正比的,最后的影响结果是线性的。其中的IO操作和分词耗时操作放在其他线程中,最终的性能影响来自于:

      map的存取性能

      map的大小

      线程的创建销毁时间

      新词汇的产生速度过快导致的队列阻塞

      后两者无法通过人工进行控制,所以我们关注前两者,在jdk1.8的map实现中HashMap的性能是最高的,所以通过拷贝的方式防止使用性能较低的线程安全Map,在实测中新增加的内容打开分词后的平均影响如下图:[DT]动态翻译 (DynTranslation)-第3张图片

      平均值为3099.375,量纲为纳秒,小于毫秒的数量级,可以认为在稀疏操作下的影响可以忽略不记。


      具体内容请查看本站教程


      蓝奏云下载地址:

      https://nowandfuture.lanzoui.com/b09fa75kh

      此地址由作者提供。


    • 动态翻译教程
       4598次浏览8月前

    短评加载中..