[DT]动态翻译 (DynTranslation)
模组属性评比
    60%的人认为动态翻译好玩。
    40%的人认为动态翻译太简单。
    80%的人认为动态翻译很稳定。
    80%的人认为动态翻译很实用。
    20%的人认为动态翻译很漂亮。
    40%的人认为动态翻译合理。
    60%的人认为动态翻译兼容好。
    60%的人认为动态翻译很耐玩。
路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志更多
历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    停更
    开源
    [DT]

    动态翻译

    DynTranslation

    0.0

    无人问津

    昨日指数: 55
    昨日平均指数: 79.588

    15.10万

    总浏览

    --

    资料填充率


    下载本模组
    • 概述

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

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

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

      在进行Mod 本地化 的时候,有时会遇到部分文本的硬编码无法简单国际化的问题,导致国际化工作比较困难。

      通常需要进行对源文件的注入进行修改,一方面对源文件造成了破坏性的改动,而且进行更新后又需要重复工作。


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

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

      置顶更新内容

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

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

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

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

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

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

      使用方法

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


      DynTranslation 替换的时间节点

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

      通过介绍时间节点来避免不必要的问题产生,动态翻译在进行替换时,需要在 Forge 完成初始化时才能锁定配置文件位置。

      在初始化完成前无法加载配置文件,同时这样做也是减少 CPU 空转时间,因为在加载时间点会产生大量动态数字,造成翻译队列阻塞,过高的消耗 CPU 资源。

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

      替换方法

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

      关于映射文件命名如下:

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

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

      [DT]动态翻译 (DynTranslation)-第2张图片 替换内容:替换内容以 json 的标准格式为准的 Map 嵌套形式。

      例如:

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

       

      性能影响

      由于是每帧替换,所以其性能影响和帧数也是成正比的,最后的影响结果是线性的。

      其中的 IO 操作和分词耗时操作放在其他线程中,最终的性能影响来自于:

      Map 的存取性能;

      Map 的大小;

      线程的创建销毁时间;

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

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

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

      备注

      具体内容请查看本站 Mod 教程界面。


      蓝奏云下载地址:

      https://nowandfuture.lanzoui.com/b09fa75kh

      此地址由作者提供。

    • 动态翻译教程
       7226次浏览2年前

    短评加载中..