Справочник 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 | Заменяет набор локалей и/или локаль по умолчанию после инициализации. Некорректный ввод выводит предупреждение и ничего не меняет. |
| locales | string[] | Выбираемые локали, взятые из glob сообщений, если не заданы явно. Живое представление: configure переписывает его на месте. |
| handle | Handle | handle-хук SvelteKit для hooks.server.ts: согласует локаль, изолирует запрос, подставляет ru/ltr и выставляет Vary. |
| reroute | Reroute | reroute-хук SvelteKit для hooks.ts: убирает префикс локали, чтобы сработали маршруты. Имеет смысл только при routing: true. |
| localizeHref | (path, locale?) => string | Адрес пути в заданной локали, по умолчанию — текущей. Тождественная функция, если routing выключен. |
| formatParts | (key, params?) => RichPart[] | Сообщение в виде частей, готовых к рендеру; разметка MF2 приходит как open/close/standalone. Передавайте в компонент Rich. |
| formatNumber | (value, options?) => string | Intl.NumberFormat для активной локали, с мемоизацией. |
| formatDate | (value, options?) => string | Intl.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 | — | Локаль, отдаваемая на пути без префикса, и итоговый фолбэк. |
| locales | from messages | Выбираемые локали. По умолчанию — найденные в messages; задайте явно, если всё грузится динамически. |
| cookie | 'dialect' | Имя, либо { name?, maxAge?, domain?, secure? }. |
| loader | — | Загружает неймспейс по требованию — запрос к базе, fetch, remote-функция. |
| routing | false | Помещает локаль в URL как префикс пути. |
| base | '' | Базовый путь приложения при развёртывании в поддиректории. svelte-dialect/kit берёт его из paths.base; задавайте вручную только вне SvelteKit. |
| currentUrl | — | Реактивное чтение URL текущей страницы, по которому локаль синхронизируется после клиентской навигации. svelte-dialect/kit подставляет page.url; вне SvelteKit не задавайте. |
| detectOnBarePath | false | Перенаправляет заход документа без префикса на локаль посетителя. |
| strategy | ['url', 'cookie', 'lang', 'header', 'navigator', 'default'] | Порядок поиска локали, побеждает первое совпадение. |
| bidiIsolation | false | Оборачивает интерполированные значения в юникодные bidi-изоляты для RTL-локалей. |
| functions | {} | Дополнительные MF2-функции поверх встроенного набора. Совпадение по имени заменяет встроенную. |
| onError | console.warn | Получает каждую ошибку сообщения вместо консоли. |