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,
};

 




