Skip to content

Commit 8a2a6d6

Browse files
committed
wip
1 parent 96f6f22 commit 8a2a6d6

File tree

461 files changed

+6239
-771
lines changed

Some content is hidden

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

461 files changed

+6239
-771
lines changed

AGENTS.md

Lines changed: 3 additions & 6 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.
13-
1. 如果在目标语言下的占位符文件,没有翻译完成的,则需要翻译,加入 todolist.
11+
1. 使用 npm run sync:de 命令同步到目标语言。
1412
1. 如果已经存在对应的文件,则检查内容是否需要更新。
13+
1. 找出对应语言下内容为待翻译的文件,并翻译。
1514
1. 开始翻译中文对应的内容为目标语言,如果是外链,代码,则不翻译,并且删除在中文目录下没有的仅在目标语言目录中存在的文件。
16-
1. 图片则直接从中文对应的目录拷贝。
17-
1. 其他非文本内容(如音频、视频等)则直接从中文对应的目录拷贝。
1815
1. 翻译完成后请仔细检查,确保所有内容都已翻译,尤其是不能存在任何占位符待翻译的文档。
19-
1. docs/{locale}/sidebar.ts 请确保仅仅是语言目录不同,其他内容保持跟中文的(docs/zh/sidebar.ts)一致,当然了导出的名字和各个菜单的文字是要翻译的
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/concepts/limit.md

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,70 @@
11
---
2-
title: "待翻译"
3-
description: "此文档正在翻译中"
2+
title: "Nutzungsbeschränkungen"
3+
description: "RustFS ist eine einfache, effiziente, verteilte Objektspeicherlösung. Sie ist 100% S3-kompatibel und als Open-Source-Software unter der Apache2-Lizenz veröffentlicht."
44
---
55

6-
# 此文档正在翻译中
6+
# Nutzungsbeschränkungen
77

8-
请稍后查看更新。
8+
## I. S3 API Beschränkungen
9+
10+
> Die folgenden Standards folgen strikt den S3-Protokollstandards zur Spezifikation.
11+
12+
| Element | Spezifikation |
13+
| --------------------- | ---------------------------------- |
14+
| Maximale Objektgröße | 5 TiB |
15+
| Minimale Objektgröße | 0 B |
16+
| Maximale Objektgröße für einzelne PUT-Operation | Nicht-Multipart-Upload: 500 GiB; Multipart-Upload: 5 TiB |
17+
| Maximale Anzahl von Teilen pro Upload | 10,000 |
18+
| Teilgrößenbereich | 5 MiB bis 5 GiB; letzter Teil kann 0 B bis 5 GiB sein |
19+
| Maximale Anzahl von Teilen pro Listenteile-Anfrage | 10,000 |
20+
| Maximale Anzahl von Objekten pro Listenobjekte-Anfrage | 1,000 |
21+
| Maximale Anzahl von Multipart-Uploads pro Listen-Multipart-Uploads-Anfrage | 1,000 |
22+
| Maximale Länge des Bucket-Namens | 63 Zeichen |
23+
| Maximale Länge des Objektnamens | 1024 Zeichen |
24+
| Maximale Länge pro `/`-getrennte Objektnamensegment | 255 Zeichen |
25+
| Maximale Anzahl von Versionen pro Objekt | 10,000 (konfigurierbar) |
26+
27+
---
28+
29+
## II. Erasure Coding Beschränkungen
30+
31+
> EC-Parameter basierend auf Reed-Solomon-Matrix EC-Algorithmus konfigurieren. Tatsächliche EC-Parameterkonfiguration ist maßgebend.
32+
33+
| Element | Spezifikation |
34+
| ---------------------------- | ------------------------------ |
35+
| Maximale Anzahl von Servern pro Cluster | Unbegrenzt |
36+
| Minimale Anzahl von Servern | 1 |
37+
| Bei 1 Server: Minimale Anzahl von Laufwerken pro Server | 1 (für Single-Node-Single-Drive-Deployment, bietet keine zusätzliche Zuverlässigkeit oder Verfügbarkeit) |
38+
| Bei 2 oder mehr Servern: Minimale Anzahl von Laufwerken pro Server | 1 |
39+
| Maximale Anzahl von Laufwerken pro Server | Unbegrenzt |
40+
| Lese-Quorum-Anzahl | N/2 |
41+
| Schreib-Quorum-Anzahl | (N/2) + 1 |
42+
43+
---
44+
45+
## III. Objektbenennungsbeschränkungen
46+
47+
### Dateisystem- und Betriebssystembeschränkungen
48+
49+
Objektnamen in RustFS sind hauptsächlich durch das zugrunde liegende Betriebssystem und Dateisystem beschränkt. Zum Beispiel beschränken Windows und einige andere Betriebssysteme die Verwendung bestimmter Sonderzeichen wie `^`, `*`, `|`, `\`, `/`, `&`, `"` oder `;`.
50+
51+
Bitte konsultieren Sie die entsprechende Dokumentation für eine vollständige Liste der Beschränkungen basierend auf Ihrem spezifischen Betriebssystem und Dateisystem.
52+
53+
RustFS empfiehlt die Verwendung von Linux-Betriebssystemen basierend auf XFS-Dateisystem in Produktionsumgebungen für bessere Leistung und Kompatibilität.
54+
55+
### Behandlung von Namenskonflikten
56+
57+
In RustFS müssen Anwendungen allen Objekten eindeutige und nicht-kollidierende Schlüssel zuweisen. Dies beinhaltet die Vermeidung der Erstellung von Objekten, deren Namen mit übergeordneten Objekten oder gleichrangigen Objektnamen kollidieren könnten. RustFS gibt ein leeres Set zurück, wenn LIST-Operationen an konfliktbehafteten Stellen ausgeführt werden.
58+
59+
Zum Beispiel würden die folgenden Operationen zu Namespace-Konflikten führen:
60+
61+
```bash
62+
PUT data/hello/2025/first/a.csv
63+
PUT data/hello/2025/first # Konflikt mit vorhandenem Objektpräfix
64+
65+
PUT data/hello/2025/first/
66+
PUT data/hello/2025/first/vendors.csv # Konflikt mit vorhandenem Objekt
67+
```
68+
69+
Obwohl Sie GET- oder HEAD-Operationen auf diese Objekte ausführen können, führen Namenskonflikte dazu, dass LIST-Operationen im Pfad `hello/2025/first/` ein leeres Ergebnisset zurückgeben.
970

docs/de/config.ts

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

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

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

2222
editLink: {
@@ -29,4 +29,4 @@ export default defineAdditionalConfig({
2929
copyright: 'Copyright © 2025 RustFS'
3030
}
3131
}
32-
})
32+
})

0 commit comments

Comments
 (0)