背景:在vxe-table中,会有些组件自身带的文案需要做成国际化,比如表格下的分页、日期插件等。
技术背景:vue3+TypeScript+vxe-table
一、首先安装vue-i18n插件
yarn add vue-i18n
二、配置翻译文件
1.在每种语言下引入vxe中的翻译并导出, 其他语言也同中文一致
文件目录:language/zh_CN/index.ts,
中文
import vxe from "vxe-table/lib/locale/lang/zh-CN"
const cn = {
...vxe
}
export default cn
英文
文件目录:language/zh_US/index.ts,
import vxe from "vxe-table/lib/locale/lang/en-US"
const en = {
...vxe
}
export default en
2.在index.ts中引入导出
文件目录:language/index.ts
import { createI18n } from "vue-i18n"
import zh_CN from "./zh_CN"
import zh_TW from "./zh_TW"
import en_US from "./en_US"
import ja_JP from "./Ja_JP"
import { mystorage } from "@/utils"
const i18n = createI18n({
locale: mystorage.get("language") || "zh_CN",
messages: {
zh_CN: zh_CN,
zh_TW: zh_TW,
en_US: en_US,
ja_JP: ja_JP
}
})
export default i18n
三、在main.ts中配置
1.引入vxe-table和i18n
2.配置vxe-table
import VXETable from "vxe-table"
import i18n from "@/language"
const { t } = i18n.global
VXETable.setup({ i18n: (key, args) => t(key, args) })
配置完成之后,对应的语言就会显示对应的了