UNPKG

svelte-lang

Version:

svelte-lang is an i18n library for Svelte that simplifies multilingual support. It offers a straightforward API for managing translations, supports parameterized strings, and integrates with Svelte stores for reactive language handling. Features include a

28 lines (27 loc) 1.38 kB
import { type Writable, type Readable } from 'svelte/store'; export declare function p<T extends string>(name: T): { readonly type: "param"; readonly name: T; }; type ParamPlaceholder = ReturnType<typeof p>; export declare function t<T extends ParamPlaceholder[]>(strings: TemplateStringsArray, ...values: T): { readonly strings: TemplateStringsArray; readonly values: T; }; type ExtractParams<T extends readonly any[]> = T extends { type: 'param'; name: infer Name; }[] ? Name : never; type TranslationEntry = ReturnType<typeof t>; type TranslationsPerLanguage = Record<string, TranslationEntry>; export type Translations = Record<string, TranslationsPerLanguage>; export declare function setupI18n<TTranslations extends Translations, TDefaultLanguage extends keyof TTranslations>(translations: TTranslations, defaultLanguage: TDefaultLanguage, options?: { languagePersisted?: boolean; }): { t: Readable<(<TKey extends keyof TTranslations[TDefaultLanguage], TParams extends Record<ExtractParams<TTranslations[TDefaultLanguage][TKey]["values"]>, any>>(key: TKey, params?: TParams) => string)>; language: Writable<keyof TTranslations>; supportedLanguages: (keyof TTranslations)[]; tUnsafe: Readable<(key: string, params?: Record<string, unknown> | undefined | null) => string>; initLanguage: (lang: string) => void; }; export {};