当前位置:首页 > VUE

vue实现中英切换

2026-02-17 02:51:45VUE

Vue 实现中英切换的方法

使用 vue-i18n 插件

安装 vue-i18n 插件:

npm install vue-i18n

在项目中配置 vue-i18n:

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

Vue.use(VueI18n)

const messages = {
  en: {
    message: {
      hello: 'Hello'
    }
  },
  zh: {
    message: {
      hello: '你好'
    }
  }
}

const i18n = new VueI18n({
  locale: 'en', // 默认语言
  messages
})

new Vue({
  i18n
}).$mount('#app')

在模板中使用:

<template>
  <div id="app">
    <p>{{ $t('message.hello') }}</p>
    <button @click="changeLang('en')">English</button>
    <button @click="changeLang('zh')">中文</button>
  </div>
</template>

<script>
export default {
  methods: {
    changeLang(lang) {
      this.$i18n.locale = lang
    }
  }
}
</script>

自定义切换方法

创建语言包文件:

// lang/en.js
export default {
  hello: 'Hello'
}

// lang/zh.js
export default {
  hello: '你好'
}

在 Vue 组件中实现切换:

import en from './lang/en'
import zh from './lang/zh'

export default {
  data() {
    return {
      currentLang: 'en',
      langs: {
        en,
        zh
      }
    }
  },
  methods: {
    changeLang(lang) {
      this.currentLang = lang
    }
  },
  computed: {
    t() {
      return this.langs[this.currentLang]
    }
  }
}

模板中使用:

<template>
  <div>
    <p>{{ t.hello }}</p>
    <button @click="changeLang('en')">English</button>
    <button @click="changeLang('zh')">中文</button>
  </div>
</template>

持久化语言选择

使用 localStorage 保存语言选择:

methods: {
  changeLang(lang) {
    this.$i18n.locale = lang
    localStorage.setItem('lang', lang)
  }
},
created() {
  const savedLang = localStorage.getItem('lang')
  if (savedLang) {
    this.$i18n.locale = savedLang
  }
}

动态加载语言包

按需加载语言包减少初始加载体积:

vue实现中英切换

async changeLang(lang) {
  const messages = await import(`@/lang/${lang}.js`)
  this.$i18n.setLocaleMessage(lang, messages.default)
  this.$i18n.locale = lang
}

标签: 中英vue
分享给朋友:

相关文章

vue公共列表的实现

vue公共列表的实现

实现 Vue 公共列表组件 公共列表组件通常用于展示重复结构的数据,例如商品列表、用户列表等。以下是一个典型的实现方式: 基础实现 创建可复用的列表组件 List.vue: <templat…

vue实现多选

vue实现多选

Vue 实现多选功能 在 Vue 中实现多选功能可以通过多种方式完成,以下是常见的几种方法: 使用 v-model 绑定数组 通过 v-model 绑定到一个数组,可以实现多选功能。适用于复选框组(…

vue实现增加

vue实现增加

实现 Vue 中的新增功能 在 Vue 中实现新增功能通常涉及数据绑定、表单处理和状态管理。以下是几种常见的实现方式: 数据绑定与列表渲染 通过 v-model 绑定表单输入,使用数组的 push…

vue实现select

vue实现select

Vue 实现 Select 组件的方法 在 Vue 中实现 Select 组件可以通过多种方式完成,以下是几种常见的方法: 使用原生 HTML select 元素 原生 HTML 的 <sel…

vue实现横滚

vue实现横滚

Vue 实现横滚效果 横滚效果通常指水平滚动内容,常见于轮播图、横向导航栏等场景。以下是几种实现方式: 使用 CSS 和 Vue 结合 通过 CSS 的 overflow-x 和 white-spa…

vue实现循环

vue实现循环

Vue 实现循环的方法 在 Vue 中,可以通过 v-for 指令实现循环渲染列表或对象。以下是几种常见的用法: 遍历数组 使用 v-for 遍历数组时,可以同时获取当前项和索引: <ul&…