Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
202 changes: 155 additions & 47 deletions .agents/skills/localize-rustfs-docs/SKILL.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions .agents/skills/localize-rustfs-docs/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
interface:
display_name: "Localize RustFS Docs"
short_description: "Build and verify localized RustFS documentation"
default_prompt: "Use $localize-rustfs-docs to add or review a documentation locale end to end."
short_description: "Audit and repair localized RustFS documentation"
default_prompt: "Use $localize-rustfs-docs to audit and repair a RustFS documentation locale end to end."
70 changes: 70 additions & 0 deletions .agents/skills/localize-rustfs-docs/references/de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# German localization reference

Use this reference for `content/de`. Prefer natural, precise infrastructure documentation over literal translation.

## Authoritative sources

Use current official German documentation to confirm ecosystem terminology:

- [Amazon S3 User Guide](https://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/Welcome.html)
- [Amazon S3 uploads](https://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/upload-objects.html)
- [Amazon S3 Bucket policies](https://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/bucket-policies.html)
- [Kubernetes documentation](https://kubernetes.io/de/docs/)

Treat RustFS source code, APIs, and exact Console labels as authoritative for product-specific names.

## Voice and grammar

- Address the reader formally with `Sie` when direct address improves clarity.
- Use concise active instructions such as `Führen Sie ... aus` and `Öffnen Sie ...`.
- Apply standard German noun capitalization and form readable technical compounds.
- Use sentence-style capitalization for headings while respecting German noun rules.
- Prefer established German infrastructure usage; retain an English term only when German developers normally use it or no stable German term exists.
- Avoid casual slang, exaggerated claims, and English sentence structure copied into German.
- Keep the exact English Console label in bold when the reader must locate it; add a German explanation in parentheses on first use when useful.

## Preferred terminology

| English source | Preferred German prose | Guidance |
|---|---|---|
| RustFS | RustFS | Never alter the product name. |
| Amazon S3 / S3 | Amazon S3 / S3 | Keep the service and protocol name. |
| S3-compatible | S3-kompatibel | Never strengthen to complete or 100% compatibility. |
| object storage | Objektspeicher | Use for the storage model. |
| Bucket | Bucket / S3-Bucket | Follow established German AWS usage; preserve `Bucket` in identifiers and UI labels. |
| Object | Objekt / S3-Objekt | Distinguish it from a local `Datei`. |
| object key | Objektschlüssel | Use `Schlüsselname` when specifically describing the key name; preserve `Key` in APIs. |
| Bucket policy | Bucket-Richtlinie | Preserve policy JSON and API names. |
| access key ID | Zugriffsschlüssel-ID | Preserve `AccessKeyId` and environment variables. |
| secret access key | geheimer Zugriffsschlüssel | Preserve `SecretAccessKey` and placeholders. |
| endpoint | Endpunkt | Qualify as `S3-API-Endpunkt` when ambiguous. |
| Region | Region / AWS-Region | Preserve values such as `us-east-1`. |
| Console | Console | Treat as the RustFS product surface; use `Weboberfläche` only as an explanation. |
| storage pool | Speicherpool | Do not shorten to `Pool` when storage meaning is unclear. |
| erasure coding | Erasure Coding | Explain once as a redundancy scheme when the audience needs it; preserve `EC:n`. |
| healing | Datenwiederherstellung / Healing | Use one term consistently within an operational workflow; preserve exact UI and metric names. |
| rebalancing | Rebalancing / Neuverteilung | Preserve the RustFS operation name when it maps to a Console action. |
| decommission | Außerbetriebnahme | Explain that data is drained before the storage pool is deactivated. |
| replication | Replikation | Qualify as `Bucket-Replikation` or `Site-Replikation`. |
| versioning | Versionierung | Use for S3 Object versions, not source control. |
| Object Lock | Object Lock / Objektsperre | Preserve exact API and Console labels. |
| legal hold | Legal Hold | Preserve API/UI wording; explain the retention effect in German. |
| lifecycle management | Lebenszyklusverwaltung | Use for S3 lifecycle rules. |
| multipart upload | mehrteiliger Upload | Preserve API actions such as `CreateMultipartUpload`. |
| server-side encryption | serverseitige Verschlüsselung | Keep SSE-S3, SSE-KMS, and SSE-C unchanged. |
| presigned URL | vorsignierte URL | Keep URL uppercase and preserve API names. |
| path-style addressing | pfadbasierte Adressierung | Preserve SDK option names. |
| virtual-hosted-style addressing | Adressierung im Virtual-Hosted-Stil | Relate it to `RUSTFS_SERVER_DOMAINS` when relevant. |
| health check | Integritätsprüfung | Preserve endpoint paths and probe names. |
| readiness | Bereitschaft | Preserve `/health/ready` and Kubernetes field names. |
| observability | Observability / Beobachtbarkeit | Prefer the established term used by the surrounding German ecosystem documentation and keep it consistent. |
| rootless | ohne Root-Rechte | Prefer this over a literal calque. |
| root credentials | Root-Anmeldedaten | Distinguish RustFS deployment credentials from the operating-system root account. |

## Common review failures

- Reject unchanged English paragraphs, descriptions, headings, and navigation labels.
- Reject `100 % S3-kompatibel`, `vollständig S3-kompatibel`, or an unverified `Drop-in-Ersatz` claim.
- Do not translate API operations, environment variables, UI labels, or command output.
- Do not alternate arbitrarily between `Bucket`, `Speicher-Bucket`, and `Speicherbehälter`.
- Do not translate an S3 Object as `Datei` unless the source explicitly means a local file.
71 changes: 71 additions & 0 deletions .agents/skills/localize-rustfs-docs/references/fr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# French localization reference

Use this reference for `content/fr`. Write professional infrastructure documentation in natural French rather than reproducing English syntax.

## Authoritative sources

Use current official French documentation to confirm ecosystem terminology:

- [Amazon S3 User Guide](https://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/Welcome.html)
- [Amazon S3 multipart uploads](https://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/mpuoverview.html)
- [Amazon S3 Object Lock](https://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/object-lock.html)
- [Kubernetes documentation](https://kubernetes.io/fr/docs/)

Treat RustFS source code, APIs, and exact Console labels as authoritative for product-specific names.

## Voice and grammar

- Address the reader with `vous`; use concise active instructions.
- Prefer natural French clause order and avoid calques from English noun strings.
- Use sentence-style capitalization for headings.
- Apply French punctuation and non-breaking spacing where practical without damaging Markdown, URLs, code, or identifiers.
- Keep grammatical gender and number consistent across headings, prose, tables, and navigation.
- Retain established English ecosystem terms only when they are conventional in French technical writing.
- Avoid casual slang, promotional wording, and unjustified claims of seamless replacement.
- Keep the exact English Console label in bold when the reader must locate it; add a French explanation in parentheses on first use when useful.

## Preferred terminology

| English source | Preferred French prose | Guidance |
|---|---|---|
| RustFS | RustFS | Never alter the product name. |
| Amazon S3 / S3 | Amazon S3 / S3 | Keep the service and protocol name. |
| S3-compatible | compatible avec S3 | Never strengthen to complete or 100% compatibility. |
| object storage | stockage objet | Use for the storage model. |
| Bucket | compartiment / compartiment S3 | Preserve `Bucket` in APIs, identifiers, and exact UI labels. |
| Object | objet / objet S3 | Distinguish it from a local `fichier`. |
| object key | clé d’objet | Use `nom de clé` when specifically describing the key name; preserve `Key` in APIs. |
| Bucket policy | politique de compartiment | Preserve policy JSON and API names. |
| access key ID | ID de clé d’accès | Preserve `AccessKeyId` and environment variables. |
| secret access key | clé d’accès secrète | Preserve `SecretAccessKey` and placeholders. |
| endpoint | point de terminaison | Qualify as `point de terminaison de l’API S3` when ambiguous. |
| Region | Région / Région AWS | Preserve values such as `us-east-1`. |
| Console | Console | Treat as the RustFS product surface; use `interface web` only as an explanation. |
| storage pool | pool de stockage | Use consistently; avoid translating it as an application connection pool. |
| erasure coding | codage d’effacement | Explain once when required; preserve `EC:n`. |
| healing | réparation des données | Preserve exact UI, API, and metric names that contain `heal` or `healing`. |
| rebalancing | rééquilibrage | Preserve exact Console action names. |
| decommission | mise hors service | Explain that data is drained before the pool is deactivated. |
| replication | réplication | Qualify as `réplication de compartiment` or `réplication de site`. |
| versioning | gestion des versions | Use for S3 Object versions, not source control. |
| Object Lock | verrouillage d’objet | Preserve exact API and Console labels. |
| legal hold | conservation légale | Preserve API identifiers such as `ObjectLockLegalHold`. |
| lifecycle management | gestion du cycle de vie | Use for S3 lifecycle rules. |
| multipart upload | chargement partitionné | Preserve API actions such as `CreateMultipartUpload`. |
| server-side encryption | chiffrement côté serveur | Keep SSE-S3, SSE-KMS, and SSE-C unchanged. |
| presigned URL | URL présignée | Keep URL uppercase and preserve API names. |
| path-style addressing | adressage de type chemin | Preserve SDK option names. |
| virtual-hosted-style addressing | adressage de type hôte virtuel | Relate it to `RUSTFS_SERVER_DOMAINS` when relevant. |
| health check | contrôle d’intégrité | Preserve endpoint paths and probe names. |
| readiness | état de préparation | Preserve `/health/ready` and Kubernetes field names. |
| observability | observabilité | Keep OpenTelemetry and OTLP unchanged. |
| rootless | sans privilèges root | Prefer this over a literal calque. |
| root credentials | informations d’identification racine | Distinguish RustFS deployment credentials from the operating-system root account. |

## Common review failures

- Reject unchanged English paragraphs, descriptions, headings, and navigation labels.
- Reject `compatible à 100 % avec S3`, `entièrement compatible`, or an unverified `remplacement transparent` claim.
- Do not translate API operations, environment variables, UI labels, or command output.
- Do not alternate arbitrarily between `compartiment`, `bucket`, and `conteneur` in explanatory prose.
- Do not translate an S3 Object as `fichier` unless the source explicitly means a local file.
71 changes: 71 additions & 0 deletions .agents/skills/localize-rustfs-docs/references/ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Japanese localization reference

Use this reference for `content/ja`. Write natural Japanese technical documentation instead of preserving English sentence structure.

## Authoritative sources

Use current official Japanese documentation to confirm ecosystem terminology:

- [Amazon S3 User Guide](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/Welcome.html)
- [Amazon S3 bucket restrictions](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/BucketRestrictions.html)
- [Amazon S3 Object Lock](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/object-lock-managing.html)
- [Kubernetes documentation](https://kubernetes.io/ja/docs/)

Treat RustFS source code, APIs, and exact Console labels as authoritative for product-specific names.

## Voice and grammar

- Use consistent professional `です・ます` style for explanatory prose and instructions.
- Omit unnecessary subjects and second-person pronouns when Japanese is clearer without them.
- Reorder clauses for natural Japanese; do not mirror English word order.
- Use Japanese punctuation in prose while preserving ASCII punctuation in code, URLs, identifiers, and syntax.
- Use established AWS and infrastructure katakana terminology, but avoid unnecessary katakana when a standard Japanese technical term is clearer.
- Avoid repeatedly ending adjacent steps with `してください`; prefer direct, concise action descriptions.
- Avoid casual slang, promotional wording, and unjustified claims of seamless replacement.
- Keep the exact English Console label in bold when the reader must locate it; add a Japanese explanation in parentheses on first use when useful.

## Preferred terminology

| English source | Preferred Japanese prose | Guidance |
|---|---|---|
| RustFS | RustFS | Never alter the product name. |
| Amazon S3 / S3 | Amazon S3 / S3 | Keep the service and protocol name. |
| S3-compatible | S3 互換 | Never strengthen to complete or 100% compatibility. |
| object storage | オブジェクトストレージ | Use for the storage model. |
| Bucket | バケット / S3 バケット | Preserve `Bucket` in APIs, identifiers, and exact UI labels. |
| Object | オブジェクト / S3 オブジェクト | Distinguish it from a local `ファイル`. |
| object key | オブジェクトキー | Use `キー名` when specifically describing the key name; preserve `Key` in APIs. |
| Bucket policy | バケットポリシー | Preserve policy JSON and API names. |
| access key ID | アクセスキー ID | Preserve `AccessKeyId` and environment variables. |
| secret access key | シークレットアクセスキー | Preserve `SecretAccessKey` and placeholders. |
| endpoint | エンドポイント | Qualify as `S3 API エンドポイント` when ambiguous. |
| Region | リージョン / AWS リージョン | Preserve values such as `us-east-1`. |
| Console | Console | Treat as the RustFS product surface; use `管理画面` only as an explanation. |
| storage pool | ストレージプール | Distinguish it from an application connection pool. |
| erasure coding | イレイジャーコーディング | Explain once when required; preserve `EC:n`. |
| healing | データ修復 | Preserve exact UI, API, and metric names that contain `heal` or `healing`. |
| rebalancing | リバランス | Preserve exact Console action names. |
| decommission | デコミッション / 使用停止 | Explain that data is drained before the pool is deactivated. |
| replication | レプリケーション | Qualify as `バケットレプリケーション` or `サイトレプリケーション`. |
| versioning | バージョニング | Use for S3 Object versions, not source control. |
| Object Lock | オブジェクトロック | Preserve exact API and Console labels. |
| legal hold | リーガルホールド | Preserve API identifiers such as `ObjectLockLegalHold`. |
| lifecycle management | ライフサイクル管理 | Use for S3 lifecycle rules. |
| multipart upload | マルチパートアップロード | Preserve API actions such as `CreateMultipartUpload`. |
| server-side encryption | サーバー側の暗号化 | Keep SSE-S3, SSE-KMS, and SSE-C unchanged. |
| presigned URL | 署名付き URL | Keep URL uppercase and preserve API names. |
| path-style addressing | パス形式のアドレス指定 | Preserve SDK option names. |
| virtual-hosted-style addressing | 仮想ホスト形式のアドレス指定 | Relate it to `RUSTFS_SERVER_DOMAINS` when relevant. |
| health check | ヘルスチェック | Preserve endpoint paths and probe names. |
| readiness | Readiness / 準備完了状態 | Preserve `/health/ready` and Kubernetes field names. |
| observability | オブザーバビリティ | Keep OpenTelemetry and OTLP unchanged. |
| rootless | root 権限なし | Prefer this over an unnatural literal translation. |
| root credentials | ルート認証情報 | Distinguish RustFS deployment credentials from the operating-system root account. |

## Common review failures

- Reject unchanged English paragraphs, descriptions, headings, and navigation labels.
- Reject `S3 と 100% 互換`, `完全互換`, or an unverified `ドロップイン代替` claim.
- Do not translate API operations, environment variables, UI labels, or command output.
- Do not alternate arbitrarily between `バケット` and improvised Japanese equivalents.
- Do not translate an S3 Object as `ファイル` unless the source explicitly means a local file.
8 changes: 8 additions & 0 deletions .agents/skills/localize-rustfs-docs/references/terminology.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ Use this hierarchy when choosing a translation:

Never choose a dictionary translation that changes the RustFS concept. Search the repository and upstream source before adding a new translation, and update this glossary when a new term becomes canonical.

Read the locale-specific reference before translating or reviewing that locale:

- [de.md](de.md) for German
- [fr.md](fr.md) for French
- [ja.md](ja.md) for Japanese

Treat these references as project decisions, not substitutes for current upstream documentation. When an ecosystem changes its official localized term, verify the new usage, update the applicable reference, and use one term consistently across the locale.

## Simplified Chinese baseline

| Source term | Preferred Chinese | Guidance |
Expand Down
Loading
Loading