solid_errors icon indicating copy to clipboard operation
solid_errors copied to clipboard

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

Open BarnabeD opened this issue 1 year ago • 1 comments

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 :

  • Changing the hardcoded :en locale and rely on the application's default locale.
  • Add the SolidErrors configuration to manually set the locale with :en as fallback.

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

BarnabeD avatar Nov 05 '24 15:11 BarnabeD

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.

fractaledmind avatar Nov 06 '24 16:11 fractaledmind