微信小程序国际化语言包实现方式(di18n-translate)

首先需要一个工具类:languageBox.js

// Time 为事例值
export default {
  //英文
  "en": {
       "test":"test"
   },
  //中文
  "zh-cn": {
        "test":"测试"
   },
}

然后是另一个工具类:wxapp-i18n.js

let di18n = {}
di18n.locale = null
di18n.locales = {}
 
di18n.registerLocale = function (locales) {
    di18n.locales = locales;
}
 
di18n.setLocale = function (code) {
    di18n.locale = code
}
 
di18n._ = function (line, data) {
    const locale = di18n.locale
    const locales = di18n.locales
    if (locale && locales[locale] && locales[locale][line]) {
        line = locales[locale][line]
    }
 
    return line
}
 
export default di18n

然后在 app.js 中引入文件并做处理.

//国际化
import locales from './utils/languageBox'
import di18n from './utils/wxapp-i18n'
 
// 数据注入(可以在App({})外面写)
di18n.registerLocale(locales)
try {
  // 获取系统设置的语言格式
  var value = wx.getStorageSync('language')
  if (value) {
    di18n.setLocale(value)
  } else {
    di18n.setLocale('zh-cn')//默认显示中文
  }
} catch (e) {
  di18n.setLocale('zh-cn')//默认显示中文
}
wx.di18n = di18n

index.wxml中使用国际化语言包,则在index.js中书写:

onLoad: function (options) {
    //语言包开始
    let language = wx.di18n._
    console.log(language('test'))
    //语言包结束
  },

如果想把语言包分模块化也可以:

//languageBox.js
export default {
    //英文
    "en": {
        "Time": "Time"
    },
    //中文
    "zh-cn": {
        // -------------------封装成一块一块好调用-------------------
        "common": {
            "commonRecommend": "推荐项目",
            "commonTime": "意向预约时间",
            "commonYear": "年",
            "commonMonth": "月",
            "commonDay": "日",
        },
    }
}
//index.js
onLoad: function (options) {
    //语言包开始
    let language = wx.di18n._
    console.log(language('common'))
    let languageBox = language('common')
    console.log(languageBox.commonRecommend)//推荐项目
    //语言包结束
},

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值