BlueMap/BlueMapCommon/BlueMapVue/src/i18n/index.js

37 lines
901 B
JavaScript

import VueI18n from 'vue-i18n';
import Vue from 'vue';
import fallback from './fallback';
VueI18n.prototype.setLanguage = async function(lang) {
try {
if (!this.messages[lang]){
let messages = {};
messages = (await import(/* webpackIgnore: true */ `../lang/${lang}.js`)).default;
this.setLocaleMessage(lang, messages);
}
this.locale = lang;
document.querySelector('html').setAttribute('lang', lang);
} catch (e) {
console.error(`Failed to load language '${lang}'!`, e);
}
}
VueI18n.prototype.loadLanguageSettings = async function() {
let settings = (await import(/* webpackIgnore: true */ "../lang/settings.js")).default;
this.languages = settings.languages;
this.setLanguage(settings.default);
};
Vue.use(VueI18n);
const i18n = new VueI18n({
locale: 'fallback',
fallbackLocale: 'fallback',
silentFallbackWarn: true,
messages: { fallback }
});
export default i18n;