This commit is contained in:
linfso 2024-05-07 12:56:06 +08:00
parent 62a6f4d193
commit 4c5a9569ff
2 changed files with 155 additions and 0 deletions

26
public/manifest copy.json Normal file
View File

@ -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"
}

129
src/i18n/index copy.js Executable file
View File

@ -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