ElementPlus 1.0.2-beta.59(包含59) 之后的国际化按需引入有破坏性变动导致组件汉化失效问题。

ElementPlus 1.0.2-beta.59(包含59) 之后的国际化按需引入有破坏性变动导致组件汉化失效问题。

解决办法

  1. 通过 ConfigProvider 的方式来使用,详细的使用方法请查阅 ConfigProvider 的文档。
    如果你的项目中还在使用 options API, 那么你应该使用此方法,我们更加建议用户使用该方法,因为这样会减少使用的负担,但如果你在项目中深度使用 Composition API,那么你可以使用第二种方法来为整个应用提供语言支持。
<template>
<el-config-provider :locale="locale">
  <App />
</el-config-provider>
</template>

<script>
import { ElConfigProvider } from 'element-plus'

import zhCn from 'element-plus/lib/locale/lang/zh-cn'

defineComponent({
components: {
  [ElConfigProvider.name]: ElConfigProvider,
},
data() {
  return {
    locale: zhCn,
  }
},
})
</script>

2.通过 Composable 的 Hook 使用。
该方法基本就是通过你自己写一个 ConfigProvider 的方式,来注入所有配置

import { useLocale, useLocaleProps } from 'element-plus'
// Locale Wrapper 入口
const Provider = defineComponent({
props: {
  // 如果你需要你的应用可以相应式的更新语言,那么这里的 props 必须包含下面这个 props
  ...useLocaleProps,
},
setup() {
  // 不需要任何参数,但是需要你的这个组件可以接受
  // ` { locale?: Language, i18n?: (...args: any[]) => string }` 作为参数
  useLocale()
}
})


createApp(
{
  // ...
  template: `
    <provider :locale="locale" :i18n="i18n">
      <App />
    </provider>
  `
}
)

注:package.json版本号区别 (正好遇见elementplus版本更新,踩了个坑。)

1. ~会匹配最近的小版本依赖包,比如 ~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
2. ^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的版本,包括1.3.0,但是不包括2.0.0
3. 如果前面啥都不写入 如 1.2.3 则指定版本。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值