0

我正在尝试设置 blueprintjs 的语言环境DateRangeInput。文档声明该组件使用 Moment.js 进行本地化。所以我尝试设置locale="de",但语言仍然是英语。任何想法缺少什么来获得翻译的日期输入?

我对 React 编程相当陌生,所以我不能确定这与我的 React 技能无关,即使传递道具对我来说似乎很正确。

<DateRangeInput
    locale={"de"}
    value={dates}
    onChange={...}
/>
4

2 回答 2

2

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>
    );
  }
}

于 2021-10-18T09:48:50.273 回答
2

尝试将此添加import "moment/locale/de"到文件顶部

我认为蓝图用于new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)从时刻删除语言环境,这很常见,因为时刻真的很大。

如果这不起作用,请尝试将其添加到您的 webpack 插件中

new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /de/)

于 2018-01-19T20:06:50.627 回答