'Use Rails 6 I18n translations for custom/user-specific naming schemas

What I would like to do is utilize the I18n localization structure to handle organziation-specific naming schemas, independently of the users actual local. Something like:

Default Naming Schema

show.en.yml

en:
  show:
    title: Component

Organization A Nameing Schema

show.org_a.yml

org_a:
  show:
    title: Widget

Organization B Nameing Schema

show.org_b.yml

org_b:
  show:
    title: Sprocket

I've tried to just set a custom local using I18n.locale = organziation.slug.to_sym || I18n.default_locale (where slug would be org_a, org_b, etc.), but that just yields a :org_a is not a valid locale error. Unfortunately, searching for possible solutions has not been all that fruitful.

Is there a way to add custom locals, or should I be approaching this problem a different way (using Rails 6)?



Solution 1:[1]

This works in Rails 4.2 (since that is what I have easy access to right now) to allow for custom locales but it should work for Rails 6 as well (or something similar to this):

I18n.available_locales = I18n.available_locales + [:org_a, :org_b]
I18n.locale            = organziation.slug.to_sym || I18n.default_locale

Maybe append to the available locales early on in a config file, or similar.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1