nextjs-build-website-i18n

Add bilingual VI/EN internationalization to Next.js App Router sites with next-intl.

2|Updated Apr 18, 2026
One-click install
npx skills add https://github.com/sdcorejs/sdcorejs-agent --skill nextjs-build-website-i18n
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nextjs-build-website-i18n
Source: https://github.com/sdcorejs/sdcorejs-agent/tree/main/plugin/skills/nextjs-build-website-i18n
Command: npx skills add https://github.com/sdcorejs/sdcorejs-agent --skill nextjs-build-website-i18n

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Adding a second language to a Next.js site can be a risky refactor, and it is easy to miss routing, middleware, and message parity, causing broken links or missing UI text.

Core Features & Use Cases

  • Bilingual i18n foundation with next-intl: Install Vietnamese-default VI and English EN message loading with server-side request config and middleware locale detection.
  • Localized URL pathnames: Map route slugs per locale (example: /san-pham ↔ /products) for better SEO and user experience.
  • Message parity and translation quality: Ensure VI/EN JSON keys stay symmetric so builds do not silently fall back or miss UI strings.
  • Language switcher + typed internal navigation: Add a locale switcher component and enforce internal links via typed routing helpers so locale prefixes are preserved.

Quick Start

Use nextjs-build-website-i18n to add English bilingual support to the current Next.js App Router site using next-intl routing, middleware, message JSON files, and a VI/EN language switcher.

Frequently Asked Questions about nextjs-build-website-i18n

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add bilingual VI/EN internationalization to my Next.js App Router site?

Next.js bilingual i18n is implemented using next-intl v3 to configure server-side message loading, middleware locale detection, and localized URL pathname mapping. This establishes the foundation for Vietnamese-default and English language support across the App Router.

Why does my next-intl language switcher drop the locale prefix on internal links?

Internal links lose their locale prefix when standard anchor tags are used instead of typed routing helpers. Enforcing typed internal links preserves the locale prefix, ensuring the language switcher correctly maintains the VI or EN routing context during navigation.

How do I map localized URL pathnames for different languages in Next.js?

Localized URL pathnames are mapped per locale using next-intl routing configuration, translating route slugs like /san-pham to /products. This provides better SEO and user experience by serving localized paths based on the detected language.

Why are UI strings missing or falling back unexpectedly in my Next.js i18n setup?

Missing UI strings occur when VI/EN message JSON keys lack symmetry, causing builds to silently fall back. Ensuring symmetric message keys across both language files prevents missing text and maintains translation quality during the internationalization process.

Do I need next-intl v3 routing configuration to add English to an existing Next.js site?

Yes, next-intl v3 routing configuration is required to add English support to an existing Next.js site. It manages the server-side request locale handling, middleware matcher coverage, and localized pathname mapping necessary for bilingual VI/EN functionality.

What are the limitations of adding a second language to a Next.js App Router site?

Adding a second language risks broken links and missing UI text if you miss routing, middleware, and message parity. Known constraints include ensuring middleware matcher coverage and maintaining symmetric VI/EN message keys to prevent silent build fallbacks.