Skip to content

Instantly share code, notes, and snippets.

@fernandosavio
Created September 1, 2014 13:09
Show Gist options
  • Star 56 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save fernandosavio/680a2549e417befea930 to your computer and use it in GitHub Desktop.
Save fernandosavio/680a2549e417befea930 to your computer and use it in GitHub Desktop.
Locale pt-br of Moment.js
// moment.js locale configuration
// locale : brazilian portuguese (pt-br)
// author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
(function (factory) {
if (typeof define === 'function' && define.amd) {
define(['moment'], factory); // AMD
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
factory(window.moment); // Browser global
}
}(function (moment) {
return moment.defineLocale('pt-br', {
months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),
weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
longDateFormat : {
LT : 'HH:mm',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY [às] LT',
LLLL : 'dddd, D [de] MMMM [de] YYYY [às] LT'
},
calendar : {
sameDay: '[Hoje às] LT',
nextDay: '[Amanhã às] LT',
nextWeek: 'dddd [às] LT',
lastDay: '[Ontem às] LT',
lastWeek: function () {
return (this.day() === 0 || this.day() === 6) ?
'[Último] dddd [às] LT' : // Saturday + Sunday
'[Última] dddd [às] LT'; // Monday - Friday
},
sameElse: 'L'
},
relativeTime : {
future : 'em %s',
past : '%s atrás',
s : 'segundos',
m : 'um minuto',
mm : '%d minutos',
h : 'uma hora',
hh : '%d horas',
d : 'um dia',
dd : '%d dias',
M : 'um mês',
MM : '%d meses',
y : 'um ano',
yy : '%d anos'
},
ordinal : '%dº'
});
}));
@alex84G
Copy link

alex84G commented Jun 6, 2017

There is an error in "weekdaysMin"

@ggwebdev
Copy link

Muito bom Fernando! Pra o meu funcionar aqui como eu queria tive que chamar na criação da data da inicialização do daterangepicker. Se alguém precisar tá aí o código:

moment(date, "D_M_YYYY").locale('pt-br').format('ddd');

@MateusSilveira98
Copy link

Como fazer para colocar esse script no React?

@fernandodiassp
Copy link

Obrigado pela contribuição.

@josejlpp
Copy link

Salvou, muito obrigado!

@brdamico
Copy link

brdamico commented Feb 1, 2018

Muito bom!
Rodei vários sites, várias soluções e vc matou minha necessidade com esse script!

@erickveras
Copy link

Quem ta dando problema na tradução provavelmente deve ser porque deve estar usando a versão antiga do moment.js
Para funcionar a tradução basta trocar no arquivo de tradução
moment.defineLocale por moment.lang

@thsdeveloper
Copy link

Valeu galera! Otima dica!

@JoabMendes
Copy link

Muito obrigado pelo trabalho @fernandosavio !!

@morezco
Copy link

morezco commented May 14, 2018

Inserido dentro de um <script></script>, funcionou direto!

@victorguerra95
Copy link

Uma dica alternativa que funcionou pra mim:
https://stackoverflow.com/a/25824717/6112404

@guimaraesrodrigues
Copy link

Valeu!!!!

@mmartins-adm
Copy link

Olá, sou iniciante em programação, e estou tendo problemas com a tradução para o português nos nomes dos meses do "Chart.js.". Fui informado que devo utiliza o "moment.js". Pois bem, fiz o download de quatro arquivos:

a) "moment.js"
b) "moment.min.js"
c) "moment-with-locales.min.js"
d) "pt-br.js"

Meu projeto está dividido assim:
a) header
b) Conteúdo neste caso, Dashboard (Gráficos)
c) footer

Eu fiz as referências dos scripts conforme fui informado, mas ainda não funciona. /devo estar cometendo algum erro mas não sei onde.
Alguém pode me ajudar?

Se precisar envio cópia das códigos utilizados.

Grato,

@Webiliza
Copy link

Webiliza commented Jan 2, 2019

Valeuzão!!!

@MateusStanki
Copy link

Thanks, man!

@felipegs07
Copy link

felipegs07 commented May 17, 2019

Pra quem for usar no React, o melhor jeito é importar o locale da própria biblioteca.
import * as moment from 'moment'; import 'moment/locale/pt-br';
Assim importa a biblioteca no objeto moment e importa o pt-br da pasta de locale.
e depois na hora de chamar a função pra formatar colocar o parâmetro de locale:
{ moment(props.date).locale('pt-br').fromNow() }

@paulospiguel
Copy link

felipegs07 valeu dica massa

@luco
Copy link

luco commented Aug 8, 2019

@felipegs07 Valeu a dica!

@fernandosavio
Copy link
Author

Pessoal, o código que postei é antigo e não deve funcionar com a versão atual do Moment.js.

Hoje é mais fácil usar a CDN carregar o arquivo da tradução em pt-BR direto na página.

Exemplo:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/locale/pt-br.js"></script>
<script>
    let hoje = moment().format("LL");
    console.log(hoje)
</script>

Veja rodando no JSFiddle

Se você estiver usando Webpack (com Vue, React, Angular, etc...) a documentação oficial do Moment.js recomenda usar o plugin moment-locales-webpack-plugin senão o bundle vai incluir todas as traduções e como 75% do código são traduções, você vai querer eliminar as que você não vai usar.

@jailsonpaca
Copy link

Pra quem for usar no React, o melhor jeito é importar o locale da própria biblioteca.
import * as moment from 'moment'; import 'moment/locale/pt-br';
Assim importa a biblioteca no objeto moment e importa o pt-br da pasta de locale.
e depois na hora de chamar a função pra formatar colocar o parâmetro de locale:
{ moment(props.date).locale('pt-br').fromNow() }

VALEU MANO! Deus Abençoe...

@Srinivas-Alle
Copy link

weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_').
is not it Error here?

@moreirapontocom
Copy link

Pra quem for usar no React, o melhor jeito é importar o locale da própria biblioteca.
import * as moment from 'moment'; import 'moment/locale/pt-br';
Assim importa a biblioteca no objeto moment e importa o pt-br da pasta de locale.
e depois na hora de chamar a função pra formatar colocar o parâmetro de locale:
{ moment(props.date).locale('pt-br').fromNow() }

Estou usando Angular e foi da mesma forma.
Obrigado!

@Rafaellinos
Copy link

Funcionou perfeitamente com vis.js, só tomei a liberdade de colocar um capitalize nos meses e dias. Obrigado!

@TCasablancas
Copy link

Pra quem for usar no React, o melhor jeito é importar o locale da própria biblioteca.
import * as moment from 'moment'; import 'moment/locale/pt-br';
Assim importa a biblioteca no objeto moment e importa o pt-br da pasta de locale.
e depois na hora de chamar a função pra formatar colocar o parâmetro de locale:
{ moment(props.date).locale('pt-br').fromNow() }

É necessário importar a linguagem antes de declarar na função (import 'moment/locale/pt-br'). Muito obrigado pela dica!!

@jaccon
Copy link

jaccon commented Mar 14, 2020

Pra quem for usar no React, o melhor jeito é importar o locale da própria biblioteca.
import * as moment from 'moment'; import 'moment/locale/pt-br';
Assim importa a biblioteca no objeto moment e importa o pt-br da pasta de locale.
e depois na hora de chamar a função pra formatar colocar o parâmetro de locale:
{ moment(props.date).locale('pt-br').fromNow() }

É necessário importar a linguagem antes de declarar na função (import 'moment/locale/pt-br'). Muito obrigado pela dica!!

Funciona perfeitamente com o React Native. Importei o local e na chamada do método especifiquei o local BRL

@tfreitas1983
Copy link

import * as moment from 'moment'; import 'moment/locale/pt-br'

Funcionou pra mim também.

Eu estava sofrendo porque ao instalar o moment estava dando erro:

Error: Cannot find module "./locale" \node_modules\moment\src\lib\moment\prototype.js:

Aí achei em outro fórum que a solução era colocar no package.json a versão abaixo e rodar o npm install
"moment": "2.24.0",
"moment-timezone": "0.5.28",

@cfellixfs
Copy link

Pra quem for usar no React, o melhor jeito é importar o locale da própria biblioteca.
import * as moment from 'moment'; import 'moment/locale/pt-br';
Assim importa a biblioteca no objeto moment e importa o pt-br da pasta de locale.
e depois na hora de chamar a função pra formatar colocar o parâmetro de locale:
{ moment(props.date).locale('pt-br').fromNow() }

agora em 2020, no React Native, funcionou importando da seguinte maneira:
import moment from 'moment';
import 'moment/locale/pt-br';

@Ryanlucass
Copy link

Agora em 2022 funcionou isso para mim, depois de muita pesquisa:
import moment from 'moment';
import 'moment/dist/locale/pt-br';

@igorct1
Copy link

igorct1 commented Jan 31, 2023

solução do RyanLucas funcionando em Jan/2023.

@Wellers0n
Copy link

import * as moment from 'moment';
import 'moment/min/locales';

moment.locale('pt-br');

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment