ts-intl
Dokumentation
Astro-Integration verfügbar|ts-intl-astro

Internationalisierung für modernes TypeScript

Keine Abhängigkeiten · Typsicherheit · Framework-agnostisch

$
pnpm add@aaakul/ts-intl
export default {
  dashboard: {
    greeting: "Hallo, {name: string}!",
    membership: "{role, select, admin {Administrator} pro {Pro-Mitglied} other {Standard-Mitglied}}",
    cart: "{count, plural, =0 {Warenkorb ist leer} one {# Artikel im Warenkorb} other {# Artikel im Warenkorb}}",
    discount: "Blitzangebot: <badge>20 % Rabatt</badge> auf alle Artikel",
    invoice: "Gesamt: {amount, number, currency}",
    delivery: "Voraussichtliche Lieferung: {time}",
  },
} as const;
Live-Vorschau

Hallo, Alex!

Pro-Mitglied
Blitzangebot: 20 % Rabatt auf alle Artikel
3 Artikel im WarenkorbGesamt: 129,99 €
Voraussichtliche Lieferung: in 2 Tagen

Typsicherheit

Bietet TypeScript-Typinferenz für Übersetzungsschlüssel, Namespaces und Parameter und validiert die Konsistenz der Schemata über alle Sprachen hinweg.

Keine Laufzeitabhängigkeiten

Basiert auf TypeScript und Web-Standard-Intl-APIs, ohne dass Codegenerierungs-Buildschritte erforderlich sind. Minified + Gzipped: < 5 kB

ICU Message Format Unterstützung

Unterstützt Pluralregeln, Ordinalzahlen, Select-Verzweigungen und Rich-Text-Tag-Interpolation ohne externe Parser-Abhängigkeiten.

Framework-agnostisch

Läuft nahtlos in Astro, Next.js, React, Vue, Svelte, Node.js, Bun und Cloudflare Workers.

Benchmark

Benchmark der Netzwerk-Übertragungsgröße

Misst die tatsächliche Netzwerk-Übertragungsgröße aller i18n-Assets während des initialen Vorab-Renderings und der clientseitigen Hydratisierung.

Netzwerk-Übertragungsgröße (KB)

Playwright Headless Chromium · Real HTTP Transfer Size

paraglideMiddleware-Splitting
-91%36.3 KB
ts-intlLocale-Splitting
-86%57.8 KB
paraglideVollständig gebündelt
-82%76.6 KB
i18nextHTTP-Dynamik
-55%188.7 KB
ts-intlVollständig gebündelt
-14%360.0 KB
i18nextVollständig gebündelt
Baseline420.4 KB
Laufzeitabhängigkeiten & Overhead

i18next bündelt vollständige Parser-Engines und Plugin-Laufzeiten, was zu einem festen Basis-Overhead führt. ts-intl hat keinerlei Laufzeitabhängigkeiten (~2 KB Kern) und lädt im Locale-Splitting-Modus nur das Wörterbuch der aktiven Sprache.

Compiler- vs. Laufzeit-Aufteilung

Paraglide kompiliert Nachrichten in JS-Funktionen und entfernt ungenutzte Schlüssel via Tree-Shaking. ts-intl ist eine leichtgewichtige Laufzeitbibliothek ohne Codegenerierung, die standardmäßige dynamische Imports nutzt, um die Bündelung mehrerer Sprachen zu verhindern.