# next-intl-app-router

Настраивает next-intl с локалью в пути: конфиг, прокси, навигация и файлы сообщений. Пригодится, когда в проект добавляют второй язык.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 601 установка · ★ 2
- Автор: liuchiawei
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/liuchiawei/agent-skills/tree/HEAD/skills/frontend/next-intl-app-router/SKILL.md
- Обновлён: 2026-02-17
- HTML: https://affpapa.org/nevibecode/skills/next-intl-app-router

## Что делает

Скилл описывает подключение `next-intl` в проекте на Next.js App Router с префиксом локали в адресе — например, `/en/about` или `/ja/about`. Внутри разобраны шаги: плагин в `next.config.ts`, центральный конфиг `src/i18n/routing.ts`, загрузка сообщений в `src/i18n/request.ts`, прокси для перехвата маршрутов и обёртки навигации из `src/i18n/navigation.ts`.

Отдельно расписана структура каталогов: `messages/en.json`, `messages/ja.json` и папка `src/app/[locale]/`. Корневой `layout.tsx` не оборачивают в `NextIntlClientProvider` — это делают только в `app/[locale]/layout.tsx`, где локаль проверяют через `hasLocale` и вызывают `setRequestLocale` для статического рендера. В примерах есть готовые файлы, которые можно скопировать в проект.

Есть нюанс с версиями: в Next.js 16 файл `middleware.ts` заменён на `proxy.ts`, API тот же. Если у вас проект на более старой версии, имя файла придётся поправить, иначе перехват локалей не заработает. Ссылки и редиректы берите из `@/i18n/navigation`, а не из `next/link` и `next/navigation` — иначе локаль потеряется при переходе.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add liuchiawei/agent-skills --skill next-intl-app-router -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/next-intl-app-router/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/next-intl-app-router/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add liuchiawei/agent-skills --skill next-intl-app-router -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/next-intl-app-router/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add liuchiawei/agent-skills --skill next-intl-app-router -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/next-intl-app-router/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install liuchiawei/agent-skills next-intl-app-router
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/next-intl-app-router/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add liuchiawei/agent-skills --skill next-intl-app-router -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/liuchiawei/agent-skills --path skills/frontend/next-intl-app-router
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/next-intl-app-router/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add liuchiawei/agent-skills --skill next-intl-app-router -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/liuchiawei/agent-skills/tree/HEAD/skills/frontend/next-intl-app-router/SKILL.md

## Когда брать
- добавить в проект второй язык с локалью в адресе
- подключить плагин next-intl к next.config.ts
- настроить перехват маршрутов и исключения для /api и статики
- сделать ссылки и редиректы с сохранением текущей локали
- разложить переводы по JSON-файлам и неймспейсам

## Примеры запросов агенту
- Настрой next-intl в этом проекте: локали en и ja, локаль в пути
- Добавь страницу /about с переводом через next-intl
- Проверь, что ссылки идут через @/i18n/navigation и локаль не теряется

## Похожие
- [next-intl-add-language](https://affpapa.org/nevibecode/skills/next-intl-add-language.md) — скилл · 9349 установок
- [nextjs-app-router-fundamentals](https://affpapa.org/nevibecode/skills/nextjs-app-router-fundamentals.md) — скилл · 2200 установок
- [nextjs-app-router-patterns](https://affpapa.org/nevibecode/skills/nextjs-app-router-patterns.md) — скилл · 32529 установок
- [nextjs-app-router](https://affpapa.org/nevibecode/skills/nextjs-app-router.md) — скилл · 3900 установок
- [nextjs-app-router-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/nextjs-app-router-cursorrules-prompt-file.md) — правило · ★ 41011
- [nextjs-app-architecture](https://affpapa.org/nevibecode/skills/nextjs-app-architecture.md) — скилл · 485 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
