Skip to content

Commit afcfd17

Browse files
committed
Merge branch 'feature/complete-all-translations'
2 parents 6e0d9c0 + 8a2a6d6 commit afcfd17

File tree

979 files changed

+16238
-17776
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

979 files changed

+16238
-17776
lines changed

.claude/settings.local.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,20 @@
99
"Bash(git merge:*)",
1010
"Bash(git branch:*)",
1111
"Bash(rsync:*)",
12+
"Bash(comm:*)",
13+
"Bash(echo:*)",
1214
"Bash(npm run build:*)",
1315
"Bash(git pull:*)",
1416
"Bash(git stash:*)",
15-
"Bash(git push:*)"
17+
"Bash(git push:*)",
18+
"Bash(for lang in de en ja fr es ko)",
19+
"Bash(do)",
20+
"Bash(echo:*)",
21+
"Bash(done)",
22+
"Bash(for lang in de en es fr ja ko pt ru tr)",
23+
"Bash(for lang in de fr es ko ja ru)",
24+
"Bash(do echo \"=== $lang features ===\")",
25+
"Bash(ls:*)"
1626
],
1727
"deny": [],
1828
"ask": []

AGENTS.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,12 @@
88

99
1. 所有翻译都以中文作为源语言。
1010
1. 选择目标语言,比如按照 docs/ 下的顺序,先选中目标为 de,并创建此语言专用特性分支(切分支前确保主分支是最新的)。
11-
1. 获取中文目录文件结构,逐一对比需要翻译的文件,举例:docs/zh/index.md 对比方案是:如果 docs/zh/ 下的同名文件更新时间晚于 docs/de 下的同名文件,则需要翻译,加入 todolist.
12-
1. 如果在目标语言下不存在对应的文件,则需要翻译,加入 todolist.
11+
1. 使用 npm run sync:de 命令同步到目标语言。
1312
1. 如果已经存在对应的文件,则检查内容是否需要更新。
13+
1. 找出对应语言下内容为待翻译的文件,并翻译。
1414
1. 开始翻译中文对应的内容为目标语言,如果是外链,代码,则不翻译,并且删除在中文目录下没有的仅在目标语言目录中存在的文件。
15-
1. 记住:是需要翻译全部中文内容为目标语言,不要仅翻译一部分。
16-
1. 图片则直接从中文对应的目录拷贝。
17-
1. 其他非文本内容(如音频、视频等)则直接从中文对应的目录拷贝。
18-
1. 翻译完成后请仔细检查,确保所有内容都已翻译。
19-
1. docs/{locale}/sidebar.ts 请确保仅仅是语言目录不同,其他内容保持跟中文的(docs/zh/sidebar.ts)一致,当然了导出的名字和各个菜单的文字是要翻译的。
15+
1. 翻译完成后请仔细检查,确保所有内容都已翻译,尤其是不能存在任何占位符待翻译的文档。
16+
1. docs/{locale}/sidebar.ts 请确保仅仅是语言目录不同,其他内容保持跟中文的(docs/zh/sidebar.ts)一致。
2017
1. 翻译完成一个语言后,确保目标语言下的文件结构跟中文一模一样,如果发现遗漏则重复此翻译流程。
2118
1. 翻译完成后仔细对比,确保没有遗漏,每一个文件都翻译了,不要多也不要少。
2219
1. 翻译完成后请执行 vitepress 的 build 命令,确保生成静态文件不出错,不能存在死链和任何报错信息。

SYNC_DOCS_README.md

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# 文档同步工具说明
2+
3+
## 功能介绍
4+
5+
`sync-docs.js` 是一个用于同步中文文档到其他语言版本的 Node.js 脚本。它可以:
6+
7+
1. **自动创建文档结构**:为目标语言创建与中文版本完全一致的目录结构
8+
2. **智能文件处理**
9+
- 非 Markdown 文件(如图片、SVG等)直接复制
10+
- 新的 Markdown 文件创建占位符内容(标记为"待翻译")
11+
- 已存在的文件根据更新时间判断是否需要更新
12+
3. **自动清理多余文件**:删除目标语言中存在但中文版本中不存在的文件和目录
13+
4. **时间戳比较**:通过比较文件修改时间,识别需要更新翻译的文件
14+
5. **详细统计**:提供同步操作的详细统计信息
15+
16+
## 使用方法
17+
18+
### 使用 npm scripts(推荐)
19+
20+
```bash
21+
# 同步所有语言
22+
npm run sync
23+
#
24+
npm run sync:all
25+
26+
# 同步特定语言
27+
npm run sync:ko # 韩语
28+
npm run sync:en # 英语
29+
npm run sync:de # 德语
30+
npm run sync:es # 西班牙语
31+
npm run sync:fr # 法语
32+
npm run sync:ja # 日语
33+
npm run sync:pt # 葡萄牙语
34+
npm run sync:ru # 俄语
35+
npm run sync:tr # 土耳其语
36+
```
37+
38+
### 直接运行脚本
39+
40+
```bash
41+
# 同步所有语言
42+
node sync-docs.js
43+
44+
# 同步单个语言
45+
node sync-docs.js ko
46+
47+
# 同步多个语言
48+
node sync-docs.js en fr de
49+
```
50+
51+
### 支持的语言代码
52+
53+
- `de` - 德语
54+
- `en` - 英语
55+
- `es` - 西班牙语
56+
- `fr` - 法语
57+
- `ja` - 日语
58+
- `ko` - 韩语
59+
- `pt` - 葡萄牙语
60+
- `ru` - 俄语
61+
- `tr` - 土耳其语
62+
63+
## 工作原理
64+
65+
1. **源语言**:始终以 `docs/zh/` 作为源语言
66+
2. **文件处理规则**
67+
- `.md` 文件:
68+
- 不存在时创建占位符文件
69+
- 存在但中文版本更新时间更晚时,提示需要更新
70+
- 存在且是最新的,跳过处理
71+
-`.md` 文件(图片、资源文件等):
72+
- 不存在或源文件更新时直接复制
73+
- 已是最新的则跳过
74+
- 多余文件/目录:
75+
- 目标语言中存在但中文版本中不存在的文件或目录会被自动删除
76+
3. **特殊文件**:自动跳过 `config.ts``sidebar.ts` 和以 `.` 开头的文件
77+
78+
## 占位符内容
79+
80+
当创建新的 Markdown 文件时,会自动生成如下占位符内容:
81+
82+
```markdown
83+
---
84+
title: "待翻译"
85+
description: "此页面待翻译"
86+
source: "相对路径"
87+
---
88+
89+
# 待翻译
90+
91+
此页面内容尚未翻译,请参考[中文版本](../../zh/相对路径)
92+
93+
---
94+
95+
*This page is pending translation. Please refer to the [Chinese version](../../zh/相对路径).*
96+
```
97+
98+
## 输出说明
99+
100+
脚本运行时会输出:
101+
102+
1. **实时操作日志**
103+
- `✓ 复制: 文件路径` - 成功复制文件
104+
- `✓ 创建占位符: 文件路径` - 创建占位符文件
105+
- `✗ 删除文件: 文件路径` - 删除多余文件
106+
- `✗ 删除目录: 目录路径` - 删除多余目录
107+
- `⚠ 需要更新: 文件路径` - 文件需要更新翻译
108+
109+
2. **统计信息**(每个语言):
110+
- 创建占位符文件数
111+
- 复制非MD文件数
112+
- 删除多余文件数
113+
- 需要更新翻译数
114+
- 已是最新数
115+
- 跳过数
116+
117+
3. **总体统计**
118+
- 处理的语言总数
119+
- 各类操作的总计数
120+
- 需要更新翻译的提醒
121+
122+
## 注意事项
123+
124+
1. **不会覆盖翻译**:脚本不会覆盖已经翻译的内容,只会提示哪些文件需要更新
125+
2. **保留本地修改**:如果目标文件的修改时间晚于中文版本,脚本会保留目标文件
126+
3. **自动创建目录**:脚本会自动创建必要的目录结构
127+
4. **资源文件同步**:图片等资源文件会自动从中文版本复制
128+
129+
## 典型工作流程
130+
131+
1. 运行脚本检查状态:
132+
133+
```bash
134+
npm run sync # 同步所有语言
135+
#
136+
npm run sync:ko # 仅同步特定语言
137+
```
138+
139+
2. 查看输出,了解哪些文件需要更新
140+
141+
3. 对需要更新的文件进行翻译
142+
143+
4. 提交更改
144+
145+
## 故障排除
146+
147+
- **错误:中文文档目录不存在**:确保 `docs/zh/` 目录存在
148+
- **权限问题**:确保有读写 `docs/` 目录的权限
149+
- **Node.js 版本**:建议使用 Node.js 14.0 或更高版本
150+
151+
## 相关文件
152+
153+
- 脚本位置:`/sync-docs.js`
154+
- 源目录:`/docs/zh/`
155+
- 目标目录:`/docs/{语言代码}/`

docs/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { defineAdditionalConfig } from 'vitepress';
2-
import { enSidebar } from './en/sidebar';
2+
import { sidebar } from './en/sidebar';
33

44
export default defineAdditionalConfig({
55
lang: 'en-US',
@@ -16,7 +16,7 @@ export default defineAdditionalConfig({
1616
],
1717

1818
sidebar: {
19-
'/': enSidebar,
19+
'/': sidebar,
2020
},
2121

2222
editLink: {

docs/de/architecture.md

Lines changed: 0 additions & 50 deletions
This file was deleted.

docs/de/comparison.md

Lines changed: 0 additions & 51 deletions
This file was deleted.

docs/de/concepts/architecture.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: "RustFS Architektur"
3+
description: "Einführung in die RustFS Architektur"
4+
---
5+
6+
# RustFS Architektur
7+
8+
RustFS ist ein Objektspeichersystem, ähnlich dem bekannten AWS S3. Als Alternative zu MinIO referenziert RustFS die saubere, leichte, skalierbare und elegante Architektur von MinIO.
9+
10+
Objekte können Dokumente, Videos, PDF-Dateien und mehr sein. Für die Speicherung von Objekten bietet MinIO eine skalierbare, flexible und effiziente Lösung zum Speichern, Zugreifen und Verwalten von Daten. Seine Kompatibilität mit der AWS S3-API ermöglicht eine nahtlose Integration mit AWS S3-basierten Anwendungen.
11+
12+
Das Architekturdiagramm ist wie folgt:
13+
14+
![RustFS Architekturdiagramm](./images/s2-1.png)
15+
16+
Dies ist die grundlegende Architektur von RustFS. Ein verteiltes Netzwerk ist eine Computerarchitektur, die mehrere Knoten zur Ausführung einer einzelnen Aufgabe verwendet. Die Knoten sind über ein Netzwerk miteinander verbunden, wodurch sie miteinander kommunizieren können.
17+
18+
## Konsistenz-Design
19+
20+
In verteilten und Einzelrechner-Modi folgen alle Lese- und Schreiboperationen strikt dem read-after-write-Konsistenzmodell.
21+
22+
## Wichtige Konzepte in RustFS
23+
24+
**Object (Objekt)**: Das grundlegende Objekt, das in RustFS gespeichert wird, wie Dateien, Byte-Streams, alles...
25+
26+
**Bucket (Eimer)**: Der logische Raum zum Speichern von Objekten. Die Daten zwischen jedem Bucket sind voneinander isoliert. Für den Client ist es gleichbedeutend mit einem Ordner der obersten Ebene zum Speichern von Dateien.
27+
28+
**Drive (Laufwerk)**: Das Laufwerk, das Daten speichert, wird beim Start von RustFS als Parameter übergeben. Alle Objektdaten in RustFS werden in Laufwerken gespeichert.
29+
30+
**Set (Satz)**: Eine Sammlung von Laufwerken. Die verteilte Bereitstellung teilt automatisch einen oder mehrere Sets basierend auf der Clustergröße auf, und die Laufwerke in jedem Set sind an verschiedenen Orten verteilt. Ein Objekt wird in einem Set gespeichert.
31+
32+
Daher sollte beim Entwerfen der Architektur und beim Bereitstellen von Geräten beachtet werden:
33+
34+
1. Ein Objekt wird in einem Set gespeichert;
35+
2. Ein Cluster wird in mehrere Sets unterteilt;
36+
3. Die Anzahl der Laufwerke in einem Set ist fest und wird standardmäßig automatisch vom System basierend auf der Clustergröße berechnet;
37+
4. Die Laufwerke in einem Set sind so weit wie möglich auf verschiedene Knoten verteilt;
38+
39+
## Besonderer Dank
40+
41+
Alle Knoten befinden sich in gleichrangigen Beziehungen, was das Architekturdesign erheblich vereinfacht und Sorgen über Metadatenverluste eliminiert. Es kann mit einem einzigen Befehl gestartet werden.
42+
43+
Ohne Eleganz, Einfachheit und Zuverlässigkeit zu verlieren, übernimmt RustFS das gleiche Architekturdesign wie MinIO.
44+
45+
Dank an MinIO für das vorgeschlagene Architekturkonzept, das Benutzern weltweit enormen Komfort bietet und das S3-Protokoll gefördert hat.

0 commit comments

Comments
 (0)