vue双语

在 Vue 中使用 vue-i18n,配套双语

1 安装 vue-i18n

npm install vue-i18n

2 配置文件

在 src 目录下新建一个 i18n 文件夹,在 i18n 文件夹里分别创建 i18n.js、langs 文件夹,在 langs 文件夹下面创建你的语言文件(cn.js/en.js/ja.js)和 index.js 文件

结构

3 i18n.js

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import messages from './langs'

Vue.use(VueI18n)
//从localStorage中拿到用户的语言选择,如果没有,那默认中文。
const i18n = new VueI18n({
  locale: localStorage.lang || 'cn',
  messages
})
export default i18n

4 index.js

import en from './en'
import cn from './cn'
import ja from './ja'
export default {
  en,
  cn,
  ja
}

5 cn.js

const cn = {
  message: {
    hello: '你好'
  }
}

export default cn

6 en.js

const en = {
  message: {
    hello: 'hello'
  }
}

export default en

在配置语言包的时候,key 值一定要保持统一,因为 i18n 是通过你的 key 值来切换语言的,如果 key 值有误,就不能正确的切换语言包,这一点千万要注意

7 引用 main.js

import Vue from 'vue'
import App from './App'
import i18n from './i18n/i18n'

new Vue({
  el: '#app',
  i18n, //加上i18n
  components: { App },
  template: '<App/>'
})

配置页面

HTML 部分

<p>{{$t('message.hello')}}</p>
//此时应该是中文
<button @click="switchLang('en')">英语</button>
<button @click="switchLang('cn')">中文</button>
<button @click="switchLang('ja')">日语</button>

Js 部分

methods:{
    switchLang(lang)  {
        this.$i18n.locale = lang
        //把语言保存在localStorage中
        localStorage.setItem('lang',lang);
    }
  },

这样可以正常使用了


文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录