常规型妹抖 发表于 2025-2-3 21:48:40

被很多人忽略的 tag_data.json 的实用知识与技巧

本帖最后由 常规型妹抖 于 2025-2-4 18:00 编辑

tag_data.json,这个文件在游戏本体位于 \starsector-core\data\config,在模组中位于 mods\XXXXXX\data\config
其功能很直白,为游戏程序中的 tag 在 [情报信息] 界面中赋予一个名称,实际功能上相当于一种外置本地化文件,并且可以设置排序、文字颜色、标签宽度等内容。
在原版游戏 (汉化) 的该文件中,你会发现一系列类似内容:
    "Colony threats":{
      "name":"殖民地威胁",
      #"color":,
      #"width":119,
      "putFirst":true,
      "sort":34,
    },
"Colony threats" 是游戏程序中的对应 tag;"name" 是在游戏内 [情报信息] 中对应内容显示的标签文字;"color" 是文字颜色,前面的注释用 # 符号使该项无效;"width" 是标签宽度;有 "putFirst" 这一项的会优先放在前面 (靠上靠左);"sort" 则是强制排序按数字从大到小排序,而非出现先后顺序。

原版文件中有很多项的 "color" 被 # 无效化,删除 # 并保存后便能得到多彩情报 (不对),你也可以手动给想要更鲜艳的项目添加颜色。

然后是模组制作与汉化相关,理解以上内容就应该能明白,制作与汉化时不需要再将这些 tag 做成中文,还可以用该文件在显示上使其获得色彩——汉化前最好先检查一下这个模组有没有 tag_data.json 文件。
这里最大的意义是,一些模组在联动时会在功能上共用同一个tag,而不知情的汉化者把一个模组的 tag 改掉以后,联动模组就会显示多个重复标签,而非合并同类项。

例子之一就是 势力争霸,该模组的外置汉化文件 Nexerelin\data\strings\strings.json 中可以找到以下条目:
      "intelTagDebug":"调试",
      "intelTagStrategicAI":"战略AI",
      "intelTagPersonal":"人事",

而在修改头像、MagicLib成就等模组中,都调用了 "Personal" 这一 tag,导致游戏中同时显示 与 [人事] 两个标签。
运用 tag_data.json 的解决办法:
将 势力争霸 的 strings.json 文件中的对应条目修改为:
      "intelTagDebug":"Debug",
      "intelTagStrategicAI":"Strategic AI",
      "intelTagPersonal":"Personal",

在 Nexerelin\data\config 文件夹中新建 txt 文件并改名为 tag_data.json,其中输入以下内容并保存:

{
    "Debug":{
      "name":"调试",
    },
    "Strategic AI":{
      "name":"战略 AI",
    },
    "Personal":{
      "name":"人事",
    },
}

成功实现 tag 项目合并

forrevenge 发表于 2025-2-3 21:57:56

非常好量产妹妹,这就去给我用不上的tag全整到一个trash合集里(

常规型妹抖 发表于 2025-2-4 02:00:58

forrevenge 发表于 2025-2-3 21:57
非常好量产妹妹,这就去给我用不上的tag全整到一个trash合集里(

这个是没戏的,必须一致的 tag 才能合并,这也是为啥我举的例子是改 Nex 的外置文件——这个好改,不像其他老外模组你得去改 jar 文件才行……

一个 tag 是 "人事",一个 tag 是 "Personal",就算都在 tag_data.json 里设置显示为 "人事",游戏里也只会变成并排俩 "人事" 标签

Yuuzhan Vong 发表于 2025-2-4 11:01:23

而在修改头像、MagicLib成就等模组中,都调用了 "Personal" 这一 tag,导致游戏中同时显示 与 [人事] 两个标签。
运用 tag_data.json 的解决办法:
将 strings.json 文件中的对应条目修改为:
      "intelTagDebug":"Debug",
      "intelTagStrategicAI":"Strategic AI",
      "intelTagPersonal":"Personal",
这个personal的文本之前找了半天没找着在哪,用这法直接解决了,
将 strings.json 文件中的对应条目修改为
不过这句话我直接空指针了2分钟,才反应过来是改Nexerelin的strings不是改MagicLib的
页: [1]
查看完整版本: 被很多人忽略的 tag_data.json 的实用知识与技巧