language.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. class Language {
  2. constructor() {
  3. this.languagePackage = null;
  4. }
  5. getLanguages(languagecode) {
  6. return new Promise((resolve) => {
  7. setTimeout(async () => {
  8. let res = {
  9. data: {}
  10. }
  11. if (languagecode != 'ZH' || this.languagePackage == null) res = await getApp().globalData.http.base({
  12. id: 2024062809072801,
  13. content: {
  14. date: Date.now()
  15. }
  16. })
  17. console.log("获取语言包", res.data)
  18. this.languagePackage = res.data[languagecode] || {};
  19. resolve(this.languagePackage)
  20. this.languagecode = languagecode;
  21. wx.setStorageSync('languagecode', languagecode)
  22. })
  23. })
  24. }
  25. async getLanguagePackage(that, setNavBarTitle) {
  26. that.setData({
  27. language: this.languagePackage || await this.getLanguages(wx.getStorageSync('languagecode'))
  28. })
  29. if (setNavBarTitle) this.setNavBarTitle(setNavBarTitle)
  30. }
  31. getMapText(text) {
  32. console.log("getMapText:", text, this.languagePackage[text] || text)
  33. try {
  34. return this.languagePackage[text] || text
  35. } catch (error) {
  36. console.log('getMapText:未获取到', text)
  37. return text
  38. }
  39. }
  40. setNavBarTitle(title) {
  41. wx.setNavigationBarTitle({
  42. title: this.getMapText(title)
  43. })
  44. }
  45. }
  46. export {
  47. Language
  48. }