diff --git a/public/manifest copy.json b/public/manifest copy.json new file mode 100644 index 00000000..a0f5f528 --- /dev/null +++ b/public/manifest copy.json @@ -0,0 +1,26 @@ +{ + "short_name": "XDADAN", + "name": "XDADAN", + "description": "XDADAN 是一款适合多业务的云平台系统", + "icons": [ + { + "src": "favicon.png", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/png" + }, + { + "src": "favicon.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "favicon.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "background_color": "#FFFFFF", + "orientation": "portrait" +} diff --git a/src/i18n/index copy.js b/src/i18n/index copy.js new file mode 100755 index 00000000..79890181 --- /dev/null +++ b/src/i18n/index copy.js @@ -0,0 +1,129 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +Vue.use(VueI18n) +import ElementLocale from 'element-ui/lib/locale' +import { getI18nMessages } from "@/api/common" +import Cookies from 'js-cookie' + +// 引入各个语言配置文件 +import zh from './config/zh-CN' +import en from './config/en' +// 读取浏览器默认语言 +const defaultLanguage = ( + navigator.language || navigator.browserLanguage +) +class I18n extends VueI18n { + constructor() { + super({ + // locale: '', + // message: {}, + locale: localStorage.getItem('locale') || 'zh-CN', // 设置默认语言 + messages: { + zh, + en + } + }); + } + // vue i18n init + async init() { + const sLang = this.getLang(); + await this.setLocale(sLang); + return this; + } + // get/update language + getLang() { + // get define language + // 需要取cookies里面的值的话就加上 + sLang = Cookies.get('locale') || navigator.language || 'zh-CN'; + let sLang = navigator.language || 'zh-CN'; + return sLang; + } + // set locale language + async setLocale(sLang) { + // async load language message + const loadMessages = async function(sLang) { + const oMessages = {}; + try { + // local language file + // const oProjectMessage = await import(`./config/${sLang}`); + // 需要 element 里面的语言包的话就加上 + // const oElementMessage = await import( + // `element-ui/lib/locale/lang/${sLang}` + // ); + + const res=await getI18nMessages(sLang); + if(res.code == 200){ + Object.assign( + oMessages, + res.data, + ); + console.log(oMessages) + } + + if(sLang == 'zh-CN'){ + Object.assign( + oMessages, + zh, + ); + } + + if(sLang == 'en-US'){ + Object.assign( + oMessages, + en, + ); + } + + // assign language message + // Object.assign( + // oMessages, + // // oProjectMessage.default, + // // oElementMessage.default, + // remoteMessages, + // ); + } catch (error) { + throw new Error(error); + } + return oMessages; + }; + const oMessages = await loadMessages(sLang); + // vue-i18n的方法 + this.setLocaleMessage(sLang, oMessages); + // update lang + this.locale = sLang; + } +} +// export default new I18n(); +// const i18n = new I18n().init(); + +// 创建vue-i18n实例i18n +const i18n = new VueI18n({ + // 设置默认语言 + locale: localStorage.getItem('locale') || 'zh-CN', // 设置默认语言 + fallbackLocale: 'zh-CN', // 默认语言环境。如果locale中无匹配项则采用该项值 + messages: { + zh, + en, + }, + silentTranslationWarn: true, +}) + +// i18n.loadModules = () => { +// import('@/lang/zh.js').then((messages) => { +// const newMessages = Object.assign(i18n.getLocaleMessage('zh'), messages.default) +// i18n.setLocaleMessage('zh', newMessages) +// i18n.setTitle('zh') +// }) +// import('@/lang/en.js').then((messages) => { +// const newMessages = Object.assign(i18n.getLocaleMessage('en'), messages.default) +// i18n.setLocaleMessage('en', newMessages) +// i18n.setTitle('en') +// }) +// Vue.locale = () => {} +// Vue.config.lang = lang +// ElementLocale.i18n((key, value) => i18n.t(key, value)) +// } + +ElementLocale.i18n((key, value) => i18n.t(key, value)) +// 暴露i18n +export default i18n