Buefy es un paquete de componentes que combinan BulmaCSS y Vue.js. Entre esos componentes encontramos el b-datepicker
que no es más que un seleccionador de fechas, calendario o datepicker.
Por defecto viene en inglés, pero provee la manera de especificar los meses y días en español, cosa que te enseñaré hoy: cómo poner el datepicker de Buefy en español.
Especificar meses y días en español
Si leemos la documentación del componente en la página oficial veremos que podemos indicar el nombre de los meses como un arreglo, al igual que el nombre de los días. Para ello se usa respectivamente month-names
y day-names
.
Estos valores pueden ser escritos directamente en la plantilla o pueden ser parte de la lógica del componente, es decir, venir desde JavaScript.
Datepicker de Buefy en español: html
Como lo dije, podemos pasar los valores directamente en la vista:
<b-datepicker
:day-names="['D', 'L', 'M', 'M', 'J', 'V', 'S']"
:month-names="['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']"
:show-week-number="true"
icon="calendar-today"
placeholder="Seleccione la fecha"
trap-focus>
</b-datepicker>
En data de componente
O podemos ponerlos como arreglos en JavaScript dentro del componente de Vue en data
:
data: () => ({
// ...
calendario: {
meses: [
'enero',
'febrero',
'marzo',
'abril',
'mayo',
'junio',
'julio',
'agosto',
'septiembre',
'octubre',
'noviembre',
'diciembre',
],
dias: [
'do',
'lu',
'ma',
'mi',
'ju',
'vi',
'sá',
],
},
}),
Y luego usarlos en el HTML:
<b-datepicker
:day-names="calendario.dias"
:month-names="calendario.meses"
:show-week-number="true"
icon="calendar-today"
placeholder="Seleccione la fecha"
trap-focus>
</b-datepicker>
Seleccionador de fecha en español
Sea cual sea el método que hayas usado, al final tendrás el datepicker en idioma español y con los nombres que tú hayas elegido. En mi caso se ve así:
Y, por cierto, para tener la primer letra mayúscula utilicé map y la función para convertir la primer letra a mayúscula. Algo así:
calendario: {
meses: MESES_MINUSCULA.map(UtilesService.primerCaracterMayuscula),
dias: NOMBRES_CORTOS_DIAS.map(UtilesService.primerCaracterMayuscula),
},
Soy yo nuevamente, reencontré la solución, gran artículo, parece una nimiedad, pero no, ¡No quiero tener el calendario en inglés y avanzar así en lo que hago, es una pequeña espinita que gracias a tú artículo soluciono.
¡Gracias!
¡Grandioso!