/lang` 目录下的语言文件中会用到声音文件,如果游戏内字幕设置已打开且正在播放自定义声音,则会显示这个字幕。
-## 注册自定义音效
+## 注册自定义声音{#registering-the-custom-sound}
-要将自定义音效添加到模组里,请在实现了 `ModInitializer` 入口点的类中注册一个 SoundEvent。
+要将自定义声音添加到模组中,请在实现了 `ModInitializer` 入口点的类中注册一个 SoundEvent。
```java
Registry.register(Registries.SOUND_EVENT, new Identifier(MOD_ID, "metal_whistle"),
SoundEvent.of(new Identifier(MOD_ID, "metal_whistle")));
```
-## 规范化
+## 整理整理{#cleaning-up-the-mess}
根据注册表项的数量,入口点类可能很快就会变得十分杂乱。 为了避免这种情况,我们可以使用一个新的辅助类。
-在新创建的辅助类中添加两个新方法: 一个用于注册所有音效,一个用于初始化该类。 之后就可以根据需要,添加新的自定义 `SoundEvent` 常量了。
+在新创建的辅助类中添加两个新方法: 一个用于注册所有声音,一个用于初始化该类。 之后就可以根据需要,添加新的自定义 `SoundEvent` 常量了。
@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/sound/CustomSounds.java)
@@ -58,6 +58,6 @@ Registry.register(Registries.SOUND_EVENT, new Identifier(MOD_ID, "metal_whistle"
@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/sound/FabricDocsReferenceSounds.java)
-## 使用自定义的 SoundEvent
+## 使用自定义的 SoundEvent{#using-the-custom-soundevent}
-使用辅助类去访问自定义的 SoundEvent。 查看 [播放声音事件(SoundEvent)](./using-sounds) 页面,了解如何播放声音。
+使用辅助类去访问自定义的 SoundEvent。 查看[播放声音事件(SoundEvent)](./using-sounds)页面,了解如何播放声音。
diff --git a/translated/zh_cn/develop/sounds/using-sounds.md b/translated/zh_cn/develop/sounds/using-sounds.md
index dd884fbbe..6aa2327c2 100644
--- a/translated/zh_cn/develop/sounds/using-sounds.md
+++ b/translated/zh_cn/develop/sounds/using-sounds.md
@@ -1,13 +1,13 @@
---
-title: 播放声音事件(SoundEvent)
+title: 播放声音
description: 学习如何播放声音事件(SoundEvent)。
---
-# 播放声音事件(SoundEvent)
+# 播放声音{#playing-sounds}
Minecraft 有大量的声音供您选择。 查看 `SoundEvents` 类以查看 Mojang 提供的所有原版声音事件实例。
-## 在您的模组中使用声音
+## 在您的模组中使用声音{#using-sounds}
使用声音时请确保在逻辑服务端执行 `playSound()` 方法。
@@ -15,18 +15,18 @@ Minecraft 有大量的声音供您选择。 查看 `SoundEvents` 类以查看 Mo
@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java)
-`playerSound()` 方法与 `LivingEntity` 对象一起使用。 只需要指定 SoundEvent、音量(volume)和音高(pitch)。 您还可以使用世界实例中的 `playSound()` 方法以获得更高级别的控制。
+播放声音事件(SoundEvent) 只需要指定 SoundEvent、音量(volume)和音高(pitch)。 `playerSound()` 方法与 `LivingEntity` 对象一起使用。 只需要指定 SoundEvent、音量(volume)和音高(pitch)。 您还可以使用世界实例中的 `playSound()` 方法以获得更高级别的控制。
@[code lang=java transcludeWith=:::2](@/reference/latest/src/main/java/com/example/docs/item/CustomSoundItem.java)
-### 声音事件与声音组(SoundCategory)
+### 声音事件与声音组(SoundCategory){#soundevent-and-soundcategory}
-声音事件定义了播放哪个声音。 您也可以[注册您自己的声音事件](./custom)以包含您自己的声音。
+播放声音事件(SoundEvent) 声音事件定义了播放哪个声音。 您也可以[注册您自己的声音事件](./custom)以包含您自己的声音。
Minecraft 在游戏设置中有多个音频滑块。 `SoundCategory` 枚举类用于确定哪个滑块可以调整您声音的音量。
-### 音量和音高
+### 音量和音调{#volume-and-pitch}
-音量参数可能有些误导。 在 `0.0f - 1.0f` 的范围内可以改变声音的实际音量。 如果数字大于这个范围,将使用 `1.0f` 的音量,并且仅使用您所在的距离。可以听到声音,进行调整。 通过 `volume * 16` 可以粗略算出方块距离。
+音量参数可能有些误导。 在 `0.0f - 1.0f` 的范围内可以改变声音的实际音量。 如果数字大于这个范围,将使用 `1.0f` 的音量,并且仅调整声音能听到的距离。 通过 `volume * 16` 可以粗略算出方块距离。
音高参数会增加或减少音高数值,还会改变声音的持续时间。 在 `(0.5f - 1.0f)` 范围内,音高和速度会减小,而较大的数字会增加音高和速度。 `0.5f` 以下的数字将保持 `0.5f`。
diff --git a/translated/zh_cn/develop/text-and-translations.md b/translated/zh_cn/develop/text-and-translations.md
new file mode 100644
index 000000000..3663b0309
--- /dev/null
+++ b/translated/zh_cn/develop/text-and-translations.md
@@ -0,0 +1,101 @@
+---
+title: 文本和翻译
+description: Minecraft 处理格式化文本和翻译的全面文档。
+authors:
+ - IMB11
+---
+
+# 文本和翻译{#text-and-translations}
+
+Minecraft 在游戏内显示文本,不论何时,都是使用 `Text` 对象定义的。
+使用这种自定义的类型而非 `String`,是为了允许更多高级的格式化,包括颜色、加粗、混淆和点击事件。 这样还能够访问翻译系统,使得将任何界面元素翻译成不同语言都变得容易。
+
+如果以前有做过数据包和函数,应该看到用于displayName、书、告示牌等内容的就是用的 json 文本格式。 不难猜到,这就是 `Text` 对象的 json 呈现,可以使用 `Text.Serializer` 互相转换。
+
+制作模组时,最好直接在代码中构造你的 `Text` 对象,并随时利用翻译。
+
+## 字面文本{#text-literals}
+
+这是创建 `Text` 对象最简单的方式,创建字面值。 这就是会照样显示的字符串,默认没有任何格式化。
+
+这些是使用 `Text.of` 或 `Text.literal` 方法创建的,这两个行为有点不同。 `Text.of` 接受 null 输入,返回 `Text` 实例。 `Text.literal` 不同,不能有空输入,返回的是 `MutableText`,是 `Text` 的字类,可以轻易地格式化和连接。 这个后面会有更多。
+
+```java
+Text literal = Text.of("Hello, world!");
+MutableText mutable = Text.literal("Hello, world!");
+// Keep in mind that a MutableText can be used as a Text, making this valid:
+Text mutableAsText = mutable;
+```
+
+## 可翻译文本{#translatable-text}
+
+给相同的文本字符串提供多个翻译时,可以使用 `Text.translatable` 方法,引用语言文件中的任意翻译键。 如果翻译键不存在,则字面转换翻译键。
+
+```java
+Text translatable = Text.translatable("my_mod.text.hello");
+
+// Similarly to literals, translatable text can be easily made mutable.
+MutableText mutable = Text.translatable("my_mod.text.bye");
+```
+
+语言文件,`en_us.json`,看上去应该像这样:
+
+```json
+{
+ "my_mod.text.hello": "Hello!",
+ "my_mod.text.bye": "Goodbye :("
+}
+```
+
+## 序列化文本{#serializing-text}
+
+
+
+前面提到过,可以使用 text codec 将文本序列化为 JSON。 更多关于 codec 的信息,请看 [Codec](./codecs) 页面。
+
+@[code transcludeWith=:::1](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java)
+
+这会产生可用于数据包、命令和其他接受 JSON 格式文本而非字面或可翻译文本的地方的 JSON。
+
+## 反序列化文本{#deserializing-text}
+
+要将 JSON 文本对象反序列化为 `Text` 类,还是使用 codec。
+
+@[code transcludeWith=:::2](@/reference/latest/src/client/java/com/example/docs/rendering/TextTests.java)
+
+## 格式化文本{#formatting-text}
+
+你应该熟悉 Minecraft 的格式化标准:
+
+可以对 `MutableText` 类使用 `Formatting` 枚举以应用这些格式。
+
+```java
+MutableText result = Text.literal("Hello World!")
+ .formatted(Formatting.AQUA, Formatting.BOLD, Formatting.UNDERLINE);
+```
+
+
+ 颜色 | 名称 | 聊天代码 | MOTD 代码 | 十六进制代码 |
+ | 黑色(black) | §0 | \u00A70 | #000000 |
+ | 深蓝色(dark_blue) | §1 | \u00A71 | #0000AA |
+ | 深绿色(dark_green) | §2 | \u00A72 | #00AA00 |
+ | 深青色(dark_aqua) | §3 | \u00A73 | #00AAAA |
+ | 深红色(dark_red) | §4 | \u00A74 | #AA0000 |
+ | 深紫色(dark_purple) | §5 | \u00A75 | #AA00AA |
+ | 金色(gold) | §6 | \u00A76 | #FFAA00 |
+ | 灰色(gray) | §7 | \u00A77 | #AAAAAA |
+ | 深灰色(dark_gray) | §8 | \u00A78 | #555555 |
+ | 蓝色(blue) | §9 | \u00A79 | #5555FF |
+ | 绿色(green) | §a | \u00A7a | #55FF55 |
+ | 青色(aqua) | §b | \u00A7b | #55FFFF |
+ | 红色(red) | §c | \u00A7c | #FF5555 |
+ | 淡紫色(light_purple) | §d | \u00A7d | #FF55FF |
+ | 黄色(yellow) | §e | \u00A7e | #FFFF55 |
+ | 白色(white) | §f | \u00A7f | #FFFFFF |
+ | 重置 | §r | | |
+ | 加粗 | §l | | |
+ | 删除线 | §m | | |
+ | 下划线 | §n | | |
+ | 斜体 | §o | | |
+ | 混淆 | §k | | |
+
diff --git a/translated/zh_cn/index.md b/translated/zh_cn/index.md
index f8d0498e7..7eff4f7a2 100644
--- a/translated/zh_cn/index.md
+++ b/translated/zh_cn/index.md
@@ -1,10 +1,10 @@
---
title: Fabric 文档
-description: 为 Fabric —— 一套 Minecraft 模组工具链 —— 精心撰写的官方文档。
+description: 为 Minecraft 的一个模组制作工具链 Fabric 精心撰写的官方文档。
layout: home
hero:
name: Fabric 文档
- tagline: 为 Fabric —— 一套 Minecraft 模组工具链 —— 精心撰写的官方文档。
+ tagline: 为 Minecraft 的一个模组制作工具链 Fabric 精心撰写的官方文档。
features:
- title: 开发者指南
icon: 🛠️
@@ -20,8 +20,8 @@ features:
-## 如何贡献? {#contribute}
+## 想要贡献? {#contribute}
-如果您想给 Fabric 文档做贡献,您可以在[GitHub](https://github.com/FabricMC/fabric-docs) 找到本项目的源码,以及相关的[贡献指南](./contributing)。
+如果想给 Fabric 文档做贡献,可以在 [GitHub](https://github.com/FabricMC/fabric-docs) 找到源代码,以及相关的[贡献指南](./contributing)。
diff --git a/translated/zh_cn/players/faq.md b/translated/zh_cn/players/faq.md
index f4f699057..275896ae8 100644
--- a/translated/zh_cn/players/faq.md
+++ b/translated/zh_cn/players/faq.md
@@ -3,29 +3,27 @@ title: 玩家常见问题
description: 玩家和服务器管理员有关 Fabric 的常见问题。
---
-# 玩家常见问题
+# 常规问题
-有很多问题经常被问到,因此我们在此整理了一份问题清单。
+有很多问题经常问到,因此我们在此整理了一份清单。
-## 常规问题
-
-### Fabric支持哪些Minecraft版本?
+## Fabric 支持哪些 Minecraft 版本? {#what-minecraft-versions-does-fabric-support}
Fabric 官方支持从快照 `18w43b` 和正式版 `1.14` 及以上的所有 Minecraft 版本。
-### 在哪里可以下载已发布的 Fabric 模组?
+## 在哪里可以下载已发布的 Fabric 模组? {#where-can-i-download-published-fabric-mods}
:::info
-您应始终检查模组是否来自可信的来源。 您应始终检查模组是否来自可信的来源。 如果你想要获取更多信息,请查看 [寻找可受信的模组](./finding-mods) 指南。
+您应始终检查模组是否来自可信的来源。 更多信息请查看[寻找可信的模组](./finding-mods)指南。
:::
-大多数作者都会将自己的模组发布到 [Modrinth](https://modrinth.com/mods?g=categories:%27fabric%27) 和 [CurseForge](https://www.curseforge.com/minecraft/search?class=mc-mods&gameVersionTypeId=4) 上,但也有一些作者会选择将它们上传到个人网站或其他平台,如 GitHub 仓库。
+大多数作者都会将自己的模组发布到 [Modrinth](https://modrinth.com/mods?g=categories:%27fabric%27) 和 [CurseForge](https://www.curseforge.com/minecraft/search?class=mc-mods\\&gameVersionTypeId=4) 上,但也有一些作者会选择将模组上传到个人网站或其他平台,如 GitHub 仓库。
-### 在哪里可以找到现成的 Fabric 整合包?
+## 在哪里可以找到现成的 Fabric 整合包? {#where-can-i-find-premade-fabric-modpacks}
您可以在各种平台上找到现成的 Fabric 整合包,例如
- [Modrinth](https://modrinth.com/modpacks?g=categories:%27fabric%27)
-- [CurseForge](https://www.curseforge.com/minecraft/search?class=modpacks&gameVersionTypeId=4)
+- [CurseForge](https://www.curseforge.com/minecraft/search?class=modpacks\\&gameVersionTypeId=4)
- [Feed The Beast](https://www.feed-the-beast.com/ftb-app)
- [Technic](https://www.technicpack.net/modpacks)
diff --git a/translated/zh_cn/players/finding-mods.md b/translated/zh_cn/players/finding-mods.md
index 65de5786c..a8c0078f3 100644
--- a/translated/zh_cn/players/finding-mods.md
+++ b/translated/zh_cn/players/finding-mods.md
@@ -1,15 +1,15 @@
---
-title: 寻找可信赖的模组
-description: 本指南教你如何使用可信任的来源找到 Fabric 模组
+title: 寻找可信的模组
+description: 本指南教你如何使用可信来源找到 Fabric 模组。
authors:
- IMB11
---
-# 寻找可信赖的模组{#finding-mods}
+# 寻找可信的模组{#finding-mods}
-首先,信任是主观的,当下载模组时你应该始终根据自己的判断。 但是,有一些方法可以帮助你找到可信赖的模组。
+首先,信任是主观的,当下载模组时你应该始终根据自己的判断。 但是,有一些方法可以帮助你找到可信的模组。
-## 1. 使用众所周知的可信任来源{#trustworthy-source}
+## 1. 使用众所周知的可信来源{#trustworthy-source}
大部分作者都将他们的模组发布在 [Modrinth](https://modrinth.com/mods?g=categories:%27fabric%27) 和 [CurseForge](https://www.curseforge.com/minecraft/search?class=mc-mods\\&gameVersionTypeId=4) 上。
@@ -17,7 +17,7 @@ authors:
## 2. 与其他人讨论! {#with-others}
-如果要从并非已知可靠的来源下载模组,应该先向他人询问,看看他们是否曾从你下载的地方下载过该模组,以及他们是否遇到过任何问题。
+如果要从并非已知可信的来源下载模组,应该先向他人询问,看看他们是否曾从你下载的地方下载过该模组,以及他们是否遇到过任何问题。
如遇问题,欢迎在 [Fabric Discord](https://discord.gg/v6v4pMv) 的 `#player-support` 频道提问。
diff --git a/translated/zh_cn/players/installing-fabric.md b/translated/zh_cn/players/installing-fabric.md
index 5a916a80f..ad74322e6 100644
--- a/translated/zh_cn/players/installing-fabric.md
+++ b/translated/zh_cn/players/installing-fabric.md
@@ -3,6 +3,8 @@ title: 安装 Fabric
description: 如何安装 Fabric 的手把手指南。
authors:
- IMB11
+ - Benonardo
+ - modmuss50
---
# 安装 Fabric{#installing-fabric}
@@ -11,15 +13,15 @@ authors:
对于第三方启动器,你应该查阅它们的文档。
-## 1. 下载 Fabric 安装程序{#1-download-the-fabric-installer}
+## 1. 下载 Fabric 安装器{#1-download-the-fabric-installer}
-可以从 [Fabric 网站](https://fabricmc.net/use/) 下载 Fabric 的安装程序。
+可以从 [Fabric 网站](https://fabricmc.net/use/) 下载 Fabric 安装器。
如果使用 Windows,下载 `.exe` 版本 (`Download For Windows`),因为不需要你的系统已安装 Java, 而是使用官方启动器附带的 Java。
对于 macOS 和 Linux,您应该下载 `.jar` 版本。 有时,此步骤之前需要安装 Java。
-## 2. 运行 Fabric 安装程序{#2-run-the-fabric-installer}
+## 2. 运行 Fabric 安装器{#2-run-the-fabric-installer}
:::warning
在安装之前,请先关闭 Minecraft 和 Minecraft Launcher。
@@ -29,14 +31,14 @@ authors:
在 macOS 上,可能需要右键点击下载目录中的 `.jar`,然后点击 `Open` 来运行。
-![Fabric 安装程序中的 MacOS 上下文菜单](/assets/players/installing-fabric/macos-downloads.png)
+![Fabric 安装器中的 MacOS 上下文菜单](/assets/players/installing-fabric/macos-downloads.png)
问到“Are you sure you want to open it?”时,再次点击 `Open`。
:::
打开安装器后,应该会看到这样的屏幕:
-![高亮 "Install" 的 Fabric 安装程序](/assets/players/installing-fabric/installer-screen.png)
+![高亮 "Install" 的 Fabric 安装器](/assets/players/installing-fabric/installer-screen.png)
要安装 Fabric,只需从下拉列表中选择您的游戏版本,然后单击 `Install`。
@@ -44,10 +46,10 @@ authors:
## 3. 搞定! {#3-you-re-done}
-安装程序完成后,可以打开 Minecraft Launcher,从左下角的下拉列表中选择 Fabric 配置文件,然后按下 `Play`!
+安装器完成后,可以打开 Minecraft Launcher,从左下角的下拉列表中选择 Fabric 配置文件,然后按下 `Play`!
![选中了 Fabric 配置的 Minecraft Launcher](/assets/players/installing-fabric/launcher-screen.png)
-现在安装好了 Fabric,就可以向你的游戏添加模组了! 更多信息请查看[寻找可信赖的模组](./finding-mods)指南。
+现在安装好了 Fabric,就可以向你的游戏添加模组了! 更多信息请查看[寻找可信的模组](./finding-mods)指南。
如果在遵循本指南时遇到任何问题,可以在 [Fabric Discord](https://discord.gg/v6v4pMv) 的 `#player-support` 频道中寻求帮助。
diff --git a/translated/zh_cn/players/installing-java/linux.md b/translated/zh_cn/players/installing-java/linux.md
index 87ef196d0..234231a3f 100644
--- a/translated/zh_cn/players/installing-java/linux.md
+++ b/translated/zh_cn/players/installing-java/linux.md
@@ -5,25 +5,25 @@ authors:
- IMB11
---
-# 在 Linux 上安装 Java
+# 在 Linux 上安装 Java{#installing-java-on-linux}
-这个指南将会指引您在 Linux 上安装 Java 17。
+这个指南将会指引您在 Linux 上安装 Java 21。
-## 1. 验证 Java 是否已经安装
+## 1. 检查 Java 是否已经安装{#1-check-if-java-is-already-installed}
打开终端输入 `java -version` 并按下 `回车`。
![输入 "java -version" 的终端](/assets/players/installing-java/linux-java-version.png)
:::warning
-要使用大多数现代 Minecraft 版本,您至少需要安装 Java 17。 如果此命令显示版本低于 17,您需要更新您的现有 Java。
+要使用 Minecraft 1.21,你需要安装至少 Java 21。 如果运行该命令后显示 Java 版本低于 21,你需要更新设备上现有 Java。
:::
-## 2. 下载并安装 Java 17
+## 2. 下载并安装 Java 21{#2-downloading-and-installing-java}
-我们推荐使用 OpenJDK 17,他可以在大多数 Linux 发行版中可用。
+我们推荐使用 OpenJDK 21,可以在大多数 Linux 发行版中可用。
-### Arch Linux
+### Arch Linux{#arch-linux}
:::info
更多在 Arch Linux 上安装 Java 的信息可以参考 [Arch Linux 中文维基](https://wiki.archlinuxcn.org/wiki/Java)。
@@ -47,45 +47,45 @@ sudo pacman -S jre-openjdk-headless
sudo pacman -S jdk-openjdk
```
-### Debian/Ubuntu
+### Debian/Ubuntu{#debian-ubuntu}
-您可以用以下命令使用 `apt` 安装 Java17:
+您可以用以下命令使用 `apt` 安装 Java 21:
```sh
sudo apt update
-sudo apt install openjdk-17-jdk
+sudo apt install openjdk-21-jdk
```
-### Fedora
+### Fedora{#fedora}
-您可以用以下命令使用 `dnf` 安装 Java17:
+您可以用以下命令使用 `dnf` 安装 Java 21:
```sh
-sudo dnf install java-17-openjdk
+sudo dnf install java-21-openjdk
```
如果您不需要图形化接口,您可以安装 headless 版本:
```sh
-sudo dnf install java-17-openjdk-headless
+sudo dnf install java-21-openjdk-headless
```
如果您计划开发模组,您需要安装 JDK:
```sh
-sudo dnf install java-17-openjdk-devel
+sudo dnf install java-21-openjdk-devel
```
-### 其他 Linux 发行版
+### 其他 Linux 发行版{#other-linux-distributions}
如果您的发行版未在上文列出,您可以从 [Adoptium](https://adoptium.net/zh-CN/temurin/) 下载最新版 JRE。
如果您计划开发模组,您应该参考您的发行版的替代指南。
-## 3. 验证是否已安装 Java 17
+## 3. 验证是否已安装 Java 21{#3-verify-that-java-is-installed}
-安装完成后,您可以打开终端并输入 `java -version` 来验证 Java 17 是否已安装。
+安装完成后,您可以打开终端并输入 `java -version` 来验证 Java 21 是否已安装。
-如果指令成功执行,您可以看到类似前文所示的内容,java 版本被展示出来:
+如果命令成功执行,你可以看到类似前文所示的内容,Java 版本被显示出来:
![输入 "java -version" 的终端](/assets/players/installing-java/linux-java-version.png)
diff --git a/translated/zh_cn/players/installing-java/windows.md b/translated/zh_cn/players/installing-java/windows.md
index 09a74d9d8..190c24c7a 100644
--- a/translated/zh_cn/players/installing-java/windows.md
+++ b/translated/zh_cn/players/installing-java/windows.md
@@ -7,11 +7,11 @@ authors:
# 在 Windows 上安装 Java
-这个指南将会指引您在 Windows 上安装 Java 17。
+这个指南将会指引您在 Windows 上安装 Java 21。
-Minecraft 启动器附带了自己的 Java 安装,因此这部分只在你想使用 Fabric 的 `.jar` 安装程序,或者你想使用 Minecraft 服务器的 `.jar` 时有关。
+Minecraft 启动器附带了自己的 Java 安装,因此这部分只在你想使用 Fabric 的 `.jar` 安装器,或者你想使用 Minecraft 服务器的 `.jar` 时有关。
-## 1. 检查 Java 是否已被安装
+## 1. 检查 Java 是否已经安装{#1-check-if-java-is-already-installed}
要检查 Java 是否已安装,你首先必须打开命令提示符。
@@ -26,12 +26,12 @@ Minecraft 启动器附带了自己的 Java 安装,因此这部分只在你想
![命令提示符中输入了「java -version」](/assets/players/installing-java/windows-java-version.png)
:::warning
-要使用较新的 Minecraft (1.19.x 及以上) 版本,你至少需要安装版本 ≥ 17 的 Java。 如果运行该命令后显示 Java 版本低于 17,你需要更新设备上现有 Java。
+要使用 Minecraft 1.21,你需要安装至少 Java 21。 如果运行该命令后显示 Java 版本低于 21,你需要更新设备上现有 Java。
:::
-## 2. 下载 Java 17 安装程序
+## 2. 下载 Java 21 安装程序{#2-download-the-java-installer}
-要安装 Java 17,你需要从 [Adoptium](https://adoptium.net/en-GB/temurin/releases/?os=windows&package=jdk&version=17) 下载安装程序。
+要安装 Java 21,你需要从 [Adoptium](https://adoptium.net/en-GB/temurin/releases/?os=windows\&package=jdk\&version=21) 下载安装程序。
你需要下载 `Windows Installer (.msi)` 版本:
@@ -41,20 +41,20 @@ Minecraft 启动器附带了自己的 Java 安装,因此这部分只在你想
现代大多数电脑都运行 64 位操作系统。 如果你不确定,请尝试使用 64 位的下载。
-## 3. 运行安装程序!
+## 3. 运行安装程序! {#3-run-the-installer}
-按照安装程序的步骤安装 Java 17。 当你到达这个页面时,你应该将以下功能设置为「整个功能将安装在本机硬盘上」:
+按照安装程序的步骤安装 Java 21。 当你到达这个页面时,你应该将以下功能设置为「整个功能将安装在本机硬盘上」:
- `Set JAVA_HOME environment variable` - 这将加入到你的PATH中。
- `JavaSoft (Oracle) registry keys`
-![Java 17 安装程序,具有「Set JAVA_HOME variable」和「JavaSoft (Oracle) registry keys」](/assets/players/installing-java/windows-wizard-screenshot.png)
+![Java 21 安装程序,具有「Set JAVA\_HOME variable」和「JavaSoft (Oracle) registry keys」](/assets/players/installing-java/windows-wizard-screenshot.png)
完成后,你可以按 `下一步` 继续安装。
-## 4. 检查 Java 17 是否已被正确安装
+## 4. 验证是否已安装 Java 21{#4-verify-that-java-is-installed}
-安装完成后,您可以打开终端并输入 `java -version` 来验证 Java 17 是否已安装。
+安装完成后,您可以打开命令提示符并输入 `java -version` 来验证 Java 21 是否已安装。
如果命令成功执行,你可以看到类似前文所示的内容,Java 版本被显示出来:
diff --git a/translated/zh_cn/players/installing-mods.md b/translated/zh_cn/players/installing-mods.md
index 6a9776704..2d3808e68 100644
--- a/translated/zh_cn/players/installing-mods.md
+++ b/translated/zh_cn/players/installing-mods.md
@@ -14,7 +14,7 @@ authors:
## 1. 下载模组{#1-download-the-mod}
:::warning
-你应该只从你信任的来源下载模组。 关于寻找模组的更多信息,请看[寻找可信任的模组](./finding-mods)指南。
+你应该只从你信任的来源下载模组。 关于寻找模组的更多信息,请看[寻找可信的模组](./finding-mods)指南。
:::
大多数模组都需要 Fabric API,可从 [Modrinth](https://modrinth.com/mod/fabric-api) 或 [CurseForge](https://curseforge.com/minecraft/mc-mods/fabric-api) 下载。
diff --git a/translated/zh_cn/players/troubleshooting/crash-reports.md b/translated/zh_cn/players/troubleshooting/crash-reports.md
index cf100898c..7b1aa6981 100644
--- a/translated/zh_cn/players/troubleshooting/crash-reports.md
+++ b/translated/zh_cn/players/troubleshooting/crash-reports.md
@@ -1,25 +1,25 @@
---
title: 崩溃报告
-description: 学习如何处理崩溃报告以及如何阅读它们。
+description: 学习如何处理崩溃报告以及如何阅读。
authors:
- IMB11
---
-# 崩溃报告
+# 崩溃报告{#crash-reports}
:::tip
-如果你在查找崩溃原因时遇到困难,可以在 [Fabric Discord](https://discord.gg/v6v4pMv) 的 `#player-support` 或 `#server-admin-support` 频道中寻求帮助。
+如果在查找崩溃原因时遇到任何困难,可以在 [Fabric Discord](https://discord.gg/v6v4pMv) 的 `#player-support` 或 `#server-admin-support` 频道中寻求帮助。
:::
-崩溃报告是解决游戏或服务器问题的重要部分。 它包含大量关于崩溃的信息,可以帮助你找到崩溃的原因。 它包含大量关于崩溃的信息,可以帮助你找到崩溃的原因。
+崩溃报告是解决游戏或服务器问题的重要部分, 包含大量关于崩溃的信息,可以帮助你找到崩溃的原因。
-## 寻找崩溃报告
+## 寻找崩溃报告{#finding-crash-reports}
-它们位于游戏根目录中的 `crash-reports` 文件夹中。 如果是服务器,它们会存储在服务器实例根目录下的 `crash-reports` 文件夹中。 如果是服务器,它们会存储在服务器实例根目录下的 `crash-reports` 文件夹中。
+崩溃报告存储在游戏目录中的 `crash-reports` 文件夹中。 如果是服务器,则存储在服务器目录中的 `crash-reports` 文件夹中。
对于第三方启动器,你应该参考其文档,了解在哪里可以找到崩溃报告。
-崩溃报告可能在以下位置被找到:
+以下位置能找到崩溃报告:
::: code-group
@@ -37,53 +37,54 @@ authors:
:::
-## 阅读崩溃报告
+## 阅读崩溃报告{#reading-crash-reports}
-崩溃报告的篇幅很长,读起来十分费解。 但无论怎样,它包含着大量关于崩溃的信息,可以帮助你找到崩溃的原因,因此你不得不阅读它。 但无论怎样,它包含着大量关于崩溃的信息,可以帮助你找到崩溃的原因,因此你不得不阅读它。
+崩溃报告的篇幅很长,读起来可能十分费解, 然而包含大量关于崩溃的信息,可以帮助你找到崩溃的原因。
在本指南中,我们将以 [该崩溃报告](https://github.com/FabricMC/fabric-docs/blob/main/public/assets/players/crash-report-example.txt) 为例。
-### 崩溃报告的各部分
+:::details 显示崩溃报告
-崩溃报告由几个部分组成,每个部分都用标题来分隔:
+<<< @/public/assets/players/crash-report-example.txt{log}
-- `---- Minecraft Crash Report ----`,报告摘要部分。 该部分包含导致崩溃的主要错误原因、发生时间和相关堆栈跟踪。 这是崩溃报告中最重要的部分,因为堆栈跟踪通常会提及到导致崩溃的模组。 该部分包含导致崩溃的主要错误原因、发生时间和相关堆栈跟踪。 这是崩溃报告中最重要的部分,因为堆栈跟踪通常会提及到导致崩溃的模组。
-- `-- Last Reload --`,除非崩溃发生在资源重载过程中 (F3+T) ,否则这部分并没有什么用处。 该部分将包含上次重载的发生时间,以及重载过程中出现的任何错误的相关堆栈跟踪。 这些错误通常是由资源包引起的,可以忽略不计,除非它们导致游戏出现问题。
-- `-- System Details --`,本部分包含有关设备的信息,如操作系统、Java 版本和分配给游戏的内存量。 该部分有助于确定你使用的 Java 版本是否正确,以及是否为游戏分配了足够的内存。 该部分有助于确定你使用的 Java 版本是否正确,以及是否为游戏分配了足够的内存。
- - 在此部分中,Fabric 将插入一些自定义内容,其标题为 `Fabric Mods:`,后面是所有已安装模组的列表。 该部分有助于判断模组之间是否有可能发生冲突。 该部分有助于判断模组之间是否有可能发生冲突。
+:::
+
+### 崩溃报告的各部分{#crash-report-sections}
+
+崩溃报告由几个部分组成,每个部分用标题分隔:
-### 分解崩溃报告
+- `---- Minecraft Crash Report ----`,报告的摘要。 该部分包含导致崩溃的主要错误原因、发生时间和相关堆栈跟踪。 这是崩溃报告中最重要的部分,因为堆栈跟踪通常会提及到导致崩溃的模组。
+- `-- Last Reload --`,这部分不太有用,除非崩溃发生在资源重载过程中(F3+T)。 该部分将包含上次重载的发生时间,以及重载过程中出现的任何错误的相关堆栈跟踪。 这些错误通常是由资源包引起的,可以忽略,除非是这些资源包导致的游戏出现问题。
+- `-- System Details --`,本部分包含有关系统的信息,如操作系统、Java 版本和分配给游戏的内存量。 该部分有助于确定你使用的 Java 版本是否正确,以及是否为游戏分配了足够的内存。
+ - 在此部分中,Fabric 将插入一些自定义内容,其标题为 `Fabric Mods:`,后面是所有已安装模组的列表。 该部分有助于判断模组之间是否可能已发生冲突。
-既然我们已经知道崩溃报告的每个部分代表着什么,我们就可以开始分解崩溃报告并找出崩溃原因。
+### 分解崩溃报告{#breaking-down-the-crash-report}
+
+既然已经知道崩溃报告的每个部分是什么,就可以开始分解崩溃报告并找出崩溃原因。
利用上面链接的崩溃示例,我们可以分析崩溃报告并找到崩溃原因,包括导致崩溃的模组。
-`-- Last Reload --`,除非崩溃发生在资源重载过程中 (F3+T) ,否则这部分并没有什么用处。 该部分将包含上次重载的发生时间,以及重载过程中出现的任何错误的相关堆栈跟踪。 这些错误通常是由资源包引起的,可以忽略不计,除非它们导致游戏出现问题。 在这种情况下,`---- Minecraft Crash Report ----` 部分中的堆栈跟踪最为重要,因为它包含导致崩溃的主要错误。 在这里,错误为`java.lang.NullPointerException: Cannot invoke "net.minecraft.class_2248.method_9539()" because "net.minecraft.class_2248.field_10540" is null`.
+在这个情形中,`---- Minecraft Crash Report ---- ` 部分中的堆栈跟踪最重要,因为包含导致崩溃的主要错误。 在这里,错误为`java.lang.NullPointerException: Cannot invoke "net.minecraft.class_2248.method_9539()" because "net.minecraft.class_2248.field_10540" is null`.
-由于堆栈跟踪中提到了大量的模组,因此很难指认崩溃"凶手",不过,首先要做的是查找导致崩溃的部分。
+堆栈跟踪中提到了大量模组,因此很难指出原因,不过,首先要做的是查找导致崩溃的模组。
-```:no-line-numbers
-at snownee.snow.block.ShapeCaches.get(ShapeCaches.java:51)
-at snownee.snow.block.SnowWallBlock.method_9549(SnowWallBlock.java:26) // [!code focus]
-...
-at me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.BlockOcclusionCache.shouldDrawSide(BlockOcclusionCache.java:52)
-at link.infra.indium.renderer.render.TerrainBlockRenderInfo.shouldDrawFaceInner(TerrainBlockRenderInfo.java:31)
-...
-```
+
+
+<<< @/public/assets/players/crash-report-example.txt{8-9,14-15 log}
在这里,导致崩溃的模组是 `snownee`,因为它是堆栈跟踪中提到的第一个模组。
-不过,从堆栈追踪中提到的模组数量来看,这可能意味着模组之间存在一些兼容性问题,导致崩溃的模组可能并不是出错的模组。 在这种情况下,最好向模组作者报告崩溃情况,让他们调查崩溃原因。 在这种情况下,最好向模组作者报告崩溃情况,让他们调查崩溃原因。
+不过,提到的模组有很多,可能意味着模组之间存在一些兼容性问题,导致崩溃的模组可能并不是出错的模组。 在这种情况下,最好向模组作者报告崩溃情况,让他们调查崩溃原因。
-## Mixin崩溃
+## Mixin 崩溃{#mixin-crashes}
:::info
-Mixin 是一种修改游戏的方式,使模组无需破坏性的直接修改游戏的源代码。 它被许多模组使用,对于开发者来说是一款非常强大的工具。 它被许多模组使用,对于开发者来说是一款非常强大的工具。
+Mixin 是一种修改游戏而无需修改游戏的源代码的方式。 许多模组都用了 mixin,这对于开发者来说是非常强大的工具。
:::
-当有 Mixin 引起的崩溃时,通常会在堆栈跟踪中提到该 Mixin 类以及该 Mixin 类修改的类。
+当有 mixin 崩溃时,通常会在堆栈跟踪中提到该 mixin 类以及该 mixin 类修改的类。
-方法 Mixin 的标识 `modid$handlerName` 将被包含在堆栈跟踪中,其中 `modid` 是模组的 ID,而 `handlerName` 是 Mixin 处理部分的名称。
+方法 mixin 会在堆栈跟踪中包含 `modid$handlerName`,其中 `modid` 是模组的 ID,`handlerName` 是 mixin 处理器的名称。
```:no-line-numbers
... net.minecraft.class_2248.method_3821$$$modid$handlerName() ... // [!code focus]
@@ -91,14 +92,14 @@ Mixin 是一种修改游戏的方式,使模组无需破坏性的直接修改
你可以使用此信息找到导致崩溃的模组,并向模组作者报告崩溃情况。
-## 如何处理崩溃报告
+## 如何处理崩溃报告{#what-to-do-with-crash-reports}
-处理崩溃报告的最佳方法是将其上传到在线粘贴板网站,然后在问题追踪处或通过某种联系方式 (Discord 等) 向修改器作者提供崩溃报告网站链接。
+处理崩溃报告的最佳方法是将其上传到在线粘贴板网站,然后将链接分享给模组作者,可以是在他们的问题追踪器,或通过某种联系方式(Discord 等)。
-这可以让模组作者调查崩溃原因、重现崩溃状况并解决导致崩溃的问题。
+这可以让模组作者调查崩溃、复现崩溃并解决导致崩溃的问题。
常用的崩溃报告粘贴网站有:
- [GitHub Gist](https://gist.github.com/)
-- [Pastebin](https://pastebin.com/)
- [mclo.gs](https://mclo.gs/)
+- [Pastebin](https://pastebin.com/)
diff --git a/translated/zh_cn/players/troubleshooting/uploading-logs.md b/translated/zh_cn/players/troubleshooting/uploading-logs.md
index 19a4db55c..42cdf78aa 100644
--- a/translated/zh_cn/players/troubleshooting/uploading-logs.md
+++ b/translated/zh_cn/players/troubleshooting/uploading-logs.md
@@ -5,27 +5,27 @@ authors:
- IMB11
---
-# 上传日志
+# 上传日志{#uploading-logs}
在进行疑难解答时,通常需要提供日志以帮助寻找问题的原因。
-## 为什么我应该上传日志?
+## 为什么我应该上传日志? {#why-should-i-upload-logs}
-上传日志可以让其他人更快地帮助您疑难解答,而不是简单地将日志粘贴到聊天或论坛帖子中。 它还允许你与其他人分享你的日志,而无需拷贝和粘贴它们。 它还允许你与其他人分享你的日志,而无需拷贝和粘贴它们。
+上传日志可以让其他人更快地帮助您疑难解答,而不是简单地将日志粘贴到聊天或论坛帖子中, 还允许你与其他人分享你的日志,而无需复制和粘贴。
-有些文本分享网站还为日志提供语法高亮显示,使日志更容易阅读,但可能会审查敏感信息,如用户名或系统信息。
+有些粘贴网站还为日志提供语法高亮,使日志更容易阅读,但可能会审查敏感信息,如用户名或系统信息。
-## 崩溃报告
+## 崩溃报告{#crash-reports}
-当游戏崩溃时,会自动生成崩溃报告。 它们只包含崩溃信息,而不包含游戏的实际日志。 它们位于游戏目录中的 `crash-reports` 文件夹中。 它们只包含崩溃信息,而不包含游戏的实际日志。 它们位于游戏目录中的 `crash-reports` 文件夹中。
+游戏崩溃时会自动生成崩溃报告。 崩溃报告只包含崩溃信息,不包含游戏的实际日志。 崩溃报告位于游戏目录中的 `crash-reports` 文件夹中。
有关崩溃报告的更多信息,请参阅[崩溃报告](./crash-reports)。
-## 寻找日志
+## 找到日志{#locating-logs}
本指南涵盖了官方 Minecraft 启动器(通常称为“原版启动器”),对于第三方启动器,你应该参阅其文档。
-日志位于游戏目录下的 logs 文件夹中,游戏目录可以在以下位置找到,具体取决于你的操作系统:
+日志位于游戏目录下的 `logs` 文件夹中,游戏目录可以在以下位置找到,具体取决于你的操作系统:
::: code-group
@@ -45,7 +45,7 @@ authors:
最新的日志文件名为 `latest.log`,先前的日志使用命名格式 `yyyy-mm-dd_number.log.gz`。
-## 上传日志
+## 在线上传日志{#uploading-logs-online}
日志可以上传到各种服务,例如:
diff --git a/translated/zh_cn/players/updating-fabric.md b/translated/zh_cn/players/updating-fabric.md
index 1b120ef62..0868ce6cf 100644
--- a/translated/zh_cn/players/updating-fabric.md
+++ b/translated/zh_cn/players/updating-fabric.md
@@ -22,7 +22,7 @@ authors:
-更新 Fabric,简单地确认游戏版本和加载器版本是正确的,然后点击 `安装` 。
+更新 Fabric,简单确认游戏版本和 Loader 版本是正确的,然后点击 `安装` 。
:::important
**运行安装程序时,请确保没有选中“创建新的启动器配置”,否则将创建新的配置文件,而这种情况下我们不需要。**
@@ -30,11 +30,11 @@ authors:
## 3. 在 Minecraft 启动器中打开配置{#3-open-the-profile-in-the-minecraft-launcher}
-安装程度完成后,可以打开 Minecraft 启动器并前往 `Installations(安装)` 选项。 您应当前往您的 Fabric 配置并打开编辑界面。
+安装器完成后,可以打开 Minecraft 启动器并前往 `Installations(安装)` 选项。 您应当前往您的 Fabric 配置并打开编辑界面。
-将该版本替换为刚才安装的 Fabric 加载器版本并点击 `保存`。
+将该版本替换为刚才安装的 Fabric Loader 版本并点击 `保存`。
-![在 Minecraft 启动器中更新 Fabric](/assets/players/updating-fabric.png)
+![在 Minecraft 启动器中更新 Fabric Loader 版本](/assets/players/updating-fabric.png)
## 4. 搞定! {#4-you-re-done}
diff --git a/translated/zh_cn/sidebar_translations.json b/translated/zh_cn/sidebar_translations.json
index 740e6369f..17e71f3e8 100644
--- a/translated/zh_cn/sidebar_translations.json
+++ b/translated/zh_cn/sidebar_translations.json
@@ -6,7 +6,7 @@
"players.installingJava.macOS": "macOS",
"players.installingJava.linux": "Linux",
"players.installingFabric": "安装 Fabric",
- "players.findingMods": "寻找可信赖的模组",
+ "players.findingMods": "寻找可信的模组",
"players.installingMods": "安装模组",
"players.troubleshooting": "疑难解答",
"players.troubleshooting.uploadingLogs": "上传你的日志",
@@ -27,6 +27,9 @@
"develop.items.custom-item-groups": "自定义物品组",
"develop.items.custom-item-interactions": "自定义物品交互",
"develop.items.potions": "药水",
+ "develop.blocks": "方块",
+ "develop.blocks.first-block": "创建你的第一个方块",
+ "develop.blocks.blockstates": "方块状态",
"develop.entities": "实体",
"develop.entities.effects": "状态效果",
"develop.entities.damage-types": "伤害类型",
@@ -48,6 +51,6 @@
"develop.misc.events": "事件",
"develop.misc.text-and-translations": "文本和翻译",
"develop.sounds": "声音",
- "develop.sounds.using-sounds": "播放声音事件",
+ "develop.sounds.using-sounds": "播放声音",
"develop.sounds.custom": "创建自定义声音"
}
\ No newline at end of file
diff --git a/translated/zh_cn/website_translations.json b/translated/zh_cn/website_translations.json
new file mode 100644
index 000000000..5fc258d07
--- /dev/null
+++ b/translated/zh_cn/website_translations.json
@@ -0,0 +1,46 @@
+{
+ "authors.heading": "页面作者",
+ "authors.nogithub": "%s(不在 GitHub)",
+ "banner": "Fabric 文档仍在进展中,请在 %s 或 %s 报告问题。",
+ "description": "Minecraft 的模组开发工具链 Fabric 的全面文档。",
+ "footer.next": "下一页",
+ "footer.prev": "上一页",
+ "github_edit": "在 GitHub 编辑此页",
+ "lang_switcher": "更改语言",
+ "last_updated": "上次更新于",
+ "mode_dark": "切换到深色主题",
+ "mode_light": "切换到浅色主题",
+ "mode_switcher": "外观",
+ "nav.contribute": "贡献",
+ "nav.contribute.api": "Fabric API",
+ "nav.download": "下载",
+ "nav.home": "首页",
+ "outline": "在本页",
+ "return_to_top": "回到顶部",
+ "search.back": "关闭搜索",
+ "search.button": "搜索",
+ "search.display_details": "显示详细列表",
+ "search.footer.close": "关闭",
+ "search.footer.close.key": "Escape",
+ "search.footer.down.key": "下箭头",
+ "search.footer.navigate": "导航",
+ "search.footer.up.key": "上箭头",
+ "search.footer.select": "选择",
+ "search.footer.select.key": "Enter",
+ "search.no_results": "没有以下的结果",
+ "search.reset": "重置搜索",
+ "sidebar_menu": "菜单",
+ "social.discord": "Discord",
+ "social.github": "GitHub",
+ "title": "Fabric 文档",
+ "version_switcher": "切换版本",
+ "404.code": "404",
+ "404.crowdin_link": "在 Crowdin 中本地化",
+ "404.crowdin_link.label": "打开 Crowdin 编辑器",
+ "404.english_link": "用英语阅读",
+ "404.english_link.label": "打开英文版",
+ "404.link": "返回主页",
+ "404.link.label": "前往主页",
+ "404.quote": "这个页面试图在熔岩里游泳",
+ "404.title": "未找到页面"
+}
\ No newline at end of file
diff --git a/translated/zh_tw/develop/getting-started/creating-a-project.md b/translated/zh_tw/develop/getting-started/creating-a-project.md
new file mode 100644
index 000000000..6bd42c2cd
--- /dev/null
+++ b/translated/zh_tw/develop/getting-started/creating-a-project.md
@@ -0,0 +1,68 @@
+---
+title: 建立一個專案
+description: 關於如何使用 Fabric 模組模板生成器來製作新的模組專案的逐步指南。
+authors:
+ - IMB11
+---
+
+# 建立一個專案 {#creating-a-project}
+
+Fabric 提供了使用 Fabric 模組模板生成器創建新模組專案的簡單方法。 —— 如果你願意,也可以使用範例模組儲存庫手動創建一個新專案,請參閱 [手動創建專案](#manual-project-creation) 章節。
+
+## 生成專案 {#generating-a-project}
+
+你可以使用 [Fabric Template Mod Generator](https://fabricmc.net/develop/template/) 來生成你的新模組專案 —— 你需要填寫必要的部分,比如套件名稱和模組名稱,還有你想開發的模組的 Minecraft 版本。
+
+![Preview of the generator](/assets/develop/getting-started/template-generator.png)
+
+如果你想要使用 Kotlin 進行開發,或是想增加 data generators ,可以在 `Advanced Options` 部分勾選對應的選項。
+
+![Advanced options section](/assets/develop/getting-started/template-generator-advanced.png)
+
+必要的部分輸入完成後,點擊 `Generate` 按鈕,生成器會以 zip 檔的形式產生新專案給你使用。
+
+你需要把這個 zip 檔解壓縮到你想要的位置,然後從 IntelliJ IDEA 打開解壓縮後的資料夾:
+
+![Open Project Prompt](/assets/develop/getting-started/open-project.png)
+
+## 導入專案 {#importing-the-project}
+
+在 IntelliJ IDEA 打開專案後, IDE 會自動載入專案的 Gradle 配置並執行必要的初始化任務。
+
+如果你收到了一個關於 Gradle 構建腳本的通知,你應該點擊 `Import Gradle Project` 按鈕:
+
+![Gradle Prompt](/assets/develop/getting-started/gradle-prompt.png)
+
+專案導入完成後,你就可以在專案資源管理器中看到專案的文件,就能開始開發你的模組了。
+
+## 手動建立專案 {#manual-project-creation}
+
+:::warning
+你會需要安裝 [Git](https://git-scm.com/) 來複製範例模組儲存庫。
+:::
+
+如果你無法使用 Fabric 模組模板生成器,可以按照以下步驟手動建立新專案。
+
+首先,使用 Git 複製範例模組儲存庫:
+
+```sh
+git clone https://github.com/FabricMC/fabric-example-mod/ my-mod-project
+```
+
+這會把儲存庫複製到一個叫 `my-mod-porject` 的新資料夾。
+
+你應該從複製的存儲庫中刪除 `.git` 資料夾,然後在 IntelliJ IDEA 中打開專案。 如果 `.git` 資料夾沒有顯示,你應該在檔案總管中開啟 `顯示隱藏的項目` 。
+
+在 IntelliJ IDEA 中打開專案後,它應該會自動載入專案的 Gradle 配置並執行必要的初始化任務。
+
+再次強調,如果你收到了一個關於 Gradle 構建腳本的通知,你應該點擊 `Import Gradle Project` 按鈕。
+
+### 修改模板 {#modifying-the-template}
+
+專案導入後,你應該修改專案的細節,以符合你的模組的資訊:
+
+- 修改專案中的 `gradle.properties` 檔案,把 `maven_group` 和 `archive_base_name` 修改成與你的模組的資訊相符。
+- 修改 `fabric.mod.json` 文件,將 `id`、`name` 和 `description` 屬性改為成與你的模組的資訊相符。
+- 請確保更新Minecraft的版本、映射、Loader和Loom的版本,你可以透過 \ 查詢這些資訊,以確保它們符合你希望的目標版本。
+
+你也可以修改套件名稱和模組的主類別來符合你的模組的細節。
diff --git a/translated/zh_tw/develop/getting-started/introduction-to-fabric-and-modding.md b/translated/zh_tw/develop/getting-started/introduction-to-fabric-and-modding.md
new file mode 100644
index 000000000..ffb2c03b3
--- /dev/null
+++ b/translated/zh_tw/develop/getting-started/introduction-to-fabric-and-modding.md
@@ -0,0 +1,65 @@
+---
+title: Fabric 和模組簡介
+description: "Minecraft: Java Edition 中 Fabric 和模組的簡單介紹。"
+authors:
+ - IMB11
+ - itsmiir
+authors-nogithub:
+ - basil4088
+---
+
+# Fabric和模組開發簡介 {#introduction-to-fabric-and-modding}
+
+## 先決條件 {#prerequisites}
+
+在開始學習之前,你應該對 Java 有基本的了解,並對物件導向程式設計 (OOP) 有所理解。
+
+如果你不熟悉這些概念,你可能需要再開始開發模組前先了解一些關於 Java 和 OOP 的教學。以下是一些可以用來學習 Java 和 OOP 的資源:
+
+- [W3: Java Tutorials](https://www.w3schools.com/java/)
+- [Codecademy: Learn Java](https://www.codecademy.com/learn/learn-java)
+- [W3: Java OOP](https://www.w3schools.com/java/java_oop.asp)
+- [Medium: Introduction to OOP](https://medium.com/@Adekola_Olawale/beginners-guide-to-object-oriented-programming-a94601ea2fbd)
+
+### 術語 {#terminology}
+
+在開始前,先來看看使用 Fabric 開發模組時會遇到的一些術語:
+
+- **Mod**: 對遊戲進行修改,增加或改變現有的功能。
+- **Mod Loader**: 將模組載入遊戲的工具,例如 Fabric Loader。
+- **Mixin**: 在運行時修改遊戲程式碼的工具 - 更多資信請參閱 [Mixin Introduction](https://fabricmc.net/wiki/tutorial:mixin_introduction)。
+- **Gradle**: 用於構建和編譯模組的自動化構建工具,Fabric 用它來構建模組。
+- **Mappings**: 將被混淆的程式碼轉化為人類可讀程式碼的映射集合。
+- **Obfuscation**: 讓程式碼變得難以理解的過程,Mojang 用它來保護 Minecraft 的原始碼。
+- **Remapping**: 將被混淆的程式碼映射成人類可讀程式碼的過程。
+
+## 甚麼是 Fabric? {#what-is-fabric}
+
+Fabric 是用於 Minecraft: Java Edition 的輕量級模組開發工具鏈。
+
+它被設計成一個簡單易用的模組開發平台。 Fabric 是由社群驅動的專案,而且是開源的,這代表任何人都可以為此專案做出貢獻。
+
+你應該了解組成 Fabric 的四個主要部分:
+
+- **Fabric Loader**: 一個靈活、跨平台的模組載入器,專為 Minecraft 和其他遊戲及應用程式設計。
+- **Fabric Loom**: Gradle 插件,能讓開發者輕鬆的開發模組和進行除錯。
+- **Fabric API**: 一套給模組開發者創建模組時使用的 API 和工具。
+- **Yarn**: 一套開放的 Minecraft 映射表,在 Creative Commons Zero 授權條款下讓所有人使用。
+
+## 為什麼開發 Minecraft 模組需要 Fabric ? {#why-is-fabric-necessary-to-mod-minecraft}
+
+> Modding 是指修改遊戲以改變其行為或增加新功能的過程,以 Minecraft 來說,這可以是加入新物品、方塊或實體,改變遊戲機制或增加遊戲模式等。
+
+Minecraft: Java Edition 被 Mojang 混淆,因此很難單獨修改。 不過,在模組開發工具 (例如 Fabric ) 的幫助下,修改變得容易許多。 有幾個映射系統可以協助進行這個過程。
+
+Loom 使用這些映射將被混淆的程式碼重新映射成人類看得懂的格式,讓模組開發者更容易理解和修改遊戲程式碼。 在這部分, Yarn 是一個受歡迎且優秀的映射選擇,但也有其它的選擇。 每個映射表專案都有自己的優勢和專注的地方。
+
+Loom 可以讓你輕鬆的開發和編譯模組,針對重新映射的程式碼進行操作,而 Fabric Loader 則能讓你將這些模組加載到遊戲中。
+
+## Fabric API 提供哪些功能,為甚麼需要它? {#what-does-fabric-api-provide-and-why-is-it-needed}
+
+> Fabric API 是一套給模組開發者在創建模組時使用的 API 和工具。
+
+Fabric API 在 Minecraft 現有功能的基礎上提供了一系列使開發更方便的 API。例如,提供新的 Hook 和事件供開發者使用,或提供新的實用程式和工具讓修改遊戲內容變得更容易,例如訪問加寬器 (Access Wideners) 和訪問內部註冊表 (如可堆肥物品註冊表) 的能力。
+
+雖然 Fabric API 提供了強大的功能,但有些任務,例如基本的方塊註冊表,可以在不使用 Fabric API 的情況下完成。
diff --git a/translated/zh_tw/develop/getting-started/launching-the-game.md b/translated/zh_tw/develop/getting-started/launching-the-game.md
new file mode 100644
index 000000000..38496a043
--- /dev/null
+++ b/translated/zh_tw/develop/getting-started/launching-the-game.md
@@ -0,0 +1,63 @@
+---
+title: 啟動遊戲
+description: 學習如何利用各種啟動設定檔在即時遊戲環境中啟動和偵錯你的模組。
+authors:
+ - IMB11
+---
+
+# 啟動遊戲 {#launching-the-game}
+
+Fabric Loom 提供了多種啟動配置檔案,以幫助你在實時遊戲環境中啟動模組和進行除錯。 本指南將介紹各種啟動配置檔案以及如何用它們來除錯和在遊戲中測試你的模組。
+
+## 啟動配置檔案 {#launch-profiles}
+
+如果你使用的是 IntelliJ IDEA,你可以在視窗的右上角找到啟動配置檔案。 點擊下拉選單可以查看可用的啟動配置檔案。
+
+應該有一個客戶端和伺服器端配置檔案,可以選擇正常執行或在除錯模式下執行它:
+
+![Launch Profiles](/assets/develop/getting-started/launch-profiles.png)
+
+## Gradle 任務 {#gradle-tasks}
+
+如果你使用的是命令行,則可以用以下 Gradle 指令啟動遊戲:
+
+- `./gradlew runClient` - 以客戶端啟動遊戲。
+- `./gradlew runServer` - 以伺服器端啟動遊戲。
+
+這種方法的唯一問題是無法輕鬆為程式碼除錯。 如果想要進行程式碼除錯,你需要使用 IntelliJ IDEA 中的啟動配置檔案,或者通過你的 IDE 的 Gradle 集成來進行。
+
+## 熱調換類別 {#hotswapping-classes}
+
+在除錯模式下運行遊戲時,可以熱調換你的類別而無需重啟遊戲。 這對於快速測試程式碼的更改很有用。
+
+但你仍然會受到很大的限制:
+
+- 你無法新增或刪除函式
+- 你無法修改函式參數
+- 你無法添加或刪除字段
+
+## 熱調換 Mixins {#hotswapping-mixins}
+
+如果正在使用 Mixin,則可以熱調換 Mixin 類別而無須重啟遊戲。 這對於快速測試 Mixin 的更改很有用。
+
+但是需要安裝 Mixin Java 代理才能正常用作。
+
+### 1. 找到 Mixin 資料庫 Jar {#1-locate-the-mixin-library-jar}
+
+在 IntelliJ IDEA,你可以在 "Project" 部分的 "External Libraries" 部分找到 mixin 資料庫 jar:
+
+![Mixin Library](/assets/develop/getting-started/mixin-library.png)
+
+你需要複製 jar 的 "絕對路徑" 已供下一步使用。
+
+### 2. 加入 `-javaagent` VM 參數 {#2-add-the--javaagent-vm-argument}
+
+在你的 "Minecraft Client" 和/或 "Minecraft Server" 啟動配置中,將以下內容加進 VM 參數選項:
+
+```:no-line-numbers
+-javaagent:"此處為 mixin 資料庫 jar 的路徑"
+```
+
+![VM Arguments Screenshot](/assets/develop/getting-started/vm-arguments.png)
+
+現在,你應該能夠在除錯期間修改 mixin 函式的內容,並且無須重啟遊戲即可使修改生效。
diff --git a/translated/zh_tw/develop/getting-started/project-structure.md b/translated/zh_tw/develop/getting-started/project-structure.md
new file mode 100644
index 000000000..d89317159
--- /dev/null
+++ b/translated/zh_tw/develop/getting-started/project-structure.md
@@ -0,0 +1,59 @@
+---
+title: 專案結構
+description: Fabric 模組專案結構概述
+authors:
+ - IMB11
+---
+
+# 專案結構 {#project-structure}
+
+本頁將介紹 Fabric 模組專案的結構和專案中每個檔案和資料夾的用途。
+
+## `fabric.mod.json` {#fabric-mod-json}
+
+`fabric.mod.json` 是向 Fabric Loader 描述你的模組的主要檔案。 這包含了模組的 ID、版本和前置等訊息。
+
+`fabric.mod.json` 檔案中最重要的部分是:
+
+- `id`: 模組的ID,應該要是獨一無二的。
+- `name`: 模組的名稱。
+- `environment`: 模組運行環境,可以是 `client` ,可以是 `server`,或是 `*`。
+- `entrypoints`: 模組的進入點,例如 `main` 或 `client` 。
+- `depends`: 你的模組所需要的前置模組。
+- `mixins`: 模組提供的 Mixin。
+
+下方是一個範例 `fabric.mod.json` 檔案 —— 這是此文檔網站的參考專案的 `fabric.mod.json` 檔案。
+
+:::details 參考專案 `fabric.mod.json`
+@[code lang=json](@/reference/latest/src/main/resources/fabric.mod.json)
+:::
+
+## Entrypoints {#entrypoints}
+
+如前所述,`fabric.mod.json` 檔案包含 —— 個名為 `entrypoints` 的欄位 - 這個欄位用來指定你的模組提供的進入點。
+
+模板模組生成器預設會創建一個 `main` 和一個 `client` 進入點 —— `main` 進入點用於共用的程式碼,而 `client` 進入點則用於客戶端特定的程式碼。 這些進入點會在遊戲啟動時分別被調用。
+
+@[code lang=java transcludeWith=#entrypoint](@/reference/latest/src/main/java/com/example/docs/FabricDocsReference.java)
+
+上面是一個簡單的 `main` 進入點範例,在遊戲啟動時向控制台記錄一條訊息。
+
+## `src/main/resources` {#src-main-resources}
+
+`src/main/resources` 資料夾用於儲存模組的資源檔案,例如材質、模型和音效。
+
+它也是 `fabric.mod.json` 和模組使用的 Mixin 配置檔案存放的位置。
+
+資源檔案儲存在與資源包結構相似的結構中-例如,方塊的材質會存放在 `assets/modid/textures/block/block.png` 中。
+
+## `src/client/resources` {#src-client-resources}
+
+`src/client/resources` 資料夾用於儲存客戶端特定的資源檔案,例如僅在客戶端使用的材質、模型和音效。
+
+## `src/main/java` {#src-main-java}
+
+`src/main/java` 資料夾用來存放模組的 Java 原始碼 —— 它存在於客戶端和伺服器端環境中。
+
+## `src/client/java` {#src-client-java}
+
+`src/client/java` 資料夾用於存放特定於客戶端的 Java 原始碼 —— 例如渲染程式碼或客戶端邏輯,如方塊顏色提供程式。
diff --git a/translated/zh_tw/develop/getting-started/setting-up-a-development-environment.md b/translated/zh_tw/develop/getting-started/setting-up-a-development-environment.md
new file mode 100644
index 000000000..c08ebd60e
--- /dev/null
+++ b/translated/zh_tw/develop/getting-started/setting-up-a-development-environment.md
@@ -0,0 +1,55 @@
+---
+title: 建置開發環境
+description: 關於建置 Fabric 開發環境的逐步指南。
+authors:
+ - IMB11
+ - andrew6rant
+ - SolidBlock-cn
+ - modmuss50
+ - daomephsta
+ - liach
+ - telepathicgrunt
+ - 2xsaiko
+ - natanfudge
+ - mkpoli
+ - falseresync
+ - asiekierka
+authors-nogithub:
+ - siglong
+---
+
+# 建置開發環境 {#setting-up-a-development-environment}
+
+要開始用 Fabric 開發模組,需要使用 IntelliJ IDEA 建置開發環境。
+
+## 安裝 JDK 21 {#installing-jdk-21}
+
+要開發 Minecraft 1.21 的模組,你需要 JDK 21。
+
+如果你需要安裝 Java 的幫助,可以參考 [player guides section](../../players/index) 中的各種 Java 安裝指南。
+
+## 安裝 IntelliJ IDEA {#installing-intellij-idea}
+
+:::info
+你當然可以使用其他 IDE,如 Eclipse 或 Visual Studio Code,但本文檔站上的大多數頁面都假設你使用的是 IntelliJ IDEA。如果你使用其他 IDE,請參考該 IDE 的文檔。
+:::
+
+如果沒有安裝 IntelliJ IDEA,你可以從 [官網](https://www.jetbrains.com/idea/download/) 下載 - 按照你的作業系統的安裝步驟操作。
+
+IntelliJ IDEA 的 Community 版本是免費且開源的,是使用 Fabric 開發模組的推薦版本。
+
+你可能需要向下滑動才能找到 Community 版的下載連結 - 如下圖所示:
+
+![IDEA Community Edition Download Prompt](/assets/develop/getting-started/idea-community.png)
+
+## 安裝 IDEA 插件 {#installing-idea-plugins}
+
+雖然這些插件並不是必要的,但可以讓使用 Fabric 開發模組更加容易 - 你應該考慮安裝它們。
+
+### Minecraft Development {#minecraft-development}
+
+Minecraft Development 插件提供對 Fabric 模組開發提供支援,是要安裝的最重要的插件。
+
+你可以通過打開IntelliJ IDEA,然後前往 `File > Settings > Plugins > Marketplace Tab` - 在搜索欄中搜尋 `Minecraft Development`,然後點擊 `Install` 按鈕來安裝它。
+
+或者你可以從 [plugin page](https://plugins.jetbrains.com/plugin/8327-minecraft-development) 下載它,然後點擊 `File > Settings > Plugins > Install Plugin From Disk` 來安裝。
diff --git a/translated/zh_tw/index.md b/translated/zh_tw/index.md
index 26baaa307..5eb15e4e9 100644
--- a/translated/zh_tw/index.md
+++ b/translated/zh_tw/index.md
@@ -13,14 +13,14 @@ features:
linkText: 開始使用
- title: 玩家指南
icon: 📚
- details: 你是一位希望使用由 Fabric 驅動的模組的玩家嗎?我們的玩家指南可以滿足你的需求。這些指南將幫助你下載、安裝和疑難排解 Fabric 模組。 我們的玩家指南可以滿足你的需求。 這些指南將幫助你下載、安裝和疑難排解 Fabric 模組。
+ details: 你是一位希望使用由 Fabric 驅動的模組的玩家嗎? 我們的玩家指南可以滿足你的需求。 這些指南將幫助你下載、安裝和疑難排解 Fabric 模組。
link: ./players/index
linkText: 閱讀更多
---
-## 想要貢獻嗎?
+## 想要貢獻嗎? {#contribute}
如果你想為 Fabric 文件做出貢獻,你可以在 [GitHub](https://github.com/FabricMC/fabric-docs) 找到原始碼,以及相關的[貢獻指南](./contributing)。
diff --git a/translated/zh_tw/sidebar_translations.json b/translated/zh_tw/sidebar_translations.json
index d1631f521..a7f1f1578 100644
--- a/translated/zh_tw/sidebar_translations.json
+++ b/translated/zh_tw/sidebar_translations.json
@@ -20,7 +20,16 @@
"develop.gettingStarted.projectStructure": "專案結構",
"develop.gettingStarted.launchGame": "啟動你的遊戲",
"develop.items": "物品",
+ "develop.items.first-item": "建立你的第一個物品",
+ "develop.items.food": "食物物品",
+ "develop.items.custom-armor": "自訂盔甲",
+ "develop.items.custom-tools": "自訂工具",
+ "develop.items.custom-item-groups": "自訂物品組",
+ "develop.items.custom-item-interactions": "自訂物品交互",
"develop.items.potions": "藥水",
+ "develop.blocks": "方塊",
+ "develop.blocks.first-block": "建立你的第一個方塊",
+ "develop.blocks.blockstates": "方塊狀態",
"develop.entities": "實體",
"develop.entities.effects": "狀態效果",
"develop.entities.damage-types": "傷害類型",
@@ -40,8 +49,8 @@
"develop.misc": "雜項頁面",
"develop.misc.codecs": "解編碼器",
"develop.misc.events": "事件",
+ "develop.misc.text-and-translations": "文本和翻譯",
"develop.sounds": "音效",
"develop.sounds.using-sounds": "撥放音效事件",
- "develop.sounds.custom": "建立自訂音效",
- "github.edit": "在 GitHub 上編輯此頁面"
+ "develop.sounds.custom": "建立自訂音效"
}
\ No newline at end of file
diff --git a/translated/zh_tw/website_translations.json b/translated/zh_tw/website_translations.json
new file mode 100644
index 000000000..e27d69bca
--- /dev/null
+++ b/translated/zh_tw/website_translations.json
@@ -0,0 +1,46 @@
+{
+ "authors.heading": "頁面作者",
+ "authors.nogithub": "%s(不在 GitHub)",
+ "banner": "Fabric 文件仍在進展中,請在 %s 或 %s 回報問題。",
+ "description": "Minecraft 的模組製作工具鏈 Fabric 的全面文件。",
+ "footer.next": "下一頁",
+ "footer.prev": "上一頁",
+ "github_edit": "在 GitHub 上編輯此頁面",
+ "lang_switcher": "更改語言",
+ "last_updated": "上次更新於",
+ "mode_dark": "切換至深色主題",
+ "mode_light": "切換至淺色主題",
+ "mode_switcher": "外觀",
+ "nav.contribute": "貢獻",
+ "nav.contribute.api": "Fabric API",
+ "nav.download": "下載",
+ "nav.home": "主頁",
+ "outline": "在本頁",
+ "return_to_top": "返回頂部",
+ "search.back": "關閉搜尋",
+ "search.button": "搜尋",
+ "search.display_details": "顯示詳細清單",
+ "search.footer.close": "關閉",
+ "search.footer.close.key": "Escape",
+ "search.footer.down.key": "向下箭頭",
+ "search.footer.navigate": "導航",
+ "search.footer.up.key": "向上箭頭",
+ "search.footer.select": "選取",
+ "search.footer.select.key": "Enter",
+ "search.no_results": "沒有關於此項目的搜尋結果:",
+ "search.reset": "重設搜尋",
+ "sidebar_menu": "選單",
+ "social.discord": "Discord",
+ "social.github": "GitHub",
+ "title": "Fabric 文件",
+ "version_switcher": "切換版本",
+ "404.code": "404",
+ "404.crowdin_link": "在 Crowdin 中本地化",
+ "404.crowdin_link.label": "打開 Crowdin 編輯器",
+ "404.english_link": "用英語閱讀",
+ "404.english_link.label": "打開英文版",
+ "404.link": "返回主頁",
+ "404.link.label": "前往主頁",
+ "404.quote": "這個頁面試圖在熔岩裡游泳",
+ "404.title": "找不到頁面"
+}
\ No newline at end of file