vue多语言转换的几种方法总结

 更新时间:2023年02月18日 15:45:24   作者:帆酱  
这篇文章主要介绍了vue多语言转换的几种方法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、静态转换

  • 使用 Vue 插件 language-tw-loader
  • 在打包时把本地的文字转换成繁体,动态加载的文字不会转换。也就是说接口返回的文字不会自动转换。
  • 打包后无法再切换为简体。除非专门打一个简体的包。

使用方式

1、安装插件

npm i language-tw-loader --save

2、修改 webpack 配置文件webpack.base.conf.js

module: {
rules: [
    ......
  {
    test: /\.(js|vue)$/,
    loader: 'language-tw-loader',
  }
  ]
}

3、打包或者运行

npm run dev

此方法不适用于vue-cli3 

二、vue-i18n按字查询替换

1、安装

npm install vue-i18n

2、然后在我们的项目中的statics文件夹下面添加i18n文件夹,然后在文件夹中新建我们的json格式的语言包目录大致为:

en.js

module.exports = {
  login:{
      'title' : 'this title',
      'username' : 'Please enter the user name',
      'password' : 'Please enter your password',
  },
}

zh.js

  module.exports = {
    login:{
        'title' : '标题',
        'username' : '请输入用户名',
        'password' : '请输入密码',
    },
}

在i18n.js中引入i18n和语言包

import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
 
// 以下为语言包单独设置的场景,单独设置时语言包需单独引入
const messages = {
  'zh_CN': require('../statics/i18n/zh'),   // 中文语言包
  'en_US': require('../statics/i18n/en')    // 英文语言包
}
 
// 最后 export default,这一步肯定要写的。
export default new VueI18n({
  locale : 'en', // set locale 默认显示英文
  messages : messages // set locale messages
})

然后在main.js中挂载至入口文件

- main.js
//注意,因为我们index.js中把i18n绑定到了window,所以要在第一个引入
import i18n from './locales'
import Vue from 'vue'
import App from './App.vue'
import './common.scss'
 
const app = new Vue({
  components: {
    App
  },
  i18n,
  render: h => h(App),
});

使用

<template>
  <div id="pageDiv">
    <section class="content">
      <h3>{{$t("login.title")}}</h3>
      <button @click='langToggle'>切换语言</button>
    </section>
  </div>
</template>
<script>
export default {
  data() {
    return {
    };
  methods: {
    langToggle(){
      if(this.$i18n.locale == 'zh_CN'){
        this.$i18n.locale = 'en_US';
      }else{
        this.$i18n.locale = 'zh_CN';
      }
      console.log(this.$i18n.locale)
    }
  },
  mounted(){
  },
  created() {
  }
};
</script>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • element-ui 表格sortable排序手动js清除方式

    element-ui 表格sortable排序手动js清除方式

    这篇文章主要介绍了element-ui 表格sortable排序手动js清除方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Vue源码学习之数据初始化

    Vue源码学习之数据初始化

    这篇文章主要为大家介绍了Vue源码学习之数据初始化实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Element-UI日期选择器(选择日期范围)禁用未来日期实现代码

    Element-UI日期选择器(选择日期范围)禁用未来日期实现代码

    我们在网页开发时通常需要用到一些日期组件来方便用户选择时间,其中element日期组件是一个非常好用的工具,这篇文章主要给大家介绍了关于Element-UI日期选择器(选择日期范围)禁用未来日期的相关资料,需要的朋友可以参考下
    2024-02-02
  • 利用Vue的v-for和v-bind实现列表颜色切换

    利用Vue的v-for和v-bind实现列表颜色切换

    这篇文章主要介绍了利用Vue的v-for和v-bind实现列表颜色切换,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue引用外部JS并调用JS文件中的方法实例

    vue引用外部JS并调用JS文件中的方法实例

    我们在做vue项目时,经常会需要引入js,下面这篇文章主要给大家介绍了关于vue引用外部JS并调用JS文件中的方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • 解决Vue-Router升级导致的Uncaught (in promise)问题

    解决Vue-Router升级导致的Uncaught (in promise)问题

    这篇文章主要介绍了解决Vue-Router升级导致的Uncaught (in promise)问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vuex中mutations和actions的区别及说明

    Vuex中mutations和actions的区别及说明

    这篇文章主要介绍了Vuex中mutations和actions的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Element UI表单组件进行通信的代码详解

    Element UI表单组件进行通信的代码详解

    Element UI是一个为Vue.js开发的优秀 UI 组件库,它提供了丰富的组件,包括表单组件,Element UI的表单组件可以帮助开发者快速构建和管理表单,提高开发效率,在实际开发中,我们经常需要在表单组件之间进行通信,本文将详细介绍Element UI表单组件如何进行通信
    2025-02-02
  • element table多层嵌套显示的实践

    element table多层嵌套显示的实践

    本文主要介绍了element table多层嵌套显示的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • vue如何基于el-table实现多页多选及翻页回显过程

    vue如何基于el-table实现多页多选及翻页回显过程

    在最近的一个项目中我需要实现表格的翻页,并且还要实现全选、多选功能,下面这篇文章主要给大家介绍了关于vue如何基于el-table实现多页多选及翻页回显过程的相关资料,需要的朋友可以参考下
    2022-12-12

最新评论