Quests Lang Splitter

Quests Lang Splitter

这个模组增加了一个功能,可以将语言文件拆分以更好地进行版本控制,同时还添加了一些实用命令。

FTB Quests 语言文件分割器

📰 简介

本模组添加了分割语言文件的功能,以便更好地进行版本控制,同时还提供了一些实用命令。

📦 安装

模组可在 CurseForge 上获取。

🔧 功能特性

👨‍💻 命令

  • split

将语言文件按各自的类别类型进行分割,对于任务、任务子项和任务链接,则按章节分组。

lang/
├─ en_us/
│  ├─ chapters/
│  │  ├─ chapter1.snbt # 包含任务、任务子项和任务链接的ID
│  │  ├─ chapter2.snbt
│  │  └─ chapter3.snbt
│  ├─ chapter.snbt # 章节名称
│  ├─ chapter_group.snbt # 章节组名称
│  ├─ file.snbt # 任务书名称
│  └─ reward_table.snbt # 奖励表名称
└─ en_us.snbt # 原始文件,在加载/重载时会从分割文件中更新

replace_unmerged: 布尔值(通常情况下使用 false,除非你确定要覆盖之前生成但未合并的分割文件)

locale: 语言代码(例如:pt_br、zh_ch、ko_kr)

/langsplitter split <replace_unmerged> [<locale>]
# 如果不提供语言代码,则会分割所有可用的语言文件。
  • fill_missing_translation

根据 en_us 语言填充缺失的语言条目,然后运行分割命令。 注意:你可以在 debug.log 中查看所有新增的条目。

/langsplitter fill_missing_translation <replace_unmerged> <locale>
  • purge_merged

当你加载或重载任务时,如果有可读的分割文件,它们会被合并到原始文件中,之后被重命名为 .snbt_merged。如果你不想看到这些文件,可以使用此命令将它们从文件夹中清除。

/langsplitter purge_merged

使用方法

  • 配置你的 .gitignore:
# FTB Quests 语言文件分割器
# 忽略原始语言文件,如 en_us.snbt
config/ftbquests/quests/lang/*.snbt

# 忽略恢复文件
config/ftbquests/quests/lang/recovery/*.snbt

# 忽略已合并的文件
config/ftbquests/quests/lang/**/*.snbt_merged
  • 译者流程:

    • 首先运行 fill_missing_translation 命令,生成包含所有条目的文件。
    • 翻译你需要翻译的内容。
    • 运行 /ftbquests reload 来合并你的更改。
    • 现在你的文件将被重命名为 .snbt_merged。
    • 如果你还需要进行更多更改,可以选择:
      • 再次运行 split 命令来生成文件。
      • 或者编辑现在的 .snbt_merged 文件,完成后改回 .snbt 扩展名。
    • 然后再次重载以合并新的更改。
    • 如果所有内容都准备好提交了,只需最后运行一次 split,然后提交相关文件(如果遇到了 .snbt_merged 文件,运行 purge_merged 清理,但配置正确的 .gitignore 应该能自动处理)。
  • 维护者流程:

    • 更新你仓库中的 .gitignore。
    • 现在 /lang/ 文件夹应该只包含语言文件夹,不再包含单独的文件。
    • 要生成这些初始文件,运行 split 命令并提交这些文件。
    • 文件夹设置完成后,现在可以删除原始的语言 .snbt 文件(这些文件现在会在运行时从分割文件合并时自动生成)。
    • 从现在开始,只接受来自分割文件的 PR/提交。
  • 关于 recovery 文件夹:

    • 当文件被合并并替换了已有条目时(例如你重新翻译了一个条目),它会将该条目备份到 recovery 文件夹,其中包含以下内容:
    • 会生成一个类似 en_us_<时间戳>.snbt 的文件(例如:en_us_1755120819.snbt)
  {
    "chapters/basic_armor.snbt": {
       quest.004D61425172324F.quest_subtitle: {
         new: "这是我新的副标题"
         old: "这是旧的副标题"
       }
    }
  }

📝 许可证

本项目基于 MIT 许可证授权。

📬 联系方式

你可以通过 All The Mods Discord 联系我,使用 @Uncandango 提及我。你也可以在 Github 上提交问题,或在 CurseForge 的模组评论区留言。

👍 赞助商

YourKit Logo

YourKit 通过创新智能的监控和分析工具支持开源项目,用于监控和分析 Java 和 .NET 应用程序。YourKit 是 YourKit Java Profiler、YourKit .NET Profiler 和 YourKit YouMonitor 的创造者。