fractaledmind / solid_errors

database-backed, app-internal exception tracker for Rails applications
MIT License
332 stars 17 forks source link

`I18n::InvalidLocale` error when `:en` is not included in `config.i18n.available_locales` #70

Open BarnabeD opened 4 weeks ago

BarnabeD commented 4 weeks ago

It's not a bug, but possibly a new feature! 😄

My issue:

I'm building a French-only application with solid_errors and I get this error I18n::InvalidLocale. My application will be available in different languages, but for now, the only locale available is :fr. In solid_errors the locale is forced in the ErrorsController by around_action :force_english_locale!

I patched it with this initializer, added the locale keys to my locale file and everything works fine:

Rails.application.config.to_prepare do
  SolidErrors::ErrorsController.class_eval do
    skip_around_action :force_english_locale!
  end
end

My suggestions:

I think about two solutions :

Let me know if this feature catches your attention, I'm ready to help.

fractaledmind commented 4 weeks ago

Hmm... You are right, I don't love this. That change originated with PR #36 which was added to avoid missing translations:

because the engine is using the custom "datetime.distance_in_words.short" translation set, which doesn't exist on rails-i18n.

So, what we need, I think, is a localization flexible approach to the views. But I would love to make the localization story in Solid Errors much better, and I am happy to see your take on it.