mirror of
https://github.com/prompt-security/clawsec.git
synced 2026-06-13 13:38:03 +03:00
b37162a33d
* feat(i18n): add multilingual wiki scaffolding, language switcher, and translation QA pipeline * docs(readme): adopt picoclaw-style multilingual link bar * fix(i18n): repair localized index links and tighten partial-pair QA * ci(i18n): fail on broken markdown links in README/wiki * ci(i18n): add changed-files mode for markdown link checks * i18n(de): use local Argos MT to fill untranslated German sections * i18n(es,fr): fill untranslated sections via local Argos workflow * i18n(ja): fill untranslated sections with scoped local Argos pass * i18n(ko): fill untranslated sections with scoped local Argos pass * fix(i18n): address review feedback --------- Co-authored-by: David Abutbul <David.a@prompt.security>
i18n Pipeline (ClawSec)
This folder defines the translation QA and operations workflow for ClawSec docs.
Goals
- Keep English as source of truth.
- Make language switching predictable in website/wiki routes.
- Preserve technical integrity in translated docs (commands, code blocks, links, package names).
Files
terminology-en-es.md— terminology lock and no-translate terms.translation-tracker.md— coverage and status by page.scripts/i18n/qa_check.py— translation integrity QA checker.scripts/i18n/bootstrap_language_from_en.py— scaffold generator for missing language pages.
Local QA Command
python scripts/i18n/qa_check.py
Or via npm:
npm run i18n:qa
Bootstrap Commands (language scaffolding)
Dry-run for any language:
python scripts/i18n/bootstrap_language_from_en.py --lang <code> --dry-run
Create missing pages for a language:
python scripts/i18n/bootstrap_language_from_en.py --lang <code>
Overwrite existing scaffolds if needed:
python scripts/i18n/bootstrap_language_from_en.py --lang <code> --overwrite
Convenience npm scripts:
npm run i18n:bootstrap:ko
npm run i18n:bootstrap:fr
npm run i18n:bootstrap:de
npm run i18n:bootstrap:ja
What QA checks
- Fenced code blocks are preserved exactly from source.
- Critical inline technical tokens are preserved.
- Absolute URLs from source still exist in translation.
- Non-translatable product/skill terms remain unchanged.
CI integration
Workflow: .github/workflows/i18n-qa.yml
Runs on PRs that touch:
README*.mdwiki/**/*.mdscripts/i18n/**.github/workflows/i18n-qa.yml
Translation backend strategy (local/free-first)
Recommended approach:
- Local model for draft translation (NLLB/Marian via CTranslate2 or LibreTranslate self-hosted)
- Free API fallback for difficult segments
- Human review for high-impact docs (README, install, security pages)
Rollout notes
- Add new language under
wiki/<lang>/andREADME.<lang>.md. - Add language option in
pages/WikiBrowser.tsxlabel map when introducing a new language code. - Update
translation-tracker.mdfor new pages.