Skip to content

Latest commit

 

History

History
143 lines (112 loc) · 4.34 KB

I18n.md

File metadata and controls

143 lines (112 loc) · 4.34 KB

Internacionalização

Day.js possui um ótimo suporte para internacionalização.

Porém nenhuma delas estarão incluídas no seu build até que você as utilize.

Por padrão, Day.js vem com o locale Inglês (Estados Unidos).

Você pode carregar múltiplos locales e alternar entre eles facilmente.

Lista de locales disponíveis

Você será bem-vindo para adicionar um locale abrindo um pull request. 👍

API

Mudando locale globalmente

  • Retorna uma string com o locale global
import 'dayjs/locale/es'
import de from 'dayjs/locale/de'
dayjs.locale('es') // usar a localidade 'es' globalmente
dayjs.locale('de-german', de) // usar a localidade 'de' e alterar a string padrão
const customizedLocaleObject = { ... } // mais detalhes podem ser vistos na sessão de customização abaixo
dayjs.locale(customizedLocaleObject) // usar uma localidade customizada
dayjs.locale('en') // alterna de volta a localidade globalmente para padrão em inglês 
  • Mudar o locale global não afeta instâncias já existentes.

Mudar locales localmente

  • Retorna um novo objeto Dayjs para ser substituído por um novo locale

Exatamente o mesmo que dayjs#locale, porém utilizando somente o locale em uma instâcia específica.

import 'dayjs/locale/es'
dayjs()
  .locale('es')
  .format() // usar a localidade localmente
dayjs('2018-4-28', { locale: 'es' }) // também pode ser feito no construtor

Instalação

  • Via NPM:
import 'dayjs/locale/es' // carrega a localidade 'es'
// require('dayjs/locale/es') // se estiver usando CommonJS
// import locale_es from 'dayjs/locale/es' -> carrega e obtém o objeto de localidade locale_es

dayjs.locale('es') // usa a localidade globalmente
dayjs()
  .locale('es')
  .format() // usa a localidade em uma instância específica
  • Via CDN:
<script src="https://unpkg.com/dayjs"></script>
<!-- carregar locale como window.dayjs_locale_NOME -->
<script src="https://unpkg.com/dayjs/locale/pt-br"></script>
<script>
  dayjs.locale('pt-br')
  dayjs()
    .locale('pt-br')
    .format()
  // obtém o objeto de localidade
  var customLocale = window.dayjs_locale_zh_cn // pt-br -> pt-br
</script>

Customizar

Você pode criar o seu próprio locale.

Sinta-se a vontade para abrir uma pull request e compartilhar sua locale.

Modelo de um objeto locale Day.js.

const objetoLocale = {
  name: 'es', // nome: String
  weekdays: 'Domingo_Lunes ...'.split('_'), // dias da semana: Array
  weekdaysShort: 'Sun_M'.split('_'), // OPCIONAL, dias da semana com nome curto: Array, utiliza as três primeiras letras se nenhuma for especificada
  weekdaysMin: 'Su_Mo'.split('_'), // OPCIONAL, dias da semana com nome mínimo: Array, utiliza as duas primeiras letras se nenhuma for especificada
  weekStart: 1, // OPCIONAL, define o início da semana. Se o valor for 1, Segunda-feira será o início da semana ao invés de Domingo。
  months: 'Enero_Febrero ... '.split('_'), // meses: Array
  monthsShort: 'Jan_F'.split('_'), // OPCIONAL, meses com nome curto: Array, utiliza as três primeiras letras se nenhuma for especificada
  ordinal: n => `${n}º`, // ordinal: Function (number) => retorna number + saída
  formats: {
    // opções para formatos localizados
    LTS: 'h:mm:ss A',
    LT: 'h:mm A',
    L: 'MM/DD/YYYY',
    LL: 'MMMM D, YYYY',
    LLL: 'MMMM D, YYYY h:mm A',
    LLLL: 'dddd, MMMM D, YYYY h:mm A',
    // formatos localizados/curtos opcionais
    l: 'D/M/YYYY',
    ll: 'D MMM, YYYY',
    lll: 'D MMM, YYYY h:mm A',
    llll: 'ddd, MMM D, YYYY h:mm A'
  },
  relativeTime: {
    // formato relativo de horas, mantém %s %d como o mesmo
    future: 'em %s', // exemplo: em 2 horas, %s será substituído por 2 horas
    past: '%s ago',
    s: 'a few seconds',
    m: 'a minute',
    mm: '%d minutes',
    h: 'an hour',
    hh: '%d hours', // exemplo: em 2 horas, %s será substituído por 2
    d: 'a day',
    dd: '%d days',
    M: 'a month',
    MM: '%d months',
    y: 'a year',
    yy: '%d years'
  },
  meridiem: (hour, minute, isLowercase) => {
    // OPTIONAL, AM/PM
    return hour > 12 ? 'PM' : 'AM'
  }
}

Modelo de um arquivo locale do Day.js.

import dayjs from 'dayjs'

const locale = { ... } // seu objeto de localidade

dayjs.locale(locale, null, true) // carrega a localidade para uso posterior

export default locale