Whenever we invoke I18n.translate (also aliased as I18n.t) or I18n.localize (also aliased as I18n.l) in our application, it is delegating these methods to the I18n back end stored in I18n.backend. By replacing this back end, you can completely modify how the I18n library works. The I18n framework ships with three different back ends:
I18n::Backend::Simple: Keeps translations in an in-memory hash populated from YAML files; this is the default back end.
I18n::Backend::KeyValue: Uses any key-value store as a back end, as long it complies with a minimum API.
I18n::Backend::Chain: Allows you to chain several back ends; in other words, if a translation cannot be found in one back end, it searches for it in the next ...