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.

110 lines
2.5 KiB

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