vue-cli项目简单实现国际化i18n

vue-cli项目简单实现国际化

1.npm下载vue-i18n

vue-cli项目根路径下:

npm i vue-i18n

我下载的版本是:

"vue-i18n": "^7.6.0"

2.文件目录

在这里插入图片描述

3.文件内容

en.js

export const m = {
    
     
  name: 'name',
  age: 'age'
}

zh.js

export const m = {
    
    
  name:'姓名',
  age:'年龄'
}

index.js

import Vue from 'vue'
import VueI18n from 'vue-i18n';

Vue.use(VueI18n);

const i18n = new VueI18n({
    
    
    locale: 'zh',    // 语言标识
    messages: {
    
    
      'zh': require('./config/zh'),   // 中文
      'en': require('./config/en')    // 英文
    }
})
export default i18n;

main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// 引入国际化文件
import i18n from './lang/index'

Vue.config.productionTip = false

new Vue({
    
    
  router,
  store,
  i18n, //国际化
  render: h => h(App)
}).$mount('#app')

4.组件内容

<template>
  <div class="home">
    <h1>国际化</h1>
    <p>{
   
   {$t('m.name')}}</p>
    <p>{
   
   {$t('m.age')}}</p>
    <button @click="changeLang('en')">英文</button>
    <button @click="changeLang('zh')">中文</button>
  </div>
</template>

<script>

export default {
  name: 'Home',
  methods:{
      /**
       * 语言切换
       * @param {string} lang 语言类型
       * @return {void}
       */
      changeLang(lang){
          // 通过this.$i18n.locale来切换语言类型
          this.$i18n.locale=lang;
      }
  }
}
</script>

5.页面效果

英文:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nzARQhpi-1646191151148)(image-20220302111124497.png)]

中文:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AniVqj6h-1646191151149)(image-20220302111142168.png)]

猜你喜欢

转载自blog.csdn.net/weixin_46724655/article/details/123225849