Performance: Sub-path routing for locales
MEDIUM IMPACT
This affects the initial page load speed and routing responsiveness by adding locale prefixes to URLs.
module.exports = { i18n: { locales: ['en', 'fr', 'es'], defaultLocale: 'en', localeDetection: true } }; // Next.js built-in sub-path routing configured in next.config.js // Pages are automatically served under /en, /fr, /es prefixes
export async function getServerSideProps(context) { const locale = context.req.headers['accept-language']?.split(',')[0] || 'en'; if (!context.params.locale) { return { redirect: { destination: `/${locale}${context.resolvedUrl}`, permanent: false } }; } return { props: {} }; } // No built-in Next.js locale routing used
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Manual locale redirects | No extra DOM nodes | Triggers 1 reflow due to redirect | Blocks paint until redirect completes | [X] Bad |
| Next.js built-in sub-path routing | No extra DOM nodes | Single reflow on initial load | Paints immediately after routing | [OK] Good |