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

Справочник API

Сначала экспорты пакета, затем то, что возвращает createDialect, затем его опции. Подробные разборы — на остальных страницах, здесь только таблица для быстрого поиска.

Экспорты пакета #

ЭкспортСигнатураОписание
createDialect svelte-dialect(options: DialectOptions) => DialectСоздаёт диалект по опциям ниже и возвращает функции из раздела «Что возвращает createDialect». Это точка входа для приложений без SvelteKit.
createDialect svelte-dialect/kit(options: DialectOptions) => DialectТа же функция для приложений на SvelteKit. Дополнительно подставляет base из paths.base и пересинхронизирует локаль после клиентской навигации. Всё, что экспортирует svelte-dialect, реэкспортируется и отсюда.
Rich svelte-dialect<Rich parts={RichPart[]} {...snippets} />Отрисовывает результат formatParts. Разметка MF2 вроде {#link}…{/link} попадает в сниппет с тем же именем; разметка без сниппета всё равно выводит своё содержимое.
localizedEntries svelte-dialect/entries(paths: string[], { locales, defaultLocale }) => ('*' | `/${string}`)[]Размножает записи для prerender по локалям без base: paths.base SvelteKit добавляет сам. Эту самостоятельную версию можно импортировать в vite.config.ts, который не умеет загружать диалект. createDialect возвращает её близнеца, которому нужны только пути и который берёт свои локали; при выключенном routing он возвращает пути как есть.

Что возвращает createDialect #

ЭкспортСигнатураОписание
t(key, params?) => stringФорматирует namespace:dot.path для текущей локали (MF2). Параметры становятся обязательными для ключей, типизированных через MessageParams.
loadTranslations(ns: string | string[], opts?) => Promise<{ t }>Кеширует неймспейсы для текущей локали через loader, затем резолвится. reload перезапрашивает и заменяет.
getLocale() => stringВозвращает текущую локаль.
setLocale(locale, opts?) => voidПереключает локаль, обновляет <html lang>/dir и куки; при routing переходит на новый префикс, если не передано reload: false.
configure({ defaultLocale?, locales? }) => voidЗаменяет набор локалей и/или локаль по умолчанию после инициализации. Некорректный ввод выводит предупреждение и ничего не меняет.
localesstring[]Выбираемые локали, взятые из glob сообщений, если не заданы явно. Живое представление: configure переписывает его на месте.
handleHandlehandle-хук SvelteKit для hooks.server.ts: согласует локаль, изолирует запрос, подставляет ru/ltr и выставляет Vary.
rerouteReroutereroute-хук SvelteKit для hooks.ts: убирает префикс локали, чтобы сработали маршруты. Имеет смысл только при routing: true.
localizeHref(path, locale?) => stringАдрес пути в заданной локали, по умолчанию — текущей. Тождественная функция, если routing выключен.
formatParts(key, params?) => RichPart[]Сообщение в виде частей, готовых к рендеру; разметка MF2 приходит как open/close/standalone. Передавайте в компонент Rich.
formatNumber(value, options?) => stringIntl.NumberFormat для активной локали, с мемоизацией.
formatDate(value, options?) => stringIntl.DateTimeFormat для активной локали, с мемоизацией.
getTextDirection(locale?) => 'ltr' | 'rtl'Направление письма для локали, из Intl. По умолчанию — текущая локаль.
localizedEntries(paths: string[]) => ('*' | `/${string}`)[]Размножает записи для prerender по локалям без base: paths.base SvelteKit добавляет сам. Эту самостоятельную версию можно импортировать в vite.config.ts, который не умеет загружать диалект. createDialect возвращает её близнеца, которому нужны только пути и который берёт свои локали; при выключенном routing он возвращает пути как есть.

Опции createDialect #

ОпцияПо умолчаниюОписание
messages{}Результат import.meta.glob. Eager-записи инлайнятся, не-eager становятся чанками по неймспейсу. Можно опустить, если всё приходит через loader.
defaultLocale—Локаль, отдаваемая на пути без префикса, и итоговый фолбэк.
localesfrom messagesВыбираемые локали. По умолчанию — найденные в messages; задайте явно, если всё грузится динамически.
loader—Загружает неймспейс по требованию — запрос к базе, fetch, remote-функция.
routingfalseПомещает локаль в URL как префикс пути.
base''Базовый путь приложения при развёртывании в поддиректории. svelte-dialect/kit берёт его из paths.base; задавайте вручную только вне SvelteKit.
currentUrl—Реактивное чтение URL текущей страницы, по которому локаль синхронизируется после клиентской навигации. svelte-dialect/kit подставляет page.url; вне SvelteKit не задавайте.
detectOnBarePathfalseПеренаправляет заход документа без префикса на локаль посетителя.
strategy['url', 'cookie', 'lang', 'header', 'navigator', 'default']Порядок поиска локали, побеждает первое совпадение.
bidiIsolationfalseОборачивает интерполированные значения в юникодные bidi-изоляты для RTL-локалей.
functions{}Дополнительные MF2-функции поверх встроенного набора. Совпадение по имени заменяет встроенную.
onErrorconsole.warnПолучает каждую ошибку сообщения вместо консоли.