46 lines
839 B
TypeScript
Raw Normal View History

2023-04-02 01:01:56 +08:00
// 自定义国际化配置
import { createI18n } from 'vue-i18n';
// 本地语言包
import enLocale from './en';
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 = {
2023-04-03 00:05:09 +08:00
'zh-cn': {
...zhCnLocale
},
en: {
...enLocale
}
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;