react-mobx-i18next
Version:
A tiny i18n utility for MobX + React (mobx-react-lite) that replaces react-mobx-i18n. Includes @translatable decorator, withTranslatable HOC, and useTranslatable hook.
34 lines (29 loc) • 743 B
text/typescript
import i18next, { i18n } from 'i18next'
import { initReactI18next } from 'react-i18next'
export interface CreateI18nOptions {
lang?: string
fallbackLang?: string | string[]
resources?: any
debug?: boolean
}
/** Create and init a configured i18n instance. */
export function createI18n(opts: CreateI18nOptions = {}): Promise<i18n> {
const {
lang = 'en',
fallbackLang = lang,
resources,
debug = false,
} = opts
const instance = i18next.createInstance()
return instance
.use(initReactI18next)
.init({
lng: lang,
fallbackLng: fallbackLang,
resources,
interpolation: { escapeValue: false },
debug,
returnNull: false,
}).then(() => instance)
// return instance
}