Small i18n lib for react-native based on react-native-localize, i18n-js and lodash.memoize
This library was inspired by How to use React Native Localize in React Native apps (written by Aman Mittal) so please go and leave this guy some 👏.
Disclaimer: This library only supports translations, it does NOT support cultural settings (currency, dates, times, etc)
npm install -S react-native-simple-i18n
import React from 'react';
+ import { I18nProvider, useI18nProvider } from 'react-native-simple-i18n';
import ReduxProvider from 'src/components/ReduxProvider';
import Main from 'src/components/Main';
+ const messages = {
+ en: () => require('src/i18n/en.json'),
+ es: () => require('src/i18n/es.json'),
+ fr: () => require('src/i18n/fr.json'),
+ };
function App() {
+ const i18n = useI18nProvider(messages);
return (
<>
<ReduxProvider>
+ <I18nProvider value={i18n}>
<Main />
+ </I18nProvider>
</ReduxProvider>
</>
);
}
export default App;
{
"active": "Activo",
"inactive": "Inactivo",
"unknown": "Desconocido"
}
import React from 'react';
import { Text, View } from 'react-native';
+ import { useI18n } from 'react-native-simple-i18n';
function Main() {
+ const { translate } = useI18n();
return (
<View>
<Text>
+ {translate('active')}
</Text>
</View>
);
}
export default Main;
MIT © jonathanpalma