| 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({ |
| // Get default locale from local storage |
| locale: window.localStorage.getItem('storedLanguage'), |
| // Locales that don't exist will fallback to English |
| fallbackLocale: 'en-US', |
| // Falling back to fallbackLocale generates two console warnings |
| // Silent fallback suppresses console warnings when using fallback |
| silentFallbackWarn: true, |
| messages: loadLocaleMessages(), |
| }); |