首先需要一个工具类: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)//推荐项目
//语言包结束
},
|