# API I18N Localization

> Design internationalized REST APIs: Accept-Language, UTC storage, localized messages vs data, and explicit country/region params for business rules. Use when adding locales or fixing mixed timezone/locale bugs.

- Skill: `deangrant/api-i18n-localization` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add deangrant/api-i18n-localization`
- Raw SKILL.md: https://api.skillmd.com/api/skills/deangrant/api-i18n-localization/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: deangrant (https://skillmd.com/u/deangrant)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/deangrant/api-i18n-localization

---


# Internationalization and Localization

Use this skill when APIs serve **multiple locales/regions**.

---

## 1. Split concerns

| Concern | Approach |
| ------- | -------- |
| Message language | `Accept-Language` → localized `detail`/UI strings |
| Data timestamps | Store/transmit UTC RFC 3339; client displays |
| Business rules (tax, catalog) | Explicit `country` / `region` param — not only language |

---

## 2. Guidance

- Do not overload `Accept-Language` for currency/tax jurisdiction.
- Keep machine-stable `type` URIs in problem+json; localize `detail`/`title` if needed.
- Document default locale when header absent.

---

## 3. Quick checklist

- [ ] Accept-Language honored for user-facing text.
- [ ] Timestamps UTC on the wire.
- [ ] Country/region explicit for business logic.
- [ ] Defaults documented.

See [reference.md](reference.md) and [examples.md](examples.md).

