1.0.0 • Published 4 years ago
react-native-i18next-asyncstorage v1.0.0
react-native-i18next-async-storage
This plugin caches your user's language in React Native's Async storage
Getting Started
Install using:
yarn add react-native-i18next-async-storage
npm i react-native-i18next-async-storage
Then pass it to your i18n instance
import {languageDetector} from 'react-native-i18next-async-storage'
import i18n from 'i18next';
import {initReactI18next} from 'react-i18next';
// create directories or files for every language you want to use in your app
import englishTranslation from './en/en.json'; //
import persianTranslation from './fa/fa.json';
/**
* resources are used for local changes in App translation
*/
const resources = {
en: {
translation: englishTranslation, // imported from ./en/en.json
},
fa: {
translation: persianTranslation, // imported from ./fa/fa.json
},
};
i18n
.use(languageDetector)
.use(initReactI18next)
.init({
resources,
fallbackLng: 'fa',
debug: false,
interpolation: {
escapeValue: false, // react already safes from xss
},
});
Change language and Persist in AsyncStorage
// Change Language and Save the selected lang to AsyncStorage
import i18n from './i18n'; // imported from i18n
import {APP_LANGUAGE} from 'react-native-i18next-async-storage'
changeLanguage(language) {
AsyncStorage.setItem(APP_LANGUAGE, language, () => {
i18n.changeLanguage(language).then(() => {
RNRestart.Restart();
});
});
}
1.0.0
4 years ago