Rails: store translations in database
i18n has built-in support for using the database as a translation backend.
Create a table using this code in a migration:
create_table :translations do |t| t.string :locale t.string :key t.text :value t.text :interpolations t.boolean :is_proc, :default => false end
Then add an initializer in config/initializers/i18n.rb with contents:
I18n.backend = I18n::Backend::ActiveRecord.new
And last... put translations in the table. Something like:
locale key valueen Cool Cooles Cool Frioen nav.Home homees nav.Home casa...
As of i18n 0.5.0 I believe they moved this code out into it's own gem... I forget what that gem is called.
I finally found what I was looking for with the help of Sven Fuchs:
This quite awesome plugin by Dylan Stamat does exactly what the name indicates and additionally handles the caching!
Sven also mentioned, that the current branch of i18n/active_record provides an ActiveRecord backend as well:
http://github.com/svenfuchs/i18n/blob/active_record/lib/i18n/backend/active_record.rb
Some discussion about this topic is going on in the goolge i18n user group:
http://groups.google.com/group/rails-i18n/browse_thread/thread/6b7ba3c401890a7e
Issue solved, thanks to Mr I18n Sven Fuchs! ;)