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.

115 lines
2.6 KiB

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