Why this matters
Enables scalable languages, regional SEO, and consistent UX.
Do not hardcode user-visible strings in pages/layouts. Use an i18n library integrated with App Router and load dictionaries on the server.
Enables scalable languages, regional SEO, and consistent UX.
Side-by-side examples engineers can pattern-match during review.
export default function Page(){ return <h1>My Account</h1> }export default async function Page(){ const t = await getTranslator('account'); return <h1>{t('title')}</h1> }Hardcoded text in page.tsxLoad dictionary on the server and renderFrom the same buckets as this rule.