Nextjs i18n
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/nextjs-i18n
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. (triggers: middleware.ts, app/[lang]/**, pages/[locale]/**, messages/*.json, next.config.js, i18n, locale, translation, next-intl, react-intl, next-translate)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill nextjs-i18nAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.0 KB, 418 tokens by cl100k_base, as published. Nobody here has run it
Internationalization (i18n)
Priority: P2 (MEDIUM)
Maintain a single source of truth for locales and ensure SEO-friendly sub-path routing.
Implementation Guidelines
- Locale Routing: Follow the URL-first approach for SEO. Use dynamic segments in the App Router (e.g.,
app/[lang]/page.tsx) and thei18nconfiguration innext.config.jsfor the Pages Router. - Library Selection: Use
next-intlfor the App Router (modern) orreact-intl/next-translatefor legacy apps. - Detection: Implement Middleware localization (in
middleware.ts) to detect user language fromAccept-Languageheaders or cookies and perform redirects. - Server-Side: Load translation
messages/*.jsondictionaries in Server Components to keep the client bundle small. UsegetMessages()orrequestConfigpatterns. - SEO: Ensure
hreflangtags are generated correctly in themetadataAPI for all translated routes. - Static Generation: Use
generateStaticParamsto pre-render localized versions of static pages at build time.module.exports = { i18n: { locales: ['en', 'fr', 'vi'], defaultLocale: 'en', }, };
3. Library Specifics
For detailed setup with common libraries, refer to:
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.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.