diff --git a/README.md b/README.md index 1d3533b2a..ea1c4f5e8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -English | [简体中文](./docs/zh-cn/README.zh-CN.md) | [日本語](./docs/ja/README-ja.md) | [Português Brasileiro](./docs/pt-br/README-pt-br.md) | [한국어](./docs/ko/README-ko.md) +English | [简体中文](./docs/zh-cn/README.zh-CN.md) | [日本語](./docs/ja/README-ja.md) | [Português Brasileiro](./docs/pt-br/README-pt-br.md) | [한국어](./docs/ko/README-ko.md) | [Español (España)](./docs/es-es/README-es-es.md)
Alternativa ligera, 2kB, a Moment.js, con la misma API moderna
+ carga y obtiene el objeto de configuración regional en locale_es
+
+dayjs.locale('es') // uso global de la configuración regional
+// uso de la configuración regional en una instancia específica
+dayjs().locale('es').format()
+```
+
+* Vía CDN:
+
+```html
+
+
+
+
+```
+
+## Personalización
+
+You could create your own locale.
+
+Feel free to open a pull request to share your locale.
+
+Template of a Day.js locale Object.
+```javascript
+const localeObject = {
+ name: 'es', // name String
+ weekdays: 'Domingo_Lunes ...'.split('_'), // weekdays Array
+ weekdaysShort: 'Sun_M'.split('_'), // OPTIONAL, short weekdays Array, use first three letters if not provided
+ weekdaysMin: 'Su_Mo'.split('_'), // OPTIONAL, min weekdays Array, use first two letters if not provided
+ months: 'Enero_Febrero ... '.split('_'), // months Array
+ monthsShort: 'Jan_F'.split('_'), // OPTIONAL, short months Array, use first three letters if not provided
+ ordinal: n => `${n}º`, // ordinal Function (number) => return number + output
+ relativeTime: { // relative time format strings, keep %s %d as the same
+ future: 'in %s', // e.g. in 2 hours, %s been replaced with 2hours
+ past: '%s ago',
+ s: 'a few seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours', // e.g. 2 hours, %d been replaced with 2
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years'
+ }
+}
+```
+
+Template of a Day.js locale file.
+```javascript
+import dayjs from 'dayjs'
+
+const locale = { ... } // Your Day.js locale Object.
+
+dayjs.locale(locale, null, true) // load locale for later use
+
+export default locale
+```
diff --git a/docs/es-es/Installation.md b/docs/es-es/Installation.md
new file mode 100644
index 000000000..0a93489b7
--- /dev/null
+++ b/docs/es-es/Installation.md
@@ -0,0 +1,30 @@
+# Guía de instalación
+
+Tienes a tu disposición varias opciones para obtener y utilizar Day.js:
+
+* Vía NPM:
+
+```console
+npm install dayjs --save
+```
+
+```js
+import dayjs from 'dayjs'
+// O con CommonJS
+// var dayjs = require('dayjs');
+dayjs().format();
+```
+
+* Vía CDN:
+
+```html
+
+
+
+```
+
+* Vía descarga directa y autohospedaje:
+
+Simplemente descarga la última versión de Day.js en [https://unpkg.com/dayjs/](https://unpkg.com/dayjs/).
\ No newline at end of file
diff --git a/docs/es-es/Plugin.md b/docs/es-es/Plugin.md
new file mode 100644
index 000000000..f5e702932
--- /dev/null
+++ b/docs/es-es/Plugin.md
@@ -0,0 +1,203 @@
+# Lista de complementos
+
+Un complemento o *plugin* es un módulo independiente que puede añadirse a Day.js para extender su funcionalidad o añadir nuevas características.
+
+Por defecto, Day.js viene sin ningún complemento preinstalado, incluyendo únicamente el núcleo de la librería.
+
+Puedes cargar diversos complementos según tus necesidades.
+
+## API
+
+### Extend
+
+* Devuelve un objeto dayjs
+
+Método para declarar el uso de un complemento.
+
+```js
+import nombreComplemento
+dayjs.extend(nombreComplemento)
+dayjs.extend(nombreComplemento, options) // uso del complemento con opciones
+```
+
+## Instalación
+
+* Vía NPM:
+
+```javascript
+import dayjs from 'dayjs'
+import AdvancedFormat from 'dayjs/plugin/advancedFormat' // carga bajo demanda
+
+dayjs.extend(AdvancedFormat) // uso del complemento
+```
+
+* Vía CDN:
+
+```html
+
+
+
+
+```
+
+## Lista de complementos oficiales
+
+### AdvancedFormat
+
+* AdvancedFormat extiende la API `dayjs().format` para proporcionar más opciones de formato.
+
+```javascript
+import advancedFormat from 'dayjs/plugin/advancedFormat'
+
+dayjs.extend(advancedFormat)
+
+dayjs().format('Q Do k kk X x')
+```
+
+Lista de formatos añadidos:
+
+| Formato | Salida | Descripción |
+| ------- | ---------------- | ------------------------------------- |
+| `Q` | 1-4 | Cuarto |
+| `Do` | 1º 2º ... 31º | Día del mes con ordinal |
+| `k` | 1-23 | Hora, contando desde 1 |
+| `kk` | 01-23 | Hora, con 2 dígitos, contando desde 1 |
+| `X` | 1360013296 | Tiempo Unix en segundos |
+| `x` | 1360013296123 | Tiempo Unix en milisegundos |
+
+### RelativeTime
+
+* RelativeTime añade las API `.from` `.to` `.fromNow` `.toNow` para dar formato de tiempo relativo a fechas (p.ej.: hace 3 horas).
+
+```javascript
+import relativeTime from 'dayjs/plugin/relativeTime'
+
+dayjs.extend(relativeTime)
+
+dayjs().from(dayjs('1990')) // hace 2 años
+dayjs().from(dayjs(), true) // 2 años
+
+dayjs().fromNow()
+
+dayjs().to(dayjs())
+
+dayjs().toNow()
+```
+
+#### Tiempo desde ahora `.fromNow(withoutSuffix?: boolean)`
+
+Devuelve un dato de tipo `string`, con el tiempo relativo desde el instante actual.
+
+#### Tiempo desde X `.from(compared: Dayjs, withoutSuffix?: boolean)`
+
+Devuelve un dato de tipo `string`, con el tiempo relativo desde el instante X.
+
+#### Tiempo hasta ahora `.toNow(withoutSuffix?: boolean)`
+
+Devuelve dato de tipo `string`, con el tiempo relativo transcurrido desde la fecha representada por el objeto `Dayjs` dado hasta el instante actual.
+
+#### Tiempo hasta X `.to(compared: Dayjs, withoutSuffix?: boolean)`
+
+Devuelve dato de tipo `string`, con el tiempo relativo transcurrido desde la fecha representada por el objeto `Dayjs` dado hasta el instante X especificado.
+
+| Rango | Clave | Ejemplo de salida |
+| ---------------------------- | ------ | ---------------------------------- |
+| de 0 a 44 segundos | s | hace unos segundos |
+| de 45 a 89 segundos | m | hace un minuto |
+| de 90 segundos a 44 minutos | mm | hace 2 minutos ... hace 44 minutos |
+| de 45 a 89 minutos | h | hace una hora |
+| de 90 minutos a 21 horas | hh | hace 2 horas ... hace 21 horas |
+| de 22 a 35 horas | d | hace un día |
+| de 36 horas a 25 días | dd | hace 2 días ... hace 25 días |
+| de 26 a 45 días | M | hace un mes |
+| de 46 días a 10 meses | MM | hace 2 meses ... hace 10 meses |
+| de 11 a 17 meses | y | hace un año |
+| más de 18 meses | yy | hace 2 años ... hace 20 años |
+
+### IsLeapYear
+
+* IsLeapYear añade la API `.isLeapYear`, que devuelve un dato de tipo `boolean` indicando si el año del objeto `Dayjs` es bisiesto o no.
+
+```javascript
+import isLeapYear from 'dayjs/plugin/isLeapYear'
+
+dayjs.extend(isLeapYear)
+
+dayjs('2000-01-01').isLeapYear(); // true
+```
+
+### BuddhistEra
+
+* BuddhistEra extiende la API `dayjs().format` para añadir opciones de formato relacionadas con la Era Budista (B.E.)
+* La Era Budista es un sistema de numeración anual, usado principalmente en los países del sudeste del continente asiático: Camboya, Laos, Birmania y Tailandia,así como en Sri Lanka y entre la población china de Malasia y Singapur, por razones religiosas o en eventos oficiales ([Wikipedia](https://en.wikipedia.org/wiki/Buddhist_calendar))
+* Para calcular manualmente el año de la BE tan sólo hemos de sumar 543 al año. Por ejemplo, el 26 Mayo 1977 AD/EC debe mostrarse como 26 Mayo 2520 BE (1977 + 543)
+
+```javascript
+import buddhistEra from 'dayjs/plugin/buddhistEra'
+
+dayjs.extend(buddhistEra)
+
+dayjs().format('BBBB BB')
+```
+
+Lista de formatos añadidos:
+
+| Formato | Salida | Descripción |
+| ------- | ---------------- | ------------------------------------- |
+| `BBBB` | 2561 | Año BE completo (Año + 543) |
+| `BB` | 61 | Año BE con 2 dígitos |
+
+### WeekOfYear
+
+* WeekOfYear añade la API `.week()`, que devuelve un dato de tipo `number` indicando la semana del año correspondiente a la fecha del objeto `Dayjs`.
+
+```javascript
+import weekOfYear from 'dayjs/plugin/weekOfYear'
+
+dayjs.extend(weekOfYear)
+
+dayjs('06/27/2018').week() // 26
+```
+
+### IsBetween
+
+* IsBetween añade la API `.isBetween()`, que devuelve un dato de tipo `boolean` indicando si una fecha se encuentra o no entre otras dos dadas.
+
+```javascript
+import isBetween from 'dayjs/plugin/isBetween'
+
+dayjs.extend(isBetween)
+
+dayjs('2010-10-20').isBetween('2010-10-19', dayjs('2010-10-25')); // true
+```
+
+## Personalización
+
+Puedes construir tu propio complemento de Day.js para cubrir tus necesidades.
+
+Siéntete libre de abrir una pull request para compartir tu complemento.
+
+Plantilla de un complemento de Day.js.
+
+```javascript
+export default (option, dayjsClass, dayjsFactory) => {
+ // extensión de dayjs()
+ // p.ej.: se añade dayjs().isSameOrBefore()
+ dayjsClass.prototype.isSameOrBefore = function (arguments) {}
+
+ // extensión de dayjs
+ // p.ej.: se añade dayjs.utc()
+ dayjsFactory.utc = (arguments) => {}
+
+ // sobrescritura de la API existente
+ // p.ej.: extensión de dayjs().format()
+ const oldFormat = dayjsClass.prototype.format
+ dayjsClass.prototype.format = function (arguments) {
+ // result contiene el formato original
+ const result = oldFormat(arguments)
+ // se ha de devolver result modificado
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/es-es/README-es-es.md b/docs/es-es/README-es-es.md
new file mode 100644
index 000000000..7172189b9
--- /dev/null
+++ b/docs/es-es/README-es-es.md
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Licencia
+
+Day.js está licenciada bajo la [Licencia MIT](./LICENSE).
diff --git a/src/locale/es-es.js b/src/locale/es-es.js
new file mode 100644
index 000000000..ee630fdaa
--- /dev/null
+++ b/src/locale/es-es.js
@@ -0,0 +1,27 @@
+import dayjs from 'dayjs'
+
+const locale = {
+ name: 'es-es',
+ weekdays: 'Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado'.split('_'),
+ months: 'Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre'.split('_'),
+ relativeTime: {
+ future: 'en %s',
+ past: 'hace %s',
+ s: 'unos segundos',
+ m: 'un minuto',
+ mm: '%d minutos',
+ h: 'una hora',
+ hh: '%d horas',
+ d: 'un día',
+ dd: '%d días',
+ M: 'un mes',
+ MM: '%d meses',
+ y: 'un año',
+ yy: '%d años'
+ },
+ ordinal: n => `${n}º`
+}
+
+dayjs.locale(locale, null, true)
+
+export default locale