// 导入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)
|
// 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
|
});
|
};
|