O calendário exibido na rota /upcoming-events criada pelo plugin discourse-calendar não parece puxar as traduções i18n para os botões do FullCalendar. O calendário sempre exibe os padrões do FullCalendar, como “today” para o botão correspondente.
Minha suposição para o motivo pelo qual isso acontece (sem ter analisado o discourse ou seus plugins muito a fundo antes, então leve isso com uma pitada de sal):
Ao olhar para o discourse-calendar.js, o FullCalendar é inicializado com as opções buttonText e locale definidas (veja a linha 144).