问题
antd时间控件DatePicker 等安装国际化后还是半中文版英文
解决:
antd
安装后会自带
moment依赖,无需重新安装下载(可能会出现于antd的moment出现版本冲突
)
卸载antd与moment
后,直接安装antd
,antd自带
的有moment包(node_modules/antd/node_modules目录下),通过import 'moment/locale/zh-cn’命令导入
的是自己装的moment包并非antd
中的,由于两个moment版本不同
,所以导致了引入无效
。所以将外部的moment的包进行删除
就可以可解决问题
1、按照官方文档处理:
2、版本问题,更新moment版本,antd有自己对应的moment
package-lock.json
文件查看
重要:
antd
安装后会自带
moment依赖,无需重新安装下载(可能会出现于antd的moment出现版本冲突
)
卸载antd于moment
后,直接安装antd
如果使用的是cnpm
包管理工具,他会生成一个.stroe缓存文件–(建议使用yarn
)
即使重新安装antd
一样无用,
3、如果还有问题
我的解决方式:
moment
提供了updateLocale
方法可以进行设置
更新
moment 的 locale
配置
import moment from 'moment';
import 'moment/locale/zh-cn'; // 引入中文语言包
// 设置 moment 语言环境
moment.locale('zh-cn');
//重要
// 更新 moment 的 locale 配置
moment.updateLocale('zh-cn', {
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
meridiemParse: /上午|下午/,
isPM: function (input) {
return input === '下午';
},
meridiem: function (hour, minute, isLower) {
if (hour < 9) {
return '上午';
} else {
return '下午';
}
},
});