Fully-Typed Node-Based i18n Translation Library.
Intl T, International Tree, International Translations, International T Object, Internationalization for TypeScript, International T
- 🌲 Node-based translations, the tree is the API:
t.page.section.title - 🎯 Fully-typed and type-safe translation keys, values and all sub-nodes
- 🚚 Supports JSON files and dynamic remote imports on demand
- 🪄 Flexible and familiar drop-in syntax integrating all the best parts of other i18n libraries
- 🧩 ICU message format support and extended for complex and nested formatting
- ⚛️ React components injections out of the box with typed chunks and variables
- 🚀 Supports SSR, RSC and Static Rendering with Next.js, serverless friendly
- 🔄 On-demand locale loading for lazy per-language chunks of just a few KB
- ⚙️ Modular and agnostic to any framework or library
- 📦 6kb Lightweight bundle with no dependencies, no side effects, and Tree-Shakable
npm install intl-t # or: bun add intl-t · pnpm add intl-t · yarn add intl-tZero external dependencies · TypeScript ≥ 5 · Node 18+, Bun, Deno, Edge & browsers
export default function Page() {
const { t } = useTranslation("homepage");
return (
<main>
<h1>{t.title}</h1>
<span>{t("welcome", { user: "Ivan" })}</span>
<span>{t.summary({ count: 4 })}</span>
<ul>
{t.features.map(t => (
<li key={t.id}>{t}</li>
))}
</ul>
<p>{t.page1.section[0].article1.title}</p>
<p>{t("page1.section.0").article1("title")}</p>
<p>{t.account(UserVariables).options.change}</p>
</main>
);
}View JSON source
If you find this project useful, consider supporting its development ☕ or leave a ⭐ on the Github Repo. Also, if you need direct support or help, please don't hesitate to contact.
