import { locale } from 'expo-localization'; import i18n from 'i18next'; import { initReactI18next } from 'react-i18next'; import { I18nManager } from 'react-native'; import { resources } from './resources'; import { getLanguage } from './utils'; export * from './utils'; i18n.use(initReactI18next).init({ resources, lng: getLanguage() || locale, // TODO: if you are not supporting multiple languages or languages with multiple directions you can set the default value to `en` fallbackLng: 'en', compatibilityJSON: 'v3', // By default React Native projects does not support Intl // allows integrating dynamic values into translations. interpolation: { escapeValue: false, // escape passed in values to avoid XSS injections }, }); // Is it a RTL language? export const isRTL: boolean = i18n.dir() === 'rtl'; I18nManager.allowRTL(isRTL); I18nManager.forceRTL(isRTL); export default i18n;