You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
2.8 KiB

  1. import pinia from './stores/index.js'
  2. // #ifndef VUE3
  3. import Vue from 'vue'
  4. import App from './App'
  5. import ElementPlus from 'element-plus'
  6. import 'element-plus/dist/index.css'
  7. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  8. Vue.config.productionTip = false
  9. App.mpType = 'app'
  10. const app = new Vue({
  11. ...App,
  12. pinia
  13. })
  14. app.use(ElementPlus)
  15. for (const [key, component] of Object.entries(ElementPlusIconsVue)){
  16. app.component(key, component)
  17. }
  18. app.$mount()
  19. // #endif
  20. // #ifdef VUE3
  21. import { createSSRApp } from 'vue'
  22. import App from './App.vue'
  23. import { createI18n } from 'vue-i18n'
  24. // 导入语言文件
  25. import en from './static/language/en.js'
  26. import ms from './static/language/ms.js'
  27. import th from './static/language/th.js'
  28. import vi from './static/language/vi.js'
  29. import zh_CN from './static/language/zh_CN.js'
  30. import zh_HK from './static/language/zh_HK.js'
  31. function getCurrentLocale() {
  32. if (uni.getStorageSync('languageData') && uni.getStorageSync('languageData').code && uni
  33. .getStorageSync('languageData').code != 'undefined') {
  34. return uni.getStorageSync('languageData').code;
  35. } else {
  36. let language = uni.getSystemInfoSync().osLanguage;
  37. language = 'zh_CN'
  38. if (language.indexOf('th') != -1) {
  39. language = 'th'
  40. uni.setStorageSync('languageData', {
  41. code: language
  42. })
  43. console.log(language);
  44. return language
  45. } else if (language.indexOf('vi') != -1) {
  46. language = 'vi'
  47. uni.setStorageSync('languageData', {
  48. code: language
  49. })
  50. console.log(language);
  51. return language
  52. }else if (language.indexOf('zh') != -1) {
  53. if (language.indexOf('CN') != -1) {
  54. language = 'zh_CN'
  55. uni.setStorageSync('languageData', {
  56. code: language
  57. })
  58. console.log(language);
  59. return language
  60. } else {
  61. language = 'zh_HK'
  62. uni.setStorageSync('languageData', {
  63. code: language
  64. })
  65. console.log(language);
  66. return language
  67. }
  68. } else if (language.indexOf('en') != -1) {
  69. language = 'en'
  70. uni.setStorageSync('languageData', {
  71. code: language
  72. })
  73. console.log(language);
  74. return language
  75. } else if (language.indexOf('ms') != -1) {
  76. language = 'ms'
  77. uni.setStorageSync('languageData', {
  78. code: language
  79. })
  80. console.log(language);
  81. return language
  82. } else {
  83. language = 'en'
  84. uni.setStorageSync('languageData', {
  85. code: language
  86. })
  87. console.log(language);
  88. return language
  89. }
  90. }
  91. }
  92. // 创建 i18n 实例
  93. const i18n = createI18n({
  94. locale: getCurrentLocale(),
  95. legacy: false, // 使用 Composition API 模式
  96. globalInjection: true, // 全局注入 $t 函数
  97. messages: {
  98. 'en': en,
  99. 'ms': ms,
  100. 'th': th,
  101. 'vi': vi,
  102. 'zh_CN': zh_CN,
  103. 'zh_HK': zh_HK
  104. }
  105. })
  106. export function createApp() {
  107. const app = createSSRApp(App)
  108. app.use(pinia)
  109. app.use(i18n)
  110. return {
  111. app
  112. }
  113. }
  114. // #endif