Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Loaded automatically when its description matches the active task. Detect the framework first (Next.js vs Nuxt/Vue), then open the matching reference. Read only the section you need.
Use this skill when
Adding a second language to a Next.js or Nuxt app for the first time
Picking between next-intl, vue-i18n and @nuxtjs/i18n for a greenfield project
Wiring locale-prefixed routing (/en/..., /de/...) with hreflang and sitemap
Writing ICU-format messages with plurals, gender, dates, numbers, currency
Switching between Server Components and Client Components for translations in App Router
Lazy-loading locale messages to reduce bundle size
Building a locale switcher that preserves the current path and query
Integrating a translation management platform (Crowdin, Lokalise, Phrase, Tolgee)
Internationalization spans framework, routing, message format, build pipeline, SEO, and translator workflow. A framework-only skill misses the cross-cutting decisions: which library to pick, how to map ICU plurals to JSON, when to lazy-load messages, how to wire hreflang correctly. This skill is the single navigator for the i18n surface across our React/Next.js and Vue/Nuxt projects.
The two pinned libraries cover ~95% of our work: next-intl for Next.js App Router (Server Components first-class, ICU built-in, type-safe keys) and vue-i18n for Vue/Nuxt (Composition API, useI18n, Nuxt module). The remaining 5% (i18next, FormatJS, lingui) is referenced only when a project already uses them. Hands off to framework skills (nextjs, nuxt, react, vue) for non-i18n concerns.
Capabilities
Each capability below points to the canonical reference file. References own the code, edge cases, and gotchas — do not duplicate them here.
Library decision and framework routing
Map task → library: Next.js App Router → next-intl. Nuxt → @nuxtjs/i18n (wraps vue-i18n). Plain Vue SPA → vue-i18n directly. Decision table with tradeoffs and when to escape to i18next. → references/REFERENCE.md
next-intl integration (Next.js 16 App Router)
defineRouting + createMiddleware, [locale] segment, setRequestLocale for static rendering, getTranslations in async Server Components, useTranslations in Client Components, NextIntlClientProvider, localized Link/navigation, pathnames for translated URLs. → references/next-intl.md
vue-i18n integration (Vue 3.5 + Nuxt 4)
createI18n with Composition mode (default in v11+), useI18n composable, t/n/d for messages/numbers/dates, Composer instance, global vs local scope, SFC <i18n> blocks. Nuxt module @nuxtjs/i18n vs raw vue-i18n — when to use which. → references/vue-i18n.md
Translation file structure
JSON vs YAML, namespace organization (by feature vs by page), ICU message format (plural, select, ordinal), date/number/currency formatters, nested keys vs flat keys, type generation from message files. → references/translation-files.md
How to use: pick the framework (Next.js → next-intl.md, Nuxt/Vue → vue-i18n.md), then read cross-cutting files (translation-files.md, seo-and-routing.md) as needed.