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.
Você será bem-vindo para adicionar um locale abrindo um pull request. 👍
- 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
- Mudar o locale global não afeta instâncias já existentes.
- 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
- 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>
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