chenhaozhe
1 天以前 6cf6946520f9f15ba7521db29de90f73da61fcac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// 导入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
    });
};