Vue-i18n v9中mergeLocaleMessage报错,如何正确使用?
vue-i18n v9 中使用 mergeLocaleMessage 的正确方式
vue-i18n v9(适配 Vue 3 的版本)重构了 API 结构,mergeLocaleMessage 方法不再直接挂载在 createI18n 创建的实例上,需要通过实例的 global 属性访问。
修改你的代码如下:
const vueI18N = createI18n({ locale: 'en', fallbackLocale: 'en', messages: { en: messagesEn, de: messagesDe, }, }); // 通过 global 属性调用 mergeLocaleMessage vueI18N.global.mergeLocaleMessage('en', customStringsEn); vueI18N.global.mergeLocaleMessage('de', customStringsDe); vueI18N.global.mergeLocaleMessage('en', wikiLinksEn); vueI18N.global.mergeLocaleMessage('de', wikiLinksDe); export default vueI18N;
如果是在组件内部调用该方法,可通过 useI18n 钩子获取实例后,同样访问 global 属性:
import { useI18n } from 'vue-i18n'; export default { setup() { const { global } = useI18n(); // 合并新的语言消息 global.mergeLocaleMessage('en', newAdditionalMessages); return {}; } }
内容的提问来源于stack exchange,提问作者coure2011
相关产品推荐
相关产品推荐

