class Language { constructor() { this.languagePackage = null; } getLanguages(languagecode) { return new Promise((resolve) => { setTimeout(async () => { let res = { data: {} } if (languagecode != 'ZH' || this.languagePackage == null) res = await getApp().globalData.http.base({ id: 2024062809072801, content: { date: Date.now() } }) console.log("获取语言包", res.data) this.languagePackage = res.data[languagecode] || {}; resolve(this.languagePackage) this.languagecode = languagecode; wx.removeStorageSync('languagecode'); wx.setStorageSync('languagecode', languagecode) }) }) } async getLanguagePackage(that, setNavBarTitle) { that.setData({ language: this.languagePackage || await this.getLanguages(wx.getStorageSync('languagecode')), sColors: getApp().globalData.http.sColors }) if (setNavBarTitle) this.setNavBarTitle(setNavBarTitle) } getMapText(text, f = '', r = '') { let v = '' try { v = this.languagePackage[text] || text } catch (error) { console.log('getMapText:未获取到', text) v = text } return f + v + r } setNavBarTitle(title) { wx.setNavigationBarTitle({ title: this.getMapText(title) }) } modeBoxPrompts(list, title = '提示', confirmText = '确定') { wx.showModal({ title: this.getMapText(title), content: this.joint(list), showCancel: false, confirmText: this.getMapText(confirmText), }) } showToast(list) { if (list.length) wx.showToast({ title: this.joint(list), icon: "none" }) } modeBoxPrompts(list = [], title = '提示', confirmText = '确定') { wx.showModal({ title: this.getMapText(title), content: this.joint(list), showCancel: false, confirmText: this.getMapText(confirmText), }) } /* t:translate 是否翻译 v:value 值 f:front 前面 r:rear 后面 */ joint(list) { if (typeof list == 'string') return this.getMapText(list) let str = '' list.forEach(v => { let value = '' try { value = v.t ? this.getMapText(v.v, v.f || '', v.r || '') : ((v.f || '') + v.v + (v.r || '')) } catch (error) { value = (v.f || '') + v.v + (v.r || '') } str += value }) return str } } export { Language }