Skip to content
Back to skills

Nextjs I18n

ASecurity

Best practices for multi-language handling, locale routing, and detection strategies across App and Pages Router. Use when adding i18n, locale routing, or language detection in Next.js.

  • 2 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added September 6, 2026
ai-agentsreactnextjsgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add FilippoDeSilva/skills --skill nextjs-i18n --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Nextjs I18n?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Nextjs I18n
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/filippodesilva-nextjs-i18n/badge)](https://www.skillsdirectory.com/skills/filippodesilva-nextjs-i18n)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: nextjs-i18n
description: Best practices for multi-language handling, locale routing, and detection strategies across App and Pages Router. Use when adding i18n, locale routing, or language detection in Next.js.
license: MIT
version: 1.0.0
author: "[Filippo De Silva](https://github.com/FilippoDeSilva)"
tags:
  - nextjs
  - i18n
  - locale
  - translation
  - next-intl
  - react-intl
  - next-translate
metadata:
  triggers:
    files:
    - 'middleware.ts'
    - 'app/[lang]/**'
    - 'pages/[locale]/**'
    - 'messages/*.json'
    - 'next.config.js'
    keywords:
    - i18n
    - locale
    - translation
    - next-intl
    - react-intl
    - next-translate
---
# Internationalization (i18n)

## **Priority: P2 (MEDIUM)**

Maintain single source of truth for locales and ensure SEO-friendly sub-path routing.

## Workflow: Add i18n to Next.js App Router Project

1. Install `next-intl` and create `messages/en.json`, `messages/fr.json`, etc.
2. Add locale detection middleware in `middleware.ts`
3. Create `app/[lang]/layout.tsx` with locale param
4. Load translations server-side via `getMessages()`
5. Add `hreflang` tags in `generateMetadata`
6. Pre-render locales with `generateStaticParams`
7. Verify: run `next build` and confirm all locale paths render

## Middleware Example

See [implementation examples](references/implementation.md)

## Implementation Guidelines

- **Locale Routing**: Follow URL-first approach for SEO. Use dynamic segments in App Router (`app/[lang]/page.tsx`) and `i18n` configuration in `next.config.js` for Pages Router.
- **Library Selection**: Use `next-intl` for App Router (modern) or `react-intl` / `next-translate` for legacy apps.
- **Detection**: Implement middleware localization in `middleware.ts` to detect user language from `Accept-Language` headers or cookies and perform redirects.
- **Server-Side**: Load translation `messages/*.json` dictionaries in Server Components to keep client bundle small.
- **SEO**: Ensure `hreflang` tags generated correctly in `metadata` API for all translated routes.
- **Static Generation**: Use `generateStaticParams` to pre-render localized versions of static pages at build time.

### Library Specifics

For detailed setup with common libraries, refer to:

- [references/react-intl.md](references/react-intl.md)
- [references/next-intl.md](references/next-intl.md)

## Anti-Patterns

- **No hardcoded strings in JSX**: Use translation keys; never commit raw text.
- **No client-side translation bundles**: Load dictionaries server-side with `getMessages()`.
- **No mixed URL locale patterns**: Use sub-paths or domains consistently.

Files in this skill

  • SKILL.md2.6 KB
  • evals/evals.json2 KB
  • references/implementation.md311 B
  • references/next-intl.md917 B
  • references/react-intl.md943 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.