Skip to content

国际化

Vue EP Toolkit 组件内部默认使用英语,同时支持多语言切换。

全局配置

Vue EP Toolkit 提供了两种配置国际化的方式。

完整引入

如果你使用完整引入,需要在注册插件时传入 locale 配置:

ts
import { createApp } from "vue"
import VueEpToolkit, { zhCn } from "vue-ep-toolkit"
import "vue-ep-toolkit/dist/index.css"
import App from "./App.vue"

const app = createApp(App)
app.use(VueEpToolkit, {
  locale: zhCn
})
app.mount("#app")

按需引入

如果你使用按需引入,需要使用 ElConfigProvider 组件来配置国际化:

vue
<template>
  <el-config-provider :locale="locale">
    <app />
  </el-config-provider>
</template>

<script setup>
import { ElConfigProvider } from "element-plus"
import { zhCn } from "vue-ep-toolkit"

const locale = zhCn
</script>

支持的语言

Vue EP Toolkit 内置了以下语言包:

语言文件名
英语en
简体中文zh-cn

使用其他语言

如果你需要使用其他语言,可以参考现有语言包的格式自定义语言包。

语言包格式

ts
import zhCn from "element-plus/es/locale/lang/zh-cn"

export default {
  ...zhCn, // 继承 Element Plus 的语言包
  ep: {
    table: {
      refresh: "刷新",
      export: "导出",
      search: "搜索",
      column: "列"
    }
  }
}

使用自定义语言包

ts
import { createApp } from "vue"
import VueEpToolkit from "vue-ep-toolkit"
import customLocale from "./locale/custom"
import App from "./App.vue"

const app = createApp(App)
app.use(VueEpToolkit, {
  locale: customLocale
})
app.mount("#app")

动态切换语言

你可以通过 useLocale 组合式函数来动态切换语言:

vue
<template>
  <el-button @click="toggleLocale">切换语言</el-button>
</template>

<script setup>
import { ref } from "vue"
import { useLocale, en, zhCn } from "vue-ep-toolkit"

const locale = useLocale()
const currentLang = ref("zh-cn")

const toggleLocale = () => {
  if (currentLang.value === "zh-cn") {
    locale.value = en
    currentLang.value = "en"
  } else {
    locale.value = zhCn
    currentLang.value = "zh-cn"
  }
}
</script>