acts_as_translatable_model plugin
- September 22nd, 2008
- Posted in Rails Plugins . Ruby on Rails
- Write comment
After a long day in the train today, I extracted the I18n functionality from ActiveRecord so its applicable to any class. This can be especially handy if the source of the data is different, e.g. LDAP. Just install the plugin and add one line to your class to make it translatable:
./script/plugin install git://github.com/iain/acts_as_translatable_model
class User acts_as_translatable_model attr_accessor :name, :password end
Now you can do familiar things with the class, just as you would do with normal ActiveRecord models. Supply a translation:
nl-NL:
activerecord:
models:
user: gebruiker
attributes:
user:
name: naam
password: wachtwoord
>> User.human_name
=> "gebruiker"
>> User.human_attribute_name("name")
=> "naam"
Of course, you can use inheritance, just as you would use Single Table Inheritance (STI).
It also works nicely together with i18n_label. A simple example:
%h1= translate :please_login - form_for(User.new) do |f| = f.label :name = f.text_field :name = f.label :password = f.password_field :password = submit_tag( translate(:login) )
Hopefully, this will make your life a little bit easier.
No comments yet.