This plugin caches your user's language in React Native's Async storage
Install using:
yarn add i18next-react-native-async-storage
Then pass it to your i18n instance
import AsyncStoragePlugin from 'i18next-react-native-async-storage'
i18n
.use(AsyncStoragePlugin())
You can pass a fallback function or language to the plugin in case it fails to find the user's language in the local storage (typically on the app's first run):
// With a fallback language
i18n
.use(AsyncStoragePlugin('en'))
// With a fallback function
const detectUserLanguage = (callback) => {
return Expo
.DangerZone
.Localization
.getCurrentLocaleAsync()
.then(lng => { callback(lng.replace('_', '-')); })
}
i18n
.use(AsyncStoragePlugin(detectUserLanguage))