Skip to content

Commit

Permalink
New Crowdin updates (#236)
Browse files Browse the repository at this point in the history
  • Loading branch information
FabricMCBot authored Dec 30, 2024
1 parent a97a50f commit 4767872
Show file tree
Hide file tree
Showing 21 changed files with 189 additions and 126 deletions.
57 changes: 34 additions & 23 deletions translated/zh_cn/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,19 @@ description: Fabric 文档贡献指南

如果想将文档翻译为你的语言,可以在 [Fabric Crowdin 页面](https://zh.crowdin.com/project/fabricmc)翻译。

## 贡献内容{#contributing-content}
<!-- markdownlint-disable-next-line titlecase-rule -->

## <Badge type="tip">new-content</Badge> 贡献内容{#contributing-content}

贡献内容是贡献 Fabric 文档的主要方式。

所有内容贡献都会经历三个阶段
所有内容贡献都经过以下步骤,每个步骤都与一个标签相关联

1. 扩展指南(如果可能)
2. 内容验证
3. 清理(语法等)
1. <Badge type="tip">本地</Badge> 准备您的更改并推出一个PR
2. <Badge type="tip">stage:expansion</Badge>:扩展指南(如果可能)
3. <Badge type="tip">stage:verification</Badge>:内容验证
4. <Badge type="tip">步骤:整理中</Badge>:语法检查中...
5. <Badge type="tip">步骤:准备</Badge>:准备合并!

所有的内容都应当遵循我们的[样式指南](#style-guidelines)

Expand All @@ -44,7 +48,7 @@ description: Fabric 文档贡献指南

可以在 GitHub 网站界面上做出更改,也可以本地开发和预览网站。

#### <Badge type="tip">本地</Badge>克隆你的复刻{#clone-your-fork}
#### 克隆你的复刻{#clone-your-fork}

如果想要本地克隆复刻,需要安装 [Git](https://git-scm.com/)

Expand All @@ -55,7 +59,7 @@ description: Fabric 文档贡献指南
git clone https://github.com/your-username/fabric-docs.git
```

#### <Badge type="tip">本地</Badge>安装依赖{#install-dependencies}
#### 安装依赖{#install-dependencies}

**如果想要本地预览更改,需要安装 [Node.js 18+](https://nodejs.org/en/)**

Expand All @@ -65,7 +69,7 @@ git clone https://github.com/your-username/fabric-docs.git
npm install
```

#### <Badge type="tip">本地</Badge>运行开发服务器{#run-the-development-server}
#### 运行开发服务器{#run-the-development-server}

这将允许您在本地地址 `localhost:3000` 预览您的更改,并自动在修改时重载页面。

Expand All @@ -75,23 +79,23 @@ npm run dev

现在可以从浏览器访问 `http://localhost:5173` 打开和浏览网站。

#### <Badge type="tip">本地</Badge>构建网站{#building-the-website}
#### 构建网站{#building-the-website}

这会把所有 Markdown 文件编译为静态 HTML 文件并保存至 `.vitepress/dist`

```sh
npm run build
```

#### <Badge type="tip">本地</Badge>预览构建的网站{#previewing-the-built-website}
#### 预览构建的网站{#previewing-the-built-website}

这将在端口 `4173` 启动本地服务器并展示 `.vitepress/dist` 中的网页:

```sh
npm run preview
```

#### <Badge type="tip">本地</Badge>打开拉取请求{#opening-a-pull-request}
#### 打开拉取请求{#opening-a-pull-request}

对你的更改满意了,就可以 `推送(push)` 你的更改。

Expand All @@ -103,25 +107,34 @@ git push

然后,跟随 `git push` 的输出打开拉取请求。

### 2. 需要时扩展指南{#2-guidance-for-expansion-if-needed}
### 2. <Badge type="tip">stage:expansion</Badge> 需要时扩展指南{#2-guidance-for-expansion-if-needed}

如果文档团队认为您需要拓展您的拉去请求,团队成员将添加 <Badge type="tip">stage:expansion</Badge> 标签到您的拉去请求,并附上一条评论解释为什么他认为可以拓展。 如果同意建议,可以扩展你的拉取请求。

如果文档团队认为你需要扩展拉取请求,团队的成员会给你的拉取请求添加 `can-expand` 标签,并附上一条评论解释为什么他认为可以扩展。 如果同意建议,可以扩展你的拉取请求。
如果不想扩展您的拉取请求,但乐于让其他人在未来扩展它,最好在[议题页面](https://github.com/FabricMC/fabric-docs/issues)创建议题,并解释您想如何扩展。 之后文档制作团队将会在你的PR中加入<Badge type="tip">帮助-追踪</Badge>标签

不用为扩展拉取请求感觉到压力。 如果不想扩展您的拉取请求,可以简单地请求移除 `can-expansion` 标签。
### 3. <Badge type="tip">stage:verification</Badge> 内容验证{#3-content-verification}

如果不想扩展您的拉取请求,但乐于让其他人在未来扩展它,最好在[议题页面](https://github.com/FabricMC/fabric-docs/issues)创建议题,并解释您想如何扩展
这是最重要的阶段,因为这能确保内容准确且遵循 Fabric 文档的样式指南

### 3. 内容验证{#3-content-verification}
在这一步,以下问题应被回答:

所有添加内容的拉取请求都会经过内容验证,这是最重要的阶段,因为这能确保内容准确且遵循 Fabric 文档的样式指南。
- 所有内容都正确吗?
- 所有内容都是最新的吗?
- 内容是否涵盖所有情况,例如不同的操作系统?

### 4. 清理{#4-cleanup}
### 4. <Badge type="tip">stage:cleanup</Badge> 清理{#4-cleanup}

这个阶段是文档团队会修正任何语法问题并在合并拉取请求之前进行他们认为必要的任何其他修改的时候!
在这一步,会发生以下内容:

## 贡献网页框架{#contributing-framework}
- 使用[LanguageTool](https://languagetool.org/)来修复一切语法问题
- 使用 [`markdownlint`](https://github.com/DavidAnson/markdownlint) 检查所有 Markdown 文件
- 使用[检查工具](https://checkstyle.sourceforge.io/)来格式化所有Java代码
- 其它杂项翻译或优化

“框架”指的是网站的内部结构,任何修改网站框架的拉取请求都应该用 `framework` 标签标记。
## <Badge type="tip">framework</Badge> 贡献网页框架{#contributing-framework}

“框架”指的是网站的内部结构,任何修改网站框架的拉取请求都应该用 <Badge type="tip">framework</Badge> 标签标记。

您应该在咨询了 [Fabric Discord](https://discord.gg/v6v4pMv) 上的文档团队或通过一个 issue 后再发起框架相关的拉取请求。

Expand All @@ -137,8 +150,6 @@ git push

所有原始文档都使用英文书写,遵循美国的语法规则。

可以使用 [LanguageTool](https://languagetool.org/) 检查你的语法,不要过于担心。 我们的文档团队会在清理阶段审查并纠正语法。 不过,一开始就努力做到正确可以为我们节省时间。

### 给 Frontmatter 添加数据{#add-data-to-the-frontmatter}

所有页面必须在 frontmatter 中有 `title``description`
Expand Down
4 changes: 2 additions & 2 deletions translated/zh_cn/develop/blocks/blockstates.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Minecraft 已经有些自定义的类,允许你快速创建特定类型的方

同样,纹理文件可以在 `assets/<mod id here>/textures/block` 中找到。

<DownloadEntry type="Textures" visualURL="/assets/develop/blocks/blockstates_0_large.png" downloadURL="/assets/develop/blocks/condensed_oak_log_textures.zip" />
<DownloadEntry visualURL="/assets/develop/blocks/blockstates_0_large.png" downloadURL="/assets/develop/blocks/condensed_oak_log_textures.zip">纹理</DownloadEntry>

由于柱方块有两个位置,水平和垂直,我们需要创建两个单独的模型文件:

Expand Down Expand Up @@ -96,7 +96,7 @@ Remember, blockstate files can be found in the `assets/<mod id here>/blockstates

创建方块状态前,我们需要为方块的激活的和未激活的状态都提供纹理,以及方块模型。

<DownloadEntry type="Textures" visualURL="/assets/develop/blocks/blockstates_2_large.png" downloadURL="/assets/develop/blocks/prismarine_lamp_textures.zip" />
<DownloadEntry visualURL="/assets/develop/blocks/blockstates_2_large.png" downloadURL="/assets/develop/blocks/prismarine_lamp_textures.zip">纹理</DownloadEntry>

用你的方块模型知识,创建方块的两个模型:一个用于激活的状态,一个用于未激活的状态。 完成后,就可以开始创建方块状态文件了。

Expand Down
16 changes: 10 additions & 6 deletions translated/zh_cn/develop/blocks/first-block.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: 创建你的第一个方块
description: 学习如何在 Minecraft 中创建你的第一个自定义方块。
authors:
- IMB11
- xEobardThawne
- its-miroma
---

# 创建你的第一个方块{#creating-your-first-block}
Expand All @@ -23,7 +25,7 @@ Mojang 对原版方块的处理方法和这个也非常相似,你可以参考

像物品一样,你需要确保类被加载,这样所有包含方块实体的静态字段都会初始化。

要做到这样,你可以创建占位的 `initialize` 方法,并在模组初始化器中调用以触发静态初始化
你可以添加一个 `initialize` 方法,并在模组的[初始化](./getting-started/project-structure#entrypoints)中调用以进行静态初始化

:::info
如果不知道什么是静态初始化,那么这里说下,这是初始化类中的所有静态字段的过程。 JVM 加载类时,以及创建类的任何实例之前,都会完成这一过程。
Expand All @@ -43,7 +45,7 @@ public class ModBlocks {

和物品类似,方块会在构造函数中接收一个 `Block.Settings` 类,指定了方块的属性,例如其声音效果和挖掘等级。

我们不会在这里提到所有选项——可以查看类本身来看看各种选项,应该能解释清楚的
这里不会把所有选项都提到——可以查看类本身来看看各种选项,应该能直接懂的

这里为作举例,我们会创建一个拥有和泥土的相同属性但材料不同的方块。

Expand Down Expand Up @@ -79,17 +81,17 @@ Minecraft 会在创造模式物品栏中,以及其他显示方块名称的地

```json
{
"block.mod_id.condensed_dirt": "Condensed Dirt"
"block.mod_id.condensed_dirt": "Condensed Dirt"
}
```

你可以重启游戏,或者构建你的模组然后按 <kbd>F3</kbd> + <kbd>T</kbd> 以应用更改——你应该看到方块在创造模式物品栏中以及其他地方(例如统计屏幕)中有个名字了。
你可以重启游戏,或者构建你的模组,然后在游戏里按 <kbd>F3</kbd> + <kbd>T</kbd> 以重新加载资源文件——你将会看到方块在创造模式物品栏里或者其他地方(例如统计屏幕)中有个名字了。

## 模型和纹理{#models-and-textures}

所有方块纹理都可以在 `assets/<mod id here>/textures/block` 文件夹中找到——“Condensed Dirt”方块的示例纹理可以自由使用。

<DownloadEntry type="Texture" visualURL="/assets/develop/blocks/first_block_1.png" downloadURL="/assets/develop/blocks/first_block_1_small.png" />
<DownloadEntry visualURL="/assets/develop/blocks/first_block_1.png" downloadURL="/assets/develop/blocks/first_block_1_small.png">纹理</DownloadEntry>

要确保模型在游戏内显示,必须创建方块和物品模型,“Condensed Dirt”方块的方块和物品模型分别可以在下列地方找到:

Expand Down Expand Up @@ -118,7 +120,7 @@ Minecraft 会在创造模式物品栏中,以及其他显示方块名称的地

方块状态很复杂,会在之后的页面[方块状态](./blockstates)中详述。

重启游戏,或者通过<kbd>F3</kbd> + <kbd>T</kbd>重新加载以应用更改——你应该能够看到方块在物品栏内的纹理以及在世界中呈现
重启游戏,或者按下<kbd>F3</kbd> + <kbd>T</kbd>重新加载资源文件以应用更改——你应该能看到方块在物品栏内的纹理,以及在世界中呈现

![世界内有适当的纹理和模型的方块](/assets/develop/blocks/first_block_4.png)

Expand Down Expand Up @@ -151,6 +153,8 @@ Minecraft 会在创造模式物品栏中,以及其他显示方块名称的地

@[code](@/reference/latest/src/main/resources/data/minecraft/tags/mineable/shovel.json)

如果应使用工具来挖掘此方块,则需要在方块属性(`Block.Settings`)中添加`.requiresTool()`,并添加相应的挖掘标签。

## 挖掘等级{#mining-levels}

类似地,`data/minecraft/tags/block/` 文件夹内也可以找到挖掘等级,并遵循以下格式:
Expand Down
6 changes: 3 additions & 3 deletions translated/zh_cn/develop/codecs.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ MapCodec<Optional<BlockPos>> optionalCodec = BlockPos.CODEC.optionalFieldOf("pos
MapCodec<BlockPos> optionalCodec = BlockPos.CODEC.optionalFieldOf("pos", BlockPos.ORIGIN);
```

需要注意,可选字段会忽略反序列化过程中可能发生的任何错误而不报错。 这意味着如果这个字段存在,但值无效,该字段总是会被反序列化为默认值。
需要注意,可选字段会忽略反序列化过程中可能发生的任何错误而不报错。 这意味着如果字段存在,但值无效,该字段总是会被反序列化为默认值。

**1.20.2 开始**Minecraft 自己 (不是 DFU!) 却确实提供`Codecs#createStrictOptionalFieldCodec`,
如果字段值无效,则反序列化失败。
Expand Down Expand Up @@ -189,7 +189,7 @@ Codec<Integer> amountOfFriendsYouHave = Codec.intRange(0, 2);

`Codec.pair` 将两个 codec `Codec<A>` 和 `Codec<B>` 合并为 `Codec<Pair<A, B>>`。 请记住,它只能与序列化到特定字段的Codec配合使用,例如[转换的`MapCodec`](#mapcodec)或
[记录Codec](#merging-codecs-for-record-like-classes)。
结果 codec 将序列化为结合了两个使用的 codec 字段的 map。
结果的 codec 将序列化为结合了两个使用的 codec 字段的 map。

例如,运行这些代码:

Expand Down Expand Up @@ -388,7 +388,7 @@ Codec<ListNode> codec = Codec.recursive(
"value": 2,
"next": {
"value": 3,
"next" : {
"next": {
"value": 5
}
}
Expand Down
2 changes: 1 addition & 1 deletion translated/zh_cn/develop/commands/arguments.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ description: 学习如何创建带有复杂参数的命令。
您需要在服务端和客户端都注册自定义参数类型,否则命令不会生效!
:::

您可以在你的模组的初始化方法 `onInitialize` 中使用 `ArgumentTypeRegistry` 类来注册:
你可以在你的模组[入口点](./getting-started/project-structure#entrypoints)中的初始化方法 `onInitialize` 中使用 `ArgumentTypeRegistry` 类来注册:

@[code lang=java transcludeWith=:::register_custom_arg](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java)

Expand Down
6 changes: 3 additions & 3 deletions translated/zh_cn/develop/commands/basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,15 @@ Command<ServerCommandSource> command = context -> {
关于如何注册回调,请查看[事件](../events) 指南。
:::

这个事件必须在你的模组的初始化器中注册
该事件应要在你的模组的[入口点](./getting-started/project-structure#entrypoints)中注册

这个回调有三个参数:

- `CommandDispatcher<ServerCommandSource> dispatcher` - 用于注册、解析和执行命令。 `S` 是命令派发器支持的命令源的类型。
- `CommandRegistryAccess registryAccess` - 为可能传入特定命令参数的注册表提供抽象方法
- `CommandManager.RegistrationEnvironment environment` - 识别命令将要注册到的服务器的类型。

在模组的初始化器中,我们只注册两个简单的命令:
在模组的入口点中,我们只注册两个简单的命令:

@[code lang=java transcludeWith=:::test_command](@/reference/latest/src/main/java/com/example/docs/command/FabricDocsReferenceCommands.java)

Expand All @@ -88,7 +88,7 @@ Command<ServerCommandSource> command = context -> {
要执行这个命令,必须输入 `/test_command`,这是大小写敏感的。

:::info
这里也说下,我们会把写在传入 `.execute()` 构造器中的 lambda 中的逻辑,写到单独的方法中。 然后,给 `.execute()` 传入方法引用。 这样做是为了更清晰。
这里也说下,我们会把写在传入 `.execute()` 构造器中的 lambda 中的逻辑,写到单独的方法中。 然后给 `.execute()` 传入方法引用。 这样做是为了更清晰。
:::

### 注册环境{#registration-environment}
Expand Down
30 changes: 26 additions & 4 deletions translated/zh_cn/develop/entities/effects.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ authors:
- FireBlast
- Friendly-Banana
- SattesKrokodil
- Manchick0
authors-nogithub:
- siglong
- tao0lu
Expand Down Expand Up @@ -42,7 +43,7 @@ authors-nogithub:
resources/assets/fabric-docs-reference/textures/mob_effect/tater.png
```

<DownloadEntry type="Example Texture" visualURL="/assets/develop/tater-effect.png" downloadURL="/assets/develop/tater-effect-icon.png" />
<DownloadEntry visualURL="/assets/develop/tater-effect.png" downloadURL="/assets/develop/tater-effect-icon.png">示例纹理</DownloadEntry>

### 翻译{#translations}

Expand All @@ -54,10 +55,31 @@ resources/assets/fabric-docs-reference/textures/mob_effect/tater.png
}
```

### 测试{#testing}
### 应用效果{#applying-the-effect}

使用命令 `/effect give @p fabric-docs-reference:tater` 为玩家提供 Tater 效果。
使用 `/effect clear @p fabric-docs-reference:tater` 移除效果。
不妨看看你会如何将效果应用到实体。

::: tip
For a quick test, it might be a better idea to use the previously mentioned `/effect` command:

```mcfunction
effect give @p fabric-docs-reference:tater
```

:::

要在代码内部应用状态效果,需要使用 `LivingEntity#addStatusEffect` 方法,接收一个 `StatusEffectInstance` 实例,返回布尔值,以表示效果是否成功应用了。

@[code lang=java transcludeWith=:::1](@/reference/latest/src/main/java/com/example/docs/ReferenceMethods.java)

| 参数 | 类型 | 描述 |
| ----------- | ----------------------------- | --------------------------------------------------------------------------- |
| `effect` | `RegistryEntry<StatusEffect>` | 代表效果的注册表项。 |
| `duration` | `int` | 效果的时长,单位为****,而非**** |
| `amplifier` | `int` | 效果等级的倍率。 不是与效果的**等级**直接对应,而是有增加的。 比如,`amplifier``4` => 等级为 `5` |
| `ambient` | `boolean` | 这个有些棘手, 基本上是指定效果是由环境(比如**信标**)施加的,没有直接原因。 如果是 `true`,HUD内的效果图标会以青色覆盖层的形式出现。 |
| `particles` | `boolean` | 是否显示粒子。 |
| `icon` | `boolean` | 是否在 HUD 中显示效果的图标。 效果会在物品栏中显示,无论其设置的属性。 |

:::info
要创建使用此效果的药水,请参阅[药水](../items/potions)指南。
Expand Down
2 changes: 1 addition & 1 deletion translated/zh_cn/develop/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Fabric API 提供的所有事件回调接口,可见 `net.fabricmc.fabric.api.e

#### 监听战利品表加载{#listening-to-loot-table-loading}

Fabric API 有一个在加载战利品表时触发的事件,即 `LootTableEvents.MODIFY`你可以在模组初始化入口点中为它注册一个回调。 我们还要检查一下监听的战利品表是否是煤炭矿石战利品表。
Fabric API 有一个在加载战利品表时触发的事件,即 `LootTableEvents.MODIFY`可以在你的模组的[初始化器](./getting-started/project-structure#entrypoints)中注册回调。 我们还要检查一下监听的战利品表是否是煤炭矿石战利品表。

@[code lang=java transclude={38-40}](@/reference/latest/src/main/java/com/example/docs/event/FabricDocsReferenceEvents.java)

Expand Down
Loading

0 comments on commit 4767872

Please sign in to comment.