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.

124 lines
2.9 KiB

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