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
- GitHub issues — bugs and feature requests
- GitHub repo — source code, examples
- npm — package page