将 single-spa 道具传递给 i18n 实例化

Pass single-spa prop to i18n instantiation

有没有办法将 single-spa prop 传递给 vue i18n 实例,并将其分配给 messages i18n prop。

I18n 构造函数:

const i18n = new VueI18n({
  locale: process.env.VUE_APP_I18N_LOCALE,
  messages: {},
});

Vue 单水疗实例:

const vueLifecycles = singleSpaVue({
  Vue,
  appOptions: {
    el: '#account',
    render() {
      return (
        <App
          eventBus={this.$data.eventBus}
          lang={this.$data.lang}
        ></App>
      );
    },
    i18n,
  },
});

信息:我无法在渲染函数之外访问 lang

基本上,我的 i18n 消息对象中需要 lang 属性。我已经尝试 return 语言,但它进入构造函数,不起作用。 我还尝试在收到 lang 后重新实例化 i18n/messages,但也不起作用。 还有其他想法吗?

所以我想通了。只能通过以下方式更改已安装的 vue 实例中的消息:

this.$i18n.setLocaleMessage = newLangObj