How To Set The Default Language In I18next - React Native?
I'm trying to set a default language when the user opening the app for the first time, I'm using i18next & react-i18next Default language I want to be ar, Is there a way to do
Solution 1:
in your App.js, check current user language to determine language:
import i18next from'i18next';
import { initReactI18next } from'react-i18next';
const languageDetector = {
type: 'languageDetector',
async: true,
detect: cb => {
const deviceLanguage =
Platform.OS === 'ios'
? NativeModules.SettingsManager.settings.AppleLocale ||
NativeModules.SettingsManager.settings.AppleLanguages[0] // iOS 13
: NativeModules.I18nManager.localeIdentifier;
cb(deviceLanguage.indexOf('vi')>=0?'vi':'en')
},
init: () => {},
cacheUserLanguage: () => {},
};
i18next
.use(languageDetector)
.use(initReactI18next)
.init({
fallbackLng: 'en',
debug: false,
resources: languages,
});
functionApp(){ return ....}
Solution 2:
Try this:
import { reactI18nextModule } from'react-i18next';
const ar = require('./Lang/ar.json');
const en = require('./Lang/en.json');
i18n.use(reactI18nextModule).init({
resources: {
ar,
en,
},
fallbackLng: 'ar',
keySeparator: false,
interpolation: {
escapeValue: false,
},
});
Hint
It's better to have the fallback-lang aka default-language to be the user-device-lang instead of hardcoding it to ar
...
Post a Comment for "How To Set The Default Language In I18next - React Native?"