Internationalization for Modern TypeScript
Zero Dependencies · Type Safety · Framework Agnostic
export default {
dashboard: {
greeting: "Hello, {name: string}!",
membership: "{role, select, admin {Admin} pro {Pro Member} other {Standard Member}}",
cart: "{count, plural, =0 {Cart is empty} one {# item in cart} other {# items in cart}}",
discount: "Flash Sale: <badge>20% OFF</badge> on all items",
invoice: "Total: {amount, number, currency}",
delivery: "Estimated delivery: {time}",
},
} as const;Hello, Alex!
Pro MemberType Safety
Provides TypeScript type inference for translation keys, namespaces, and parameters, while validating schema consistency across locales.
Zero Runtime Dependencies
Built on TypeScript and Web standard Intl APIs, requiring no code generation build steps. Minified + Gzipped: < 5 kB
ICU Message Format Support
Supports plurals, ordinals, select branches, and rich text tag interpolation without external parser dependencies.
Framework Agnostic
Runs in Astro, Next.js, React, Vue, Svelte, Node.js, Bun, and Cloudflare Workers.
Network Transfer Size Benchmark
Measures the real network transfer size of all i18n assets during initial pre-rendering and client-side hydration.
Playwright Headless Chromium · Real HTTP Transfer Size
i18next bundles full parser engines and plugin runtimes, incurring baseline overhead. ts-intl has zero runtime dependencies (~2 KB core) and, in locale-splitting mode, loads only the active locale dictionary.
Paraglide compiles messages to JS functions and tree-shakes unused keys. ts-intl is a runtime library requiring no code generation, using standard dynamic imports to prevent multi-locale bundle accumulation.