Skip to main content

What is i18n Doctor?

i18n Doctor is a web-based localization health scanner that analyzes public GitHub repositories for translation issues. Paste any repo URL, and within seconds you’ll see exactly which translations are broken, missing, or incomplete — no CLI tools or local setup required.
Live at i18n.doctor — Scan any public GitHub repository instantly

The Problem

Developers ship apps with broken internationalization (i18n) all the time:
  • New UI strings go untranslated — You add "welcome.title" to en.json but forget to update fr.json, es.json, and 8 other locales
  • Coverage is inconsistent — Some locales have 90% coverage while others sit at 40%
  • Unused keys pile up silently — Old translation keys remain in files long after the feature is removed
  • No visibility until production — Users in non-English locales see missing text or English fallbacks
Existing tools require local setup, CLI installation, and manual diffing. i18n Doctor runs in your browser and shows a complete health report in seconds.

How i18n Doctor Solves It

i18n Doctor scans your repository and provides:

Auto-Detection

Automatically finds locale files in common patterns like locales/, i18n/, messages/, and public/locales/. Supports JSON, YAML, and .po formats.

Health Reports

Visual dashboard with per-locale coverage percentages, progress bars, and summary cards showing total keys, missing translations, and orphan keys.

Issue Breakdown

Detailed lists of missing keys, untranslated strings (empty values), and orphan keys (exist in target but not in source).

One-Click Fixes

Integration with Lingo.dev to translate all missing strings instantly. Download fixed files or open a GitHub PR directly.

Key Features

Repo Scanner

Auto-detects locale/translation files in common directory patterns:
✓ locales/en.json, locales/fr.json           (flat structure)
✓ locales/en/common.json, locales/fr/common.json  (nested structure)
✓ i18n/en.yaml, public/locales/pt-BR.yaml
✓ messages/en.po, lang/es.po

Health Dashboard

Visual breakdown with:
  • Coverage percentage per locale (colored progress bars)
  • Summary cards — total keys, avg coverage, missing/untranslated/orphan counts
  • Per-locale cards — expandable details with specific key lists

Format Support

Parses multiple translation file formats:
{
  "welcome": {
    "title": "Welcome",
    "subtitle": "Get started below"
  }
}
Nested keys are flattened to welcome.title, welcome.subtitle

Use Cases

Scan your repo before shipping a new release to catch missing translations. Avoid releasing features where half your locales are incomplete.
Contributors can scan a project to see which locales need translation help. Maintainers can validate PR submissions.
Compare multiple repos (use the Leaderboard feature) to see how your i18n setup stacks up against similar projects.
Use the scan API endpoint in GitHub Actions to fail builds when coverage drops below a threshold.

Example Report

Here’s what a scan looks like for a repo with locales/en.json, locales/fr.json, and locales/es.json:
Total Keys: 42
Avg Coverage: 78%
Missing: 12
Orphan: 3
fr85% coverage
es71% coverage

Lingo.dev Integration

All translation fixes are powered by Lingo.dev, a multilingual translation platform:
  • Instant translation — Missing keys are translated to all target locales in seconds
  • Context-aware — Uses the source locale and key names for accurate translations
  • Downloadable fixes — Get a ZIP file with updated locale files
  • GitHub PR generation — Automatically create a pull request with fixes (coming soon)
i18n Doctor itself is multilingual and uses Lingo.dev for its own translations — we dogfood our own solution.

What’s Next?

Quickstart

Learn how to scan your first repository and understand the results

API Reference

Integrate the scan API into your CI/CD pipeline

Build docs developers (and LLMs) love