diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e5a4e8f1c536..2c360f9f86a6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,6 +17,7 @@ - [审查人](#审查人) - [PR 作者](#pr-作者) - [搁置规则](#搁置规则) + - [公示规则](#公示规则) - [提示](#提示) - [代码贡献指南](#代码贡献指南) - [配置更改指南](#配置更改指南) @@ -38,16 +39,18 @@ Minecraft-Mod-Language-Package │  │ └─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 - │ └─0-modrinth-mod ----------- // 存放仅发布在 Modrinth 上的模组 + │  └─1UNKNOWN ----------------- // 存放不在 CurseForge 和 Modrinth 上发布的模组 │  └─(命名空间) │  └─lang └─src --------------- // 各种自动化工具的源码 @@ -62,12 +65,15 @@ Minecraft-Mod-Language-Package **命名空间(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)。 +**Modrinth 项目名称**:以 Modrinth 独占模组 Clean F3 为例,它的 Modrinth 页面地址是 `https://modrinth.com/mod/clean-f3`,则在 `mod/` 后的内容 `clean-f3` 为 `{Modrinth 项目名称}` 的**主体**部分,而为了与 Curseforge 上发布的模组作以区分,所有仅在 Modrinth 上发布的模组,在其之前需要添加 `modrinth-` 作为区分。综上,它的 `{Modrinth 项目名称}` 为 `modrinth-clean-f3`。 + 仓库中“命名空间”文件夹下的目录结构与[资源包](https://zh.minecraft.wiki/w/%E8%B5%84%E6%BA%90%E5%8C%85)的相应结构相同,其他可用资源包加载的本地化文件亦可接收。 projects 文件夹下只标出模组所属的大版本号,其中的模组翻译文件应满足以下优先级: -1. 模组活跃更新的 Minecraft 版本优先。若所有小版本都活跃更新,则 -2. Minecraft 版本高者优先。 +1. 模组活跃更新的 Minecraft 版本优先。 +2. 若所有小版本都活跃更新,则 Minecraft 版本高者优先。 + * 例:Minecraft 版本 1.19.2 与 1.19.4 均属同一大版本号 1.19 下的子版本。 若某一模组在两个版本上的开发均活跃,由于 1.19.4 的版本号更高,因此优先考虑该模组在 1.19.4 下的译名标准化情况与适配情况。 @@ -75,22 +81,23 @@ projects 文件夹下只标出模组所属的大版本号,其中的模组翻 ## 翻译用语共识 -1. “材料+质/制+中心词”的翻译,如“铁质涡轮”“铁制涡轮”,二者皆合理。只需单模组内统一。 -2. 关于“木制品名称”的翻译,可参考 中的解决方法。 +1. “材料 + 质/制 + 中心词”的翻译,如“铁质涡轮”或“铁制涡轮”,二者皆合理。只需单模组内统一。 +2. 关于“木制品名称”的翻译,可参考 #4525 的解决方法。 + ## 翻译贡献方针 -以下内容只针对对 [projects](./projects) 文件夹下的贡献。 +以下内容只针对 [projects](./projects) 文件夹下的贡献。 ### 总则 - 翻译**必须**符合 [Minecraft 模组简体中文翻译规范与指南](https://cfpa.site/TransRules/)的规定。 -- **拒绝**接收机器翻译(含生成式AI)、生硬翻译。 +- **拒绝**接收机器翻译(含生成式 AI)、生硬翻译。 - 翻译**必须**在审查后才能进入仓库。 ### Pull Request 相关规定 -可查看[视频教程](https://www.bilibili.com/video/BV1Ph4y1R7M8/)(已过时)或[文字教程](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 的使用方法,贡献方针仍需阅读。 +可查看[视频教程](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 基础知识。 视频或文字教程中与翻译贡献方针不同的地方,以本方针为准。 @@ -134,9 +141,9 @@ projects 文件夹下只标出模组所属的大版本号,其中的模组翻 #### 审查人 - 任何人都能利用 GitHub 提供的[相关功能](https://docs.github.com/zh/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request)来审查 PR 中翻译。所有参与审查的用户即为审查人。 -- [CFPA团队](https://github.com/CFPAOrg)的成员(Member)和[仓库](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package)的协作者(Collaborator)是具有团队官方性质的审查人。 +- [CFPA团队](https://github.com/CFPAOrg) 的成员(Member)和[仓库](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package)的协作者(Collaborator)是具有团队官方性质的审查人。 - 至少一位具有官方身份的审查人对 PR 给出批准(Approval)审查后,PR 才能合并。 -- 审查人在给出批准审查后**应**给 PR 加上“即将合并”标签,此后需等待大于 24 小时,若等待期间没有新动态则可以合并 PR。 +- 审查人在给出批准审查后**应**给 PR 加上“即将合并”标签,此后需至少等待 24 小时,若等待期间没有新动态则可以合并 PR。 - “动态”包括但不限于 PR 作者发送提交(Commit)、审查人提出意见。 #### PR 作者 @@ -149,21 +156,30 @@ projects 文件夹下只标出模组所属的大版本号,其中的模组翻 ### 搁置规则 -搁置规则的目的是解决由于 PR 作者迟迟不出面响应审查要求而导致的 PR 积压问题。 +搁置规则用于解决由于 PR 作者迟迟不出面响应审查要求而导致的 PR 积压问题。 1. 若 PR 中存在未作者未响应的审查超过 7 天,审查人有权提及(@)PR 作者,提醒其相应审查意见,然后加上“即将被搁置”标签。 2. 若“即将被搁置”标签存在超过 7 天,PR 作者将被视为无法回应。此时 - 2.1 若存在要求 PR 作者参与的审查意见,PR 将被加上“即将拒收”标签。1 天后 PR 将被关闭。 - 2.2 若审查意见都无需 PR 作者参与,PR 将被加上“即将拒收”标签。1 天缓冲期内官方审查人**可以**直接采纳审查意见,并终止计时,转入合并流程。 + - 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](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/pull/4327),[#4215](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/pull/4215)) +3. 若 PR 在**审查通过后**符合上述规则,则视为该 PR 进入公示流程,同时加上“需要公示”标签,并择日通过如 Bilibili、QQ 群、MC 百科社群等平台发布公示,至发布之日 14 天止视为公示流程结束。此时清除标签并加上“即将合并”标签,转入合并流程。 + - 公示时,应当附带:PR 链接、原文、更改内容、更改缘由等,选择性附带图片。 + ### 提示 -- 如果上传的文件中包含**非文本文件**(如`.ttf`,`.jpg`等),**有可能需要修改 [Packer 配置](config/packer.json)**,否则它们会被打包器排除,不会进入用户使用的资源包。 - - 如果这些文件放置在`font`或`textures`中,一般不用修改配置;默认已经对这两处进行了特殊处理。 -- 不同版本的同一模组可通过[自定义文件检索策略](./Packer-Index-Doc.md)同步翻译。 +- 如果文件路径不包含语言标记 `zh_cn`,一般需要**修改全局或局域的 Packer 配置**,否则它们会被打包器排除,不会进入用户使用的资源包。具体操作参见[文档](Packer-Doc.md#添加无语言标识的文件)。 + - 如果这些文件放置在 `font` 或 `textures` 中,无需修改配置;默认已经对这两处进行了特殊处理。 +- 不同版本的同一模组可通过[自定义文件检索策略](./Packer-Doc.md#检索策略)同步翻译。 ## 代码贡献指南 @@ -196,7 +212,7 @@ projects 文件夹下只标出模组所属的大版本号,其中的模组翻 ### Packer -路径:`./config/packer/[version].json`(如1.12的文件在[1.12.2.json](./config/packer/1.12.2.json)) +路径:`./config/packer/[version].json`(如 1.12 的文件在 [1.12.2.json](./config/packer/1.12.2.json)) 该文件内放置了**所有**正在维护的版本的打包配置。 不要随意*删去*内容,除非你知道它为什么弃用。 @@ -207,18 +223,15 @@ projects 文件夹下只标出模组所属的大版本号,其中的模组翻 主要的更改场景: - 增加新翻译版本 - - 需要将所有项填写一遍,同时需要更新`.github/workflows/packer.yml`、`.github/workflows/pr-packer.yml`、`.github\boring-cyborg.yml`,以及 [CFPABot](https://github.com/Cyl18/CFPABot) 等相关服务。没有规划最好不要乱动。 + - 需要将所有项填写一遍,同时需要更新 `.github/workflows/packer.yml`、`.github/workflows/pr-packer.yml`、`.github\boring-cyborg.yml`,以及 [CFPABot](https://github.com/Cyl18/CFPABot) 等相关服务。没有规划最好不要乱动。 - 更改字符替换表 - - 修改`replacementMap`,格式与已有文本一致。Unicode*基础多语种平面(BMP)*以外的字符需要使用**UTF-16代理对**输入,否则可能无法识别。 + - 修改`characterReplacement`,格式与已有文本一致。对于**基础多语种平面(BMP)**以外的字符,最好用 **UTF-16 代理对**书写。 - 同时可能需要修改字体文件。 - 处理非文本文件 - 1. 如果该文件所在的文件夹与`lang`文件夹同级,且对**任何模组都**不会有文本文件(如font\),将该文件夹加入对应版本的`noProcessNamespace`中。 - 2. 否则,将该模组的`CurseForge 项目名称`或`命名空间`中的一个(具体选哪一个看具体情况)加入`modNameBlackList`或`domainBlackList`,并将**所有**受影响的文件的相对位置加入`additionalContents`。 -- 添加非标准位置(在`assets/`以外)的文件 - - 直接加入`additionalContents` + - 参考 [Packer-Doc](Packer-Doc.md) 对其的描述。 - 停止对某模组的支持 - - 把该模组的`CurseForge 项目名称`或`命名空间`中的加入相应的`modNameBlackList`或`domainBlackList`(二者取其一)。 + - 把该模组的 `CurseForge 项目名称`或`命名空间`中的加入相应的 `exclusionMods` 或 `exclusionDomains`(二者取其一)。 ## 联系我们 -若有不明白的地方,可[前往 QQ 群](https://jq.qq.com/?_wv=1027&k=5geO1T21)(630943368,**较为活跃**)或 [Discord](https://discord.com/invite/SGve5Fn) 提问。 +若有不明白的地方,可[前往 QQ 群](https://jq.qq.com/?_wv=1027&k=5geO1T21)(630943368)。 \ No newline at end of file diff --git a/Packer-Doc.md b/Packer-Doc.md index 38fc88c004d7..d991a4e567b9 100644 --- a/Packer-Doc.md +++ b/Packer-Doc.md @@ -5,12 +5,12 @@ ## 注意事项 - 文件地址中,目录分隔符**一律使用正斜杠(`/`)**! - 地址相关 - - 下述说明中,**完整地址**永远指从**仓库根目录**算起的地址,例如对根目录下的`CONTRIBUTING.md`,应为`CONTRIBUTING.md`;对1.12版本资源包的`pack.png`,应为`projects/1.12.2/pack.png`。 - - 下述说明中,**相对地址**永远指从**特定命名空间的文件夹**算起的地址,例如对仓库中的`projects/1.18/assets/minecraft/minecraft/font/default.json`,应为`font/default.json`。 - - 下述说明中,**目标地址**永远指**分发的资源包中**,该文件应当被放置的位置,例如对上一条中提及的文件,应为`assets/minecraft/font/default.json`。 + - 下述说明中,**完整地址**永远指从**仓库根目录**算起的地址,例如对根目录下的 `CONTRIBUTING.md`,应为 `CONTRIBUTING.md`;对1.12版本资源包的 `pack.png`,应为 `projects/1.12.2/pack.png`。 + - 下述说明中,**相对地址**永远指从**特定命名空间的文件夹**算起的地址,例如对仓库中的 `projects/1.18/assets/minecraft/minecraft/font/default.json`,应为 `font/default.json`。 + - 下述说明中,**目标地址**永远指**分发的资源包中**,该文件应当被放置的位置,例如对上一条中提及的文件,应为 `assets/minecraft/font/default.json`。 - 文件相关 - - 下述说明中,**语言文件**永远指可以被打包器解读为**映射表**的文件。这包括了所有 **`lang/`下的`.lang`和`.json`文件**。 - - 下述说明中,**文本文件**永远指含有**文本内容**,但**不属于语言文件**的文件。这包括了非语言文件的`.txt`、`.md`、`.json`文件。 + - 下述说明中,**语言文件**永远指可以被打包器解读为**映射表**的文件。这包括了所有 **`lang/` 下的 `.lang` 和 `.json` 文件**。 + - 下述说明中,**文本文件**永远指含有**文本内容**,但**不属于语言文件**的文件。这包括了非语言文件的 `.txt`、`.md`、`.json` 文件。 - 下述说明中,**非文本文件**永远指**不属于以上两类**的文件,如图片或其他二进制文件。 - 本次打包器更新以后,对于**非文本文件**无需特殊处理:打包器会按照文件拓展名自动识别文件类型。 @@ -19,57 +19,57 @@ ## 配置文件 配置文件分为两类: -- 放置在`config/packer`下的**全局**配置文件,用作整个打包流程的基础配置; +- 放置在 `config/packer` 下的**全局**配置文件,用作整个打包流程的基础配置; - 放置在各命名空间下的**局域**配置文件,用于对特定命名空间(以及模组)提供特殊的配置项。 ### 文件格式 -目前而言,所有配置文件都需要填写全部项——无关项可以填写空集合,但不能不填,更不能写null。有计划在将来优化这一行为。 +目前而言,所有配置文件都需要填写全部项——无关项可以填写空集合,但不能不填,更不能写 null。有计划在将来优化这一行为。 #### 全局配置文件 -**全局**配置文件`config/packer/.json`的格式如下: +**全局**配置文件 `config/packer/.json` 的格式如下: - 根标签 object - `base` object
打包流程中的*不变配置*,不能被文件结构中的**局域配置文件**改写。包含的内容都是**不低于**命名空间层级的,因为局域配置文件就是放在命名空间一级中的。 - - `version` string
该配置文件指向的版本,以`projects/`中的文件夹名称为准。原则上*应当*与文件名中的[version]一致。 + - `version` string
该配置文件指向的版本,以 `projects/` 中的文件夹名称为准。原则上*应当*与文件名中的 [version] 一致。 - `targetLanguages` list
打包的目标语言,即最终在资源包中存在的语言。 - - string
目标语言,即该版本使用的语言标识符。
以在`lang`下的语言文件的文件名,以及其他文件的路径中,标明语言的部分为准。目前而言,使用的是`zh_cn`,尽管有消息称将要改用`zho_Hans-CN`。 + - string
目标语言,即该版本使用的语言标识符。
以在 `lang` 下的语言文件的文件名,以及其他文件的路径中,标明语言的部分为准。目前而言,使用的是 `zh_cn`,尽管有消息称将要改用 `zho_Hans-CN`。 - `exclusionMods` list
被打包器排除的模组文件夹。
如果因为某些原因需要移除某个模组的翻译(如移交官方/其他团体等),但意图保留原有翻译,可能需要这一项。 - string
排除的模组。 - `exclusionNamespaces` list
被打包器排除的 **[namespace]** | **(命名空间)**。
暂时闲置,以待后续需求。 - string
排除的命名空间。 - `floating` object
打包流程中的*可变配置*,可能被文件结构中的**局域配置文件**改写。包含的内容都是**低于**命名空间层级的,因为局域配置文件就是放在命名空间一级中的。 - - `inclusionDomains` list
强制包含的 **[domain]**。
一般而言,用于通常不会包含**语言标识符**的`domain`。
一般而言会包含`font`与`textures`,因为这两处往往不带语言标识符,且字体修复已经需要用到这两个domain;其他内容多半会出现在*局域配置*中。 + - `inclusionDomains` list
强制包含的 **[domain]**。
一般而言,用于通常不会包含**语言标识符**的 `domain`。
一般而言会包含 `font` 与 `textures`,因为这两处往往不带语言标识符,且字体修复已经需要用到这两个domain;其他内容多半会出现在*局域配置*中。 - string
强制包含的domain名称。 - `exclusionDomains` list
强制排除的 **[domain]**。
暂时闲置,或可用于排除一些策略相关的零散文件。 - string
强制排除的domain名称。 - `exclusionPaths` list
强制排除的 **[相对地址]**。 - - string
强制排除的文件的**相对地址**。
一般而言,在主配置中只会放置通用的忽略对象,例如`packer-policy.json`和`local-config.json`;其余条目最好放在*局域配置*中。 + - string
强制排除的文件的**相对地址**。
一般而言,在主配置中只会放置通用的忽略对象,例如 `packer-policy.json` 和 `local-config.json`;其余条目最好放在*局域配置*中。 - `inclusionPaths` list
强制包含的 **[相对地址]**。
暂时闲置,可以用于添加零散的无语言标记文件。 - string
强制包含的文件的**相对地址**。 - `characterReplacement` object
打包时采用的字符替换表。用于将部分字符替换至特殊位点,也可单纯用于简化输入。目前而言,包含了字体修复的有关内容。 - - `<查询语句>` string
用以替换**正则表达式**`<查询语句>`匹配对象的内容,可以是一个或多个字符,甚至可以在这里用**正则替换语句**。
主要用于*字体修复包*所需的**符号替换**,此时,查询语句通常是字面量,替换内容一般而言总是以四位*Unicode转义码*填写;对于**基础多语种平面(BMP)**以外的字符,最好用**UTF-16代理对**书写。 + - `<查询语句>` string
用以替换**正则表达式**`<查询语句>`匹配对象的内容,可以是一个或多个字符,甚至可以在这里用**正则替换语句**。
主要用于*字体修复包*所需的**符号替换**,此时,查询语句通常是字面量,替换内容一般而言总是以四位 *Unicode 转义码*填写;对于**基础多语种平面(BMP)**以外的字符,最好用 **UTF-16 代理对**书写。 - `destinationReplacement` object
打包时采用的目标地址替换。
可以用于移动文件,但暂时闲置;使用**检索策略**中的`singleton`也可以实现地址替换,但需要在每个模组下配置。 - `<查询语句>` string
用以替换**正则表达式**`<查询语句>`匹配对象的内容,可以是一个或多个字符,甚至可以在这里用**正则替换语句**。 #### 局域配置文件 -**局域**配置文件`projects//assets///local-config.json`的格式与全局配置文件中,`floating`标签下的内容(*可变配置*)一致。 +**局域**配置文件 `projects//assets///local-config.json` 的格式与全局配置文件中,`floating` 标签下的内容(*可变配置*)一致。 ### 文件容斥顺序 介于在配置文件中出现了多种包含/排除文件的配置项,有必要说明以下这些项生效的顺序: -1. `exclusionMods`和`exclusionNamespaces`在进入命名空间前即会排除相应的文件夹——甚至不会加载其中的`local-config.json`。
当然,如果是通过*检索策略*访问的,则这一项不会生效。 -2. 在剩下的命名空间中,检索文件。下面的配置项可能会被当地的*局域配置*修改,除了`targetLanguages`以外。 -3. 在所有检索到的文件中,排除掉`exclusionPaths`指定的文件,即便是通过*检索策略*访问的。 -4. 在剩下的文件中,直接包含`inclusionPaths`和`inclusionDomains`指定的文件。 -5. 在剩下的文件中,排除掉`exclusionDomains`指定的文件。 -6. 在剩下的文件中,仅包含由`targetLanguages`指定的,在路径中任意位置包含有*简体中文语言标记*的文件,其他文件不予包含。 +1. `exclusionMods` 和 `exclusionNamespaces` 在进入命名空间前即会排除相应的文件夹——甚至不会加载其中的 `local-config.json`。
当然,如果是通过*检索策略*访问的,则这一项不会生效。 +2. 在剩下的命名空间中,检索文件。下面的配置项可能会被当地的*局域配置*修改,除了 `targetLanguages` 以外。 +3. 在所有检索到的文件中,排除掉 `exclusionPaths` 指定的文件,即便是通过*检索策略*访问的。 +4. 在剩下的文件中,直接包含 `inclusionPaths` 和 `inclusionDomains` 指定的文件。 +5. 在剩下的文件中,排除掉 `exclusionDomains` 指定的文件。 +6. 在剩下的文件中,仅包含由 `targetLanguages` 指定的,在路径中任意位置包含有*简体中文语言标记*的文件,其他文件不予包含。 ### 局域配置文件的重写规则 -- 如果在某个命名空间内检测到存在`local-config.json`,打包器将会在全局配置的基础上,在其*可变配置*中**添加**该文件中的内容,并用这一修改后的配置执行**该命名空间下的**检索工作。 +- 如果在某个命名空间内检测到存在 `local-config.json`,打包器将会在全局配置的基础上,在其*可变配置*中**添加**该文件中的内容,并用这一修改后的配置执行**该命名空间下的**检索工作。 - 最好不要与全局配置中的内容重复。尽管理论上这样子可以运行,但是重复项保留哪一个或许不容易断定。 - 需要注意的是,如果通过*检索策略*来**引用其他命名空间**,打包器**只**会加载目标命名空间的局域配置,而**不会**加载原空间的局域配置;不过,在原位进行的检索工作不受影响。 @@ -88,31 +88,31 @@ - **串联**:在一个策略文件中,可以放置**多条策略**。策略将会从前往后执行,**前者**优先——和*Minecraft资源包*顺序差不多。不过,在文件冲突时,也提供了一些特殊的冲突解决选项。 - **递归**:如果**引用**了其他命名空间文件夹,那里的策略文件**也会生效**。这意味着可以实现*连续引用*——尽管前提是不出现**循环引用**。 -部分案例被放在了`projects/packer-example/`这一虚拟的“版本”下。很明显,我们**并不会**分发这一版本,但如果有条件,可以在本地构造打包器,并用这一版本做试验。 +部分案例被放在了 `projects/packer-example/` 这一虚拟的“版本”下。很明显,我们**并不会**分发这一版本,但如果有条件,可以在本地构造打包器,并用这一版本做试验。 ### 策略相关文件的格式 #### packer-policy.json -对于每个**命名空间文件夹**,策略文件为`projects//assets///packer-policy.json`。 -若找不到该文件,默认策略内容为`[{"type": "direct"}]`,也就是**原位**加载,没有特殊配置。 +对于每个**命名空间文件夹**,策略文件为 `projects//assets///packer-policy.json`。 +若找不到该文件,默认策略内容为 `[{"type": "direct"}]`,也就是**原位**加载,没有特殊配置。 - 根标签 list
打包器需要执行的策略,**从前往后执行**。如果有冲突内容,默认以**前者**优先——当然这是可以配置的。 - object
单项策略。部分参数可变。 - - `modifyOnly` bool
默认为`false`。
对于**语言文件**,若本项为`true`,对于已有的键,若在该步中提供了新的值,则将会用新值替换旧值;**不会**包含本步中新出现的键。
对于其他文件,本项无效。 - - `append` bool
默认为`false`。
对于**文本文件**,将会在已有的文本内容之后**换行**,然后连接本步的内容。
对于其他文件,本项无效。 + - `modifyOnly` bool
默认为 `false`。
对于**语言文件**,若本项为 `true`,对于已有的键,若在该步中提供了新的值,则将会用新值替换旧值;**不会**包含本步中新出现的键。
对于其他文件,本项无效。 + - `append` bool
默认为 `false`。
对于**文本文件**,将会在已有的文本内容之后**换行**,然后连接本步的内容。
对于其他文件,本项无效。 - `type` string
策略的类型。 - **若`type`的值为`direct`:** 不进行特殊处理,直接按照此处的文件结构打包。 + **若 `type` 的值为 `direct`:** 不进行特殊处理,直接按照此处的文件结构打包。 - **若`type`的值为`indirect`:** 引用给定的命名空间。对于这些文件,其*目标地址*中的*命名空间*将会自动替换为本策略所在的命名空间。([示例](projects/1.20/assets/minecraft/minecraft/packer-policy.json)的第二条) + **若 `type` 的值为 `indirect`:** 引用给定的命名空间。对于这些文件,其*目标地址*中的*命名空间*将会自动替换为本策略所在的命名空间。([示例](projects/1.20/assets/minecraft/minecraft/packer-policy.json)的第二条) - `source` string
引用命名空间所在文件夹的**完整地址**。 - **若`type`的值为`composition`:** 从给定的*组合文件*,直接生成语言文件(或部分)。这些组合文件可能不会被自动排除;可以考虑使用*局域配置*处理。 + **若 `type` 的值为 `composition`:** 从给定的*组合文件*,直接生成语言文件(或部分)。这些组合文件可能不会被自动排除;可以考虑使用*局域配置*处理。([示例](projects/1.16/assets/macaws-bridges/mcwbridges/packer-policy.json)的第二条;[组合文件示例](projects/1.16/assets/macaws-bridges/mcwbridges/lang/zh_cn-composition.json)) - `source` string
引用组合文件的**完整地址**。 - `destType` string
需要生成的语言文件的类型。可以为`json`或`lang`。 - **若`type`的值为`singleton`:** 引用给定的单个文件。理论上该操作可以选取任何位置的文件,只要目标位置填写正确;不过,一般建议放在*合理的位置*。([示例](projects/1.19/assets/isometric-renders/isometric-renders/packer-policy.json)的第一条) + **若 `type` 的值为 `singleton`:** 引用给定的单个文件。理论上该操作可以选取任何位置的文件,只要目标位置填写正确;不过,一般建议放在*合理的位置*。([示例](projects/1.19/assets/isometric-renders/isometric-renders/packer-policy.json)的第一条) - `source` string
引用文件所在的**完整地址**。 - `relativePath`
文件需要被放置的**相对地址**。考虑到连续引用,这里不宜使用**目标地址**。 @@ -123,7 +123,7 @@ - `target` string
生成的语言文件的**目标地址**。 * `entries` list
需要生成的组合项。这些项将会分别执行组合以后,连接起来。
**如果存在键冲突,打包器会在此崩溃!** 有计划在后期更改这一行为;目前而言,可以使用多个组合文件绕过这个限制。 * object
单项策略。 - * `templates` object
组合所用的模板。所有内容采用**C#格式化模式**填写。
粗略地说,其中的格式符有形式`{0}, {1}, {2},...`,字面量花括号需要用`{{`和`}}`转义;完整的定义可见 *[.net文档/Composite Formatting](https://learn.microsoft.com/en-us/dotnet/standard/base-types/composite-formatting)*。 + * `templates` object
组合所用的模板。所有内容采用**C#格式化模式**填写。
粗略地说,其中的格式符有形式 `{0}, {1}, {2},...`,字面量花括号需要用 `{{` 和 `}}` 转义;完整的定义可见 *[.net文档/Composite Formatting](https://learn.microsoft.com/en-us/dotnet/standard/base-types/composite-formatting)*。 - `<键模板>` string
`<键模板>`对应的值模板。 * `parameters` list
组合所用的参数表。参数按照模板中的**索引**顺序排列。不支持嵌套,必须用字面量。 * object
每个索引位置上可用的参数。 @@ -134,10 +134,10 @@ 组合文件用来生成“组合型”的**语言文件/语言文件片段**,也就是那些有大量重复文本、有明显的格式的语言文件片段。 组合文件的工作原理如下: -- 获取`entries`中的全部条目,每个条目代表一种组合模式。 -- 每个条目中,由`templates`中的所有条目充当模板,`parameters`中的所有条目充当参数,生成若干组合后的条目。 - - 在`parameter`中,有时会出现多于一组参数;这种情况下,每组参数都会自由组合。 - - 同样的,`templates`也会和每一套参数自由组合。 +- 获取 `entries` 中的全部条目,每个条目代表一种组合模式。 +- 每个条目中,由 `templates` 中的所有条目充当模板,`parameters` 中的所有条目充当参数,生成若干组合后的条目。 + - 在 `parameter` 中,有时会出现多于一组参数;这种情况下,每组参数都会自由组合。 + - 同样的,`templates` 也会和每一套参数自由组合。 - 将所有组合后的条目汇总,生成语言文件。 - 在这一过程中,如果出现了**键冲突**,目前而言,**打包器会在此崩溃!** 不过,如果后续观察表明确实存在此种需要,也会考虑修改这一行为。 @@ -147,9 +147,9 @@ ## 配置注解 -上述配置全部采用`json`格式书写;这导致的一个问题就是,`json`格式严格意义上是**不支持注释**的!为了解决这一问题,在使用这些内容时,最好在对应的命名空间内附上**注解文件**。当然,这不是必须的,但最好这么做。同时,也可以在此写下对该目录内容和功能的特殊注释。 +上述配置全部采用 `json` 格式书写;这导致的一个问题就是,`json` 格式严格意义上是**不支持注释**的!为了解决这一问题,在使用这些内容时,最好在对应的命名空间内附上**注解文件**。当然,这不是必须的,但最好这么做。同时,也可以在此写下对该目录内容和功能的特殊注释。 -原则上注解文件可以采用任何形式,但建议写到*命名空间目录下的`README.md`文件*中——打包的全局配置默认会排除这一文件。同样的,注解文件的形式也没有特殊限定,但尽量统一为佳。 +原则上注解文件可以采用任何形式,但建议写到*命名空间目录下的 `README.md` 文件*中——打包的全局配置默认会排除这一文件。同样的,注解文件的形式也没有特殊限定,但尽量统一为佳。 一些注解文件的例子为[这个](projects/1.16/assets/minecraft/minecraft/README.md)、[这个](projects/1.18/assets/minecraft/minecraft/README.md)和[这个](projects/1.18/assets/macaws-furniture/mcwfurnitures/README.md)。 @@ -164,16 +164,16 @@ > 该项**需要**预先进行讨论,指定合适的版本支持计划! - 制定版本支持计划。
- 这条一般是由管理层指定的。**有时**,支持计划会在*issues*界面中展示——1.19与1.20的支持计划即这么做了。 + 这条一般是由管理层指定的。**有时**,支持计划会在 *Issues* 界面中展示——1.19 与 1.20 的支持计划即这么做了。 - 判定是否需要工具链更新。 - 无需更新:
- - 创建`config/packer/[version].json`,并按照本文的指导填写,或参照相近版本的配置文件。 - - 在`.github/workflows/pr-packer.json`与`.github/workflows/packer.json`中,一处形如`version: [ "1.12.2", ... ]`的列表中(如[此处](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/blob/c1d6b114fba63e86b5df682ec01fc30b818ee5e0/.github/workflows/packer.yml#L102)),加入需增添的版本。 - - 创建`projects/[version]`,并按照其他版本的格式填写`pack.png`,`pack.mcmeta`,`LICENSE`,`README.txt`等内容。 - - 注意`pack.mcmeta`需要把花括号转义;可以参照其他版本的文件。 - - 注意`.../minecraft/minecraft`下的**字体修复文件**,需要按该版本的字体支持情况考虑填写。通常可以引用旧版本的资源,以减少重复工作。 + - 创建 `config/packer/[version].json`,并按照本文的指导填写,或参照相近版本的配置文件。 + - 在 `.github/workflows/pr-packer.json` 与 `.github/workflows/packer.json` 中,一处形如 `version: [ "1.12.2", ... ]` 的列表中(如[此处](https://github.com/CFPAOrg/Minecraft-Mod-Language-Package/blob/c1d6b114fba63e86b5df682ec01fc30b818ee5e0/.github/workflows/packer.yml#L102)),加入需增添的版本。 + - 创建 `projects/[version]`,并按照其他版本的格式填写 `pack.png`,`pack.mcmeta`,`LICENSE`,`README.txt` 等内容。 + - 注意 `pack.mcmeta` 需要把花括号转义;可以参照其他版本的文件。 + - 注意 `.../minecraft/minecraft` 下的**字体修复文件**,需要按该版本的字体支持情况考虑填写。通常可以引用旧版本的资源,以减少重复工作。 - 需要更新: - - 更新工具链。这可能需要很长的时间,取决于更新操作的复杂程度。例如,我们对**1.20**的支持稍晚,部分原因就是工作人员 ~我~ 全面更新了一次打包器。 + - 更新工具链。这可能需要很长的时间,取决于更新操作的复杂程度。例如,我们对 **1.20** 的支持稍晚,部分原因就是工作人员 ~我~ 全面更新了一次打包器。 - 按照“无需更新”的内容执行。 ### 复用语言文件 @@ -185,7 +185,7 @@ 这适用于语言文件完全一致的情况,如不同平台的同一模组。 - 确定可用的文件来源。 -- 在目标模组的**命名空间**文件夹下,创建`packer-policy.json`,填写如下内容,其中`source`字段按照前一步找到的来源填写。([示例](projects/1.18-fabric/assets/iron-furnaces/ironfurnaces/packer-policy.json)) +- 在目标模组的**命名空间**文件夹下,创建 `packer-policy.json`,填写如下内容,其中 `source` 字段按照前一步找到的来源填写。([示例](projects/1.18-fabric/assets/iron-furnaces/ironfurnaces/packer-policy.json)) ```json [ { @@ -194,7 +194,7 @@ } ] ``` -- 尽管理论上不会加载,但仍应删除已有的`lang/zh_cn.json`,以免误会。`lang/en_us.json`无需移除。 +- 尽管理论上不会加载,但仍应删除已有的 `lang/zh_cn.json`,以免误会。`lang/en_us.json` 无需移除。 - (可选)创建**注解文件**。 #### 复用+修改 @@ -204,8 +204,8 @@ - 确定可用的文件来源,以及需要做出的修改。多余的字段无需删去(也暂时无法删去;如有需要,会考虑增加此功能);缺少或不同的字段则需要修改。 - **方案一**:适用于有多个文件需要修改的情况。([示例](projects/1.20/assets/minecraft/minecraft/packer-policy.json)) - - 在`lang/zh_cn.json`(或其他需更改的文件)中,保留与来源文本不一致,需要修改的文本,其余内容删去。 - - 在目标模组的**命名空间**文件夹下,创建`packer-policy.json`,填写如下内容,其中`source`字段按照前一步找到的来源填写。 + - 在 `lang/zh_cn.json`(或其他需更改的文件)中,保留与来源文本不一致,需要修改的文本,其余内容删去。 + - 在目标模组的**命名空间**文件夹下,创建 `packer-policy.json`,填写如下内容,其中 `source` 字段按照前一步找到的来源填写。 ```json [ { @@ -219,7 +219,7 @@ ``` - **方案二**:([示例](projects/1.19/assets/isometric-renders/isometric-renders/packer-policy.json)) - 以合适名称创造新文件(“修改文件”),仅包含与来源文本不一致,需要修改的文本,其余内容删去。 - - 在目标模组的**命名空间**文件夹下,创建`packer-policy.json`,填写如下内容,其中两个`source`字段依次填写修改文件、来源命名空间的**完整地址**,`destination`字段填写目标文件的**相对地址**。 + - 在目标模组的**命名空间**文件夹下,创建 `packer-policy.json`,填写如下内容,其中两个 `source` 字段依次填写修改文件、来源命名空间的**完整地址**,`destination` 字段填写目标文件的**相对地址**。 ```json [ { @@ -237,7 +237,7 @@ #### 选取单文件 -若来源有多个文件,但只需要其中某个文件,可以将上述方案中,`indirect`策略替换为以下文本: +若来源有多个文件,但只需要其中某个文件,可以将上述方案中,`indirect` 策略替换为以下文本: ```json { "type": "singleton", @@ -245,18 +245,18 @@ "relativePath": "[domain]/[file-path]" } ``` -其中`source`为**完整地址**,`relativePath`为在最终资源包中,需要放置的**相对地址**。 +其中 `source` 为**完整地址**,`relativePath` 为在最终资源包中,需要放置的**相对地址**。 ### 添加无语言标识的文件 -无其他配置时,打包器只会打包**含有简体中文语言标识**的文件,以及**domain**为`font`、`textures`的文件。如果需要添加不满足此要求的文件,需要适当修改配置文件。 +无其他配置时,打包器只会打包**含有简体中文语言标识**的文件,以及 **domain** 为 `font`、`textures` 的文件。如果需要添加不满足此要求的文件,需要适当修改配置文件。 #### 按domain集中添加文件 -这适用于集中在一个或几个**domain**下的文件。 +这适用于集中在一个或几个 **domain** 下的文件。 -- 确定该模组需要加入的**domain**。 -- 在目标模组的**命名空间**文件夹下,创建`local-config.json`,填写如下内容:([示例](projects/1.20/assets/applied-energistics-2/ae2/local-config.json)) +- 确定该模组需要加入的 **domain**。 +- 在目标模组的**命名空间**文件夹下,创建 `local-config.json`,填写如下内容:([示例](projects/1.20/assets/applied-energistics-2/ae2/local-config.json)) ```json { "inclusionDomains": [], @@ -267,16 +267,16 @@ "destinationReplacement": {} } ``` -- 在上述文件中,`inclusionDomains`处,按照`Json`格式填写所需的**domain**。 +- 在上述文件中,`inclusionDomains` 处,按照 `Json` 格式填写所需的 **domain**。 -此外,若可以确定该**domain**在该版本普遍需要添加,可以转而在全局配置`config/packer/[version].json`中进行相应修改。 +此外,若可以确定该**domain**在该版本普遍需要添加,可以转而在全局配置 `config/packer/[version].json` 中进行相应修改。 #### 添加零散文件 这适用于文件没有特殊集中位置的情况。 - 确定该模组需要加入的文件。 -- 在目标模组的**命名空间**文件夹下,创建`local-config.json`,填写如下内容: +- 在目标模组的**命名空间**文件夹下,创建 `local-config.json`,填写如下内容: ```json { "inclusionDomains": [], @@ -287,6 +287,6 @@ "destinationReplacement": {} } ``` -- 在上述文件中,`inclusionPaths`处,按照`Json`格式填写所需文件的**相对路径**。 +- 在上述文件中,`inclusionPaths` 处,按照 `Json` 格式填写所需文件的**相对路径**。 通常不应将这种配置写入全局配置。 diff --git a/README.md b/README.md index c2c6efe352a3..104ae54a4331 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ ### 词典 -- [剑桥词典](https://dictionary.cambridge.org/zhs/%E8%AF%8D%E5%85%B8/%E8%8B%B1%E8%AF%AD-%E6%B1%89%E8%AF%AD-%E7%AE%80%E4%BD%93/)丨[Wiktionary](https://en.wiktionary.org/wiki/Wiktionary:Main_Page) +- [剑桥词典](https://dictionary.cambridge.org/zhs/%E8%AF%8D%E5%85%B8/%E8%8B%B1%E8%AF%AD-%E6%B1%89%E8%AF%AD-%E7%AE%80%E4%BD%93/)丨[Wiktionary](https://en.wiktionary.org/wiki/Wiktionary:Main_Page)(访问可能受阻) - [词源在线](https://www.etymonline.com/cn) - [汉典](https://www.zdic.net/) - [新华字典](https://www.cp.com.cn/book/506a1433-6.html)丨[现代汉语词典](https://www.cp.com.cn/book/6afc8cd8-c.html) diff --git a/projects/1.18-fabric/assets/0-modrinth-mod/clean-debug/lang/en_us.json b/projects/1.18-fabric/assets/modrinth-clean-f3/clean-debug/lang/en_us.json similarity index 100% rename from projects/1.18-fabric/assets/0-modrinth-mod/clean-debug/lang/en_us.json rename to projects/1.18-fabric/assets/modrinth-clean-f3/clean-debug/lang/en_us.json diff --git a/projects/1.18-fabric/assets/0-modrinth-mod/clean-debug/lang/zh_cn.json b/projects/1.18-fabric/assets/modrinth-clean-f3/clean-debug/lang/zh_cn.json similarity index 100% rename from projects/1.18-fabric/assets/0-modrinth-mod/clean-debug/lang/zh_cn.json rename to projects/1.18-fabric/assets/modrinth-clean-f3/clean-debug/lang/zh_cn.json diff --git a/projects/1.18-fabric/assets/0-modrinth-mod/coppertier/lang/en_us.json b/projects/1.18-fabric/assets/modrinth-copper-tier/coppertier/lang/en_us.json similarity index 100% rename from projects/1.18-fabric/assets/0-modrinth-mod/coppertier/lang/en_us.json rename to projects/1.18-fabric/assets/modrinth-copper-tier/coppertier/lang/en_us.json diff --git a/projects/1.18-fabric/assets/0-modrinth-mod/coppertier/lang/zh_cn.json b/projects/1.18-fabric/assets/modrinth-copper-tier/coppertier/lang/zh_cn.json similarity index 100% rename from projects/1.18-fabric/assets/0-modrinth-mod/coppertier/lang/zh_cn.json rename to projects/1.18-fabric/assets/modrinth-copper-tier/coppertier/lang/zh_cn.json diff --git a/projects/1.18-fabric/assets/0-modrinth-mod/inventorymanagement/lang/en_us.json b/projects/1.18-fabric/assets/modrinth-inventory-management/inventorymanagement/lang/en_us.json similarity index 100% rename from projects/1.18-fabric/assets/0-modrinth-mod/inventorymanagement/lang/en_us.json rename to projects/1.18-fabric/assets/modrinth-inventory-management/inventorymanagement/lang/en_us.json diff --git a/projects/1.18-fabric/assets/0-modrinth-mod/inventorymanagement/lang/zh_cn.json b/projects/1.18-fabric/assets/modrinth-inventory-management/inventorymanagement/lang/zh_cn.json similarity index 100% rename from projects/1.18-fabric/assets/0-modrinth-mod/inventorymanagement/lang/zh_cn.json rename to projects/1.18-fabric/assets/modrinth-inventory-management/inventorymanagement/lang/zh_cn.json diff --git a/projects/1.19/assets/0-modrinth-mod/more_food/lang/en_us.json b/projects/1.19/assets/foodmodmorefood/more_food/lang/en_us.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/more_food/lang/en_us.json rename to projects/1.19/assets/foodmodmorefood/more_food/lang/en_us.json diff --git a/projects/1.19/assets/0-modrinth-mod/more_food/lang/zh_cn.json b/projects/1.19/assets/foodmodmorefood/more_food/lang/zh_cn.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/more_food/lang/zh_cn.json rename to projects/1.19/assets/foodmodmorefood/more_food/lang/zh_cn.json diff --git a/projects/1.19/assets/0-modrinth-mod/clean-debug/lang/en_us.json b/projects/1.19/assets/modrinth-clean-f3/clean-debug/lang/en_us.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/clean-debug/lang/en_us.json rename to projects/1.19/assets/modrinth-clean-f3/clean-debug/lang/en_us.json diff --git a/projects/1.19/assets/0-modrinth-mod/clean-debug/lang/zh_cn.json b/projects/1.19/assets/modrinth-clean-f3/clean-debug/lang/zh_cn.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/clean-debug/lang/zh_cn.json rename to projects/1.19/assets/modrinth-clean-f3/clean-debug/lang/zh_cn.json diff --git a/projects/1.19/assets/0-modrinth-mod/intarsia/lang/en_us.json b/projects/1.19/assets/modrinth-intarsia/intarsia/lang/en_us.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/intarsia/lang/en_us.json rename to projects/1.19/assets/modrinth-intarsia/intarsia/lang/en_us.json diff --git a/projects/1.19/assets/0-modrinth-mod/intarsia/lang/zh_cn.json b/projects/1.19/assets/modrinth-intarsia/intarsia/lang/zh_cn.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/intarsia/lang/zh_cn.json rename to projects/1.19/assets/modrinth-intarsia/intarsia/lang/zh_cn.json diff --git a/projects/1.19/assets/0-modrinth-mod/inventorymanagement/lang/en_us.json b/projects/1.19/assets/modrinth-inventory-management/inventorymanagement/lang/en_us.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/inventorymanagement/lang/en_us.json rename to projects/1.19/assets/modrinth-inventory-management/inventorymanagement/lang/en_us.json diff --git a/projects/1.19/assets/0-modrinth-mod/inventorymanagement/lang/zh_cn.json b/projects/1.19/assets/modrinth-inventory-management/inventorymanagement/lang/zh_cn.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/inventorymanagement/lang/zh_cn.json rename to projects/1.19/assets/modrinth-inventory-management/inventorymanagement/lang/zh_cn.json diff --git a/projects/1.19/assets/0-modrinth-mod/minerally/lang/en_us.json b/projects/1.19/assets/modrinth-minerally/minerally/lang/en_us.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/minerally/lang/en_us.json rename to projects/1.19/assets/modrinth-minerally/minerally/lang/en_us.json diff --git a/projects/1.19/assets/0-modrinth-mod/minerally/lang/zh_cn.json b/projects/1.19/assets/modrinth-minerally/minerally/lang/zh_cn.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/minerally/lang/zh_cn.json rename to projects/1.19/assets/modrinth-minerally/minerally/lang/zh_cn.json diff --git a/projects/1.19/assets/0-modrinth-mod/nvidium/lang/en_us.json b/projects/1.19/assets/modrinth-nvidium/nvdium/lang/en_us.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/nvidium/lang/en_us.json rename to projects/1.19/assets/modrinth-nvidium/nvdium/lang/en_us.json diff --git a/projects/1.19/assets/0-modrinth-mod/nvidium/lang/zh_cn.json b/projects/1.19/assets/modrinth-nvidium/nvdium/lang/zh_cn.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/nvidium/lang/zh_cn.json rename to projects/1.19/assets/modrinth-nvidium/nvdium/lang/zh_cn.json diff --git a/projects/1.19/assets/0-modrinth-mod/splashfox/lang/en_us.json b/projects/1.19/assets/modrinth-splashfox/splashfox/lang/en_us.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/splashfox/lang/en_us.json rename to projects/1.19/assets/modrinth-splashfox/splashfox/lang/en_us.json diff --git a/projects/1.19/assets/0-modrinth-mod/splashfox/lang/zh_cn.json b/projects/1.19/assets/modrinth-splashfox/splashfox/lang/zh_cn.json similarity index 100% rename from projects/1.19/assets/0-modrinth-mod/splashfox/lang/zh_cn.json rename to projects/1.19/assets/modrinth-splashfox/splashfox/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/more_food/lang/en_us.json b/projects/1.20-fabric/assets/foodmodmorefood/more_food/lang/en_us.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/more_food/lang/en_us.json rename to projects/1.20-fabric/assets/foodmodmorefood/more_food/lang/en_us.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/more_food/lang/zh_cn.json b/projects/1.20-fabric/assets/foodmodmorefood/more_food/lang/zh_cn.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/more_food/lang/zh_cn.json rename to projects/1.20-fabric/assets/foodmodmorefood/more_food/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/modmenu/lang/en_us.json b/projects/1.20-fabric/assets/modmenu/modmenu/lang/en_us.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/modmenu/lang/en_us.json rename to projects/1.20-fabric/assets/modmenu/modmenu/lang/en_us.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/modmenu/lang/zh_cn.json b/projects/1.20-fabric/assets/modmenu/modmenu/lang/zh_cn.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/modmenu/lang/zh_cn.json rename to projects/1.20-fabric/assets/modmenu/modmenu/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/additionalentityattributes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-additionalentityattributes/additionalentityattributes/lang/en_us.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/additionalentityattributes/lang/en_us.json rename to projects/1.20-fabric/assets/modrinth-additionalentityattributes/additionalentityattributes/lang/en_us.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/additionalentityattributes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-additionalentityattributes/additionalentityattributes/lang/zh_cn.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/additionalentityattributes/lang/zh_cn.json rename to projects/1.20-fabric/assets/modrinth-additionalentityattributes/additionalentityattributes/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/minerally/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-minerally/minerally/lang/en_us.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/minerally/lang/en_us.json rename to projects/1.20-fabric/assets/modrinth-minerally/minerally/lang/en_us.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/minerally/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-minerally/minerally/lang/zh_cn.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/minerally/lang/zh_cn.json rename to projects/1.20-fabric/assets/modrinth-minerally/minerally/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/nvidium/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-nvidium/nvidium/lang/en_us.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/nvidium/lang/en_us.json rename to projects/1.20-fabric/assets/modrinth-nvidium/nvidium/lang/en_us.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/nvidium/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-nvidium/nvidium/lang/zh_cn.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/nvidium/lang/zh_cn.json rename to projects/1.20-fabric/assets/modrinth-nvidium/nvidium/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/reach-entity-attributes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-reach-entity-attributes/reach-entity-attributes/lang/en_us.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/reach-entity-attributes/lang/en_us.json rename to projects/1.20-fabric/assets/modrinth-reach-entity-attributes/reach-entity-attributes/lang/en_us.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/reach-entity-attributes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-reach-entity-attributes/reach-entity-attributes/lang/zh_cn.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/reach-entity-attributes/lang/zh_cn.json rename to projects/1.20-fabric/assets/modrinth-reach-entity-attributes/reach-entity-attributes/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/spineless/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-spineless/spineless/lang/en_us.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/spineless/lang/en_us.json rename to projects/1.20-fabric/assets/modrinth-spineless/spineless/lang/en_us.json diff --git a/projects/1.20-fabric/assets/0-modrinth-mod/spineless/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-spineless/spineless/lang/zh_cn.json similarity index 100% rename from projects/1.20-fabric/assets/0-modrinth-mod/spineless/lang/zh_cn.json rename to projects/1.20-fabric/assets/modrinth-spineless/spineless/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/en_us.json b/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/en_us.json index 0452d75baf26..14968881b58f 100644 --- a/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/en_us.json +++ b/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/en_us.json @@ -166,4 +166,4 @@ "ubesdelight.tooltip.halo_halo": "Right Click with a Knife to rotate. Break with Knife to pickup.", "ubesdelight.tooltip.kalan": "Traditional Filipino Clay Oven.", "ubesdelight.tooltip.knife": "Knife Required." -} +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/zh_cn.json b/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/zh_cn.json index 58220b454c6a..fc755e632836 100644 --- a/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/ubes-delight/ubesdelight/lang/zh_cn.json @@ -166,4 +166,4 @@ "ubesdelight.tooltip.halo_halo": "用刀右击以旋转,用刀破坏以拾取。", "ubesdelight.tooltip.kalan": "一种菲律宾传统的黏土烤炉。", "ubesdelight.tooltip.knife": "需要刀。" -} +} \ No newline at end of file