bhasha-js documentation

The React i18n library purpose-built for South Asian languages. Auto RTL switching, lakh/crore numbers, native digits, region-aware currency, CLDR plurals — pre-configured for 14 languages.

What is bhasha-js?

If your app needs to support Hindi, Bengali, Urdu, Tamil, Telugu, Marathi, Punjabi, Gujarati, Kannada, Malayalam, Nepali, or Sinhala, generic i18n libraries like i18next and react-intl work — but they make you assemble RTL handling, font loading, lakh/crore grouping, and per-language plural rules yourself.

bhasha-js does all of that out of the box, and exposes the standard i18n surface (t(), useTranslation, <LanguageSwitcher />) on top.

Where to next

  • Quickstart — pick one of three install modes and have a working translated page in 5 minutes.
  • API reference — every prop, hook, and utility documented.
  • Supported languages — the 14 languages, their fonts, fallback chains, default currencies, and pluralization rules.
  • Self-hosting — run the entire stack on your own infra.

Three install modes

bhasha-js works in three configurations. The SDK API is identical in all three; only the <I18nProvider> setup differs.

Mode 1 — Bundled translations (no backend)

Best for static sites or apps with a small fixed string set. Translations live in your repo as JSON, ship in your bundle.

<I18nProvider preloadedTranslations={json} defaultLang="en">
  <App />
</I18nProvider>

Mode 2 — Hosted dashboard (recommended)

Sign up at app.bhashajs.com, create a project, copy your API key. Translations are managed in a UI with AI translation, team review, glossary, and version history.

<I18nProvider projectKey="bjs_..." defaultLang="en">
  <App />
</I18nProvider>

Mode 3 — Self-hosted

Run the open-source backend on your own infra. Self-hosting guide →

Get help