Problema
Dois problemas distintos, ligados pelo mesmo arquivo:
1. O locale en promete um suporte que não existe. config/application.rb declara available_locales = %i[pt-BR en], e config/locales/en.yml tem duas linhas:
É o placeholder que o Rails gera. Qualquer coisa que dependa de I18n.available_locales — um seletor de idioma, um Accept-Language, uma futura API multi-idioma — vai acreditar que inglês funciona.
2. A maior parte dos textos da aplicação está hardcoded. O pt-BR.yml cobre mensagens do Rails e do Devise, mas os textos próprios vivem espalhados em controllers, models, services, views, mensagens do Telegram e respostas da API — inclusive mensagens reutilizadas em mais de um lugar.
Isso não é defeito funcional: o app é de locale único e assumido em português. É dívida, e o custo aparece no dia em que a mesma frase precisar mudar em três arquivos.
Proposta
Duas fatias, independentes:
- agora, barato: remover
en de available_locales enquanto não houver tradução de verdade. Deixa de comunicar um suporte inexistente e é reversível numa linha.
- gradual: mover para o I18n os textos reutilizáveis e os exibidos ao usuário, começando pelos que já aparecem repetidos. Não vale converter tudo de uma vez.
Critério de aceite
available_locales reflete o que existe de fato.
- Mensagens duplicadas em mais de um arquivo passam a ter uma chave só.
- Nenhuma mudança de texto visível ao usuário.
Onde
config/application.rb, config/locales/
Problema
Dois problemas distintos, ligados pelo mesmo arquivo:
1. O locale
enpromete um suporte que não existe.config/application.rbdeclaraavailable_locales = %i[pt-BR en], econfig/locales/en.ymltem duas linhas:É o placeholder que o Rails gera. Qualquer coisa que dependa de
I18n.available_locales— um seletor de idioma, umAccept-Language, uma futura API multi-idioma — vai acreditar que inglês funciona.2. A maior parte dos textos da aplicação está hardcoded. O
pt-BR.ymlcobre mensagens do Rails e do Devise, mas os textos próprios vivem espalhados em controllers, models, services, views, mensagens do Telegram e respostas da API — inclusive mensagens reutilizadas em mais de um lugar.Isso não é defeito funcional: o app é de locale único e assumido em português. É dívida, e o custo aparece no dia em que a mesma frase precisar mudar em três arquivos.
Proposta
Duas fatias, independentes:
endeavailable_localesenquanto não houver tradução de verdade. Deixa de comunicar um suporte inexistente e é reversível numa linha.Critério de aceite
available_localesreflete o que existe de fato.Onde
config/application.rb,config/locales/