--- name: i18n description: Use when implementing or debugging code that uses @suaveplan/i18n: Internationalization core: message catalog, ICU-like interpolation, pluralization, locale resolution, middleware, date/currency formatting. --- # @suaveplan/i18n Enterprise-grade internationalization (i18n) core for Suaveplan. Works in Bun, Node.js, and modern browsers — zero DOM dependencies, tree-shakeable subpath exports. The package covers the full i18n surface: a namespaced `MessageCatalog` with lazy loaders and missing-key hooks; an `InterpolationEngine` with `{{ variable }}` and HTML-escape support; a `PluralizationEngine` with 14 language rules (including Arabic, Russian, and Celtic forms); an ICU-lite AST message parser for plural/select nodes; a `LocaleResolver` with BCP-47 normalisation, RTL detection, and fallback chains; server-side locale middleware; and `Intl`-backed date and currency formatters. Do not confuse with `@suaveplan/templates`, which handles string interpolation in non-i18n contexts — this package is specifically for locale-keyed message catalogs and locale-sensitive formatting. ## When to use this skill - Implementing or debugging code that imports `@suaveplan/i18n`. - The task touches: see package README. - You need API guidance for this package's exports. ## Quick reference ```ts import { /* see API Reference below */ } from "@suaveplan/i18n"; ``` ## Dependencies Workspace dependencies: `@suaveplan/error`, `@suaveplan/types` ## Where to read more This skill is intentionally short. The package's own documentation is the authoritative source — read these in order: 1. **`packages/i18n/i18n/README.md`** — overview, install, quick-start, module index 2. **`packages/i18n/i18n/src/**/*.md`** — co-located docs per implementation file (Purpose, Features, Basic + Advanced examples, full API reference, Implementation notes — all packages ship ≥200 words per module) 3. **`packages/i18n/i18n/package.json`** `exports` map — every subpath you can import from When the user asks an API question, read the relevant co-located `.md` first; do not answer from training-data memory. ## See also - `@suaveplan/error` - `@suaveplan/types` --- _This SKILL.md is auto-generated by `suaveplan-skills/scripts/generate-skills.ts` from the package's README. Do not edit by hand — re-run the generator after the README changes._