Speak the language of your visitors
A guard reads the locale from the URL and puts a translation function into the "this" context, so every component can translate texts without receiving the locale as a prop.
Visiting /i18n without a locale redirects you to the best match for the languages configured in your browser.
Plural forms
Languages have different plural rules: Intl.PluralRules picks the right form. Try 0, 1, 2, 5, 22 and 1000000 in every language.
1 apple
Dates, numbers and lists
The Intl API of JavaScript formats values for each locale, without any additional library.
| Date | Monday, November 2, 2026 at 12:10:30 PM UTC |
|---|---|
| Number | 1,234,567.891 |
| Price | €1,234.50 |
| Relative time | yesterday · in 3 months |
| List | apples, pears, and plums |