← ClaudeAtlas

dev-i18nlisted

Internationalization (i18n) and localization (l10n) for web and mobile applications. Libraries next-intl, react-i18next, vue-i18n, formatjs, flutter_localizations, ARB. Trigger when the user wants to add multiple languages, extract strings, handle plurals, date/number formats, or when translation files are detected.
christopherlouet/claude-base · ★ 4 · AI & Automation · score 80
Install: claude install-skill christopherlouet/claude-base
# Internationalization (i18n) ## Choosing your lib ### Web | Lib | Stack | Strength | Avoid | |-----|-------|----------|-------| | **next-intl** | Next.js 13+ App Router | Server Components first, type-safe, localized routes | Pages Router projects (use next-i18next) | | **react-i18next** | React vanilla / SPA | Mature, large ecosystem, plugins | Heavy for SSR without effort | | **formatjs (react-intl)** | React | ICU MessageFormat standard | More verbose boilerplate | | **vue-i18n** | Vue 3 / Nuxt | Native, Composition API, lazy load | Vue-specific | | **svelte-i18n** / **paraglide** | Svelte/SvelteKit | Lean, compile-time (paraglide) | Smaller ecosystem | ### Mobile | Lib | Stack | |-----|-------| | **flutter_localizations + intl** | Flutter official, ARB files | | **slang** | Flutter alternative, type-safe, code-generation | | **react-native-localize + i18next** | React Native | ## next-intl (Next.js App Router) ### Setup ```bash npm install next-intl ``` ``` messages/ fr.json en.json app/ [locale]/ layout.tsx page.tsx middleware.ts i18n/ request.ts routing.ts ``` ### Config ```ts // i18n/routing.ts import { defineRouting } from "next-intl/routing"; export const routing = defineRouting({ locales: ["fr", "en"], defaultLocale: "fr", localePrefix: "as-needed", // /en/about, /about (default locale) }); ``` ```ts // middleware.ts import createMiddleware from "next-intl/middleware"; import { routing } from "./i18n/routing"; export default c