เจจเจตเฉเจ เจฆเฉเจธเจผเจพเจ เจ
เจคเฉ เจเฉเจคเจฐเจพเจ เจฆเฉ เจชเฉเจเฉเจฒ เจเจฐเจจ เจตเจพเจฒเฉเจเจ เจ
เฉฐเจคเจฐเจฐเจพเจธเจผเจเจฐเฉ เจเฉฐเจชเจจเฉเจเจ เจฒเจ เจเจคเจชเจพเจฆ เจธเจฅเจพเจจเฉเจเจฐเจจ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉเฅค เจเจธเฉ เจคเจฐเฉเจนเจพเจ, เจฎเฉเจฌเจพเจเจฒ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ เจธเจฅเจพเจจเฉเจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเฉเจเจฐ เจเฉเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจ
เฉฐเจคเจฐเจฐเจพเจธเจผเจเจฐเฉ เจตเจฟเจธเจคเจพเจฐ เจธเจผเฉเจฐเฉ เจเจฐเจฆเจพ เจนเฉ, เจคเจพเจ เจฆเฉเจเฉ เจฆเฉเจธเจผ เจฆเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจเจนเจจเจพเจ เจฆเฉ เจฎเฉเจฒ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจเฉฐเจเจฐเจซเฉเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเจพ เจฎเฉเจเจพ เจฆเฉเจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉเฅค เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจชเฉเจเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจฐเฉเจเจเจ เจจเฉเจเจฟเจต เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเจฃเจพเจตเจพเจเจเฉ
เจธเจเจฟเฉฑเจฒเจฌเจพเจเจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจเจฐเจฆเจพ เจนเฉ: เจตเจฟเจฆเจฟเจ เจ เจเจจเจฒเจพเจเจจ เจเฉเจฐเจธ
"เจชเฉเจฐเฉเจซเฉเจธเจผเจจ เจเจพเจตเจพ เจกเจฟเจตเฉเจฒเจชเจฐ" .
เจ เจธเฉเจ เจฏเจพเจฆ เจฆเจฟเจตเจพเจเจเจฆเฉ เจนเจพเจ: "Habr" เจฆเฉ เจธเจพเจฐเฉ เจชเจพเจ เจเจพเจ เจฒเจ - "Habr" เจชเฉเจฐเจเจพเจฐ เจเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเจฟเจธเฉ เจตเฉ เจธเจเจฟเฉฑเจฒเจฌเจพเจเจธ เจเฉเจฐเจธ เจตเจฟเฉฑเจ เจฆเจพเจเจฒเจพ เจฒเฉเจฃ เจตเฉเจฒเฉ 10 เจฐเฉเจฌเจฒ เจฆเฉ เจเฉเจเฅค
เจธเฉฐเจฆ เจ เจคเฉ เจนเฉเจจเจฐ
เจเจธ เจฒเฉเจ เจจเฉเฉฐ เจธเจฎเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ React Native เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฌเฉเจจเจฟเจเจฆเฉ เจนเฉเจจเจฐ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเฉ เจฎเจธเจผเฉเจจ เจฆเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเจพเจฒ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจเจพเจฃเฉ เจเจฐเจตเจพเจเจฃ เจฒเจ, เจคเฉเจธเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ
เจธเจพเจจเฉเฉฐ เจธเจพเจซเจเจตเฉเจ เจฐ เจเฉเจฒเจธ เจฆเฉ เจเจนเจจเจพเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉ:
- เจจเฉเจก v10.15.0
- npm 6.4.1
- เจงเจพเจเจพ 1.16.0
- เจฐเฉเจเจเจ-เจจเฉเจเจฟเจต 0.59.9
- เจฐเฉเจเจเจ-เจจเฉเจเจฟเจต-เจฒเฉเจเจฒเจพเจเจเจผ 1.1.3
- i18n-js 3.3.0
เจธเจผเฉเจฐเฉ เจเจฐเจจเจพ
เจ เจธเฉเจ เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเจฃเจพเจตเจพเจเจเฉ เจเฉ เจ เฉฐเจเจฐเฉเจเจผเฉ, เจซเฉเจฐเฉเจเจ เจ เจคเฉ เจ เจฐเจฌเฉ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเฉเจเฉเฅค เจชเจนเจฟเจฒเจพเจ เจ เจธเฉเจ react-native-cli เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจจเจตเจพเจ เจชเฉเจฐเฉเจเฉเจเจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจเฅค เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจฐเจฎเฉเจจเจฒ เจตเจฟเฉฑเจ เจเจน เจเจพเจเจช เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
$ react-native init เจฌเจนเฉ เจญเจพเจธเจผเจพ
$cd เจฌเจนเฉ-เจญเจพเจธเจผเจพ
เจฒเฉเฉเฉเจเจฆเฉเจเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเฉเฉฐ เจเฉเฉเจจเจพ
เจชเจนเจฟเจฒเจพ เจเจฆเจฎ เจเจน เจนเฉ เจเจฟ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจพเจเจช เจเจฐเจเฉ เจฐเฉเจเจเจ-เจจเฉเจเจฟเจต-เจฒเฉเจเจฒเจพเจเจเจผ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ เจนเฉ:
$ yarn add react-native-localize
เจเฉเจเจฐ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉเจฐเจพเจจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจเจเจเจฆเฉเจเจ เจนเจจ,
เจฐเฉเจเจเจ-เจจเฉเจเจฟเจต-เจฒเฉเจเจฒเจฒเจพเจเจเจผ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจกเจฟเจตเฉเจฒเจชเจฐ เจจเฉเฉฐ เจฌเจนเฉ-เจญเจพเจธเจผเจพเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค เจชเจฐ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจนเฉเจฐ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจฒเฉเฉ เจนเฉ - i18n.
เจเจน เจฒเฉเจ เจตเจฐเจคเฉเจ เจฌเจพเจฐเฉ เจฆเฉฑเจธเจฆเจพ เจนเฉ
$ เจงเจพเจเฉ i18n-js เจธเจผเจพเจฎเจฒ เจเจฐเฉ
เจเฉเจฐ, เจเจฟเจเจเจเจฟ i18n-js เจเฉเจเจฟเฉฐเจ เจเจพเจ เจฎเฉเจฎเฉเจเจเจผเฉเจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจจเจนเฉเจ เจเจฐเจฆเจพ, เจฎเฉเจ เจเจธ เจฒเจ lodash.memoize เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจธเฉเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเจพเจ:
$ yarn add lodash.memoize
เจ เจจเฉเจตเจพเจฆเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจนเฉเจฐ เจญเจพเจธเจผเจพเจตเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจฌเจฃเจพเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ src เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉฑเจ เจ เจจเฉเจตเจพเจฆ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจซเจฟเจฐ เจนเจฐเฉเจ เจญเจพเจธเจผเจพ เจฒเจ เจคเจฟเฉฐเจจ JSON เจซเจพเจเจฒเจพเจเฅค
1. เจ เฉฐเจเจฐเฉเจเจผเฉ เจฒเจ en.json;
2. เจซเฉเจฐเฉเจเจ เจฒเจ fr.json;
3. เจ เจฐเจฌเฉ เจฒเจ ar.jsonเฅค
เจเจนเจจเจพเจ เจซเจผเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจเฉเฉฐเจเฉเจเจ เจ เจคเฉ เจฎเฉเฉฑเจฒเจพเจ เจตเจพเจฒเฉ JSON เจตเจธเจคเฉเจเจ เจธเจผเจพเจฎเจฒ เจนเจจเฅค เจเฉเฉฐเจเฉ เจนเจฐเฉเจ เจญเจพเจธเจผเจพ เจฒเจ เจเฉฑเจเฉ เจเจฟเจนเฉ เจนเฉเจตเฉเจเฉเฅค เจเจน เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉเจเจฐเจพ เจเฉเจเจธเจ เจเจพเจฃเจเจพเจฐเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจฎเฉเฉฑเจฒ เจเจน เจเฉเจเจธเจ เจนเฉ เจเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจฆเจฟเจเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจ เฉฐเจเจฐเฉเจเจผเฉ:
{"เจนเฉเจฒเฉ": "เจนเฉเจฒเฉ เจตเจฐเจฒเจก!"}
เจซเฉเจฐเฉเจเจ
{"เจนเฉเจฒเฉ": "เจธเจฒเฉเจ เจฒเฉ เจฎเฉเจเจกเฉ!"}
ะัะฐะฑัะบะธะน
{"เจนเฉเจฒเฉ": "ุฃููุงู ุจุงูุนุงูู "}
เจคเฉเจธเฉเจ เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจนเฉเจฐ เจญเจพเจธเจผเจพเจตเจพเจ เจจเฉเฉฐ เจเฉเฉ เจธเจเจฆเฉ เจนเฉเฅค
เจฎเฉเฉฑเจ เจเฉเจก
เจเจธ เจธเจฎเฉเจ, เจคเฉเจนเจพเจจเฉเฉฐ App.js เจซเจพเจเจฒ เจเฉเจฒเฉเจนเจฃ เจ เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจเจฏเจพเจค เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
import React from "react";
import * as RNLocalize from "react-native-localize";
import i18n from "i18n-js";
import memoize from "lodash.memoize"; // Use for caching/memoize for better performance
import {
I18nManager,
SafeAreaView,
ScrollView,
StyleSheet,
Text,
View
} from "react-native";
เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, เจธเจนเจพเจเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจ เจคเฉ เจธเจฅเจฟเจฐเจพเจเจ เจเฉเฉ เจฆเจฟเฉฑเจคเฉ เจเจพเจเจฆเฉ เจนเจจ เจเฉ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจเจชเจฏเฉเจเฉ เจนเฉเจฃเจเฉเฅค
const translationGetters = {
// lazy requires (metro bundler does not support symlinks)
ar: () => require("./src/translations/ar.json"),
en: () => require("./src/translations/en.json"),
fr: () => require("./src/translations/fr.json")
};
const translate = memoize(
(key, config) => i18n.t(key, config),
(key, config) => (config ? key + JSON.stringify(config) : key)
);
const setI18nConfig = () => {
// fallback if no available language fits
const fallback = { languageTag: "en", isRTL: false };
const { languageTag, isRTL } =
RNLocalize.findBestAvailableLanguage(Object.keys(translationGetters)) ||
fallback;
// clear translation cache
translate.cache.clear();
// update layout direction
I18nManager.forceRTL(isRTL);
// set i18n-js config
i18n.translations = { [languageTag]: translationGetters[languageTag]() };
i18n.locale = languageTag;
};
เจเฉเจฐ, เจเจ เจนเฉเจฃ เจเจช เจเจฒเจพเจธ เจฆเจพ เจเฉฑเจ เจนเจฟเฉฑเจธเจพ เจฌเจฃเจพเจเจ:
export default class App extends React.Component {
constructor(props) {
super(props);
setI18nConfig(); // set initial config
}
componentDidMount() {
RNLocalize.addEventListener("change", this.handleLocalizationChange);
}
componentWillUnmount() {
RNLocalize.removeEventListener("change", this.handleLocalizationChange);
}
handleLocalizationChange = () => {
setI18nConfig();
this.forceUpdate();
};
render() {
return (
<SafeAreaView style={styles.safeArea}>
<Text style={styles.value}>{translate("hello")}</Text>
</SafeAreaView>
);
}
}
const styles = StyleSheet.create({
safeArea: {
backgroundColor: "white",
flex: 1,
alignItems: "center",
justifyContent: "center"
},
value: {
fontSize: 18
}
});
เจชเจนเจฟเจฒเจพ เจคเฉฑเจค, setI18nConfig(), เจธเจผเฉเจฐเฉเจเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจธเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ componentDidMount() เจตเจฟเฉฑเจ เจเฉฑเจ เจเจตเฉเจเจ เจฒเจฟเจธเจจเจฐ เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจน เจเจฒเฉเจฎเฉเจเจ เจ เฉฑเจชเจกเฉเจเจพเจ เจฒเจ เจธเฉเจฃเฉเจเจพ เจ เจคเฉ เจนเฉเจเจกเจฒเจฒเฉเจเจฒเจพเจเจเจผเฉเจธเจผเจจ เจเฉเจเจ() เจจเฉเฉฐ เจเจพเจฒ เจเจฐเฉเจเจพ เจเจฆเฉเจ เจเจน เจนเฉเจฃเจเฉเฅค
handleLocalizationChange() เจตเจฟเจงเฉ setI18nConfig() เจ เจคเฉ forceUpdate() เจจเฉเฉฐ เจธเจฐเจเจฐเจฎ เจเจฐเจฆเฉ เจนเฉเฅค เจเจน เจเจเจกเจฐเฉเจเจก เจกเจฟเจตเจพเจเจธเจพเจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจนเฉ เจเจฟเจเจเจเจฟ เจฌเจฆเจฒเจพเจ เจงเจฟเจเจจ เจฆเฉเจฃ เจฏเฉเจ เจนเฉเจฃ เจฒเจ เจเฉฐเจชเฉเจจเฉเจเจ เจจเฉเฉฐ เจฐเฉเจเจกเจฐ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ componentWillUnmount() เจตเจฟเจงเฉ เจคเฉเจ เจธเฉเจฃเจจ เจจเฉเฉฐ เจนเจเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจ เฉฐเจค เจตเจฟเฉฑเจ, render() translate() เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจ เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเฉเฉฑเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจเฉเฉ เจเฉ เจนเฉเจฒเฉ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจเจฆเจฎเจพเจ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจฒเฉเจเฉเจธเจผเจจ "เจธเจฎเจเจฃ" เจฆเฉ เจฏเฉเจ เจนเฉ เจเจพเจตเฉเจเฉ เจเจฟ เจเจฟเจนเฉเฉ เจญเจพเจธเจผเจพ เจฆเฉ เจฒเฉเฉ เจนเฉ เจ เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจธเฉฐเจฆเฉเจธเจผ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเฉเจคเฉ เจเจพเจฃเจเฉเฅค
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจพเจเจ
เจนเฉเจฃ เจเจน เจฆเฉเจเจฃ เจฆเจพ เจธเจฎเจพเจ เจนเฉ เจเจฟ เจ เจจเฉเจตเจพเจฆ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค
เจชเจนเจฟเจฒเจพเจ, เจ เจธเฉเจ เจเจพเจเจช เจเจฐเจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจธเจฟเจฎเฉเจฒเฉเจเจฐ เจเจพเจ เจเจฎเฉเจฒเฉเจเจฐ เจตเจฟเฉฑเจ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ
$ react-native run-ios
$ react-native run-android
เจเจน เจเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเจพ:
เจนเฉเจฃ เจคเฉเจธเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจเฉ เจญเจพเจธเจผเจพ เจจเฉเฉฐ เจซเฉเจฐเฉเจเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจ
เจธเฉเจ เจ
เจฐเจฌเฉ เจจเจพเจฒ เจเจนเฉ เจเฉฑเจฒ เจเจฐเจฆเฉ เจนเจพเจ, เจเฉเจ เจซเจฐเจ เจจเจนเฉเจ เจนเฉ.
เจนเฉเจฃ เจคเฉฑเจ เจฌเจนเฉเจค เจตเจงเฉเจ.
เจชเจฐ เจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเฉเจเจฐ เจคเฉเจธเฉเจ เจเฉฑเจ เจฌเฉเจคเจฐเจคเฉเจฌ เจญเจพเจธเจผเจพ เจเฉเจฃเจฆเฉ เจนเฉ เจเจฟเจธ เจฒเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจเฉเจ เจ เจจเฉเจตเจพเจฆ เจจเจนเฉเจ เจนเฉ?
เจเจน เจชเจคเจพ เจเจฒเจฆเจพ เจนเฉ เจเจฟ FindBestLanguage เจฆเจพ เจเฉฐเจฎ เจธเจพเจฐเฉเจเจ เจเจชเจฒเจฌเจง เจญเจพเจธเจผเจพเจตเจพเจ เจคเฉเจ เจธเจฐเจตเฉเจคเจฎ เจ เจจเฉเจตเจพเจฆ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจเจพ เจนเฉเฅค เจจเจคเฉเจเฉ เจตเจเฉเจ, เจกเจฟเจซเฉเจฒเจ เจญเจพเจธเจผเจพ เจฆเจฟเจเจพเจ เจเจพเจตเฉเจเฉเฅค
เจ เจธเฉเจ เจซเฉเจจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐ เจฐเจนเฉ เจนเจพเจเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, iOS เจเจฎเฉเจฒเฉเจเจฐ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจญเจพเจธเจผเจพเจตเจพเจ เจฆเจพ เจเฉเจฐเจฎ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉเฅค
เจเฉเจเจฐ เจเฉเจฃเฉ เจเจ เจญเจพเจธเจผเจพ เจคเจฐเจเฉเจนเฉ เจญเจพเจธเจผเจพ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ FindBestAvailableLanguage เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจคเจพเจ เจเจฟ เจกเจฟเจซเฉเจฒเจ เจญเจพเจธเจผเจพ เจฆเจฟเจเจพเจ เจเจพเจตเฉเฅค
เจฌเฉเจจเจธ
react-native-localize เจเฉเจฒ เจเฉฑเจ API เจนเฉ เจเฉ เจญเจพเจธเจผเจพ เจคเฉฑเจคเจพเจ เจฆเฉ เจเฉฑเจ เจตเฉฑเจกเฉ เจเจฟเจฃเจคเฉ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉฐเจฎ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ,
เจธเจฟเฉฑเจเจพ
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจฌเจนเฉ-เจญเจพเจธเจผเจพเจ เจฌเจฃเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค React-native-localize เจเฉฑเจ เจตเจงเฉเจ เจตเจฟเจเจฒเจช เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจคเฉเจนเจพเจกเฉ เจเจช เจฆเฉ เจเจชเจญเฉเจเจคเจพ เจ เจงเจพเจฐ เจจเฉเฉฐ เจตเจงเจพเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจชเฉเจฐเฉเจเฉเจเจ เจธเจฐเฉเจค เจเฉเจก
เจธเจเจฟเฉฑเจฒเจฌเจพเจเจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจเจฐเจฆเจพ เจนเฉ:
- เจฆเฉ เจธเจพเจฒเจพ เจชเฉเจฐเฉเจเจเฉเจเจฒ เจเฉเจฐเจธ
"เจฎเฉเจ เจเฉฑเจ เจชเฉเจฐเฉ เจตเฉเฉฑเจฌ เจกเจฟเจตเฉเจฒเจชเจฐ เจนเจพเจ" .- Onlineเจจเจฒเจพเจเจจ เจเฉเจฐเจธ
"เจธเจเฉเจฐเฉเจ เจคเฉเจ C# เจกเจฟเจตเฉเจฒเจชเจฐ" .- เจชเฉเจฐเฉเจเจเฉเจเจฒ เจธเจพเจฒ เจฆเจพ เจเฉเจฐเจธ
"0 เจคเฉเจ PRO เจคเฉฑเจ PHP เจกเจฟเจตเฉเจฒเจชเจฐ" .
เจธเจฐเฉเจค: www.habr.com