ts-intl
Documentation
Intégration Astro disponible|ts-intl-astro

L'internationalisation pour le TypeScript moderne

Zéro dépendance · Sécurité de typage · Indépendant du framework

$
pnpm add@aaakul/ts-intl
export default {
  dashboard: {
    greeting: "Bonjour, {name: string} !",
    membership: "{role, select, admin {Administrateur} pro {Membre Pro} other {Membre Standard}}",
    cart: "{count, plural, =0 {Le panier est vide} one {# article dans le panier} other {# articles dans le panier}}",
    discount: "Vente flash : <badge>-20 %</badge> sur tous les articles",
    invoice: "Total : {amount, number, currency}",
    delivery: "Livraison estimée : {time}",
  },
} as const;
Aperçu en direct

Bonjour, Alex !

Membre Pro
Vente flash : -20 % sur tous les articles
3 articles dans le panierTotal : 129,99 €
Livraison estimée : dans 2 jours

Sécurité de typage

Fournit l'inférence de types TypeScript pour les clés de traduction, les espaces de noms et les paramètres, tout en validant la cohérence du schéma entre les langues.

Zéro dépendance à l'exécution

Conçu sur TypeScript et les API standards Web Intl, sans nécessiter d'étape de génération de code lors du build. Minified + Gzipped: < 5 kB

Support du ICU Message Format

Prend en charge les pluriels, les ordinaux, les sélections conditionnelles (select) et l'interpolation de balises de texte enrichi sans aucun parseur externe.

Indépendant du framework

Fonctionne avec Astro, Next.js, React, Vue, Svelte, Node.js, Bun et Cloudflare Workers.

Benchmark

Benchmark de taille de transfert réseau

Mesure la taille réelle de transfert réseau de toutes les ressources i18n lors du pré-rendu initial et de l'hydratation côté client.

Taille du transfert réseau (Ko)

Playwright Headless Chromium · Real HTTP Transfer Size

paraglideDécoupage middleware
-91%36.3 KB
ts-intlDécoupage par langue
-86%57.8 KB
paraglideBundle complet
-82%76.6 KB
i18nextChargement dynamique HTTP
-55%188.7 KB
ts-intlBundle complet
-14%360.0 KB
i18nextBundle complet
Baseline420.4 KB
Dépendances d'exécution et empreinte

i18next intègre des moteurs de parsing complets et des runtimes de plugins, engendrant une surcharge de base incontournable. ts-intl ne comporte aucune dépendance d'exécution (~2 Ko pour le cœur) et, en mode découpage, ne charge que le dictionnaire de la langue active.

Compilateur vs découpage à l'exécution

Paraglide compile les messages en fonctions JS et élimine par tree-shaking les clés inutilisées. ts-intl est une bibliothèque d'exécution sans génération de code, utilisant des imports dynamiques standards pour éviter l'accumulation de dictionnaires multi-langues dans le bundle.