Vue如何基于vue-i18n实现多国语言兼容

 更新时间:2020年07月17日 15:51:05   作者:亦碗粥  
这篇文章主要介绍了Vue如何基于vue-i18n实现多国语言兼容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

vue中使用 vue-i18n 兼容多国语言

1.安装:npm install vue-i18n --save-dev

2.在main.js文件中引入:

import VueI18n from 'vue-i18n'
Vue.use(VueI18n) // 通过插件的形式挂载,通过全局方法 Vue.use() 使用插件const i18n = new VueI18n({
 locale: 'zh', // 语言标识 //this.$i18n.locale // 通过切换locale的值来实现语言切换
 messages: {
  'zh': require('./VueI18n/language-zh'), //
  'en': require('./VueI18n/language-en')
 }
})
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 i18n,
 components: { App },
 template: '<App/>'
})

3.在src下新建文件夹VueI18n(文件名字可自己定) 然后在文件夹下建立两个文件language-zh.js和language-en.js

你也可以创建的是两个json文件 如language-zh.json但是里面的格式也改成json格式

json 格式:

{
  "lang":{
    "home": "HHHHHHHHome",
    "name": 'Chinese'
  }
}

在main.js中引入这两个文件

Vue.use(VueI18n) // 通过插件的形式挂载,通过全局方法 Vue.use() 使用插件const i18n = new VueI18n({
 locale: 'zh', // 语言标识 //this.$i18n.locale // 通过切换locale的值来实现语言切换
 messages: {
  'zh': require('./VueI18n/language-zh'), //引入language-zh.js language-en,js
  'en': require('./VueI18n/language-en')
 }
})

language-zh.js

language-en.js

4.在组件中开始使用

<template>
 <div class="content">
  <span>{{ $t('lang.home')}}</span>
  <span>{{ $t('lang.name')}}</span>
  <span @click="changeLaguages()">切换语言</span>
  <!-- <span v-if="lang==='zh'" @click="changezh" style="display:block" class="color">中文</span> -->
  <!-- <span v-else ="lang==='en'" @click="changeen" style="display:block">english</span> -->
 </div>
</template>

<script>
export default {
 data () {
  return {
   lang: 'zh'
  }
 },
 methods: {
  changeLaguages () {
   console.log(this.$i18n.locale)
   let lang = this.$i18n.locale === 'zh' ? 'en' : 'zh'
   this.$i18n.locale = lang
  }
  // changezh () {
  //  this.lang = '中文'
  //  this.$i18n.locale = 'zh'
  // },
  // changeen () {
  //  this.lang = 'english'
  //  this.$i18n.locale = 'en'
  // }
 }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
@import '@/assets/scss/index.scss';
</style>

点击切换语言 这样就完成了一个简单的国际化。language-en.js language-zh.js这两个文件是要翻译的内容,通过$t(' ') 完成调用。

Ps:亲测可用,只为备忘,仅供参考

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码

    Vue实现Tab标签路由效果并用Animate.css做转场动画效果的代码

    这篇文章主要介绍了Vue实现Tab标签路由效果,并用Animate.css做转场动画效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • vue-quill-editor如何设置字体大小

    vue-quill-editor如何设置字体大小

    这篇文章主要介绍了vue-quill-editor如何设置字体大小,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue3引入Element-plus的详细步骤记录

    vue3引入Element-plus的详细步骤记录

    Element Plus是为适配Vue3而对Element UI进行重构后产生的前端组件库,包含丰富的基础组件,下面这篇文章主要给大家介绍了关于vue3引入Element-plus的相关资料,需要的朋友可以参考下
    2022-04-04
  • Vue 2.5 Level E 发布了: 新功能特性一览

    Vue 2.5 Level E 发布了: 新功能特性一览

    很高兴Vue 2.5 Level E 发布了。在这篇文章中,我们将重点介绍一些更重要的的变化:更好的 TypeScript 集成,更好的错误处理,更好地支持单文件组件中的函数式组件以及与环境无关的服务端渲染
    2017-10-10
  • Vue 组件间的样式冲突污染

    Vue 组件间的样式冲突污染

    本篇文章主要介绍了Vue 组件间的样式冲突污染,当多个样式出现时,就会导致样式冲突,本文介绍了具体解决方法
    2017-08-08
  • typescript+vite项目配置别名的方法实现

    typescript+vite项目配置别名的方法实现

    我们为了省略冗长的路径,经常喜欢配置路径别名,本文主要介绍了typescript+vite项目配置别名的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Vue中iframe 结合 window.postMessage 实现跨域通信

    Vue中iframe 结合 window.postMessage 实现跨域通信

    window.postMessage() 方法可以安全地实现跨源通信,在一个项目的页面中嵌入另一个项目的页面,需要实现父子,子父页面的通信,对Vue中iframe 结合 window.postMessage 实现跨域通信相关知识感兴趣的朋友跟随小编一起看看吧
    2022-12-12
  • vue3+vite中开发环境与生产环境全局变量配置指南

    vue3+vite中开发环境与生产环境全局变量配置指南

    最近在使用vite生成项目,这篇文章主要给大家介绍了关于vue3+vite中开发环境与生产环境全局变量配置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • vue项目中字符串换行显示方式(返回的数据包含‘\r\n’字符)

    vue项目中字符串换行显示方式(返回的数据包含‘\r\n’字符)

    这篇文章主要介绍了vue项目中字符串换行显示方式(返回的数据包含‘\r\n’字符),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Vue3中关于ref和reactive的区别分析

    Vue3中关于ref和reactive的区别分析

    这篇文章主要介绍了vue3关于ref和reactive的区别分析,文中通过示例代码介绍的非常详细,具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-06-06

最新评论