Docsbook
← Back to catalog
analysis

docs-i18n

Stop letting translations rot silently. Audits multilingual docs for content parity across languages, ISO 639-1 correctness, hreflang tags, navigation translation, date/number localization and out-of-date pages — across the 15 languages Docsbook supports. Skipped automatically if only one language is enabled.

Install & use this skill

Pick your AI client — install this single skill and call it.

1. Install
npx skills add Docsbook-io/docs-skills --skill docs-i18n -a claude-code
2. Use
/docs-i18n

Invoke as a slash command in chat.

Or: runtime discovery via Docsbook MCP

Already connected to the Docsbook MCP server? Skip install — ask your agent to load this skill on demand.

@docsbook find_skill "docs-i18n"

docs-i18n — Internationalization Analysis

Workflow#

  1. Check language setup — find which languages are enabled and which pages exist per language. If the docs are published on a platform with language settings (e.g. a Docsbook workspace), read them from there; otherwise infer from the folder structure (e.g. docs/en, docs/fr) or frontmatter. If only one language is in scope, skip this skill entirely.
  2. Gather the docs — get the list of pages across all languages and read their content. If a semantic/graph search tool over the markdown is available (self-hosted markdown-lsp, or a connected Docsbook workspace), prefer it — faster and cheaper than scanning files; otherwise read the files directly with grep/find.
  3. Apply checklist — check language configuration, content parity by tier, navigation/UI translation, translation content rules, format localization, RTL handling, translation freshness, and SEO for multilingual.
  4. Produce report — return one JSON issue object per finding, sorted by severity.

Guardrails#

Inputs#

This skill needs two things, by whatever means are available:

Acceleration (optional). Graph/semantic search over the docs makes navigation faster and cheaper than scanning files. You can self-host it with markdown-lsp, or get the same capability in the cloud by connecting a Docsbook workspace. With nothing connected, plain file reads and grep/find work fine.

Enabling/disabling languages is a publishing-platform action (e.g. Docsbook PRO); this skill only reports parity and freshness — apply language changes where you publish.

Checklist#

Language Configuration#

Content Parity (Priority-Based)#

Tier 1 — always translated:

Tier 2 — translate when possible:

Tier 3 — English-only is acceptable:

Checks:

Translation Content Rules#

Format Localization#

RTL Languages (Arabic)#

Translation Freshness#

SEO for Multilingual#

What to Look For#

Severity Problem Detection
critical Tier 1 page missing in an enabled language Compare page list per language
critical Non-English sidebar shows English labels Check navigation translation
high Custom language code used instead of ISO 639-1 Check enabled_languages config
high Tier 1 translation more than 90 days behind source Compare page timestamps
high Code comments translated, breaking syntax Scan code blocks in translations
high Missing translation returns 404 instead of fallback Check fallback behavior
medium hreflang tags missing Check page metadata
medium Date format not localized Check date patterns in content
medium UI screenshot in non-English docs with no note Scan image references
low Brand name "Docsbook" translated Grep for translations of brand
low Too formal or too informal register for language Manual review

Output Format#

{
  "file": "docs/ru/",
  "line": null,
  "severity": "critical",
  "rule": "missing-tier1-translation",
  "found": "Russian language is enabled, but docs/ru/quick-start.md does not exist. Tier 1 page missing for an enabled language.",
  "suggestion": "Translate docs/en/quick-start.md → docs/ru/quick-start.md. Use your translation pipeline (AI translation, a translation service, or manual) with human review. Alternative: temporarily disable Russian until the translation is ready."
}
{
  "file": "docs/ru/pricing.md",
  "line": null,
  "severity": "high",
  "rule": "stale-translation",
  "found": "docs/en/pricing.md was updated 2026-04-10, docs/ru/pricing.md was last updated 2026-01-15 — 115 days behind. Pricing information may be wrong in the Russian version.",
  "suggestion": "Re-translate docs/ru/pricing.md from the current English source. Prices and plans are business-critical — add to automation pipeline or release checklist."
}
{
  "file": "docs/es/api/workspaces.md",
  "line": 42,
  "severity": "high",
  "rule": "code-comment-translated",
  "found": "Line 42: JSON code block contains Spanish text in a comment position: `\"name\": \"// nombre del workspace\"` — invalid JSON.",
  "suggestion": "In JSON blocks, comments are not valid. Move the explanation to prose before or after the block. In TypeScript/Python, only translate `//` and `#` comments, never string values."
}

Acceptance Criteria#

View source on GitHub →Browse full catalog repo →
Keywords
i18ntranslationlocalizationmultilingualhreflanglanguages