小程式國際化實現方式

q10437646發表於2019-04-04

小程式國際化實現方式 2018年11月14日 11:44:53 丫先知 閱讀數:436 話不多說,上程式碼。

首先需要一個工具類:locales.js

// Time 為事例值 export default {

//英文 "en": {

   "Time":"Time"
複製程式碼

},

//中文 "zh-cn": {

    "Time":"時間"
複製程式碼

},

//繁體 "zh-hk": {

    "Time":"時間"
複製程式碼

} }

然後是另一個工具類:wxapp-i18n.js

let T = {} T.locale = null T.locales = {}

T.registerLocale = function (locales) { T.locales = locales; }

T.setLocale = function (code) { T.locale = code }

T._ = function (line, data) { const locale = T.locale const locales = T.locales if (locale && locales[locale] && locales[locale][line]) { line = locales[locale][line] }

return line
複製程式碼

}

export default T

然後在 app.js 中引入檔案並做處理.

//國際化 import locales from './utils/locales' import T from './utils/wxapp-i18n'

// 資料注入 T.registerLocale(locales) try { // 獲取系統設定的語言格式 var value = wx.getStorageSync('language') if (value) { T.setLocale(value) } else { T.setLocale('zh-hk')//預設顯示繁體 } } catch (e) { T.setLocale('zh-hk')//預設顯示繁體 } wx.T = T 使用方式如下, 假設需要在index.wxml中使用國際化,則在index.js中書寫:

setLang() { const _ = wx.T._ this.setData({ Time: _('Time') }) } -- setLang 是自定義方法,可以在 OnLoad中呼叫此方法.

相關文章