ts-intl
Documentación
Integración con Astro disponible|ts-intl-astro

Internacionalización para el TypeScript moderno

Cero dependencias · Seguridad de tipos · Agnóstico del framework

$
pnpm add@aaakul/ts-intl
export default {
  dashboard: {
    greeting: "¡Hola, {name: string}!",
    membership: "{role, select, admin {Administrador} pro {Miembro Pro} other {Miembro Estándar}}",
    cart: "{count, plural, =0 {El carrito está vacío} one {# artículo en el carrito} other {# artículos en el carrito}}",
    discount: "Venta flash: <badge>20% de descuento</badge> en todos los artículos",
    invoice: "Total: {amount, number, currency}",
    delivery: "Entrega estimada: {time}",
  },
} as const;
Vista previa en vivo

¡Hola, Alex!

Miembro Pro
Venta flash: 20% de descuento en todos los artículos
3 artículos en el carritoTotal: 129,99 €
Entrega estimada: en 2 días

Seguridad de tipos

Proporciona inferencia de tipos TypeScript para claves de traducción, espacios de nombres y parámetros, validando la coherencia del esquema entre idiomas.

Cero dependencias en tiempo de ejecución

Construido sobre TypeScript y las API estándar Web Intl, sin requerir pasos de generación de código ni compilación adicional. Minified + Gzipped: < 5 kB

Soporte para ICU Message Format

Admite plurales, ordinales, ramas condicionales (select) e interpolación de etiquetas de texto enriquecido sin analizadores externos.

Agnóstico del framework

Funciona en Astro, Next.js, React, Vue, Svelte, Node.js, Bun y Cloudflare Workers.

Benchmark

Benchmark del tamaño de transferencia de red

Mide el tamaño real de transferencia en red de todos los recursos de i18n durante el pre-renderizado inicial y la hidratación en el cliente.

Tamaño de transferencia de red (KB)

Playwright Headless Chromium · Real HTTP Transfer Size

paraglideDivisión con middleware
-91%36.3 KB
ts-intlDivisión por idioma
-86%57.8 KB
paraglideEmpaquetado completo
-82%76.6 KB
i18nextCarga dinámica HTTP
-55%188.7 KB
ts-intlEmpaquetado completo
-14%360.0 KB
i18nextEmpaquetado completo
Baseline420.4 KB
Dependencias en tiempo de ejecución y sobrecarga

i18next incluye motores de análisis completos y entornos de ejecución de plugins, lo que genera una sobrecarga base fija. ts-intl tiene cero dependencias en tiempo de ejecución (~2 KB en el núcleo) y, en modo de división por idioma, solo descarga el diccionario del idioma activo.

Compilación frente a división en tiempo de ejecución

Paraglide compila cada mensaje en funciones JS y elimina mediante tree-shaking las claves no utilizadas. ts-intl es una biblioteca ligera en tiempo de ejecución que no requiere generación de código, empleando imports dinámicos estándar para evitar la acumulación de múltiples idiomas en el bundle.