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.

DateMonday, November 2, 2026 at 11:15:19 AM UTC
Number1,234,567.891
Price€1,234.50
Relative timeyesterday · in 3 months
Listapples, pears, and plums