# @codenhub/i18n

> Translations with typed keys and values, ICU messages, CLDR plurals, `Intl`
> formatters, and regional and default-locale fallback, plus optional browser
> and locale-path helpers.

Use only the root, `/browser`, and `/routing` entry points. Await `init()` (or
`initializeBrowserI18n()`) before calling `t()`. Create one manager per request
or page on a server or in a static build. A key missing from every dictionary
returns the trimmed key.

## Documentation

- [Overview](docs/index.md): Core ideas, a walkthrough, and missing-key behavior.
- [Write your translations](docs/translations.md): Dictionary rules, JSON
  loaders, regional variants, ICU messages, formatters, plurals, typed keys and
  values, key-parity and message tests, and size limits.
- [Translate a browser app](docs/browser.md): Locale detection order,
  persistence, `lang`/`dir` sync, framework re-rendering, and `data-i18n`.
- [Render on a server or at build time](docs/server-rendering.md): Per-request
  managers, `Accept-Language` matching, logging, and static builds.
- [Localized URLs](docs/localized-urls.md): `parse`, `localize`, `localizeAll`,
  and accepted paths.
- [Troubleshooting](docs/troubleshooting.md): Every error and warning, with fixes.
- [API reference](docs/reference/index.md): Generated reference for every export.
