← ClaudeAtlas

i18nlisted

Internationalize and localize software — externalized message catalogs, ICU MessageFormat for plurals/gender/select, locale-aware formatting of dates/numbers/currency, RTL/bidi layout, Unicode correctness, content negotiation, and the translation pipeline. Use when extracting hardcoded UI strings, choosing an i18n library (react-i18next/FormatJS/next-intl/vue-i18n/gettext), handling plural rules across languages, formatting per-locale dates/currency, supporting RTL scripts, designing the locale-resolution chain, or wiring a translation workflow. Boundary vs a11y and frontend-fundamentals — a11y owns assistive-tech access (semantics, screen readers, keyboard, contrast) and frontend-fundamentals owns generic UI state/structure; this skill owns the language-and-locale dimension — message catalogs, pluralization/grammar, locale-aware formatting, bidi/RTL, and Unicode handling — concerns that exist even for a fully accessible single-language UI. Defers per-locale visual tokens to frontend-design.
kouroshez/coding-os · ★ 4 · Web & Frontend · score 76
Install: claude install-skill kouroshez/coding-os
# Internationalization & Localization — One Codebase, Every Locale A practical guide to building software that adapts to language, region, and script without forking the code per market. Stack-agnostic; recipes target react-i18next / FormatJS (ICU) / next-intl / vue-i18n on the client and ICU / gettext on the server. The distinction that frames everything: **i18n** (internationalization) is the engineering to *make* software localizable; **l10n** (localization) is the per-locale *content and adaptation* that engineering enables. ## When to Use This Skill - Extracting hardcoded UI strings into a message catalog for the first time. - Choosing an i18n library and message format (ICU MessageFormat vs gettext). - Handling plurals/gender/grammar that differ by language (not every language has "1 vs many"). - Formatting dates, numbers, currency, and lists per locale. - Supporting right-to-left (Arabic, Hebrew) and bidirectional text. - Designing the locale-resolution chain (URL / header / cookie / user preference). - Wiring the translator workflow — extraction, a translation-management system, re-import. Skip when: the only concern is screen-reader/keyboard access for a single language — that is a11y. This skill is the language-and-locale dimension; the two compose (a localized UI must still be accessible). ## Rule Zero — Never Concatenate Translated Strings The defining beginner mistake: `t("Hello") + " " + name + t("!")` or building a sentence from fragments. Word order, agr