Rails supports non-YAML storage for translations. If you want to keep translations in a table, use the i18n-active_record gem.
Check out Railscast for customizable I18n servers.
If you use i18n-active_record , make sure that memoize and flatten keys are for optimal performance, as shown below (code image taken from readme i18n-active_record gem)
I18n.backend = I18n::Backend::ActiveRecord.new I18n::Backend::ActiveRecord.send(:include, I18n::Backend::Memoize) I18n::Backend::ActiveRecord.send(:include, I18n::Backend::Flatten) I18n::Backend::Simple.send(:include, I18n::Backend::Memoize) I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization) I18n.backend = I18n::Backend::Chain.new(I18n::Backend::Simple.new, I18n.backend)
source share