docs: bilingual docs contract, translation skill, and pairing gate

Establish EN->ZH bilingual documentation for the README and docs tree:

- docs/i18n/README.md — the pairing contract: sibling foo.md <-> foo.zh.md,
  English canonical, blob-hash source fingerprints, language switchers,
  scope/exclusions, and a manifest-driven rollout ratchet.
- docs/i18n/translation-rules.md — how to translate: faithfulness, structure
  preservation, terminology discipline over docs/i18n/terminology.md, and
  typography rules grounded in MDN/K8s/Vue/clreq conventions.
- .agents/skills/dsh-translate-docs — the committed agent workflow, following
  the dsh-code-review pattern of deferring to docs as sources of truth.
- scripts/verify-translation-pairing.ts + manifest — a doc-sync gate: required
  pairs exist; every existing .zh.md is fresh (fingerprint = current source
  blob), switcher-linked, structure-matched, and non-orphaned; excluded
  (generated) docs stay unpaired. --list prints the translation work list.
- RFC (implemented/process) recording the decision and the alternatives.
- Dogfood: README.zh.md and the two i18n docs translated under their own rules.

Gates: doc-sync green including the new gate; red/green proven for stale
fingerprint, orphan, and excluded-file violations.
This commit is contained in:
Ziya
2026-07-02 23:12:25 -07:00
parent d8ea99756d
commit 4d89bb3e74
16 changed files with 560 additions and 5 deletions
+14
View File
@@ -0,0 +1,14 @@
{
"required": [
"README.md",
"docs/i18n/README.md",
"docs/i18n/translation-rules.md"
],
"excluded": [
"docs/AGENTS.md",
"docs/module-graph.md",
"docs/cordis-catalog/",
"docs/tool-catalog/",
"docs/i18n/terminology.md"
]
}