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({ | |
// default language is English | |
locale: 'en', | |
// locale messages with a message key that doesn't exist will fallback to English | |
fallbackLocale: 'en', | |
messages: loadLocaleMessages() | |
}); |