Skip to content
React SDK

React i18n Made Simple

Type-safe internationalization for React applications with hooks, context, and seamless CDN delivery.

Source string

useTranslations('common')

Edited in code, picked up on the next scan

Glossary

Brand terms stay untranslated

AI translation

Written from your product context, not word by word

Git sync

chore/i18n-sync

Opened as a pull request for review

Published

de.json

Live on the CDN, no deploy

Published

fr.json

Live on the CDN, no deploy

Published

ja.json

Live on the CDN, no deploy

Published

tr.json

Live on the CDN, no deploy

Better I18N

One source of truth for every language

Setup

Installation & Setup

Get started with @better-i18n/use-intl in three steps — install, wrap your app with the provider, and start translating.

Install

Add @better-i18n/use-intl and use-intl to your project.

terminal
npm install @better-i18n/use-intl use-intl

Wrap your app with BetterI18nProvider

Place the provider at the root of your component tree. It fetches messages from the CDN and makes them available via hooks.

App.tsx
import { BetterI18nProvider } from '@better-i18n/use-intl';

function App() {
  return (
    <BetterI18nProvider project="your-org/your-project" locale="en">
      <YourApp />
    </BetterI18nProvider>
  );
}

Use translations

Call useTranslations() in any component to access your translation keys with full TypeScript support.

MyComponent.tsx
import { useTranslations } from '@better-i18n/use-intl';

function MyComponent() {
  const t = useTranslations('common');
  return <h1>{t('welcome')}</h1>;
}

Capabilities

Features

Get started with Better I18N in your React app in minutes.

React Hooks API (useTranslations)

Full TypeScript support with autocomplete

Lazy loading for optimal bundle size

ICU message format with pluralization

Variable interpolation and formatting

React Context for locale management

SSR and SSG support

Hot reload during development

DevTools integration

MyComponent.tsx
import { useTranslations } from '@better-i18n/use-intl';

function MyComponent() {
  const t = useTranslations('common');

  return (
    <div>
      <h1>{t('welcome')}</h1>
      <p>{t('greeting', { name: 'World' })}</p>
    </div>
  );
}
<BetterI18nProvider>

Provider fetches from the CDN once

useTranslations('common')

Every component reads from context

TtlCache · 60s

60s in-memory cache, offline fallback

t('welcome')

Keys typed from your project

Ecosystem

Works with Popular React i18n Libraries

Better I18N isn't a replacement for your favorite i18n library - it's the translation management layer that makes them even more powerful.

react-intl

The most popular React i18n library with ICU message format support. Used by thousands of production apps.

Better I18N syncs your translations directly to react-intl JSON format. Edit in our dashboard, see changes in your app instantly.

react-i18next

Powerful i18n framework for React based on i18next. Features like namespaces, interpolation, and plurals built-in.

Export to i18next-compatible JSON with namespaces. Better I18N handles the translation workflow, i18next handles the runtime.

FormatJS

A set of libraries for internationalization that includes react-intl. Supports ICU Message syntax and CLDR data.

Better I18N supports ICU message format natively. Manage complex plurals and selects visually, export to FormatJS format.

Lingui

A readable, automated, and optimized i18n library. Great DX with macro-based message extraction.

Extract messages with Lingui CLI, manage translations in Better I18N, sync back automatically via GitHub integration.

Keep reading

Related

Explore i18n for Other Frameworks

We use Better I18N across our Next.js platform and mobile apps. One tool for every product — translations go live the moment we push, no redeploys, no friction.

Samet Selcuk

Founder, Hellospace

Start Building with React i18n

Free tier available. No credit card required.