index.ts 847 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // 自定义国际化配置
  2. import { createI18n } from 'vue-i18n';
  3. // 本地语言包
  4. import enUSLocale from './en_US';
  5. import zhCNLocale from './zh_CN';
  6. import Cookies from 'js-cookie';
  7. const messages = {
  8. zh_CN: {
  9. ...zhCNLocale
  10. },
  11. en_US: {
  12. ...enUSLocale
  13. }
  14. };
  15. /**
  16. * 获取当前系统使用语言字符串
  17. * @returns zh-cn|en ...
  18. */
  19. export const getLanguage = () => {
  20. // 本地缓存获取
  21. let language = Cookies.get('language');
  22. if (language) {
  23. return language;
  24. }
  25. // 浏览器使用语言
  26. language = navigator.language.toLowerCase();
  27. const locales = Object.keys(messages);
  28. for (const locale of locales) {
  29. if (language.indexOf(locale) > -1) {
  30. return locale;
  31. }
  32. }
  33. return 'zh_CN';
  34. };
  35. const i18n = createI18n({
  36. legacy: false,
  37. locale: getLanguage(),
  38. messages
  39. });
  40. export default i18n;