顯示具有 multilingual. 多國語系 標籤的文章。 顯示所有文章
顯示具有 multilingual. 多國語系 標籤的文章。 顯示所有文章

2017年3月14日 星期二

多國語系 - 使用多個字串檔案

如何設定在 react native app 中使用多國語系,請參考
支援多國語系

根據 react-native-i18n 的程式碼,在引用 react-native-i18n 模組後我們可以自訂不同語系的內容,例如
當載具的語系是 'en' 的時候,'welcome' 會顯示為 'Welcome',而當語系切換成 'zh' 的時候,'welcome'就會變成 '歡迎'

如果需要支援較多內容或語系,如果能將各個語系分存在不同的檔案,在架構與管理上比較清楚容易。我們可以自訂語系目錄如下


其中 en 與 tw 目錄下的 strings.js 分別存放對應的語系字串
把上述程式碼改寫成
之後如果有新增的字串,就可以在個別的檔案內新增

支援多國語系

React Native : 0.42

結果預覽

在 react native app 中需要支援多國語系,我們可以引用 react-native-i18n 模組。

第一步:安裝模組
開啟終端機,移到專案目錄後執行下列指令

   npm install react-native-i18n --save   

第二步:連結函式庫
執行指令

   react-native link   

雖然 react-native-i18n 的作者有提到可以使用上述方式自動連結函式庫,但是經過實際測試發現 iOS 不可使用 (android 可以),所以必須要透過手動的方式加入函式庫

步驟 2.1 打開專案
開啟專案目錄下 /ios/專案.xcodeproj

步驟 2.2 指定函式庫
如果有執行過 react-native link,在專案的 Libraries 目錄應該可以看到 RNI18n.xcodeproj 這個函式庫目錄,我們需要引用 libRNI18n.a。點選專案內的 Build Phases 底下的 Link Binary With Libraries,把 libRNI18n.a拉進來


*如果沒有執行過 react-native link,在 Libraries 目錄底下會看不到 RNI18n.xcodeproj,這時候,你可以直接把 RNI18n.xcodeproj 拉到 Libraries 底下。RNI18n.xcodeproj 的位置在 專案 / node_modules / react-native-i18n

第三步:測試
完成上述步驟後,我們就可以開始使用 i18n 模組

最簡易的測試方法:
ReactNativeI18n.locale 會顯示目前載具所使用的語系,例如 en 或 zh-Hants


完整的專案已放到 Git 上
前往 Git 專案