一靶壮、準備階段
1.react-native-i18n第三方多語言庫
使用yarn:yarn add react-native-i18n顺献;
使用npm:npm install react-native-i18n --save;
2.react-native link react-native-i18n
二、項目中使用
1.首先是新建英文版本的配置文件,en/index.js
export default {
? ? home: {
? ? ? ? tab_home: 'Home',
? ? ? ? tab_demo: 'Demo',
? ? ? ? exit: 'exit?',
? ? },
? ? demo: {
? ? ? ? dialog: 'dialog',
? ? ? ? button: 'button',
? ? ? ? switch: 'switch',
? ? }
};
2.然后是中文的zh/index.js
export default {
? ? home: {
? ? ? ? tab_home: '首頁',
? ? ? ? tab_demo: '例子',
? ? ? ? exit: '是否退出?',
? ? },
? ? demo: {
? ? ? ? dialog: '提示框',
? ? ? ? button: '按鈕',
? ? ? ? switch: '開關',
? ? }
};
3.默認的語言環(huán)境
上面寫了2種語言配置,那么哪種作為初始化的呢默责?在業(yè)務層調用前,我們可以先進行預設
新建文件i18n/index.js
import i18n from 'react-native-i18n';
import en from './en';
import zh from './zh';
i18n.defaultLocale = 'en';
i18n.fallbacks = true;
i18n.translations = {
? ? en,
? ? zh,
};
export {i18n};
這邊進行了一些預設咸包,默認語境為en桃序,允許fallbacks狀態(tài)(為true時,順序向下遍歷翻譯)烂瘫,預設轉換的文件就2個葡缰,一個en一個zh,這個你也可以自行后續(xù)添加根據(jù)需求而定忱反。
4.頁面調用
import {i18n} from './src/i18n/index';
......
<Text>{i18n.t('home.buy_me_coffee')}</Text>
I18n.t('home')中的home參數(shù)就是在zh.js泛释、en.js文件中的語言配置項。
具體顯示內容會隨著語言環(huán)境調用相應的語言配置文件温算,呈現(xiàn)給用戶相應的語言內容怜校。
I18n.getLanguages獲取用戶首選的語言環(huán)境
I18n.locale: 設置本地語言環(huán)境。
I18n.defaultLocale首選默認語言
I18n.fallbacks:如果獲取到的系統(tǒng)語言類似en_USen-GB這樣的注竿,插件初始化的時候發(fā)現(xiàn)沒有en_US.jsen-GB.js茄茁,這個時候如果設置了I18n.fallbacks = true;系統(tǒng)就會按這樣的(en_USen.js)順序去查找文件魂贬,就會去找有一個en.js這樣的文件, 官方建議使用I18n.fallbacks = true;
參考自:http://www.reibang.com/writer#/notebooks/25412168/notes/40126075