46 lines
847 B
TypeScript
Raw Normal View History

2023-04-02 01:01:56 +08:00
// 自定义国际化配置
import { createI18n } from 'vue-i18n';
// 本地语言包
import enUSLocale from './en_US';
import zhCNLocale from './zh_CN';
2023-04-18 23:36:26 +08:00
import Cookies from 'js-cookie';
2023-04-02 01:01:56 +08:00
const messages = {
zh_CN: {
...zhCNLocale
2023-04-03 00:05:09 +08:00
},
en_US: {
...enUSLocale
2023-04-03 00:05:09 +08:00
}
2023-04-02 01:01:56 +08:00
};
/**
* 使
* @returns zh-cn|en ...
*/
export const getLanguage = () => {
2023-04-03 00:05:09 +08:00
// 本地缓存获取
2023-04-18 23:36:26 +08:00
let language = Cookies.get('language');
2023-04-03 00:05:09 +08:00
if (language) {
return language;
}
// 浏览器使用语言
language = navigator.language.toLowerCase();
const locales = Object.keys(messages);
for (const locale of locales) {
if (language.indexOf(locale) > -1) {
return locale;
}
}
return 'zh_CN';
2023-04-02 01:01:56 +08:00
};
const i18n = createI18n({
2023-04-03 00:05:09 +08:00
legacy: false,
locale: getLanguage(),
2023-04-18 23:36:26 +08:00
messages
2023-04-02 01:01:56 +08:00
});
export default i18n;