国际化 i18n,前端切换中英文模式

安装i18n包,全局引入

import i18n from '@/locales'

创建locales.js文件

index.js作为入口文件

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import { LOCALE_LANG, DEFAULT_LANG } from '@/utils/const'

Vue.use(VueI18n)

const locales = {
  zh: {
    ...require('./zh.json')
  },
  en: {
    ...require('./en.json')
  },
}

const i18n = new VueI18n({
  locale: DEFAULT_LANG,
  messages: locales
})
export const setup = (lang) => {
  if (!lang) {
    lang = window.localStorage.getItem(LOCALE_LANG) || DEFAULT_LANG
  }
  window.localStorage.setItem(LOCALE_LANG, lang)
  Object.keys(locales).forEach(lang => {
    document.body.classList.remove(`lang-${lang}`)
  })
  document.body.classList.add(`lang-${lang}`)
  document.body.setAttribute('lang', lang)
  Vue.config.lang = lang
  i18n.locale = lang
}

export default i18n

  在en.json和zh.json中编辑要改变的文本

main.js引入并使用  

import i18n from '@/locales'

在需求改变的页面中引入方法

import { setup } from "@/locales";



在mounted中调用,传入需要的语言

this.setup(this.lang)

 最后模板使用

 <div>{{ $t("FAQsText") }}</div>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值