index.js 887 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import Vue from 'vue'
  2. import VueI18n from 'vue-i18n'
  3. Vue.use(VueI18n)
  4. const DEFAULT_LANG = 'en'
  5. const LOCALE_KEY = 'localeLanguage'
  6. const locales = {
  7. zh: require('./zh.json'),
  8. en: require('./en.json'),
  9. }
  10. const i18n = new VueI18n({
  11. locale: DEFAULT_LANG,
  12. messages: locales,
  13. silentTranslationWarn: true,
  14. })
  15. export const setup = lang => {
  16. if (lang === undefined) {
  17. lang = window.localStorage.getItem(LOCALE_KEY)
  18. if (locales[lang] === undefined) {
  19. lang = DEFAULT_LANG
  20. }
  21. }
  22. window.localStorage.setItem(LOCALE_KEY, lang)
  23. if(document.body.classList) {
  24. Object.keys(locales).forEach(lang => {
  25. document.body.classList.remove(`lang-${lang}`)
  26. })
  27. document.body.classList.add(`lang-${lang}`)
  28. }
  29. document.body.setAttribute('lang', lang)
  30. Vue.config.lang = lang
  31. i18n.locale = lang
  32. }
  33. setup("en")
  34. window.$i18n = i18n;
  35. export default i18n