Skip to content

Latest commit

 

History

History
114 lines (86 loc) · 3.62 KB

I18n.md

File metadata and controls

114 lines (86 loc) · 3.62 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 o locale es globalmente
dayjs.locale('de-german', de) // usar o locale 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 locale customizado
dayjs.locale('en') // switch back to default English locale globally
  • 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 locale localmente
dayjs('2018-4-28', { locale: es }) // também pode ser feito no constructor

Instalação

  • Via NPM:
import 'dayjs/locale/es' // carregar locale es
// require('dayjs/locale/es') // se estiver usando CommonJS
// import locale_es from 'dayjs/locale/es' -> carregar e obter objeto locale locale_es

dayjs.locale('es') // usar locale globalmente
dayjs().locale('es').format() // usar locale 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()
  // obter objeto locale
  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
  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
  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'
  }
}

Modelo de um arquivo locale do Day.js.

import dayjs from 'dayjs'

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

dayjs.locale(locale, null, true) // carregar locale para uso posterior

export default locale