wtt
2025-12-31 96973dca40a1815e9727160e6b2e6dee839b9f8d
main.js
@@ -1,3 +1,27 @@
// 导入i18n文件
import en from "./locale/en.json"
import ZhCN from "./locale/zh-Hans.json"
// 加载本地语言包
const messages = {
   "zh-Hans":ZhCN,
   en,
}
let i18nConfig = {
  locale: uni.getLocale(),// 获取已设置的语言
  messages,
  silentTranslationWarn: true,
  missing: function(locale, key, vm, values){
    // 页面中含有语言包中不存在的字段,需同步到数据库中
      console.log("[i18n]: 页面中key为: ", key ,"的字段在翻译文件中不存在,同步到数据库...")
    // 为降低同步的难度,APP中 对翻译模块的key 不采用数组的写法,统一使用 模块名.字段名的写法
  }
}
import App from './App'
import Printer from './plugins/printer'
Vue.use(Printer);
@@ -16,20 +40,40 @@
// #ifndef VUE3
import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
const i18n = new VueI18n(i18nConfig)
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
    i18n,
    ...App
})
app.$mount()
export default i18n
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
import { createI18n } from 'vue-i18n'// v9.x
const i18n = createI18n(i18nConfig)
export function createApp() {
  const app = createSSRApp(App)
  app.use(i18n)
  return {
    app
  }
}
// #endif
export default i18n
// #endif
// main.js uni.showToast 实现全局拦截设置默认提示时间为3.5秒
const originalShowToast = uni.showToast;
uni.showToast = (options) => {
  originalShowToast({
    duration: options.duration || 3500, // 默认2秒
    icon: options.icon || 'none',
   title: options.title || 'none',
    ...options
  });
};