-
-
Save fernandosavio/680a2549e417befea930 to your computer and use it in GitHub Desktop.
// 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º' | |
}); | |
})); |
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');
Como fazer para colocar esse script no React?
Obrigado pela contribuição.
Salvou, muito obrigado!
Muito bom!
Rodei vários sites, várias soluções e vc matou minha necessidade com esse script!
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
Valeu galera! Otima dica!
Muito obrigado pelo trabalho @fernandosavio !!
Inserido dentro de um <script></script>, funcionou direto!
Uma dica alternativa que funcionou pra mim:
https://stackoverflow.com/a/25824717/6112404
Valeu!!!!
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,
Valeuzão!!!
Thanks, man!
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() }
felipegs07 valeu dica massa
@felipegs07 Valeu a dica!
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.
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...
weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_').
is not it Error here?
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!
Funcionou perfeitamente com vis.js, só tomei a liberdade de colocar um capitalize nos meses e dias. Obrigado!
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!!
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
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",
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';
Agora em 2022 funcionou isso para mim, depois de muita pesquisa:
import moment from 'moment';
import 'moment/dist/locale/pt-br';
solução do RyanLucas funcionando em Jan/2023.
import * as moment from 'moment';
import 'moment/min/locales';
moment.locale('pt-br');
There is an error in "weekdaysMin"