@nanostores/i18n
Version:
A tiny (≈600 bytes) i18n library for React/Preact/Vue/Svelte
24 lines (18 loc) • 506 B
JavaScript
import { atom, onStart } from 'nanostores'
export function browser(opts) {
let fallback = opts.fallback || 'en'
let store = atom(fallback)
onStart(store, () => {
if (typeof navigator !== 'undefined') {
let languages = navigator.languages
if (!navigator.languages) languages = [navigator.language]
for (let language of languages) {
if (opts.available.includes(language)) {
store.set(language)
return
}
}
}
})
return store
}