本帖最后由 yushijinhun 于 2017-1-31 12:45 编辑
GitHub:to2mbn/maptranslator
开源许可证:GPL-2.0
已在minecraftforum发布:
maptranslator - Minecraft map translator - Minecraft Tools - Mapping and Modding - Minecraft Forum
截图
图床为GitHub Pages,大陆地区可能崩
功能
1.
支持翻译Minecraft1.8+的地图(理论1.8+,1.10+测试通过)
2.
能对命令进行解析(如对于/tellraw @a {"text":"ABC"},则会将ABC抽取出来。对于更加复杂的、多层嵌套的也可以解析)
3.
支持对结构方块 / Loot Tables进行翻译
4.
可以在NBT浏览器中找出原文出现的位置
5.
也可以用来检查地图中的命令是否正确(尽管该软件是用来翻译地图的)
下载
可以从GitHub Releases上下载最新构建的版本
注意:这个软件是快速发布(Release early, release often)的,所以可能隔三差五会有新版本,并且我不会在这里更新→_→
扫毒报告(virscan.org)
使用教程
使用教程 (GitHub Wiki)
如果您是地图作者,想用该软件检查地图里的命令是否正确,这里有教程:用maptranslator来检查地图 (GitHub Wiki)
其它
感谢这些人在开发过程中对我的帮助:
@pca006132
@gamerteam
代码行数统计:
- # commit: 1c518a295ec8562848762daa7981bee803911f97
- $ cloc .
- 102 text files.
- 102 unique files.
- 81 files ignored.
- http://cloc.sourceforge.net v 1.60 T=0.19 s (502.8 files/s, 58537.4 lines/s)
- -------------------------------------------------------------------------------
- Language files blank comment code
- -------------------------------------------------------------------------------
- Java 91 1433 2020 7480
- Maven 1 1 0 68
- YAML 1 1 9 31
- CSS 2 3 0 15
- -------------------------------------------------------------------------------
- SUM: 95 1438 2029 7594
- -------------------------------------------------------------------------------
复制代码 |
算法原理:
识别需要翻译的字符串的算法是这样的:首先将nbt/json以树的结构组织起来,然后定义每一个节点可以拥有一个或多个tag,tag能够反映一个节点的属性(如用途)。定义一些规则,规则定义了当一个节点和与它相关的节点具有怎样的属性和tag时可以推断出这个节点应被标记什么tag。然后首先给根节点打上tag,再通过不断迭代应用这些规则,使所有节点标记上它应具有的tag。对于命令,则将其中的nbt/json部分截取出来,解析并以树的结构组织,给它的根节点打上tag,和上面一样不断应用规则即可。最后找出所有被标记为 可翻译 的节点即可。 |
2017/1/29 EDIT:添加用maptranslator来检查地图的教程
2017/1/31 EDIT:在官方论坛发布
如果你觉得这个软件好用,就请给我在GitHub上点个star,或评个分吧(*>_<*)