language.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. try {
  33. return this.languagePackage[text] || text
  34. } catch (error) {
  35. console.log('getMapText:未获取到', text)
  36. return text
  37. }
  38. }
  39. setNavBarTitle(title) {
  40. wx.setNavigationBarTitle({
  41. title: this.getMapText(title)
  42. })
  43. }
  44. }
  45. export {
  46. Language
  47. }