--- createdAt: 2026-09-02 updatedAt: 2026-09-02 title: React Router i18n - locale routes that get indexed description: How to add locale-prefixed routes in React Router v7, why the answer differs between framework mode and SPA mode, and how to avoid hydration mismatches. keywords: - react router i18n - React Router v7 - locale routing - hydration mismatch - hreflang - react-i18next - Intlayer slugs: - blog - i18n-technologies - frameworks - react-router author: aymericzip --- # React Router i18n: locale routes that actually get indexed Adding a translation library to a React Router app is the easy part. The hard part is the routing: a `:locale` segment at the root of the tree, a redirect from `/` to the right language, and HTML that already contains the right words when a crawler reads it. This post covers the routing shape, why framework mode and SPA mode give different answers, and the hydration bug everyone hits once.