Antdv日期选择组件国际化问题

Antdv日期选择组件国际化问题

1.问题描述

项目依赖ant-design-vue组件库,在使用日期选择组件DatePicker时,组件内容默认展示为英文,如下图所示:

comp_en.png

现需要将语言改为中文。

2.问题解决

日期选择组件有两部分国际化问题,一是与日期无关的按钮等元素locale问题,二是与时间相关的locale问题

2.1解决与时间无关的locale问题

官网推荐在入口处使用提供的国际化组件,两种方式可解决该问题,第一种方式已废弃,经验证推荐使用第二种。

  1. 方法一:使用LocaleProvider 国际化
<template>
  <a-locale-provider :locale="zhCN">
    <App />
  </a-locale-provider>
</template>
<script>
  import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'

  export default {
    data() {
      return {
        zhCN
      };
    },
  };
</script>

使用该方式控制台会输出报错信息:[antdv: LocaleProvider] LocaleProvider is deprecated. Please use locale with ConfigProvider instead
2. 方法二:ConfigProvider 全局化配置

<template>
  <a-config-provider :locale="zhCN">
    <App />
  </a-config-provider>
</template>
<script>
  import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'

  export default {
    data() {
      return {
        zhCN
      };
    },
  };
</script>

通过上述方式修改后,可以达到下图效果:

moment_en.png

2.2解决与时间相关的locale问题

DatePicker、MonthPicker、RangePicker、WeekPicker 部分 locale 是从 value 中读取,需要正确设置 momentlocale

import moment from 'moment';
import 'moment/locale/zh-cn';

moment.locale('zh-cn');

如果该方式依然不生效,检查配置文件中是否忽略了所有语言版,导致未引入

// Ignore all locale files of moment.js
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)

最后的效果图如下:

moment_zh.png

参考链接

  1. DatePicker 日期选择框
  2. ConfigProvider 全局化配置
  3. LocaleProvider 国际化
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值