UNPKG

test-in-demo

Version:

## Project setup ``` yarn install ```

89 lines (80 loc) 2.52 kB
import HelloWorld from "@/components/HelloWorld.vue"; import { createApp, reactive } from "vue"; import { createI18n } from "vue-i18n"; import zh from "@/languages/zh"; import en from "@/languages/en"; const messages = reactive({ en: { ...en, }, zh: { ...zh, }, }); const i18 = createI18n({ locale: "zh", //定义默认语言为中文 messages, }); const loadLang = function (Vue: any, lang: any, locale: any, i18n: any) { if (locale) { console.log(1); locale("en", { ...locale("en"), ...en }); locale("zh", { ...locale("zh"), ...zh }); Vue.config.lang = lang; } else if (i18n) { console.log(2, i18n); i18n.global.setLocaleMessage("en", { ...i18n.global.messages["en"] }); i18n.global.setLocaleMessage("zh", { ...i18n.global.messages["zh"] }); i18n.global.locale = lang; } else { console.log(33); createApp({}).use(i18); Vue.locale("en", { ...Vue.locale("en"), ...en }); Vue.locale("zh", { ...Vue.locale("zh"), ...zh }); Vue.config.lang = lang; } setTimeout(()=>{ console.log(123) if (locale) { console.log(1); locale("en", { ...locale("en"), ...en }); locale("zh", { ...locale("zh"), ...zh }); Vue.config.lang = lang; } else if (i18n) { console.log(2, i18n); i18n.global.setLocaleMessage("en", { ...i18n.global.messages["en"], ...en, ...{ test: "Test" } }); i18n.global.setLocaleMessage("zh", { ...i18n.global.messages["zh"], ...zh, ...{ test: "测试" } }); i18n.global.locale = lang; } else { console.log(33); createApp({}).use(i18); Vue.locale("en", { ...Vue.locale("en"), ...en }); Vue.locale("zh", { ...Vue.locale("zh"), ...zh }); Vue.config.lang = lang; } },2000) } const components =[HelloWorld] // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,那么所有的组件都会被注册 const install = function (app:any,opts = { lang: "zh", locale: null, i18n: null, config: { privateCloud: process.env.VUE_APP_PRIVATE_CLOUD == "true", privateURL: process.env.VUE_APP_PICTURE_PATH, }, }): void { // 遍历注册全局组件 // components.map((component) => Vue.component(component.name, component)); loadLang(app, opts.lang, opts.locale, opts.i18n); app.component('HelloWorld',HelloWorld) }; export { // 以下是具体的组件列表 HelloWorld, }; export default { // 导出的对象必须具有 install,才能被 Vue.use() 方法安装 install, };