当前位置: 首页 > 工具软件 > tablePager > 使用案例 >

vxe-table 国际化的使用、支持多语言 internationalization

华佐
2023-12-01

vxe-table 国际化的使用、支持多语言 internationalization

先安装 vue-i18n 国际化插件(或者不使用也行,可选的)

npm install vue-i18n
import Vue from 'vue'
import VueI18n from 'vxe-i18n'
import VXETable from 'vxe-table'
import zhCN from 'vxe-table/lib/locale/lang/zh-CN'
import enUS from 'vxe-table/lib/locale/lang/en-US'

const messages = {
  zh_CN: {
    ...zhCN
  },
  en_US: {
    ...enUS
  }
}

const i18n = new VueI18n({
  locale: 'zh_CN',
  messages,
})

Vue.use(VXETable, {
  // 对组件内置的提示语进行国际化翻译
  i18n: (key, args) => i18n.t(key, args),
  // 如果不使用 vue-i18n 场景,则需要自行转义字符串语法: '{xx}',例如:
  // i18n: (key, args) => XEUtils.toFormatString(XEUtils.get(zhCN, key), args)
})

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

如果还希望对内容进行翻译,例如:参数中的列头、校验提示…等进行自动翻译(只对支持国际化的有效)

import VXETable from 'vxe-table'

Vue.use(VXETable, {
  // 对组件内置的提示语进行国际化翻译
  i18n: (key, args) => i18n.t(key, args),
  // 可选,对参数中的列头、校验提示..等进行自动翻译(只对支持国际化的有效)
  translate: (key, args) => i18n.t(key, args)
})
<vxe-table
  border
  height="600"
  :data="tableData">
  <vxe-column field="name" title="app.body.label.name"></vxe-column>
  <vxe-column field="age" title="app.body.label.age"></vxe-column>
  <vxe-column field="sex" title="app.body.label.sex"></vxe-column>
</vxe-table>
 类似资料: