【发布时间】:2021-11-26 14:45:22
【问题描述】:
我尝试添加对端点的调用以获得翻译。我有这样的:
const loadLocales = async () => {
const context = require.context('./locales', true);
const data = await ApiService.post(`${translationToolUrl}/gateway/translations`, { project: 'myProject' });
const messages = context.keys()
.map((key) => ({ key, locale: key.match(/[-a-z0-9_]+/i)[0] }))
.reduce((msgs, { key, locale }) => ({
...msgs,
[locale]: extendMessages(context(key)),
}), {});
return { context, messages };
};
const { context, messages } = loadLocales();
i18n = new VueI18n({
locale: 'en',
fallbackLocale: 'en',
silentFallbackWarn: true,
messages,
});
if (module.hot) {
module.hot.accept(context.id, () => {
const { messages: newMessages } = loadLocales();
Object.keys(newMessages)
.filter((locale) => messages[locale] !== extendMessages(newMessages[locale]))
.forEach((locale) => {
const msgs = extendMessages(newMessages[locale]);
messages[locale] = msgs;
i18n.setLocaleMessage(locale, msgs);
});
});
}
我添加了这个请求:ApiService.post。但是我有错误TypeError: context is undefined 掉在了module.hot.accept(context.id... 这一行。你知道我该如何解决吗?我的范围是添加此请求,以便暂时从数据库和 .json 文件中获取翻译。我现在想在两者之间进行合并,我将只从数据库中获取该功能,但这将逐步完成。
【问题讨论】:
标签: javascript vue.js vuejs2 i18next