feat(i18n): 21-language pipeline, landing/docs/API wiring, landing+API translations

Shared Claude Code translation pipeline (scripts/i18n, no API key) plus Astro/VitePress/Scalar i18n wiring. Landing and API reference translated into all 20 languages; docs i18n wiring + English source anchors. The translated docs markdown (apps/docs/<locale>/**, 3,620 files) follows in a companion PR because it exceeds GitHub's per-PR CI file limit.
This commit is contained in:
SnapOtter
2026-07-11 13:01:55 +08:00
committed by GitHub
parent 2e91368816
commit 00b651c9f8
353 changed files with 564607 additions and 2594 deletions
+23
View File
@@ -0,0 +1,23 @@
// scripts/i18n/adapters/registry.mjs
// Single source of truth for surface adapters. Both translate.mjs and
// check-parity.mjs import this so the surface list is defined once.
// Surface plans (02-04) uncomment/add their entry as each adapter lands.
export const ADAPTERS = {
"landing-ui": () => import("./landing-ui.mjs"),
"landing-seo": () => import("./landing-seo.mjs"),
docs: () => import("./docs-md.mjs"),
api: () => import("./api-spec.mjs"),
};
/**
* @param {string} spec "all" or a comma list of surface keys
* @returns {string[]} known surface keys
*/
export function resolveSurfaces(spec) {
const keys = Object.keys(ADAPTERS);
if (spec === "all") return keys;
return spec
.split(",")
.map((s) => s.trim())
.filter((k) => keys.includes(k));
}