2021-04-12 vue-i18n配置:

import { createI18n } from 'vue-i18n'

import { Locale } from 'vant'

import enUS from 'vant/es/locale/lang/en-US'

import zhCN from 'vant/es/locale/lang/zh-CN'

function loadLocaleMessages () {

  const locales = require.context('./locale', true, /[A-Za-z0-9-_,\s]+\.json$/i)

  const messages = {}

  locales.keys().forEach(key => {

    const matched = key.match(/([A-Za-z0-9-_]+)\./i)

    if (matched && matched.length > 1) {

      const locale = matched[1]

      messages[locale] = locales(key)

    }

  })

  messages.zh = {

    ...messages.zh,

    ...zhCN

  }

  messages.en = {

    ...messages.en,

    ...enUS

  }

  console.log(messages.zh)

  return messages

}

/*

* 獲取語言

* */

export const getLang = () => {

  const locale = localStorage.getItem('locale')

  if (window) {

    vantLocale(locale)

    if (locale) return locale

    localStorage.setItem('locale', 'zh')

    return 'zh'

  }

  return 'zh'

}

/**

   * vant語言切換

   * */

export function vantLocale(flag) {

  if (flag === 'zh') {

    Locale.use('zh-CN', zhCN)

    return

  }

  Locale.use('en-US', enUS)

}

const i18n = createI18n({

  locale: getLang(),

  fallbackLocale: 'zh',

  messages: loadLocaleMessages()

})

export default i18n
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容