UNPKG

@nanostores/i18n

Version:

A tiny (≈600 bytes) i18n library for React/Preact/Vue/Svelte

33 lines (30 loc) 902 B
import type { ReadableAtom } from 'nanostores' type AutodetectOpts<Locales extends readonly string[]> = Extract<Locales[number], 'en'> extends never ? { available: Locales fallback: Locales[number] } : { available: Locales fallback?: Locales[number] } /** * A store which can be used in {@link localeAtom} to autodetects user’s locale * from `Accept-Languages` header of the browser. * * ```js * import { browser, localeFrom } from '@nanostores/i18n' * * export const locale = localeFrom( * localeSettings, * browser({ available: ['en', 'ru'] as const }) * ) * ``` * * @param opts Languages supported by application and optional fallback. * @returns Store with browser language or fallback. */ export function browser<const Locales extends readonly string[]>( opts: AutodetectOpts<Locales> ): ReadableAtom<Locales[number]>