当前位置:首页 > 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')

在模板中使用:

vue实现中英切换

<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 组件中实现切换:

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
  }
}

动态加载语言包

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

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

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

相关文章

vue实现年历

vue实现年历

Vue 实现年历的方法 使用 Vue 实现年历可以通过组件化开发方式,结合日期计算和动态渲染完成。以下是两种常见的实现方式: 基于原生 Vue 的日历组件 创建 Calendar.vue 组件文件,…

vue实现列表显示

vue实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成列…

vue实现autocomplete

vue实现autocomplete

Vue 实现 Autocomplete 功能 Vue 中实现 Autocomplete(自动完成)功能可以通过自定义组件或使用现有库完成。以下是几种常见方法: 方法一:使用 Vue 原生实现…

vue实现iframe

vue实现iframe

Vue 中实现 iframe 的方法 在 Vue 项目中,可以通过多种方式实现 iframe 的嵌入。以下是几种常见的方法: 使用原生 HTML iframe 标签 直接在 Vue 组件的模板中使用…

vue实现拖动

vue实现拖动

Vue实现拖动的常用方法 在Vue中实现拖动功能通常需要结合HTML5的拖放API或第三方库。以下是几种常见实现方式: 使用HTML5原生拖放API HTML5提供了原生拖放API,可以通过drag…

vue实现ppt

vue实现ppt

Vue 实现 PPT 的功能 Vue 可以结合第三方库或自定义组件实现类似 PPT 的演示效果。以下是几种常见的方法: 使用第三方库 reveal.js reveal.js 是一个流行的演示框架,…