30 lines
836 B
TypeScript
30 lines
836 B
TypeScript
import { I18n } from 'i18n-js';
|
|
import * as Localization from 'expo-localization';
|
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
|
|
import en from './locales/en.json';
|
|
import tk from './locales/tk.json';
|
|
import ru from './locales/ru.json';
|
|
|
|
const i18n = new I18n({
|
|
en,
|
|
tk,
|
|
ru,
|
|
});
|
|
|
|
i18n.enableFallback = true;
|
|
|
|
// Function to initialize the language
|
|
export const initializeLanguage = async () => {
|
|
const savedLanguage = await AsyncStorage.getItem('user-language');
|
|
if (savedLanguage) {
|
|
i18n.locale = savedLanguage;
|
|
} else {
|
|
// If no language is saved, detect from device and default to Turkmen
|
|
const userLanguageCode = Localization.getLocales()[0]?.languageCode;
|
|
i18n.locale = ['en', 'tk', 'ru'].includes(userLanguageCode || '') ? userLanguageCode! : 'tk';
|
|
}
|
|
};
|
|
|
|
export default i18n;
|