我正在尝试设置 blueprintjs 的语言环境DateRangeInput
。文档声明该组件使用 Moment.js 进行本地化。所以我尝试设置locale="de"
,但语言仍然是英语。任何想法缺少什么来获得翻译的日期输入?
我对 React 编程相当陌生,所以我不能确定这与我的 React 技能无关,即使传递道具对我来说似乎很正确。
<DateRangeInput
locale={"de"}
value={dates}
onChange={...}
/>
我正在尝试设置 blueprintjs 的语言环境DateRangeInput
。文档声明该组件使用 Moment.js 进行本地化。所以我尝试设置locale="de"
,但语言仍然是英语。任何想法缺少什么来获得翻译的日期输入?
我对 React 编程相当陌生,所以我不能确定这与我的 React 技能无关,即使传递道具对我来说似乎很正确。
<DateRangeInput
locale={"de"}
value={dates}
onChange={...}
/>
DateTime 组件(日期选择器、日期范围选择器、时间选择器、日期时间选择器、日期输入和日期范围输入)都依赖于 react-day-picker。
要设置所需的语言环境,根据react-day-picker 文档,您需要从上面提到的时刻导入所需的语言环境并设置 localeUtils(用于根据当前语言环境呈现组件的一组函数)。
下面的代码是它的工作原理。
import React from 'react';
import { DateRangeInput } from "@blueprintjs/datetime";
import 'react-day-picker/lib/style.css';
// Include the locale utils designed for moment
import MomentLocaleUtils from 'react-day-picker/moment';
// Make sure moment.js has the required locale data
import 'moment/locale/ja';
export default class LocalizedExample extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<DateRangeInput localeUtils={MomentLocaleUtils} locale='ja' />
</div>
);
}
}
尝试将此添加import "moment/locale/de"
到文件顶部
我认为蓝图用于new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
从时刻删除语言环境,这很常见,因为时刻真的很大。
如果这不起作用,请尝试将其添加到您的 webpack 插件中
new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /de/)