Skip to content

国际化 ​

@rd-element/ui 的 Rd* 内置提示文案支持中/英,接入方式对齐 Element Plus(ConfigProvider + locale)。

零配置(现网兼容) ​

已接入的业务项目 不必改入口:

  • 不引入 @rd-element/ui/locale
  • 不包 ElConfigProvider
  • 不改 app.use(RodelUi)

此时 Rd* 默认使用 中文,文案与升级前硬编码一致。

说明:Element Plus 的 useLocale() 在无 ConfigProvider 时内部默认是英文。Rd* 不会盲目跟随,避免现网提示被切成英文。只有显式把 Rd 语言包合并进 EP locale 后才会切换。

全量引入时配 Element Plus 语言(可选) ​

EP 自身的 el-* 仍需业务配置:

ts
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import RodelUi from '@rd-element/ui'
import 'element-plus/dist/index.css'
import '@rd-element/ui/dist/style.css'
import App from './App.vue'

const app = createApp(App)
app.use(ElementPlus, { locale: zhCn })
app.use(RodelUi)
app.mount('#app')

上面只配了 EP;Rd* 在无 rd 字段时仍默认中文。

切换为英文(需显式合并) ​

从 @rd-element/ui/locale(或主包)导入 Rd 语言包,与 EP locale 合并后交给 ElConfigProvider:

vue
<script setup lang="ts">
import { ElConfigProvider } from 'element-plus'
import en from 'element-plus/es/locale/lang/en'
import { en as rdEn } from '@rd-element/ui/locale'

const locale = { ...en, ...rdEn }
</script>

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

也可从主包导入:

ts
import { en as rdEn } from '@rd-element/ui'

覆盖部分文案 ​

合并后改 rd 下对应字段即可:

ts
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import { zhCn as rdZhCn } from '@rd-element/ui/locale'

const locale = {
  ...zhCn,
  ...rdZhCn,
  rd: {
    ...rdZhCn.rd,
    orgHierarchy: {
      ...rdZhCn.rd.orgHierarchy,
      placeholder: '请选择组织',
    },
  },
}

组件 prop 仍可覆盖 ​

业务传入的 placeholder、confirmText、emptyText 等仍优先于语言包。

导出 ​

路径内容
@rd-element/uizhCn en useRdLocale
@rd-element/ui/locale同上(推荐按需引入语言包)