## TL;DR
Fill in the per-locale translation files or enable fallback to the default locale. Empty pages mean the locale is configured but its content files are missing or blank.

## Error
```text
(translated pages exist at /fr/docs/... but render empty; no build error)
```

## Steps
1. Check the locale's content directory (e.g. `i18n/fr/docusaurus-plugin-content-docs/`): missing or empty Markdown files produce empty pages. Expected: the content gap located.
2. Either provide the translations, or configure the locale to fall back to default-locale content until translations exist. Expected: no locale ships empty pages.
3. Check the JSON translation files for the theme (navbar, footer); empty values there blank out chrome text too. Expected: chrome translations present.
4. Rebuild with `npm run build` and spot-check the translated pages. Expected: pages render content.

## When to use
- Translated pages build but show no content
- A docs agent set up i18n without writing translations
- A new locale was added recently

## When not to use
- The locale build fails outright (a configuration problem)
- Translations exist but are wrong (a translation quality problem)
- Only some strings are untranslated (expected during rollout)

## Tool compatibility
Docusaurus 2.x and 3.x i18n.

### Variant phrasings
### empty pages for docs but not for the blog
The docs plugin translations are missing while the blog's exist. Complete the docs set.

### agent machine-translated everything poorly
Bad translations are a quality gate problem; empty pages are a completeness problem. Fix completeness first.

## Why it happens
Docusaurus builds a page per locale as soon as the locale is declared, regardless of whether translations exist. Declaring first and translating later ships empty pages in between.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_rgofupE8zaVMkWG9jsfVnw
