diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9d8b6104b8f..f7cd37d0b825 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,6 @@ - [贡献方针](#贡献方针) - [仓库结构](#仓库结构) - - [翻译用语共识](#翻译用语共识) - [翻译贡献方针](#翻译贡献方针) - [总则](#总则) - [Pull Request 相关规定](#pull-request-相关规定) @@ -30,29 +29,28 @@ Minecraft-Mod-Language-Package ├─.github --------------- // GitHub 相关配置文件 ├─config ---------------- // 配置文件 - │ └─packer -------------- // 打包器配置文件 + │ └─packer ------------- // 打包器配置文件 ├─projects -------------- // 翻译文件 - │ └─(Minecraft 版本) ---- // 不带 fabric 字样的是用于 Forge 和 NeoForge 模组的 - │  └─assets - │  ├─(CurseForge 项目名称) ---- // 见下 - │  │ └─(命名空间) ------------- // 见下 - │  │ └─lang ----------------- // 语言文件文件夹 - │  │ ├─en_us.json --------- // English (United States) 语言文件 - │  │ └─zh_cn.json --------- // 中文 (简体) 语言文件 - │ ├─(Modrinth 项目名称)------- // 见下 - │  │ └─(命名空间) ------------- // 见下 - │  │ └─lang ----------------- // 语言文件文件夹 - │  │ ├─en_us.json --------- // English (United States) 语言文件 - │  │ └─zh_cn.json --------- // 中文 (简体) 语言文件 - │  ├─minecraft - │  │ └─minecraft -------------- // Minecraft 原版使用的命名空间 - │  │ ├─font - │  │ │ └─glyph_sizes.bin ---- // 全角标点修复文件 - │  │ └─textures - │  │ └─font --------------- // 全角标点修复文件 - │  └─1UNKNOWN ----------------- // 存放不在 CurseForge 和 Modrinth 上发布的模组 - │  └─(命名空间) - │  └─lang + │ ├─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 @@ -61,29 +59,25 @@ Minecraft-Mod-Language-Package └─Uploader -------- // 上传器,用于将资源包文件上传到文件分发服务器 ``` -**CurseForge 项目名称**:以匠魂为例,它的 CurseForge 页面地址是 `https://www.curseforge.com/minecraft/mc-mods/tinkers-construct`,则 `CurseForge 项目名称` 为 `tinkers-construct`。因为它是唯一的,被用来追溯模组来源。 +**项目名称(Project Slug)**:文件夹名称取自模组在发布平台上的 Slug(URL 中的唯一标识符),仅用于 bot 爬取模组信息,不影响打包等策略。 -**命名空间(Namespace)**:以匠魂为例,用压缩软件打开模组文件(JAR 格式),它的 en_us.json 的路径为 `assets/tconstruct/lang/en_us.json`,则 `{命名空间}` 为 `assets/` 和 `/lang` 之间的内容,即 `tconstruct`。一个模组可能有多个命名空间。命名空间介绍见 [Minecraft Wiki](https://zh.minecraft.wiki/w/%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4ID?variant=zh-cn#%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4)。 +- **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`。 -**Modrinth 项目名称**:以 Modrinth 独占模组 Clean F3 为例,它的 Modrinth 页面地址是 `https://modrinth.com/mod/clean-f3`,则在 `mod/` 后的内容 `clean-f3` 为 `{Modrinth 项目名称}` 的**主体**部分,而为了与 Curseforge 上发布的模组作以区分,所有仅在 Modrinth 上发布的模组,在其之前需要添加 `modrinth-` 作为区分。综上,它的 `{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:命名空间](https://zh.minecraft.wiki/w/%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4ID?variant=zh-cn#%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4)。 仓库中“命名空间”文件夹下的目录结构与[资源包](https://zh.minecraft.wiki/w/%E8%B5%84%E6%BA%90%E5%8C%85)的相应结构相同,其他可用资源包加载的本地化文件亦可接收。 -projects 文件夹下只标出模组所属的大版本号,其中的模组翻译文件应满足以下优先级: +**项目名称(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 等)的分支。 - -## 翻译用语共识 - -1. “材料 + 质/制 + 中心词”的翻译,如“铁质涡轮”或“铁制涡轮”,二者皆合理。只需单模组内统一。 -2. 关于“木制品名称”的翻译,可参考 [#4525](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/issues/4525) 的解决方法。 - +- 例:Minecraft 版本 1.19.2 与 1.19.4 均属同一大版本号 1.19 下的子版本。 + 若某一模组在两个版本上的开发均活跃,由于 1.19.4 的版本号更高,因此优先考虑该模组在 1.19.4 下的译名标准化情况与适配情况。 + 这一优先级不会影响到模组在其他大版本下(如 1.18、1.12.2 等)的分支。 ## 翻译贡献方针 @@ -91,15 +85,16 @@ projects 文件夹下只标出模组所属的大版本号,其中的模组翻 ### 总则 -- 翻译**必须**符合 [Minecraft 模组简体中文翻译规范与指南](https://cfpa.site/TransRules/)的规定。 -- **拒绝**接收机器翻译(含生成式 AI)、生硬翻译。 +- 翻译**必须**遵守 [Minecraft 模组简体中文翻译指南](https://cfpa.site/TransRules/)。 +- **拒绝**接收机器翻译(含生成式 AI)、生硬翻译(不符合中文表达习惯的)。 - 若直接提交此类翻译,该 PR 将被打上“生硬翻译”标签。 - - 若作者不及时进行有效修改,PR 可能会依照本仓库的[搁置规则](#搁置规则)处理。 -- 翻译**必须**在审校后才能进入仓库。 + - 若提交者未及时进行有效修改,依照本仓库的[搁置规则](#搁置规则)处理。 + - 已经过译后编辑,且**满足指南要求**的机器翻译可以接收。 +- 提交的翻译**必须**在审查后才能进入仓库。 ### Pull Request 相关规定 -可查看[视频教程](https://www.bilibili.com/video/BV1yqgge9EVK/)或[文字教程](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/wiki/%E4%BD%BF%E7%94%A8-GitHub-%E6%8F%90%E4%BA%A4%E7%BF%BB%E8%AF%91)来学习。注意,视频或文字教程都只介绍了 Pull Request 的使用方法,贡献方针仍需阅读。同时,我们默认翻译贡献者已拥有一定的 Github 基础知识。 +可查看[视频教程](https://www.bilibili.com/video/BV1yqgge9EVK/)或[文字教程](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/wiki/%E4%BD%BF%E7%94%A8-GitHub-%E6%8F%90%E4%BA%A4%E7%BF%BB%E8%AF%91)来学习。注意,视频或文字教程都只介绍了 Pull Request 的使用方法,贡献方针仍需阅读。同时,我们默认翻译贡献者已拥有一定的 GitHub 基础知识。 视频或文字教程中与翻译贡献方针不同的地方,以本方针为准。 @@ -117,11 +112,13 @@ projects 文件夹下只标出模组所属的大版本号,其中的模组翻 - **必须**提交 PR 至`main`分支。 - **必须**路径合规,详见[仓库结构](#仓库结构)。 -- **必须**包含简体中文、翻译源语言的语言文件。 - - 若翻译源语言不是英语,且模组有英语语言文件,则**必须**包含英语语言文件。 +- **必须**包含简体中文、项目源语言的语言文件。 + - 项目源语言是指模组作者使用的语言,且该语言本地化文件是**由模组作者提供**的。 + - 即使项目源语言不是英语,只要模组有英语语言文件,那么英语语言文件也**必须**提交。 - **建议**每个 PR 仅含一个模组。 - 若多个模组的中文总行数不超过 200,**建议**合并为一个 PR。 - **建议**用相关词语填写提交消息(Commit Message),如`提交`、`更新`、`修改`、`删除`。 +- **建议**新创建一个分支(branch)来提交翻译,而不是直接将修改放到你自己的`main`分支提交。