index.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import Vue from 'vue'
  2. import VueI18n from 'vue-i18n'
  3. import Cookies from 'js-cookie'
  4. import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
  5. import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
  6. import elementEsLocale from 'element-ui/lib/locale/lang/es'// element-ui lang
  7. import elementJaLocale from 'element-ui/lib/locale/lang/ja'// element-ui lang
  8. import enLocale from './en'
  9. import zhLocale from './zh'
  10. import esLocale from './es'
  11. import jaLocale from './ja'
  12. Vue.use(VueI18n);
  13. const messages = {
  14. en: {
  15. ...enLocale,
  16. ...elementEnLocale
  17. },
  18. zh: {
  19. ...zhLocale,
  20. ...elementZhLocale
  21. },
  22. es: {
  23. ...esLocale,
  24. ...elementEsLocale
  25. },
  26. ja: {
  27. ...jaLocale,
  28. ...elementJaLocale
  29. }
  30. };
  31. export function getLanguage() {
  32. const chooseLanguage = Cookies.get('language');
  33. if (chooseLanguage) return chooseLanguage;
  34. // if has not choose language
  35. const language = (navigator.language || navigator.browserLanguage).toLowerCase();
  36. const locales = Object.keys(messages);
  37. for (const locale of locales) {
  38. if (language.indexOf(locale) > -1) {
  39. return locale
  40. }
  41. }
  42. return 'en'
  43. }
  44. const i18n = new VueI18n({
  45. // set locale
  46. // options: en | zh | es
  47. locale: getLanguage(),
  48. // set locale messages
  49. messages
  50. });
  51. export default i18n