Web app i18n stack 2026

Localizing a web app is more than translating strings. Dates, numbers, currencies, plurals, RTL, SEO — all different.

Web app i18n stack 2026

Web app localization is broader than "translate the buttons". The full job:

Web app i18n stack 2026
Full i18n pipeline — four stages, each with its own tools.
  • UI strings (buttons, labels, error messages).
  • Long-form content (articles, descriptions).
  • Dates and times in local format.
  • Numbers, currencies, units.
  • Pluralization (1 file vs 2 files vs 0 files — varies wildly by language).
  • RTL — Arabic, Hebrew, Persian.
  • SEO — locale URLs, hreflang, sitemap entries.

Stack that works:

  • react-i18next or next-intl for UI strings.
  • Built-in Intl API for dates, numbers, currencies. Don't import moment.js — it's deprecated.
  • ICU MessageFormat for pluralization and complex substitutions.
  • Content translations in CMS or database, not in JS bundle.

What goes wrong:

  • Hardcoded strings in JSX. Start without i18n, retrofit is painful.
  • Wrong pluralization rules — English (1/many) applied to languages with more rules.
  • SEO — duplicate hreflang, missing x-default.
  • All translations in one giant JSON loaded everywhere.
  • Forgetting RTL — even when "we don't support Arabic" — text directions in mixed content.