J'utilise react-datepicker package NPM,
J'ai essayé de suivre la documentation mais je n'ai pas pu importer
registerLocale
et
setDefaultLocale
de react-datepicker
Voyez-vous où je me trompe?
import DatePicker from 'react-datepicker';
...
<DatePicker
{ ...this.props }
dateFormat={ this.dateFormat }
ref={ (node) => { this.ref = node; } }
onClickOutside={ this.clickOutside }
/>
...
c'est le code où je veux importer les paramètres régionaux.
Assurez-vous tout d'abord que vous utilisez la dernière version du plugin ( 2.0.0 ). Ensuite, vous devez également installer le date-fns
module, mais pour le moment le react-datepicker
fonctionne avec la version 2.0.0-alpha.23.
Ensuite, vous devez importer et enregistrer les paramètres régionaux souhaités et enfin ajouter la propriété locale
à la DatePicker
donc ( après avoir installé les bonnes versions )
import DatePicker, { registerLocale } from "react-datepicker";
import el from "date-fns/locale/el"; // the locale you want
registerLocale("el", el); // register it with the name you want
et l'utiliser
<DatePicker
locale="el"
...
/>
Démo de travail sur https://codesandbox.io/s/7j8z7kvy06
import React, { Component } from 'react';
import DatePicker, { registerLocale } from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import ja from "date-fns/locale/ja";
registerLocale("ja", ja);
class App extends Component {
constructor(props) {
super(props);
this.state = {
date: new Date()
}
this.handleChange = this.handleChange.bind(this);
}
handleChange(date) {
this.setState({
date
});
}
render() {
return (
<div className="App">
<body>
<DatePicker
dateFormat="yyyy/MM/dd"
selected={this.state.date}
onChange={this.handleChange}
locale='ja'
/>
</body>
</div>
);
}
}
export default App;
Je pourrais obtenir le résultat que vous vouliez. Et j'ai essayé de le faire avec la bibliothèque moment
mais cela n'a pas fonctionné sur mon code. Désolé
Vous n'avez même pas besoin d'utiliser registerLocale, utilisez simplement le nom de la variable d'importation ja sans guillemets:
<DatePicker
dateFormat="yyyy/MM/dd"
selected={this.state.date}
onChange={this.handleChange}
locale=ja
/>
Vous pouvez également définir les paramètres régionaux par défaut pour tous les champs du sélecteur de date avec setDefaultLocale:
constructor (props) {
registerLocale("ja", ja);
setDefaultLocale("ja");
}
J'espère que cela t'aides.
Pour ceux qui ne veulent pas dépendre de date-fns
module vous pouvez définir votre propre localisation.
const months = ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık']
const days = ['Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct', 'Pz']
const locale = {
localize: {
month: n => months[n],
day: n => days[n]
},
formatLong: {}
}
<DatePicker locale={locale} />
Dans le cas où vous souhaitez utiliser un paramètre régional, qui n'est pas pris en charge par date-fns (et ceux-ci sont assez peu nombreux), vous pouvez faire un shim.
const monthsBG = ['Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни', 'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'];
const daysBG = ['нед', 'пон', 'вт', 'ср', 'четв', 'пет', 'съб'];
registerLocale('bg', {
localize: {
month: n => monthsBG[n],
day: n => daysBG[n]
},
formatLong:{}
});
puis vous pouvez utiliser ce paramètre régional comme tout autre
<DatePicker
locale="bg"
...
/>