// 导入i18n文件 import en from "./locale/en.json" import ZhCN from "./locale/zh-Hans.json" import { addMissingKeyToMap } from "@/utils/i18n.js" // 加载本地语言包 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 不采用数组的写法,统一使用 模块名.字段名的写法 // let [HMouldName, HFieldKey] = key.split('.') // // // } } import App from './App' import Printer from './plugins/printer' Vue.use(Printer); // 生产环境 // Vue.prototype.serverUrl = "https://qqyapi.xinlinsoft.cn/qqy-api"; // 开发环境 // Vue.prototype.serverUrl = "http://47.96.97.237/API"; //不显示console.log // if (uni.getSystemInfoSync().platform !== "devtools") { // console.log = () => {} // } // #ifndef VUE3 import Vue from 'vue' import VueI18n from 'vue-i18n' Vue.use(VueI18n) const i18n = new VueI18n(i18nConfig) // TODO missing回调无法满足 加载线上包 后的检验功能,需重写$t函数 const originalT = Vue.prototype.$t Vue.prototype.$t = function(key, ...args) { // 调用原始 $t 执行翻译 const translated = originalT.call(this, key, args); // console.log(i18n.getLocaleMessage(i18n.locale)) if (translated == key) { // 翻译后的文本与传入的key相同,则表示翻译文本缺失 记录缺失的翻译文本 let [moduleName, fieldCode] = key.split(".") addMissingKeyToMap(moduleName, fieldCode) } return translated } 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 } } 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 }); };