小程序国际化实现方式

话不多说,上代码。

首先需要一个工具类: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中调用此方法.

 

那么这样,就可以达到一个 小程序实现国际化的目的了!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值