import i18n from 'i18next' ; import { initReactI18next } from 'react-i18next' ; import en from './assets/locales/en' ; import nl from './assets/locales/nl' ; import de from './assets/locales/de' ; import bn from './assets/locales/bn' ; import { NativeModules } from 'react-native' ; function getSystemLocale ( ) { let locale ; if ( NativeModules . SettingsManager && NativeModules . SettingsManager . settings && NativeModules . SettingsManager . settings . AppleLanguages ) { locale = NativeModules . SettingsManager . settings . AppleLanguages [ 0 ] ; } else if ( NativeModules . I18nManager ) { locale = NativeModules . I18nManager . localeIdentifier ; } if ( typeof locale === 'undefined' ) { console . log ( 'Couldnt get locale' ) ; return 'en' ; } return locale ; } const resources = { en , nl , de , bn } ; function getLangPrefix ( lng ) { let prefix = 'en' ; if ( lng . indexOf ( '_' ) > - 1 ) { prefix = lng . split ( '_' ) [ 0 ] ; } else if ( lng . indexOf ( '-' ) > - 1 ) { prefix = lng . split ( '-' ) [ 0 ] ; } if ( ! resources . hasOwnProperty ( prefix ) ) { prefix = 'en' ; } return prefix ; } console . log ( 'System Locale' , getSystemLocale ( ) ) ; console . log ( 'Lang Prefix' , getLangPrefix ( getSystemLocale ( ) ) ) ; i18n . use ( initReactI18next ) . init ( { resources , lng : getLangPrefix ( getSystemLocale ( ) ) , interpolation : { escapeValue : false , } , } ) ; export default i18n ;