import Vue from 'vue';
|
import VueI18n from 'vue-i18n';
|
|
import chinese from './zh-CN.js';
|
import english from './en.js';
|
import chinesechar from './tw.js';
|
|
Vue.use(VueI18n);
|
|
function getCookie(name) {
|
// 获取cookie
|
var arr;
|
var reg = new RegExp(`(^| )${name}=([^;]*)(;|$)`);
|
if (arr = document.cookie.match(reg)) {
|
return unescape(arr[2]);
|
}
|
return null;
|
}
|
const DEFAULT_LANG = 'en-us';
|
const LOCALE_KEY = 'language';
|
|
const locales = {
|
zh_cn: {
|
...chinese,
|
},
|
en: {
|
...english,
|
},
|
tw: {
|
...chinesechar,
|
},
|
};
|
// en-us zh-cn
|
//let langLocale = getCookie(LOCALE_KEY) || 'en';
|
let langLocale = window.localStorage.getItem(LOCALE_KEY) || 'en';
|
|
const i18n = new VueI18n({
|
locale: langLocale,
|
messages: locales,
|
silentTranslationWarn: true
|
});
|
const init = Vue.prototype._init;
|
Vue.prototype._init = function (options) {
|
init.call(this, {
|
i18n,
|
...options,
|
});
|
};
|
|
export const setup = lang => {
|
if (lang === undefined) {
|
// lang = window.localStorage.getItem(LOCALE_KEY);
|
//const language = getCookie(LOCALE_KEY);
|
const language = window.localStorage.getItem(LOCALE_KEY);
|
if (language) {
|
langLocale = language.replace('-', '_').toLowerCase();
|
}
|
if (undefined !== langLocale && langLocale !== '') {
|
lang = langLocale;
|
}
|
if (locales[lang] === undefined) {
|
lang = DEFAULT_LANG;
|
}
|
// console.log(`lang-${lang}`);
|
}
|
|
|
Vue.config.lang = lang;
|
i18n.locale = lang;
|
};
|
|
setup();
|
|
|
export default i18n;
|