Сначала создайте класс для перевода,
import ReactNative from "react-native";
import I18n from "react-native-i18n";
import * as RNLocalize from "react-native-localize";
import { SafeAreaView, AsyncStorage, NetInfo, Alert } from "react-native";
import en from "./en.json"; // JSON file of words in English
import lv from "./lv.json"; // JSON file of words in Your language
I18n.fallbacks = true;
I18n.translations = {
en,
lv
};
global.selectedLanguage = "";
AsyncStorage.getItem("SELECTED_LANGUAGE").then(value => {
if (value) {
let languageDict = JSON.parse(value);
let language = languageDict.language;
global.selectedLanguage = language;
if (language === "English") {
I18n.locale = "en";
} else {
I18n.locale = "lv";
}
} else {
I18n.locale = "en";
}
});
export function changeLanguage() {
return (I18n.locale = "lv");
}
export function strings(name, params = {}) {
return I18n.t(name, params);
}
export default I18n;
Во-вторых, используйте это в своих компонентах пользовательского интерфейса,
Например:
....
import { strings } from "../../i18n;
....
....
<Text style={styles.titleText}>{strings("sign_up")}</Text>
....
Клавиша 'sign_up' покажет вам выбранный язык.
А при переключении языка обновлять асинхронное хранилище.
Например:
let dict = {
language: this.state.selectedLanguage
};
AsyncStorage.setItem("SELECTED_LANGUAGE", JSON.stringify(dict));