К содержимому

svelte-dialect

Крошечный i18n на MessageFormat 2 для Svelte 5 и SvelteKit.

Руны вместо сторов, ключи с неймспейсами, определение локали на сервере, маршрутизация в URL и типизированные ключи сообщений — в библиотеке, которую можно прочитать за один присест. Этот сайт и есть демо: он работает ровно на той конфигурации, что описана здесь, вместе с префиксом.

Работает на MessageFormat 2 — разметка приходит сниппетами, а не склейкой строк

Быстрый старт #

Суть: создайте диалект один раз и подключите два хука. Полный путь — от установки до первой переведённой строки — на странице «Установка».

src/lib/i18n.ts
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
});
src/hooks.server.ts
import type { Handle } from '@sveltejs/kit/hooks';
import { handle as dialect } from '#lib/i18n.js';

export const handle: Handle = dialect;
src/hooks.ts — universal, not hooks.server.ts
import type { Reroute } from '@sveltejs/kit/hooks';
import { reroute as dialect } from '#lib/i18n.js';

export const reroute: Reroute = dialect;
Полная установка по шагам →

Попробуйте #

Привет, Svelte!

Вы кликнули 0 раз

Категории множественного числа берутся из локали, а не из библиотеки. Переключитесь на английский — то же сообщение выберет one / other.

Куда дальше #