如何国际化React-Date月和周日名称?

时间:2018-11-27 11:00:33

标签: javascript reactjs react-dates

我正在使用react-dates,并且试图弄清楚如何使月份和工作日名称国际化。我已经想出了如何对输入的占位符文本执行此操作,但是我找不到执行此操作的方法。

我给反应日期DateRangePicker提供的当前道具如下:

<DateRangePicker
        startDate={this.state.startDate} // momentPropTypes.momentObj or null,
        endDate={this.state.endDate} // momentPropTypes.momentObj or null,
        onDatesChange={({ startDate, endDate }) => {
            this.setState({ startDate, endDate });
            this.props.onDateChange(this.props.name, startDate, endDate);
          }
        } // PropTypes.func.isRequired,
        focusedInput={this.state.focusedInput} // PropTypes.oneOf([START_DATE, END_DATE]) or null,
        onFocusChange={focusedInput => this.setState({ focusedInput })} // PropTypes.func.isRequired,
        numberOfMonths={1}
        firstDayOfWeek={1}
        minimumNights={0}
        isOutsideRange={(x) => moment().add(1, 'days') < x }
        displayFormat="DD-MM-YYYY"
        showClearDates={true}
        startDatePlaceholderText={this.props.intl.formatMessage({id: 'DATE_PICKER_START_DATE'})}
        endDatePlaceholderText={this.props.intl.formatMessage({id: 'DATE_PICKER_END_DATE'})}
        hideKeyboardShortcutsPanel= {true}
      />

我正在使用react-intl进行国际化。

这是日历的样子: image of the calendar

基本上我想要更改的是月份名称November和工作日名称Mo Tu We Th Fr Sa Su

理想的结果是将它们翻译成芬兰语-> MarraskuuMa Ti Ke To Pe La Su

1 个答案:

答案 0 :(得分:0)

我设法通过用芬兰语和一些其他的日期选择器导入矩来解决这一问题:

import React, { Component } from "react";
import {DateRangePicker} from 'react-dates';
import { injectIntl, intlShape } from "react-intl";
import moment from 'moment'
import 'moment/locale/fi';
import 'react-dates/initialize';
import 'react-dates/lib/css/_datepicker.css';

.
.
.

<DateRangePicker
    .
    .
    .
    renderMonthText={month => {
      month.locale(this.props.intl.locale)
      return(
        moment(month).format('MMMM YYYY')
      )
    }}
    renderDayContents={day => {
      day.local(this.props.intl.local)
      return(
        moment(day).format('D')
      )
    }}
  />