svelte-dialect
Winzige MessageFormat-2-i18n für Svelte 5 und SvelteKit.
Runes statt Stores, Schlüssel mit Namespace, Locale-Aushandlung beim SSR, URL-Routing und typisierte Message-Schlüssel — in einer Bibliothek, die klein genug ist, um sie in einem Rutsch zu lesen. Diese Seite ist zugleich die Demo: Sie läuft exakt mit dem hier beschriebenen Setup, Präfix inklusive.
Gebaut auf MessageFormat 2 — Rich Text landet als Snippets, nicht als String-Verkettung
Schnellstart #
Das Wesentliche: den Dialect einmal erzeugen und zwei Hooks einbinden. Den vollständigen Weg von der Installation bis zur ersten übersetzten Zeile findest du auf der Seite „Einrichtung“.
import { createDialect } from 'svelte-dialect/kit';
export const { t, handle, reroute, localizeHref, locales } = createDialect({
messages: import.meta.glob('./messages/**/*.json', { eager: true }),
defaultLocale: 'en',
routing: true
});import type { Handle } from '@sveltejs/kit/hooks';
import { handle as dialect } from '#lib/i18n.js';
export const handle: Handle = dialect;import type { Reroute } from '@sveltejs/kit/hooks';
import { reroute as dialect } from '#lib/i18n.js';
export const reroute: Reroute = dialect;Probier es aus #
Hallo, Svelte!
Du hast 0 Mal geklickt
Die Plural-Kategorien kommen von der Locale, nicht von der Bibliothek. Wechsle zu Russisch, und dieselbe Nachricht wählt one / few / many.
Wie es weitergeht #
Einrichtung
Installiere das Paket und binde es Schritt für Schritt ein, bis die erste übersetzte Zeile erscheint.
WeiterlesenMessage-Dateien
Schlüssel mit Namespace, Plurale, Zahlen und Datumsangaben — und was passiert, wenn eine Übersetzung fehlt oder fehlerhaft ist.
WeiterlesenLocale in der URL
/some/url für die Standard-Locale, /ru/some/url für alle anderen — per Cookie gemerkt, Präfix überschreibbar, genau das Setup, das diese Seite verwendet.
Weiterlesen