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 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.
- 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
- 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>
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