Я использую pikaday с опцией i18n с названиями месяцев и дней на испанском языке, моя проблема в том, что во входном тексте / заполнителе все еще отображаются английские названия указанных месяцев.
Это мой код JS:
var picker = new Pikaday(
{
numberOfMonths: 2,
field: document.getElementById('datepicker-2months'),
firstDay: 1,
minDate: new Date(2000, 0, 1),
maxDate: new Date(2020, 12, 31),
yearRange: [2000, 2020],
i18n: {
previousMonth : 'Mes anterior',
nextMonth : 'Mes siguiente',
months : ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
weekdays : ['Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sabado'],
weekdaysShort : ['Dom','Lun','Mar','Mier','Jue','Vie','Sab']
}
});
Это должно быть понятно, но я озадачен, так как всплывающий календарь показывает имена на правильном языке, но не в поле ввода.
Нам также нужен код вывода, чтобы помочь вам.
Я создал код для справки из-за значения, указанного во вводе - codepen.io/nagasai/pen/wEKBxx



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш код должен работать нормально. Проверьте другие зависимости, которые могут вызвать проблему.
Проверьте ниже:
var picker = new Pikaday(
{
numberOfMonths: 2,
field: document.getElementById('datepicker-2months'),
firstDay: 1,
minDate: new Date(2000, 0, 1),
maxDate: new Date(2020, 12, 31),
yearRange: [2000, 2020],
i18n: {
previousMonth : 'Mes anterior',
nextMonth : 'Mes siguiente',
months : ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
weekdays : ['Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sabado'],
weekdaysShort : ['Dom','Lun','Mar','Mier','Jue','Vie','Sab']
}
}); <link rel = "stylesheet" href = "https://dbushell.com/Pikaday/css/pikaday.css">
<script src = "https://dbushell.com/Pikaday/pikaday.js"></script>
<br><br><br><br><br><br><br><br><br><br><br>
<label for = "datepicker-2months">Date:</label>
<input type = "text" id = "datepicker-2months">я все еще вижу в тексте заполнителя ввода дату на английском языке? это просто я?
Для достижения ожидаемого результата используйте опцию ниже
<input type = "text" id = "datepicker-2months" value = "9 Octubre 2014">
<link rel = "stylesheet" href = "https://dbushell.com/Pikaday/css/pikaday.css">
<script src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/pikaday/1.6.1/pikaday.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/locale/es.js"></script>
<script>
//Set Locale to spanish
moment.locale('es');
var picker = new Pikaday(
{
numberOfMonths: 2,
field: document.getElementById('datepicker-2months'),
firstDay: 1,
minDate: new Date(2000, 0, 1),
maxDate: new Date(2020, 12, 31),
yearRange: [2000, 2020],
format: 'D MMM YYYY',
i18n: {
previousMonth : 'Mes anterior',
nextMonth : 'Mes siguiente',
months : moment.localeData()._months,
weekdays : moment.localeData()._weekdays,
weekdaysShort : moment.localeData()._weekdaysShort
}
});
</script>Pikaday i18n обычно использует moment.js. Если вы не хотите использовать это, вы должны сделать это самостоятельно. Вы уже указали названия месяца и дня… но не метод, который используется для заполнения значения поля ввода. Это делается методом toString():
var monthNames = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
picker = new Pikaday({
numberOfMonths: 2,
field: document.getElementById('datepicker-2months'),
firstDay: 1,
minDate: new Date(2000, 0, 1),
maxDate: new Date(2020, 12, 31),
yearRange: [2000, 2020],
i18n: {
previousMonth: 'Mes anterior',
nextMonth : 'Mes siguiente',
months : monthNames,
weekdays : ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado'],
weekdaysShort: ['Dom', 'Lun', 'Mar', 'Mier', 'Jue', 'Vie', 'Sab']
},
toString: function(date) {
var parts = [date.getDate(), monthNames[date.getMonth()], date.getFullYear()];
return parts.join(" ");
}
});
Если вы хотите иметь возможность анализировать текст из поля ввода, чтобы получить правильное значение в календаре, вам также необходимо реализовать метод parse() ... но на этом этапе май будет проще использовать moment.js и позволить ему обрабатывать i18n для тебя.
Все это описано в Раздел форматирования документа Pikaday.
Если вы разместите свой код в рабочем фрагменте, вы поможете нам помочь вам ^^