Skip to content

Latest commit

 

History

History
119 lines (90 loc) · 3.7 KB

I18n.md

File metadata and controls

119 lines (90 loc) · 3.7 KB

Internacionalización

Day.js soporta muy bien la internacionalización.

Pero no se incluirá en tu compilación final a menos que así lo requieras.

Por defecto, Day.js viene con la configuración regional de Estados Unidos (Inglés).

Pero podemos cargar diferentes configuraciones regionales y alternar entre ellas fácilmente.

Lista de configuraciones regionales soportadas

Estás más que invitado a añadir otra configuración regional abriendo una pull request 👍.

API

Cambio de la configuración regional global

  • Devuelve una cadena de configuración regional
import 'dayjs/locale/es'
import de from 'dayjs/locale/de'
dayjs.locale('es') // uso global de la configuración regional cargada
// uso de la configuración regional y actualización de su nombre predeterminado
dayjs.locale('de-german', de)
// Ver más detalles en la sección «Personalización» más abajo
const customizedLocaleObject = { ... }
// uso de la configuración regional personalizada
dayjs.locale(customizedLocaleObject)
dayjs.locale('en') // switch back to default English locale globally
  • Cambiar la configuración regional global no afecta a las instancias ya existentes.

Cambio local de configuraciones regionales

  • Devuelve un nuevo objeto Dayjs con la nueva configuración regional.

Se usa igual que dayjs#locale, con la salvedad de que se utiliza locale sobre una instancia específica.

import 'dayjs/locale/es'
dayjs().locale('es').format() // uso local de la configuración regional cargada
dayjs('2018-4-28', { locale: es }) // ídem, pero mediante el constructor

Instalación

  • Vía NPM:
import 'dayjs/locale/es' // carga bajo demanda
// require('dayjs/locale/es') // CommonJS
// import locale_es from 'dayjs/locale/es' -> 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:
<script src="https://unpkg.com/dayjs"></script>
<!-- Load locale as window.dayjs_locale_NAME -->
<script src="https://unpkg.com/dayjs/locale/zh-cn"></script>
<script>
  dayjs.locale('zh-cn');
  dayjs().locale('zh-cn').format()
  // get locale object
  var customLocale = window.dayjs_locale_zh_cn // zh-cn -> zh_cn
</script>

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.

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.

import dayjs from 'dayjs'

const locale = { ... } // Your Day.js locale Object.

dayjs.locale(locale, null, true) // load locale for later use

export default locale