【发布时间】:2020-06-26 00:05:29
【问题描述】:
我有一个现有的 Vue 项目,我正在使用 i18n 插件为其添加本地化。一切都正确安装,根据我读过的一切(见here),我已经正确安装了一切。这包括/src/locales 下的每个语言环境一个文件,文件名是语言环境的名称 (/src/locales/en.json)。
/src/i18n.js文件的内容是:
import Vue from 'vue';
import VueI18n from 'vue-i18n';
Vue.use(VueI18n);
function loadLocaleMessages() {
const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i);
const messages = {};
locales.keys().forEach((key) => {
const matched = key.match(/([A-Za-z0-9-_]+)\./i);
if (matched && matched.length > 1) {
const locale = matched[1];
messages[locale] = locales(key);
}
});
return messages;
}
export default new VueI18n({
locale: process.env.VUE_APP_I18N_LOCALE || 'en',
fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',
messages: loadLocaleMessages(),
});
我遇到的错误是在loadLocaleMessages() 内部,它正在尝试加载/src/locales/.json 文件。我在调试器中逐步完成了它,并在
messages[locale] = locales(key);
它会抛出错误
Cannot find module './en.json'
其中key = ./en.json 和locale = en。
据我所知,我所做的一切都是正确的。我错过了什么导致此错误?
【问题讨论】:
标签: javascript json vue.js webpack vue-i18n