Skip to content

Latest commit

 

History

History
237 lines (177 loc) · 14.7 KB

File metadata and controls

237 lines (177 loc) · 14.7 KB

贡献方针

贡献方针是参与本项目贡献的指导文件。

目录:

仓库结构

Minecraft-Mod-Language-Package
  ├─.github --------------- // GitHub 相关配置文件
  ├─config ---------------- // 配置文件
  │  └─packer ------------- // 打包器配置文件
  ├─projects -------------- // 翻译文件
  │  ├─assets
  │  │ ├─(项目名称) ------------- // 见下
  │  │ │ └─(Minecraft 版本) ---- // 不带 fabric 字样的是用于 Forge 和 NeoForge 模组的
  │  │ │   └─(命名空间) -------- // 见下
  │  │ │     └─lang ------------- // 语言文件文件夹
  │  │ │       ├─en_us.json ----- // English (United States) 语言文件
  │  │ │       └─zh_cn.json ----- // 中文 (简体) 语言文件
  │  │ ├─minecraft
  │  │ │ └─(Minecraft 版本)
  │  │ │   └─minecraft ---------- // Minecraft 原版使用的命名空间
  │  │ │     ├─font
  │  │ │     │ └─glyph_sizes.bin - // 全角标点修复文件
  │  │ │     └─textures
  │  │ │       └─font ----------- // 全角标点修复文件
  │  │ └─1UNKNOWN --------------- // 存放不在 CurseForge 和 Modrinth 上发布的模组
  │  │   └─(Minecraft 版本)
  │  │     └─(命名空间)
  │  │       └─lang
  │  ├─packer-example ----- // Packer 配置示例,展示打包策略的用法
  │  └─templates ---------- // 资源包模板文件(pack.mcmeta、pack.png 等)
  └─src --------------- // 各种自动化工具的源码
    ├─Formatter ------- // 格式化工具,曾用于统一翻译文件格式
    ├─Language.Core 
    ├─Packer ---------- // 打包器,用于自动生成资源包文件并发布 Release
    ├─Spider ---------- // 爬虫,曾用于爬取热门模组的语言文件供翻译
    └─Uploader -------- // 上传器,用于将资源包文件上传到文件分发服务器

项目名称(Project Slug):文件夹名称取自模组在发布平台上的 Slug(URL 中的唯一标识符),仅用于 bot 爬取模组信息,不影响打包等策略。

  • CurseForge 来源:以匠魂为例,它的 CurseForge 页面地址是 https://www.curseforge.com/minecraft/mc-mods/tinkers-construct,则 Slug 为 tinkers-construct,直接用作文件夹名。
  • Modrinth 来源:以 Clean F3 为例,它的 Modrinth 页面地址是 https://modrinth.com/mod/clean-f3,则 Slug 为 clean-f3。为了与 CurseForge 上发布的模组作以区分,所有仅在 Modrinth 上发布的模组,需在其 Slug 前添加 modrinth- 前缀作为区分,即文件夹名为 modrinth-clean-f3

综上,项目名称即文件夹名,可能是 tinkers-construct(CurseForge 模组)或 modrinth-clean-f3(Modrinth 独占模组),因 Slug 具有唯一性,被用来追溯模组来源。

命名空间(Namespace):以匠魂为例,用压缩软件打开模组文件(JAR 格式),它的 en_us.json 的路径为 assets/tconstruct/lang/en_us.json,则 {命名空间}assets//lang 之间的内容,即 tconstruct。一个模组可能有多个命名空间。命名空间介绍见 Minecraft Wiki:命名空间

仓库中“命名空间”文件夹下的目录结构与资源包的相应结构相同,其他可用资源包加载的本地化文件亦可接收。

项目名称(Project Slug) 文件夹下只标出模组所属的大版本号,其中的模组翻译文件应满足以下优先级:

  1. 模组活跃更新的 Minecraft 版本优先。
  2. 若所有小版本都活跃更新,则 Minecraft 版本高者优先。
  • 例:Minecraft 版本 1.19.2 与 1.19.4 均属同一大版本号 1.19 下的子版本。
    若某一模组在两个版本上的开发均活跃,由于 1.19.4 的版本号更高,因此优先考虑该模组在 1.19.4 下的译名标准化情况与适配情况。
    这一优先级不会影响到模组在其他大版本下(如 1.18、1.12.2 等)的分支。

翻译贡献方针

以下内容只针对 projects 文件夹下的贡献。

总则

  • 翻译必须遵守 Minecraft 模组简体中文翻译指南
  • 拒绝接收机器翻译(含生成式 AI)、生硬翻译(不符合中文表达习惯的)。
    • 若直接提交此类翻译,该 PR 将被打上“生硬翻译”标签。
    • 若提交者未及时进行有效修改,依照本仓库的搁置规则处理。
    • 已经过译后编辑,且满足指南要求的机器翻译可以接收。
  • 提交的翻译必须在审查后才能进入仓库。

Pull Request 相关规定

可查看视频教程文字教程来学习。注意,视频或文字教程都只介绍了 Pull Request 的使用方法,贡献方针仍需阅读。同时,我们默认翻译贡献者已拥有一定的 GitHub 基础知识。

视频或文字教程中与翻译贡献方针不同的地方,以本方针为准。

标题与文字内容

  • PR 标题应该简洁明了,格式为 {模组英文全名}{空格}{简述}
    • ✔️Tinkers' Construct 翻译提交
    • ✔️Tinkers' Construct 和 Tinkers' Reforged 译名修正
    • TiC 翻译更新(未使用全名)
    • 匠魂翻译更新(未包含英文名)
    • 提交 Tinkers' Construct 翻译(英文名前不应有文字)
  • 提交时应签署贡献者许可协议,也可发送 PR 后签署。

PR 内容

  • 必须提交 PR 至main分支。
  • 必须路径合规,详见仓库结构
  • 必须包含简体中文、项目源语言的语言文件。
    • 项目源语言是指模组作者使用的语言,且该语言本地化文件是由模组作者提供的。
    • 即使项目源语言不是英语,只要模组有英语语言文件,那么英语语言文件也必须提交。
  • 建议每个 PR 仅含一个模组。
    • 若多个模组的中文总行数不超过 200,建议合并为一个 PR。
  • 建议用相关词语填写提交消息(Commit Message),如提交更新修改删除
  • 建议新创建一个分支(branch)来提交翻译,而不是直接将修改放到你自己的main分支提交。

翻译审查

审查规则

审查人

  • 任何人都能利用 GitHub 提供的相关功能来审查 PR 中翻译。所有参与审查的用户即为审查人。
  • CFPA 团队 的成员(Member)和本仓库的协作者(Collaborator)是具有团队官方性质的审查人,统称为管理员。
  • 至少一位管理员对 PR 给出批准(Approval)意见后,PR 才能合并。
  • 管理员在给出批准意见后给 PR 加上“即将合并”标签,此后需至少等待 24 小时,若等待期间没有新动态则可以合并 PR。
    • “动态”包括但不限于 PR 作者提交(Commit)、审查人评论。
  • 管理员有根据常识判断和处置包含不适宜内容 PR 的权力。处置措施包括但不限于:要求使用中立表述、删减、关闭 PR、限制用户提交。

PR 作者

  • PR 作者对审查作出合理回应,或接受建议,或提出异议。
    • 在接受审查人的建议后,PR 作者解决(Resolve)相应的对话(Conversation)。
    • 若拒绝审查人的建议,或和审查人的观点相左,PR 作者不应急于解决对话(Resolve conversation)。
  • PR 作者及时做出回应,否则 PR 可能会按搁置规则关闭。
  • PR 作者如遇到 Git/GitHub 操作上的困难,请先询问后操作,避免造成混乱。

搁置规则

搁置规则用于解决由于 PR 作者迟迟不出面响应审查要求而导致的 PR 积压问题。

  1. 若 PR 中存在作者未响应的评论超过 7 天,审查人有权提及(@)PR 作者,提醒其处理相应审查意见,然后加上“即将被搁置”标签。
  2. 若“即将被搁置”标签存在超过 7 天,PR 作者将被视为无法回应。此时:
    • 2.1 若存在要求 PR 作者参与的审查意见,PR 将被加上“即将拒收”标签。1 天后 PR 将被关闭。
    • 2.2 若审查意见都无需 PR 作者参与,PR 将被加上“即将拒收”标签。1 天缓冲期内官方审查人可以直接采纳审查意见,并终止计时,转入合并流程。
  3. 在 1、2 所述过程中,若 PR 作者做出了回应,标签将被清除,计时重新从 1 开始。

因搁置而关闭的 PR,PR 作者若想继续更新,可联系管理员重新打开(Reopen)PR。

公示规则

公示规则是为了传播 PR 中某个(些)模组译名或词条的重大更改而设立的,包括但不限于:远古译名的更改,错误译名的更正。

  1. 该规则适用于与官方翻译或社区流传度较广的翻译存在重大差异,且存在译名或词条更改的 PR。
  2. 纯文档或代码贡献 PR 不应进入公示流程(存在停止支持或重新支持某模组翻译的除外)(例:#4327#4215
  3. 若 PR 在审查通过后符合上述规则,则视为该 PR 进入公示流程,同时加上“需要公示”标签,并择日通过如 Bilibili、QQ 群、MC 百科社群等平台发布公示,至发布之日 14 天止视为公示流程结束。此时清除标签并加上“即将合并”标签,转入合并流程。
    • 公示时,应当附带:PR 链接、原文、更改内容、更改缘由等,选择性附带图片。

提示

  • 如果文件路径不包含语言标记 zh_cn,一般需要修改全局或局域的 Packer 配置,否则它们会被打包器排除,不会进入用户使用的资源包。具体操作参见文档
    • 如果这些文件放置在 fonttextures 中,无需修改配置;默认已经对这两处进行了特殊处理。
  • 不同版本的同一模组可通过自定义文件检索策略同步翻译。

代码贡献指南

以下内容只针对对 src 文件夹下的贡献。

  • 我们默认你已了解 C#、GitHub Actions 以及相关计算机的基本知识。
  • 贡献代码有着更加严格的审查,请不要发无意义的、影响本项目运作的 PR(例:SPAM)。
  • 在提交前,你已测试过你的代码能够正常的运行。
  • 请简要描述提交的代码的作用

配置更改指南

以下内容只针对对 config 文件夹下的贡献。这里里只列出了部分修改可能较大的文件。

Packer

路径:./config/packer/[version].json(如 1.12 的文件在 1.12.2.json

该文件内放置了所有正在维护的版本的打包配置。 不要随意删去内容,除非你知道它为什么弃用。 加入内容相对而言宽松一些,但最好还是说明理由。

下面没有提到的一般都不适合改动;如果需要,最好说明理由。

主要的更改场景:

  • 增加新翻译版本
    • 需要将所有项填写一遍,同时需要更新 .github/workflows/packer.yml.github/workflows/pr-packer.yml.github\boring-cyborg.yml,以及 CFPABot 等相关服务。没有规划最好不要乱动。
  • 更改字符替换表
    • 修改characterReplacement,格式与已有文本一致。对于 基础多语种平面(BMP) 以外的字符,最好用 UTF-16 代理对书写。
    • 同时可能需要修改字体文件。
  • 处理非文本文件
  • 停止对某模组的支持
    • 把该模组的项目名称/命名空间加入exclusionMods/exclusionDomains(二者取其一)。

联系我们

若有不明白的地方,可前往 QQ 群(630943368)。