v4.1.0
Changelog 📥
[4.1.0] — 27/07/2026
🔄 🇪🇸🇺🇸🇧🇷 - Trocar de idioma pela tela e ler arquivo de qualquer banco
Botão de idioma no cabeçalho
O 🌐 no topo abre idioma e moeda. A escolha vale na hora — sem editar arquivo, sem reiniciar o servidor — e fica salva no seu banco, então continua valendo na próxima vez que abrir.
A moeda é um campo separado, e isso é de propósito. Seus lançamentos são guardados em centavos, sem moeda nenhuma junto. Se trocar o idioma trocasse a moeda automaticamente, um saldo de R$ 1.000 passaria a aparecer como $ 1.000 em pesos: o mesmo número, com outro significado, sem nada ter sido convertido. Trocar o idioma muda texto, mês e formato de data; a moeda só muda se você mudar.
Lê arquivo de banco brasileiro e estrangeiro (teste com Mercado Pago - Argentina) sem tropeçar na formatação
Um punhado de detalhes chatos que faziam extrato bom ser lido errado:
Acentuação. Extrato de banco costuma vir em Windows-1252, não em UTF-8. Antes, "Transferência" virava "Transferência" — e entrava assim no banco de dados. Agora a codificação é detectada (inclusive quando o arquivo mente sobre qual usa) e o texto entra íntegro.
Separadores e datas. O leitor de CSV decide o formato olhando a coluna inteira, não cada célula isolada: se qualquer valor da coluna usa vírgula decimal, a coluna toda é lida no padrão brasileiro/argentino; se alguma data tem dia acima de 12, a ordem dia/mês fica definida para todas as linhas. Também aceita ponto e vírgula, vírgula, tabulação e barra vertical como separador, campo entre aspas com vírgula dentro, valor negativo entre parênteses ou com sinal à direita, colunas separadas de débito e crédito, e o espaço invisível que alguns bancos colocam no meio dos números.
Linhas que não são transação. Preâmbulo, cabeçalho repetido a cada página, saldo, subtotal e rodapé deixam de ser importados como lançamento. No OFX, a linha "SALDO ANTERIOR" que alguns bancos emitem disfarçada de transação aparecia como uma receita do tamanho do seu saldo.
Conferência por saldo. Quando o arquivo traz saldo, o app reconstrói a sequência inteira e confere: saldo inicial + lançamentos = saldo final. Se não fechar, ele avisa em vez de gravar. Foi esse tipo de checagem que pegou um erro que a simples soma de totais deixava passar.
Você vê quem leu o arquivo. A importação informa qual banco foi reconhecido, com que confiança e em que codificação — para você saber quando desconfiar.
Correção
Renomear uma categoria padrão passou a valer também na resposta da API, que ntes podia mostrar o nome traduzido enquanto a tela mostrava o seu.
Para quem mexe no código
Idioma e moeda vivem na tabela settings (esquema v5, criada automaticamente). Nada de formatação pode ser calculado na carga do módulo — um Intl no topo do arquivo passa no teste da primeira execução e mente na segunda; node scripts/testar idioma.mjs existe justamente para pegar isso. A suíte dos leitores de arquivo foi de 166 para 229 verificações.